wangliang 3 سال پیش
والد
کامیت
b790ea241e

+ 13 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowApprove.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.enums.FlowStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -36,6 +37,18 @@ public class TFFlowApprove extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "状态,DRAFT:草稿,SUBMIT:已提交,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
     private FlowStatusEnum status;
 
+    public TFFlowApprove() {
+
+    }
+
+    public TFFlowApprove(Long flowId, Long approveId, FlowStatusEnum status, Long userId) {
+        setId(SystemConstant.getDbUuid());
+        this.flowId = flowId;
+        this.approveId = approveId;
+        this.status = status;
+        setCreateId(userId);
+    }
+
     public FlowStatusEnum getStatus() {
         return status;
     }

+ 41 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowLog.java

@@ -3,6 +3,10 @@ package com.qmth.distributed.print.business.entity;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.FlowApproveLevelEnum;
+import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
+import com.qmth.teachcloud.common.enums.FlowApprovePassEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -21,7 +25,6 @@ public class TFFlowLog extends BaseEntity implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-
     @ApiModelProperty(value = "流程id")
     @JsonSerialize(using = ToStringSerializer.class)
     private Long flowId;
@@ -35,7 +38,7 @@ public class TFFlowLog extends BaseEntity implements Serializable {
     private Long approveId;
 
     @ApiModelProperty(value = "审核等级")
-    private Integer approveLevel;
+    private FlowApproveLevelEnum approveLevel;
 
     @ApiModelProperty(value = "审核意见")
     private String approveRemark;
@@ -43,6 +46,40 @@ public class TFFlowLog extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     private Boolean enable;
 
+    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止")
+    private FlowApproveOperationEnum approveOperation;
+
+    @ApiModelProperty(value = "审批是否通过,PASS:通过,NO_PASS:不通过")
+    private FlowApprovePassEnum approvePass;
+
+    public TFFlowLog() {
+
+    }
+
+    public TFFlowLog(Long flowId, Long taskId, Long approveId, Long userId) {
+        setId(SystemConstant.getDbUuid());
+        this.flowId = flowId;
+        this.approveId = approveId;
+        this.taskId = taskId;
+        setCreateId(userId);
+    }
+
+    public FlowApproveOperationEnum getApproveOperation() {
+        return approveOperation;
+    }
+
+    public void setApproveOperation(FlowApproveOperationEnum approveOperation) {
+        this.approveOperation = approveOperation;
+    }
+
+    public FlowApprovePassEnum getApprovePass() {
+        return approvePass;
+    }
+
+    public void setApprovePass(FlowApprovePassEnum approvePass) {
+        this.approvePass = approvePass;
+    }
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -71,11 +108,11 @@ public class TFFlowLog extends BaseEntity implements Serializable {
         this.approveId = approveId;
     }
 
-    public Integer getApproveLevel() {
+    public FlowApproveLevelEnum getApproveLevel() {
         return approveLevel;
     }
 
-    public void setApproveLevel(Integer approveLevel) {
+    public void setApproveLevel(FlowApproveLevelEnum approveLevel) {
         this.approveLevel = approveLevel;
     }
 

+ 7 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ActivitiService.java

@@ -55,4 +55,11 @@ public interface ActivitiService {
      * @param flowId
      */
     void deleteProcessInstance(String flowId);
+
+    /**
+     * 记录流程日志
+     *
+     * @param map
+     */
+    void flowLog(Map<String, Object> map);
 }

+ 41 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -1,7 +1,13 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qmth.distributed.print.business.entity.TFFlowApprove;
 import com.qmth.distributed.print.business.service.ActivitiService;
+import com.qmth.distributed.print.business.service.TFFlowApproveService;
+import com.qmth.distributed.print.business.service.TFFlowLogService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.FlowStatusEnum;
 import org.activiti.engine.RepositoryService;
 import org.activiti.engine.RuntimeService;
 import org.activiti.engine.TaskService;
@@ -41,6 +47,12 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Resource
     private RepositoryService repositoryService;
 
+    @Resource
+    TFFlowApproveService tfFlowApproveService;
+
+    @Resource
+    TFFlowLogService tfFlowLogService;
+
     /**
      * 注册流程
      *
@@ -137,4 +149,33 @@ public class ActivitiServiceImpl implements ActivitiService {
     public void deleteProcessInstance(String flowId) {
         runtimeService.deleteProcessInstance(flowId, "结束");
     }
+
+    /**
+     * 记录流程日志
+     *
+     * @param map
+     */
+    @Override
+    public void flowLog(Map<String, Object> map) {
+        if (Objects.isNull(map.get(SystemConstant.FLOW_ID))) {
+            throw ExceptionResultEnum.ERROR.exception("流程id不能为空");
+        }
+        Long flowId = (Long) map.get(SystemConstant.FLOW_ID);
+        if (Objects.isNull(map.get(SystemConstant.TASK_ID))) {
+            throw ExceptionResultEnum.ERROR.exception("命题任务id不能为空");
+        }
+        Long taskId = (Long) map.get(SystemConstant.TASK_ID);
+        if (Objects.isNull(map.get(SystemConstant.FLOW_STATUS))) {
+            throw ExceptionResultEnum.ERROR.exception("流程状态不能为空");
+        }
+        FlowStatusEnum flowStatusEnum = (FlowStatusEnum) map.get(SystemConstant.FLOW_STATUS);
+        QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
+        tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, flowId);
+        TFFlowApprove tfFlowApprove = tfFlowApproveService.getOne(tfFlowApproveQueryWrapper);
+        if (Objects.isNull(tfFlowApprove)) {//新建流程
+//            tfFlowApprove = new TFFlowApprove()
+        } else {//更新流程
+
+        }
+    }
 }

+ 5 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -22,6 +22,7 @@ import com.qmth.teachcloud.common.bean.dto.CourseInfoDto;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.FlowStatusEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.enums.TaskTypeEnum;
 import com.qmth.teachcloud.common.service.*;
@@ -319,6 +320,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             if (basicExamRule == null) {
                 throw ExceptionResultEnum.ERROR.exception("通用规则未设置");
             }
+            examTask.setId(SystemConstant.getDbUuid());
             examTask.setCreateId(sysUser.getId());
             examTask.setReview(basicExamRule.getReview());
             examTask.setOrgId(sysUser.getOrgId());
@@ -329,11 +331,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             examTask.setFlowId(Long.parseLong(processInstance.getId()));
             this.save(examTask);
 
-//        if (examTask.getUserId() == null) {
-//            examTask.setStatus(ExamStatusEnum.NEW);
-//        } else {
-//            examTask.setStatus(ExamStatusEnum.READY);
-//        }
+            map.computeIfAbsent(SystemConstant.FLOW_ID, v -> examTask.getFlowId());
+            map.computeIfAbsent(SystemConstant.TASK_ID, v -> examTask.getId());
+            map.computeIfAbsent(SystemConstant.FLOW_STATUS, v -> Objects.isNull(examTask.getUserId()) ? FlowStatusEnum.DRAFT : FlowStatusEnum.SUBMIT);
         } catch (Exception e) {
             log.error("请求出错", e);
             if (e instanceof ActivitiObjectNotFoundException) {

+ 5 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -182,6 +182,9 @@ public class SystemConstant {
     public static final String PROCESSES = "processes";
     public static final String GDYKDX_FLOW_KEY = "GdykdxPaperApprove";//流程key
     public static final String TEACH_ID = "teachId";//命题老师id
+    public static final String FLOW_ID = "flowId";//流程id
+    public static final String TASK_ID = "taskId";//命题任务id
+    public static final String FLOW_STATUS = "flowStatus";//流程状态
 
     /**
      * 初始化附件文件路径
@@ -284,10 +287,11 @@ public class SystemConstant {
 
     /**
      * Long 类型的参数不为空
+     *
      * @param x 参数
      * @return true:不为空、false:为空
      */
-    public static boolean longNotNull(Long x){
+    public static boolean longNotNull(Long x) {
         return x != null && x > 0;
     }
 }

+ 44 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApproveLevelEnum.java

@@ -0,0 +1,44 @@
+package com.qmth.teachcloud.common.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 流程审批等级 enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/2
+ */
+public enum FlowApproveLevelEnum {
+
+    START("发起人"),
+
+    PRIMARY("一级审核人"),
+
+    SECOND("二级审核人");
+
+    private String title;
+
+    private FlowApproveLevelEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (FlowApproveLevelEnum e : FlowApproveLevelEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 46 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApproveOperationEnum.java

@@ -0,0 +1,46 @@
+package com.qmth.teachcloud.common.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 流程审批操作 enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/2
+ */
+public enum FlowApproveOperationEnum {
+
+    SUBMIT("提交"),
+
+    APPROVE("审批"),
+
+    REJECT("驳回"),
+
+    END("终止");
+
+    private String title;
+
+    private FlowApproveOperationEnum(String title) {
+        this.title = title;
+    }
+
+    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;
+    }
+}

+ 42 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApprovePassEnum.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.common.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 流程是否通过操作 enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/2
+ */
+public enum FlowApprovePassEnum {
+
+    PASS("通过"),
+
+    NO_PASS("不通过");
+
+    private String title;
+
+    private FlowApprovePassEnum(String title) {
+        this.title = title;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (FlowApprovePassEnum e : FlowApprovePassEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}