123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- package com.malk.server.aliwork;
- import com.alibaba.fastjson.JSONObject;
- import com.malk.base.BaseDto;
- import lombok.AllArgsConstructor;
- import lombok.Builder;
- import lombok.Data;
- import lombok.NoArgsConstructor;
- import org.apache.commons.lang3.StringUtils;
- import javax.validation.constraints.NotNull;
- import javax.validation.constraints.Null;
- import javax.validation.groups.Default;
- import java.util.List;
- /**
- * 表单接口适用于流程: 查询和更新以及删除 [参数校验参考CatchException]
- */
- @Data
- @Builder
- @AllArgsConstructor
- @NoArgsConstructor
- public class YDParam extends BaseDto {
- /**
- * 接口参数
- */
- @NotNull(message = "应用编码不能为空")
- private String appType;
- @Null(message = "应用秘钥无需传递")
- private String systemToken;
- // 默认宜搭平台, 有操作数据权限
- @Builder.Default
- private String userId = YDConf.PUB_ACCOUNT;
- @NotNull(message = "表单编码不能为空", groups = {Create.class, Retrieve_Condition.class, Definition.class, Create_Process.class, Retrieve_Condition_Update.class})
- private String formUuid;
- /// FIXME: 表单/流程组件查询
- private String searchFieldJson;
- @Builder.Default
- private Integer currentPage = 1;
- @Builder.Default
- private Integer pageSize = YDConf.PAGE_SIZE_LIMIT;
- // 流程暂不支持排序
- private String dynamicOrder;
- // 修改开始时间, ppExt: 需要同时传递开始和就结束才会生效; 其次日期格式yyyy-MM-dd, 但默认是0点, 结束日期建议加1
- private String modifiedFromTimeGMT;
- // 修改结束时间, ppExt: 需要同时传递开始和就结束才会生效; 其次日期格式yyyy-MM-dd, 但默认是0点, 结束日期建议加1
- private String modifiedToTimeGMT;
- @NotNull(message = "实例ID不能为空", groups = {Update.class, Delete.class, Retrieve_FormInstId.class})
- private String formInstId;
- @NotNull(message = "更新内容不能为空", groups = {Update.class, Update_ProcessInstanceId.class, Retrieve_Condition_Update.class})
- private String updateFormDataJson;
- @NotNull(message = "流程编码不能为空", groups = Create_Process.class)
- private String processCode;
- // todo: 成员组件未匹配, 接口可以新增 [系统会忽略], 导入会提示无法匹配
- @NotNull(message = "新增内容不能为空", groups = {Create.class, Create_Process.class})
- public String formDataJson;
- @NotNull(message = "实例ID不能为空", groups = {Update_ProcessInstanceId.class, Delete_ProcessInstanceId.class, Retrieve_ProcessInstanceId.class})
- private String processInstanceId;
- @NotNull(message = "实例ID不能为空", groups = Retrieve_ProcessInstanceIds.class)
- private String processInstanceIds;
- /// RUNNING / NEW / PAUSED / TERMINATED / COMPLETED / ERROR / CANCELED
- private String instanceStatus;
- /// disagree / agree
- private String approvedResult;
- /**
- * 格式化赋值: 内部使用
- */
- public void setDynamicOrder(String dynamicOrder) {
- this.dynamicOrder = dynamicOrder;
- }
- public void setDynamicOrder(String rule, String... compIds) {
- for (String compId : compIds) {
- JSONObject orderJson = new JSONObject();
- orderJson.put(compId, rule);
- this.dynamicOrder = orderJson.toJSONString();
- }
- }
- /// 查询创建时间, 钉钉版本接口 [旧版本接口不支持]
- private String createFromTimeGMT;
- private String createToTimeGMT;
- /**
- * 自定义参数
- */
- private String compIdSerial; // 流水号排序字段
- /**
- * 钉钉新版本接口
- */
- @Builder.Default
- private Integer pageNumber = 1;
- private String formInstanceId;
- // formInstanceId 为新版本实例id字段
- public String getFormInstanceId() {
- if (StringUtils.isBlank(formInstanceId)) {
- return formInstId;
- }
- return formInstanceId;
- }
- /// FIXME: 表单/流程全局查询
- private String searchCondition;
- // 全局条件查询列表数据 FIXME: 若是查询组件也传searchFieldJson格式
- public String getSearchCondition() {
- if (StringUtils.isBlank(searchCondition)) {
- return searchFieldJson;
- }
- return searchCondition;
- }
- // 查询列表可查询多个指定实例ID | 批量删除 [上限50] | 批量更新
- private List<String> formInstanceIdList;
- // 是否需要宜搭表单组件格式的实例数据
- private boolean needFormInstanceValue = false;
- // 查询明细数据列表, 默认仅返回前50
- private String tableFieldId;
- // 附件转临时免登地址
- private String fileUrl;
- // 临时地址失效时间, 默认10分钟, 最大值24小时
- @Builder.Default
- private Integer timeout = 600000;
- /**
- * 批量删除
- */
- // 是否需要宜搭服务端异步执行该任务
- @Builder.Default
- private boolean asynchronousExecution = false;
- // 是否需要触发表单绑定的校验规则、关联业务规则和第三方服务回调
- @Builder.Default
- private boolean executeExpression = false;
- // 是否不触发表单绑定的校验规则、关联业务规则和第三方服务回调。
- @Builder.Default
- private boolean noExecuteExpression = true;
- // 是否忽略空值。
- @Builder.Default
- private boolean ignoreEmpty = true;
- // 是否使用最新的表单schema版本。
- @Builder.Default
- private boolean useLatestFormSchemaVersion = true;
- // 使用最新的表单版本进行更新。
- @Builder.Default
- private boolean useLatestVersion = false;
- /**
- * 评论
- */
- private String atUserId;
- private String content;
- /**
- * 分组校验
- *
- * @RequestBody @Validated(YDParam.Create.class) YDParam ydParam
- */
- public interface Create extends Default {
- }
- public interface Create_Process extends Default {
- }
- public interface Retrieve_Condition extends Default {
- }
- public interface Retrieve_Condition_Update extends Default {
- }
- public interface Retrieve_FormInstId extends Default {
- }
- public interface Retrieve_ProcessInstanceId extends Default {
- }
- public interface Retrieve_ProcessInstanceIds extends Default {
- }
- public interface Update extends Default {
- }
- public interface Update_ProcessInstanceId extends Default {
- }
- public interface Delete extends Default {
- }
- public interface Delete_ProcessInstanceId extends Default {
- }
- public interface Definition extends Default {
- }
- }
|