Explorar el Código

新增流程标准消息体

wangliang hace 2 años
padre
commit
266ec354b6
Se han modificado 25 ficheros con 2210 adiciones y 0 borrados
  1. 73 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/BaseFlowData.java
  2. 40 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/CustomFlowApproveRoleDto.java
  3. 59 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/FlowMsgDto.java
  4. 47 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/HandleMessageDto.java
  5. 139 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowData.java
  6. 18 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowDoneMsg.java
  7. 16 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowViewMsg.java
  8. 16 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowWorkMsg.java
  9. 104 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/ApproveUserResult.java
  10. 209 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/FlowTaskResult.java
  11. 238 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/FlowUser.java
  12. 74 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/FlowViewResult.java
  13. 154 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/TFFlowLogResult.java
  14. 185 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/TFFlowViewLogResult.java
  15. 363 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/WorkResult.java
  16. 42 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowApproveUserCountTypeEnum.java
  17. 42 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowApproveUserSelectRangeEnum.java
  18. 42 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowApproveUserTypeEnum.java
  19. 44 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowMultipleUserApproveTypeEnum.java
  20. 74 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/FlowApproveOperationEnum.java
  21. 25 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/FlowMsgTypeEnum.java
  22. 65 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/FlowStatusEnum.java
  23. 48 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/OrgTypeEnum.java
  24. 42 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/TFCustomModelTypeEnum.java
  25. 51 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/TFCustomTypeEnum.java

+ 73 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/BaseFlowData.java

@@ -0,0 +1,73 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.qmth.teachcloud.exchange.common.enums.flow.FlowApproveOperationEnum;
+import com.qmth.teachcloud.exchange.common.enums.flow.FlowMsgTypeEnum;
+import com.qmth.teachcloud.exchange.common.enums.flow.TFCustomTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 基础流程信息
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+public class BaseFlowData implements Serializable {
+
+    @ApiModelProperty(value = "流程类型")
+    TFCustomTypeEnum flowType;
+
+    @ApiModelProperty(value = "流程操作")
+    FlowApproveOperationEnum flowOperation;
+
+    @ApiModelProperty(value = "消息类型")
+    FlowMsgTypeEnum messageType;
+
+    @ApiModelProperty(value = "待办链接")
+    String url;
+
+    @ApiModelProperty(value = "移动待办链接")
+    String mobileUrl;
+
+    public FlowMsgTypeEnum getMessageType() {
+        return messageType;
+    }
+
+    public void setMessageType(FlowMsgTypeEnum messageType) {
+        this.messageType = messageType;
+    }
+
+    public TFCustomTypeEnum getFlowType() {
+        return flowType;
+    }
+
+    public void setFlowType(TFCustomTypeEnum flowType) {
+        this.flowType = flowType;
+    }
+
+    public FlowApproveOperationEnum getFlowOperation() {
+        return flowOperation;
+    }
+
+    public void setFlowOperation(FlowApproveOperationEnum flowOperation) {
+        this.flowOperation = flowOperation;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getMobileUrl() {
+        return mobileUrl;
+    }
+
+    public void setMobileUrl(String mobileUrl) {
+        this.mobileUrl = mobileUrl;
+    }
+}

+ 40 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/CustomFlowApproveRoleDto.java

@@ -0,0 +1,40 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 自定义流程审核角色 dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/21
+ */
+public class CustomFlowApproveRoleDto implements Serializable {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long id;
+
+    @ApiModelProperty(value = "角色名称")
+    String name;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 59 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/FlowMsgDto.java

@@ -0,0 +1,59 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.qmth.teachcloud.exchange.common.enums.flow.FlowMsgTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 流程消息dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+public class FlowMsgDto implements Serializable {
+
+    @ApiModelProperty(value = "是否开启消息推送")
+    Boolean openFlowMsgPush;
+
+    @ApiModelProperty(value = "消息类型")
+    FlowMsgTypeEnum flowMsgType;
+
+    @ApiModelProperty(value = "消息中心地址")
+    String mqHostUrl;
+
+    public FlowMsgDto() {
+
+    }
+
+    public FlowMsgDto(Boolean openFlowMsgPush, FlowMsgTypeEnum flowMsgType, String mqHostUrl) {
+        this.openFlowMsgPush = openFlowMsgPush;
+        this.flowMsgType = flowMsgType;
+        this.mqHostUrl = mqHostUrl;
+    }
+
+    public Boolean getOpenFlowMsgPush() {
+        return openFlowMsgPush;
+    }
+
+    public void setOpenFlowMsgPush(Boolean openFlowMsgPush) {
+        this.openFlowMsgPush = openFlowMsgPush;
+    }
+
+    public FlowMsgTypeEnum getFlowMsgType() {
+        return flowMsgType;
+    }
+
+    public void setFlowMsgType(FlowMsgTypeEnum flowMsgType) {
+        this.flowMsgType = flowMsgType;
+    }
+
+    public String getMqHostUrl() {
+        return mqHostUrl;
+    }
+
+    public void setMqHostUrl(String mqHostUrl) {
+        this.mqHostUrl = mqHostUrl;
+    }
+}

+ 47 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/HandleMessageDto.java

@@ -0,0 +1,47 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 流程消息dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+public class HandleMessageDto implements Serializable {
+
+    @ApiModelProperty(value = "待办消息")
+    List<StandardFlowWorkMsg> standardFlowWorkMsgList;
+
+    @ApiModelProperty(value = "消息详情")
+    StandardFlowViewMsg standardFlowViewMsg;
+
+    public HandleMessageDto() {
+
+    }
+
+    public HandleMessageDto(List<StandardFlowWorkMsg> standardFlowWorkMsgList, StandardFlowViewMsg standardFlowViewMsg) {
+        this.standardFlowWorkMsgList = standardFlowWorkMsgList;
+        this.standardFlowViewMsg = standardFlowViewMsg;
+    }
+
+    public List<StandardFlowWorkMsg> getStandardFlowWorkMsgList() {
+        return standardFlowWorkMsgList;
+    }
+
+    public void setStandardFlowWorkMsgList(List<StandardFlowWorkMsg> standardFlowWorkMsgList) {
+        this.standardFlowWorkMsgList = standardFlowWorkMsgList;
+    }
+
+    public StandardFlowViewMsg getStandardFlowViewMsg() {
+        return standardFlowViewMsg;
+    }
+
+    public void setStandardFlowViewMsg(StandardFlowViewMsg standardFlowViewMsg) {
+        this.standardFlowViewMsg = standardFlowViewMsg;
+    }
+}

+ 139 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowData.java

@@ -0,0 +1,139 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.base.BaseEntity;
+import com.qmth.teachcloud.exchange.common.enums.flow.TFCustomModelTypeEnum;
+import com.qmth.teachcloud.exchange.common.enums.flow.TFCustomTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 流程基础消息dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class StandardFlowData extends BaseEntity implements Serializable {
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long schoolId;
+
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField(value = "org_id", updateStrategy = FieldStrategy.IGNORED)
+    private Long orgId;
+
+    @ApiModelProperty(value = "流程名称")
+    private String name;
+
+    @ApiModelProperty(value = "模式类型,USER_FIXED:指定人员,APPROVE_SET:发起人指定")
+    private TFCustomModelTypeEnum modelType;
+
+    @ApiModelProperty(value = "流程类型,ELECTRON_FLOW:电子交卷审核,QUESTION_ELECTRON_FLOW:题库试题提交审核,PAPER_ELECTRON_FLOW:题库试卷审核")
+    private TFCustomTypeEnum type;
+
+    @ApiModelProperty(value = "是否启用,0:停用,1:启用")
+    @TableField(value = "enable", updateStrategy = FieldStrategy.IGNORED)
+    private Boolean enable;
+
+    @ApiModelProperty(value = "是否发布,0:否,1:是")
+    @TableField(value = "publish", updateStrategy = FieldStrategy.IGNORED)
+    private Boolean publish;
+
+    @ApiModelProperty(value = "自定义流程源数据")
+    private String objectData;
+
+    @ApiModelProperty(value = "版本号")
+    private Integer version;
+
+    @ApiModelProperty(value = "最后更新人")
+    private String updateName;
+
+    public String getUpdateName() {
+        return updateName;
+    }
+
+    public void setUpdateName(String updateName) {
+        this.updateName = updateName;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public TFCustomModelTypeEnum getModelType() {
+        return modelType;
+    }
+
+    public void setModelType(TFCustomModelTypeEnum modelType) {
+        this.modelType = modelType;
+    }
+
+    public TFCustomTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(TFCustomTypeEnum type) {
+        this.type = type;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public Boolean getPublish() {
+        return publish;
+    }
+
+    public void setPublish(Boolean publish) {
+        this.publish = publish;
+    }
+
+    public String getObjectData() {
+        return objectData;
+    }
+
+    public void setObjectData(String objectData) {
+        this.objectData = objectData;
+    }
+
+    public Integer getVersion() {
+        return version;
+    }
+
+    public void setVersion(Integer version) {
+        this.version = version;
+    }
+}

+ 18 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowDoneMsg.java

@@ -0,0 +1,18 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.qmth.teachcloud.exchange.common.bean.result.flow.TFFlowViewLogResult;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 流程已办消息dto
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class StandardFlowDoneMsg extends TFFlowViewLogResult implements Serializable {
+
+}

+ 16 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowViewMsg.java

@@ -0,0 +1,16 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.qmth.teachcloud.exchange.common.bean.result.flow.FlowViewResult;
+
+/**
+ * @Description: 标准流程详情消息
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class StandardFlowViewMsg extends FlowViewResult {
+
+}

+ 16 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/dto/flow/StandardFlowWorkMsg.java

@@ -0,0 +1,16 @@
+package com.qmth.teachcloud.exchange.common.bean.dto.flow;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.qmth.teachcloud.exchange.common.bean.result.flow.WorkResult;
+
+/**
+ * @Description: 标准流程工作台消息
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class StandardFlowWorkMsg extends WorkResult {
+
+}

+ 104 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/ApproveUserResult.java

@@ -0,0 +1,104 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.enums.flow.OrgTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 审批人 result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/17
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ApproveUserResult extends FlowUser implements Serializable {
+
+    @ApiModelProperty(value = "机构名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "机构类型")
+    private OrgTypeEnum orgType;
+
+    @ApiModelProperty(value = "试卷urls")
+    private String paperUrls;
+
+    @ApiModelProperty(value = "流程待审批人")
+    private String pendApproveUsers;
+
+    @ApiModelProperty(value = "角色id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    public ApproveUserResult() {
+
+    }
+
+    public ApproveUserResult(String orgName, OrgTypeEnum orgType, String loginName, String realName, Long schoolId, String code, String mobileNumber, Long createTime, String paperUrls) {
+        this.orgName = orgName;
+        this.orgType = orgType;
+        setLoginName(loginName);
+        setRealName(realName);
+        setSchoolId(schoolId);
+        setCode(code);
+        setMobileNumber(mobileNumber);
+        setCreateTime(createTime);
+        this.paperUrls = paperUrls;
+    }
+
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getPendApproveUsers() {
+        return pendApproveUsers;
+    }
+
+    public void setPendApproveUsers(String pendApproveUsers) {
+        this.pendApproveUsers = pendApproveUsers;
+    }
+
+    public String getPaperUrls() {
+        return paperUrls;
+    }
+
+    public void setPaperUrls(String paperUrls) {
+        this.paperUrls = paperUrls;
+    }
+
+    public String getOrgName() {
+        return orgName;
+    }
+
+    public void setOrgName(String orgName) {
+        this.orgName = orgName;
+    }
+
+    public OrgTypeEnum getOrgType() {
+        return orgType;
+    }
+
+    public void setOrgType(OrgTypeEnum orgType) {
+        this.orgType = orgType;
+    }
+}

+ 209 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/FlowTaskResult.java

@@ -0,0 +1,209 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.bean.dto.flow.CustomFlowApproveRoleDto;
+import com.qmth.teachcloud.exchange.common.enums.flow.CustomFlowApproveUserCountTypeEnum;
+import com.qmth.teachcloud.exchange.common.enums.flow.CustomFlowApproveUserSelectRangeEnum;
+import com.qmth.teachcloud.exchange.common.enums.flow.CustomFlowApproveUserTypeEnum;
+import com.qmth.teachcloud.exchange.common.enums.flow.TFCustomModelTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 流程节点result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/6
+ */
+public class FlowTaskResult implements Serializable {
+
+    @ApiModelProperty(value = "流程id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
+
+    @ApiModelProperty(value = "流程节点名称")
+    private String taskName;
+
+    @ApiModelProperty(value = "流程节点key")
+    private String taskKey;
+
+    @ApiModelProperty(value = "流程节点步骤")
+    private Integer setup;
+
+    @ApiModelProperty(value = "审批人id")
+    List<String> approveIds;
+
+    @ApiModelProperty(value = "审批人")
+    String approveUserNames;
+
+    @ApiModelProperty(value = "审批角色ids")
+    List<String> approveRoleIds;
+
+    @ApiModelProperty(value = "属性")
+    CustomFlowApproveUserTypeEnum approveUserType;
+
+    @ApiModelProperty(value = "流程模式")
+    TFCustomModelTypeEnum modelType;
+
+    @ApiModelProperty(value = "自定义流程发起人指定选择人数")
+    CustomFlowApproveUserCountTypeEnum approveUserCountType;
+
+    @ApiModelProperty(value = "自定义流程发起人指定选择用户类型")
+    CustomFlowApproveUserSelectRangeEnum approveUserSelectRange;
+
+    @ApiModelProperty(value = "自定义流程发起人指定审批角色列表")
+    List<CustomFlowApproveRoleDto> approveUserSelectRoles;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "任务节点id")
+    List<Long> taskIdList;
+
+    public List<Long> getTaskIdList() {
+        return taskIdList;
+    }
+
+    public void setTaskIdList(List<Long> taskIdList) {
+        this.taskIdList = taskIdList;
+    }
+
+    public FlowTaskResult() {
+
+    }
+
+    public FlowTaskResult(String taskName, String taskKey, Integer setup) {
+        this.taskName = taskName;
+        this.taskKey = taskKey;
+        this.setup = setup;
+    }
+
+    public FlowTaskResult(String taskName, String taskKey, Integer setup, TFCustomModelTypeEnum modelType) {
+        this.taskName = taskName;
+        this.taskKey = taskKey;
+        this.setup = setup;
+        this.modelType = modelType;
+    }
+
+    public FlowTaskResult(Long flowId,
+                          String taskName,
+                          String taskKey,
+                          Integer setup) {
+        this.flowId = flowId;
+        this.taskName = taskName;
+        this.taskKey = taskKey;
+        this.setup = setup;
+    }
+
+    public void setInfo(List<String> approveRoleIds,
+                        CustomFlowApproveUserTypeEnum approveUserType,
+                        TFCustomModelTypeEnum modelType,
+                        CustomFlowApproveUserCountTypeEnum approveUserCountType,
+                        CustomFlowApproveUserSelectRangeEnum approveUserSelectRange,
+                        List<CustomFlowApproveRoleDto> approveUserSelectRoles) {
+        this.approveRoleIds = approveRoleIds;
+        this.approveUserType = approveUserType;
+        this.modelType = modelType;
+        this.approveUserCountType = approveUserCountType;
+        this.approveUserSelectRange = approveUserSelectRange;
+        this.approveUserSelectRoles = approveUserSelectRoles;
+    }
+
+    public List<String> getApproveIds() {
+        return approveIds;
+    }
+
+    public void setApproveIds(List<String> approveIds) {
+        this.approveIds = approveIds;
+    }
+
+    public TFCustomModelTypeEnum getModelType() {
+        return modelType;
+    }
+
+    public void setModelType(TFCustomModelTypeEnum modelType) {
+        this.modelType = modelType;
+    }
+
+    public CustomFlowApproveUserCountTypeEnum getApproveUserCountType() {
+        return approveUserCountType;
+    }
+
+    public void setApproveUserCountType(CustomFlowApproveUserCountTypeEnum approveUserCountType) {
+        this.approveUserCountType = approveUserCountType;
+    }
+
+    public CustomFlowApproveUserSelectRangeEnum getApproveUserSelectRange() {
+        return approveUserSelectRange;
+    }
+
+    public void setApproveUserSelectRange(CustomFlowApproveUserSelectRangeEnum approveUserSelectRange) {
+        this.approveUserSelectRange = approveUserSelectRange;
+    }
+
+    public List<CustomFlowApproveRoleDto> getApproveUserSelectRoles() {
+        return approveUserSelectRoles;
+    }
+
+    public void setApproveUserSelectRoles(List<CustomFlowApproveRoleDto> approveUserSelectRoles) {
+        this.approveUserSelectRoles = approveUserSelectRoles;
+    }
+
+    public List<String> getApproveRoleIds() {
+        return approveRoleIds;
+    }
+
+    public void setApproveRoleIds(List<String> approveRoleIds) {
+        this.approveRoleIds = approveRoleIds;
+    }
+
+    public CustomFlowApproveUserTypeEnum getApproveUserType() {
+        return approveUserType;
+    }
+
+    public void setApproveUserType(CustomFlowApproveUserTypeEnum approveUserType) {
+        this.approveUserType = approveUserType;
+    }
+
+    public String getApproveUserNames() {
+        return approveUserNames;
+    }
+
+    public void setApproveUserNames(String approveUserNames) {
+        this.approveUserNames = approveUserNames;
+    }
+
+    public Long getFlowId() {
+        return flowId;
+    }
+
+    public void setFlowId(Long flowId) {
+        this.flowId = flowId;
+    }
+
+    public String getTaskName() {
+        return taskName;
+    }
+
+    public void setTaskName(String taskName) {
+        this.taskName = taskName;
+    }
+
+    public String getTaskKey() {
+        return taskKey;
+    }
+
+    public void setTaskKey(String taskKey) {
+        this.taskKey = taskKey;
+    }
+
+    public Integer getSetup() {
+        return setup;
+    }
+
+    public void setSetup(Integer setup) {
+        this.setup = setup;
+    }
+}

+ 238 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/FlowUser.java

@@ -0,0 +1,238 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.base.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @author xf
+ * @since 2021-03-23
+ */
+public class FlowUser extends BaseEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "学校id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField("school_id")
+    private Long schoolId;
+    /**
+     * 用户名
+     */
+    @TableField("login_name")
+    @NotBlank(message = "请输入登录名")
+    @Length(message = "登录名不能超过{max}个字符", max = 30)
+    private String loginName;
+    /**
+     * 姓名
+     */
+    @TableField("real_name")
+    @NotBlank(message = "请输入姓名")
+    @Length(message = "姓名不能超过{max}个字符", max = 32)
+    private String realName;
+
+    /**
+     * 姓名
+     */
+    @TableField("code")
+    @NotBlank(message = "请输入工号")
+    @Length(message = "工号不能超过{max}个字符", max = 50)
+    private String code;
+    /**
+     * 密码
+     */
+    private String password;
+    /**
+     * 手机号
+     */
+    @TableField("mobile_number")
+//    @NotBlank(message = "请输入手机号码")
+    @Length(message = "手机号码不能超过{max}个字符", max = 25)
+    private String mobileNumber;
+
+    @ApiModelProperty(value = "机构id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField("org_id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "是否启用,0:停用,1:启用")
+    private Boolean enable = true;
+
+    /**
+     * 密码修改次数
+     */
+    @TableField("pwd_count")
+    private Integer pwdCount;
+
+    /**
+     * 密码修改时间
+     */
+    @TableField("pwd_update_time")
+    private Long pwdUpdateTime;
+    /**
+     * 备注
+     */
+    private String remark;
+
+    @TableField(exist = false)
+    private String oldPassword;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "前端传的修改手机号码时的验证码")
+    private String verifyCode;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField(exist = false)
+    @NotNull(message = "请选择角色")
+    private Long[] roleIds;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableField(exist = false)
+    private Long[] courseIds;
+
+    @ApiModelProperty("历史用户名")
+    private String historicName;
+
+    public String getHistoricName() {
+        return historicName;
+    }
+
+    public void setHistoricName(String historicName) {
+        this.historicName = historicName;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getSchoolId() {
+        return schoolId;
+    }
+
+    public void setSchoolId(Long schoolId) {
+        this.schoolId = schoolId;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getMobileNumber() {
+        return mobileNumber;
+    }
+
+    public void setMobileNumber(String mobileNumber) {
+        this.mobileNumber = mobileNumber;
+    }
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public Integer getPwdCount() {
+        return pwdCount;
+    }
+
+    public void setPwdCount(Integer pwdCount) {
+        this.pwdCount = pwdCount;
+    }
+
+    public Long getPwdUpdateTime() {
+        return pwdUpdateTime;
+    }
+
+    public void setPwdUpdateTime(Long pwdUpdateTime) {
+        this.pwdUpdateTime = pwdUpdateTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Long[] getRoleIds() {
+        return roleIds;
+    }
+
+    public void setRoleIds(Long[] roleIds) {
+        this.roleIds = roleIds;
+    }
+
+    public Long[] getCourseIds() {
+        return courseIds;
+    }
+
+    public void setCourseIds(Long[] courseIds) {
+        this.courseIds = courseIds;
+    }
+
+    public String getOldPassword() {
+        return oldPassword;
+    }
+
+    public void setOldPassword(String oldPassword) {
+        this.oldPassword = oldPassword;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getVerifyCode() {
+        return verifyCode;
+    }
+
+    public void setVerifyCode(String verifyCode) {
+        this.verifyCode = verifyCode;
+    }
+}

+ 74 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/FlowViewResult.java

@@ -0,0 +1,74 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.qmth.teachcloud.exchange.common.bean.dto.flow.BaseFlowData;
+import com.qmth.teachcloud.exchange.common.enums.flow.CustomFlowMultipleUserApproveTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 流程查看result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/6
+ */
+public class FlowViewResult extends BaseFlowData implements Serializable {
+
+    @ApiModelProperty(value = "自定义流程审核类型")
+    private CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType;
+
+    @ApiModelProperty(value = "当前流程节点")
+    private FlowTaskResult currFlowTaskResult;
+
+    @ApiModelProperty(value = "流程审批信息")
+    List<TFFlowViewLogResult> tfFlowViewLogResultList;
+
+    public FlowViewResult() {
+
+    }
+
+    public FlowViewResult(List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
+    }
+
+    public FlowViewResult(FlowTaskResult currFlowTaskResult) {
+        this.currFlowTaskResult = currFlowTaskResult;
+    }
+
+    public FlowViewResult(FlowTaskResult currFlowTaskResult, List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.currFlowTaskResult = currFlowTaskResult;
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
+    }
+
+    public FlowViewResult(CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType, FlowTaskResult currFlowTaskResult, List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.multipleUserApproveType = multipleUserApproveType;
+        this.currFlowTaskResult = currFlowTaskResult;
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
+    }
+
+    public FlowTaskResult getCurrFlowTaskResult() {
+        return currFlowTaskResult;
+    }
+
+    public void setCurrFlowTaskResult(FlowTaskResult currFlowTaskResult) {
+        this.currFlowTaskResult = currFlowTaskResult;
+    }
+
+    public CustomFlowMultipleUserApproveTypeEnum getMultipleUserApproveType() {
+        return multipleUserApproveType;
+    }
+
+    public void setMultipleUserApproveType(CustomFlowMultipleUserApproveTypeEnum multipleUserApproveType) {
+        this.multipleUserApproveType = multipleUserApproveType;
+    }
+
+    public List<TFFlowViewLogResult> getTfFlowViewLogResultList() {
+        return tfFlowViewLogResultList;
+    }
+
+    public void setTfFlowViewLogResultList(List<TFFlowViewLogResult> tfFlowViewLogResultList) {
+        this.tfFlowViewLogResultList = tfFlowViewLogResultList;
+    }
+}

+ 154 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/TFFlowLogResult.java

@@ -0,0 +1,154 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.enums.flow.FlowApproveOperationEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: TFFlowLogResult
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/11/22
+ */
+public class TFFlowLogResult extends ApproveUserResult implements Serializable {
+
+    @ApiModelProperty(value = "流程id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
+
+    @ApiModelProperty(value = "实体表")
+    private String objectTable;
+
+    @ApiModelProperty(value = "实体id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long objectId;
+
+    @ApiModelProperty(value = "审核人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long approveId;
+
+    @ApiModelProperty(value = "审核步骤")
+    private Integer approveSetup;
+
+    @ApiModelProperty(value = "审核意见")
+    private String approveRemark;
+
+    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
+    private FlowApproveOperationEnum approveOperation;
+
+    @ApiModelProperty(value = "待审核人id")
+    private String pendApproveId;
+
+    @ApiModelProperty(value = "试卷附件")
+    private String paperAttachmentId;
+
+    @ApiModelProperty(value = "待审核人")
+    private String pendApproveUserName;
+
+    @ApiModelProperty(value = "已审核人")
+    private String approveUserName;
+
+    @ApiModelProperty(value = "流程节点id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long taskId;
+
+    public Long getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(Long taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getPendApproveUserName() {
+        return pendApproveUserName;
+    }
+
+    public void setPendApproveUserName(String pendApproveUserName) {
+        this.pendApproveUserName = pendApproveUserName;
+    }
+
+    public String getApproveUserName() {
+        return approveUserName;
+    }
+
+    public void setApproveUserName(String approveUserName) {
+        this.approveUserName = approveUserName;
+    }
+
+    public String getPaperAttachmentId() {
+        return paperAttachmentId;
+    }
+
+    public void setPaperAttachmentId(String paperAttachmentId) {
+        this.paperAttachmentId = paperAttachmentId;
+    }
+
+    public Long getFlowId() {
+        return flowId;
+    }
+
+    public void setFlowId(Long flowId) {
+        this.flowId = flowId;
+    }
+
+    public String getObjectTable() {
+        return objectTable;
+    }
+
+    public void setObjectTable(String objectTable) {
+        this.objectTable = objectTable;
+    }
+
+    public Long getObjectId() {
+        return objectId;
+    }
+
+    public void setObjectId(Long objectId) {
+        this.objectId = objectId;
+    }
+
+    public Long getApproveId() {
+        return approveId;
+    }
+
+    public void setApproveId(Long approveId) {
+        this.approveId = approveId;
+    }
+
+    public Integer getApproveSetup() {
+        return approveSetup;
+    }
+
+    public void setApproveSetup(Integer approveSetup) {
+        this.approveSetup = approveSetup;
+    }
+
+    public String getApproveRemark() {
+        return approveRemark;
+    }
+
+    public void setApproveRemark(String approveRemark) {
+        this.approveRemark = approveRemark;
+    }
+
+    public FlowApproveOperationEnum getApproveOperation() {
+        return approveOperation;
+    }
+
+    public void setApproveOperation(FlowApproveOperationEnum approveOperation) {
+        this.approveOperation = approveOperation;
+    }
+
+    public String getPendApproveId() {
+        return pendApproveId;
+    }
+
+    public void setPendApproveId(String pendApproveId) {
+        this.pendApproveId = pendApproveId;
+    }
+}

+ 185 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/TFFlowViewLogResult.java

@@ -0,0 +1,185 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.bean.dto.flow.BaseFlowData;
+import com.qmth.teachcloud.exchange.common.enums.flow.FlowApproveOperationEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: TFFlowLogResult
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/11/22
+ */
+public class TFFlowViewLogResult extends BaseFlowData implements Serializable {
+
+    @ApiModelProperty(value = "流程id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
+
+    @ApiModelProperty(value = "实体表")
+    private String objectTable;
+
+    @ApiModelProperty(value = "任务id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long objectId;
+
+    @ApiModelProperty(value = "审核人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long approveId;
+
+    @ApiModelProperty(value = "审核步骤")
+    private Integer approveSetup;
+
+    @ApiModelProperty(value = "审核意见")
+    private String approveRemark;
+
+    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
+    private FlowApproveOperationEnum approveOperation;
+
+    @ApiModelProperty(value = "待审核人id")
+    private String pendApproveId;
+
+    @ApiModelProperty(value = "试卷附件")
+    private String paperAttachmentId;
+
+    @ApiModelProperty(value = "待审核人")
+    private String pendApproveUserName;
+
+    @ApiModelProperty(value = "已审核人")
+    private String approveUserName;
+
+    @ApiModelProperty(value = "试卷urls")
+    private String paperUrls;
+
+    @ApiModelProperty(value = "创建时间")
+    private Long createTime;
+
+    public TFFlowViewLogResult() {
+
+    }
+
+    public TFFlowViewLogResult(TFFlowLogResult tfFlowLogResult) {
+        this.flowId = tfFlowLogResult.getFlowId();
+        this.objectId = tfFlowLogResult.getObjectId();
+        this.objectTable = tfFlowLogResult.getObjectTable();
+        this.approveId = tfFlowLogResult.getApproveId();
+        this.approveSetup = tfFlowLogResult.getApproveSetup();
+        this.approveRemark = tfFlowLogResult.getApproveRemark();
+        this.approveOperation = tfFlowLogResult.getApproveOperation();
+        this.pendApproveId = tfFlowLogResult.getPendApproveId();
+        this.paperAttachmentId = tfFlowLogResult.getPaperAttachmentId();
+        this.pendApproveUserName = tfFlowLogResult.getPendApproveUserName();
+        this.approveUserName = tfFlowLogResult.getApproveUserName();
+        this.paperUrls = tfFlowLogResult.getPaperUrls();
+        this.createTime = tfFlowLogResult.getCreateTime();
+    }
+
+    public String getPaperUrls() {
+        return paperUrls;
+    }
+
+    public void setPaperUrls(String paperUrls) {
+        this.paperUrls = paperUrls;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getPendApproveUserName() {
+        return pendApproveUserName;
+    }
+
+    public void setPendApproveUserName(String pendApproveUserName) {
+        this.pendApproveUserName = pendApproveUserName;
+    }
+
+    public String getApproveUserName() {
+        return approveUserName;
+    }
+
+    public void setApproveUserName(String approveUserName) {
+        this.approveUserName = approveUserName;
+    }
+
+    public String getPaperAttachmentId() {
+        return paperAttachmentId;
+    }
+
+    public void setPaperAttachmentId(String paperAttachmentId) {
+        this.paperAttachmentId = paperAttachmentId;
+    }
+
+    public Long getFlowId() {
+        return flowId;
+    }
+
+    public void setFlowId(Long flowId) {
+        this.flowId = flowId;
+    }
+
+    public String getObjectTable() {
+        return objectTable;
+    }
+
+    public void setObjectTable(String objectTable) {
+        this.objectTable = objectTable;
+    }
+
+    public Long getObjectId() {
+        return objectId;
+    }
+
+    public void setObjectId(Long objectId) {
+        this.objectId = objectId;
+    }
+
+    public Long getApproveId() {
+        return approveId;
+    }
+
+    public void setApproveId(Long approveId) {
+        this.approveId = approveId;
+    }
+
+    public Integer getApproveSetup() {
+        return approveSetup;
+    }
+
+    public void setApproveSetup(Integer approveSetup) {
+        this.approveSetup = approveSetup;
+    }
+
+    public String getApproveRemark() {
+        return approveRemark;
+    }
+
+    public void setApproveRemark(String approveRemark) {
+        this.approveRemark = approveRemark;
+    }
+
+    public FlowApproveOperationEnum getApproveOperation() {
+        return approveOperation;
+    }
+
+    public void setApproveOperation(FlowApproveOperationEnum approveOperation) {
+        this.approveOperation = approveOperation;
+    }
+
+    public String getPendApproveId() {
+        return pendApproveId;
+    }
+
+    public void setPendApproveId(String pendApproveId) {
+        this.pendApproveId = pendApproveId;
+    }
+}

+ 363 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/result/flow/WorkResult.java

@@ -0,0 +1,363 @@
+package com.qmth.teachcloud.exchange.common.bean.result.flow;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.exchange.common.bean.dto.flow.BaseFlowData;
+import com.qmth.teachcloud.exchange.common.enums.flow.FlowStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * @Description: 工作台 result
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/4/8
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class WorkResult extends BaseFlowData implements Serializable {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    @ApiModelProperty(value = "试卷编号")
+    String paperNumber;
+
+    @ApiModelProperty(value = "课程名称")
+    String courseName;
+
+    @ApiModelProperty(value = "课程代码")
+    String courseCode;
+
+    @ApiModelProperty(value = "适用专业")
+    String specialty;
+
+    @ApiModelProperty(value = "题卡规则ID")
+    String cardRuleId;
+
+    @ApiModelProperty(value = "题卡规则名称")
+    String cardRuleName;
+
+    @ApiModelProperty(value = "用户ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long userId;
+
+    @ApiModelProperty(value = "用户名称")
+    String userName;
+
+    @ApiModelProperty(value = "命题开始时间")
+    Long startTime;
+
+    @ApiModelProperty(value = "命题结束时间")
+    Long endTime;
+
+    @ApiModelProperty(value = "流程状态")
+    FlowStatusEnum status;
+
+    @ApiModelProperty(value = "流程状态")
+    String statusStr;
+
+    @ApiModelProperty(value = "剩余天数")
+    Integer remainCount;
+
+    @ApiModelProperty(value = "提交人")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long createId;
+
+    @ApiModelProperty(value = "提交时间")
+    Long createTime;
+
+    @ApiModelProperty(value = "待办条数")
+    Integer count;
+
+    @ApiModelProperty(value = "当前服务器时间")
+    Long systemCurrentTime;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "执行id")
+    Long executionId;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "流程id")
+    Long flowId;
+
+    @ApiModelProperty(value = "任务节点名称")
+    String taskName;
+
+    @ApiModelProperty(value = "任务节点key")
+    String taskDefKey;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty(value = "任务节点id")
+    Long taskId;
+
+    @ApiModelProperty(value = "流程步骤")
+    Integer setup;
+
+    @ApiModelProperty(value = "拟卷教师")
+    String teacherName;
+
+    @ApiModelProperty(value = "主讲教师")
+    String lecturerName;
+
+    @ApiModelProperty(value = "教研室")
+    String teachingRoomName;
+
+    @ApiModelProperty(value = "命题教师")
+    String propositionName;
+
+    @ApiModelProperty(value = "审核状态")
+    String auditStatus;
+
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    Long examId;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getStatusStr() {
+        if (Objects.nonNull(status)) {
+            return status.getTitle();
+        } else {
+            return statusStr;
+        }
+    }
+
+    public void setStatusStr(String statusStr) {
+        this.statusStr = statusStr;
+    }
+
+    public Integer getSetup() {
+        return setup;
+    }
+
+    public void setSetup(Integer setup) {
+        this.setup = setup;
+    }
+
+    public FlowStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(FlowStatusEnum status) {
+        this.status = status;
+    }
+
+    public String getTaskName() {
+        return taskName;
+    }
+
+    public void setTaskName(String taskName) {
+        this.taskName = taskName;
+    }
+
+    public String getTaskDefKey() {
+        return taskDefKey;
+    }
+
+    public void setTaskDefKey(String taskDefKey) {
+        this.taskDefKey = taskDefKey;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getSpecialty() {
+        return specialty;
+    }
+
+    public void setSpecialty(String specialty) {
+        this.specialty = specialty;
+    }
+
+    public String getCardRuleId() {
+        return cardRuleId;
+    }
+
+    public void setCardRuleId(String cardRuleId) {
+        this.cardRuleId = cardRuleId;
+    }
+
+    public String getCardRuleName() {
+        return cardRuleName;
+    }
+
+    public void setCardRuleName(String cardRuleName) {
+        this.cardRuleName = cardRuleName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Long getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Long startTime) {
+        this.startTime = startTime;
+    }
+
+    public Long getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Long endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getRemainCount() {
+        return remainCount;
+    }
+
+    public void setRemainCount(Integer remainCount) {
+        this.remainCount = remainCount;
+    }
+
+    public Long getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(Long createId) {
+        this.createId = createId;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Integer getCount() {
+        return count;
+    }
+
+    public void setCount(Integer count) {
+        this.count = count;
+    }
+
+    public Long getSystemCurrentTime() {
+        return System.currentTimeMillis();
+    }
+
+    public void setSystemCurrentTime(Long systemCurrentTime) {
+        this.systemCurrentTime = systemCurrentTime;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public Long getExecutionId() {
+        return executionId;
+    }
+
+    public void setExecutionId(Long executionId) {
+        this.executionId = executionId;
+    }
+
+    public Long getFlowId() {
+        return flowId;
+    }
+
+    public void setFlowId(Long flowId) {
+        this.flowId = flowId;
+    }
+
+    public Long getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(Long taskId) {
+        this.taskId = taskId;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getLecturerName() {
+        return lecturerName;
+    }
+
+    public void setLecturerName(String lecturerName) {
+        this.lecturerName = lecturerName;
+    }
+
+    public String getTeachingRoomName() {
+        return teachingRoomName;
+    }
+
+    public void setTeachingRoomName(String teachingRoomName) {
+        this.teachingRoomName = teachingRoomName;
+    }
+
+    public String getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(String auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public String getPropositionName() {
+        return propositionName;
+    }
+
+    public void setPropositionName(String propositionName) {
+        this.propositionName = propositionName;
+    }
+}

+ 42 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowApproveUserCountTypeEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 自定义流程发起人指定选择人数
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/21
+ */
+public enum CustomFlowApproveUserCountTypeEnum {
+
+    ONE("一个"),
+
+    MORE("多个");
+
+    private String title;
+
+    private CustomFlowApproveUserCountTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (CustomFlowApproveUserCountTypeEnum e : CustomFlowApproveUserCountTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 42 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowApproveUserSelectRangeEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 自定义流程发起人指定选择用户类型
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/21
+ */
+public enum CustomFlowApproveUserSelectRangeEnum {
+
+    ALL("全单位"),
+
+    ROLE("角色");
+
+    private String title;
+
+    private CustomFlowApproveUserSelectRangeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (CustomFlowApproveUserSelectRangeEnum e : CustomFlowApproveUserSelectRangeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 42 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowApproveUserTypeEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 自定义流程审核用户类型
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/21
+ */
+public enum CustomFlowApproveUserTypeEnum {
+
+    USER("成员"),
+
+    ROLE("角色");
+
+    private String title;
+
+    private CustomFlowApproveUserTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (CustomFlowApproveUserTypeEnum e : CustomFlowApproveUserTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 44 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/CustomFlowMultipleUserApproveTypeEnum.java

@@ -0,0 +1,44 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 自定义流程审核类型
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/21
+ */
+public enum CustomFlowMultipleUserApproveTypeEnum {
+
+    ORDER("依次审批"),
+
+    ALL("会签(所有人必须审批)"),
+
+    SOME("或签(一名审批人同意或拒绝即可)");
+
+    private String title;
+
+    private CustomFlowMultipleUserApproveTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (CustomFlowMultipleUserApproveTypeEnum e : CustomFlowMultipleUserApproveTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 74 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/FlowApproveOperationEnum.java

@@ -0,0 +1,74 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 流程审批操作 enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/2
+ */
+public enum FlowApproveOperationEnum {
+
+    SUBMIT("提交", "submit"),
+
+    APPROVE("审批", "approve"),
+
+    REJECT("驳回", "reject"),
+
+    END("终止", "end"),
+
+    CANCEL("撤销", "cancel"),
+
+    EXCHANGE("转他人审批", "exchange"),
+
+    FINISH("结束", "finish");
+
+    private String title;
+
+    private String id;
+
+    private FlowApproveOperationEnum(String title, String id) {
+        this.title = title;
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (FlowApproveOperationEnum e : FlowApproveOperationEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 状态转换 toEnum
+     *
+     * @param name
+     * @return
+     */
+    public static FlowApproveOperationEnum convertToEnum(String name) {
+        for (FlowApproveOperationEnum e : FlowApproveOperationEnum.values()) {
+            if (Objects.equals(name, e.name())) {
+                return e;
+            }
+        }
+        return null;
+    }
+}

+ 25 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/FlowMsgTypeEnum.java

@@ -0,0 +1,25 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+/**
+ * @Description: 流程消息类型
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/14
+ */
+public enum FlowMsgTypeEnum {
+
+    STANDARD("标准"),
+
+    OFF_STANDARD("非标准");
+
+    FlowMsgTypeEnum(String title) {
+        this.title = title;
+    }
+
+    private String title;
+
+    public String getTitle() {
+        return title;
+    }
+}

+ 65 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/FlowStatusEnum.java

@@ -0,0 +1,65 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 流程类型 enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/2
+ */
+public enum FlowStatusEnum {
+
+    START("待审核"),
+
+    AUDITING("审核中"),
+
+    REJECT("已驳回"),
+
+    CANCEL("已撤回"),
+
+    END("已终止"),
+
+    FINISH("已结束");
+
+    private String title;
+
+    private FlowStatusEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (FlowStatusEnum e : FlowStatusEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 状态转换 toEnum
+     *
+     * @param name
+     * @return
+     */
+    public static FlowStatusEnum convertToEnum(String name) {
+        for (FlowStatusEnum e : FlowStatusEnum.values()) {
+            if (Objects.equals(name, e.name())) {
+                return e;
+            }
+        }
+        return null;
+    }
+}

+ 48 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/OrgTypeEnum.java

@@ -0,0 +1,48 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 机构类型enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/7/29
+ */
+public enum OrgTypeEnum {
+
+    SCHOOL("学校"),
+
+    COLLEGE("学院"),
+
+//    FACULTY("院系"),
+
+//    TEACHING_ROOM("教研室"),
+
+    PRINTING_HOUSE("印刷厂");
+
+    private String title;
+
+    private OrgTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (OrgTypeEnum e : OrgTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 42 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/TFCustomModelTypeEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 自定义流程类型enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/24
+ */
+public enum TFCustomModelTypeEnum {
+
+    USER_FIXED("指定人员"),
+
+    APPROVE_SET("发起人指定");
+
+    private String title;
+
+    private TFCustomModelTypeEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (TFCustomModelTypeEnum e : TFCustomModelTypeEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 51 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/flow/TFCustomTypeEnum.java

@@ -0,0 +1,51 @@
+package com.qmth.teachcloud.exchange.common.enums.flow;
+
+import java.util.Objects;
+
+/**
+ * @Description: 自定义流程类型enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2022/1/24
+ */
+public enum TFCustomTypeEnum {
+
+    ELECTRON_FLOW("电子交卷审核", "exam_task"),
+
+    QUESTION_ELECTRON_FLOW("题库试题提交审核", null),
+
+    PAPER_ELECTRON_FLOW("题库试卷审核", null);
+
+    private String title;
+
+    private String table;
+
+    private TFCustomTypeEnum(String title, String table) {
+        this.title = title;
+        this.table = table;
+    }
+
+    public String getTable() {
+        return table;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param table
+     * @return
+     */
+    public static TFCustomTypeEnum convertToEnum(String table) {
+        for (TFCustomTypeEnum e : TFCustomTypeEnum.values()) {
+            if (Objects.equals(table, e.getTable())) {
+                return e;
+            }
+        }
+        return null;
+    }
+}