Selaa lähdekoodia

模板表单填报申请

guarantee-lsq 9 kuukautta sitten
vanhempi
commit
387d3386d0

+ 28 - 20
platform-dao/src/main/java/com/platform/dao/dto/workflow/WorkflowTaskBomDTO.java

@@ -68,45 +68,53 @@ public class WorkflowTaskBomDTO extends BaseDTO implements Serializable {
      */
     private String taskId;
     /**
-     * 自定义字段1
+     * 待办 已办
      */
-    private String cdefine1;
+    private Integer status;
     /**
-     * 自定义字段2
+     * 人员类型 1 发起人 2 审批人
      */
-    private String cdefine2;
+    private Integer personalType;
     /**
+     * 自定义字段1
+     *//*
+    private String cdefine1;
+    *//**
+     * 自定义字段2
+     *//*
+    private String cdefine2;
+    *//**
      * 自定义字段3
-     */
+     *//*
     private String cdefine3;
-    /**
+    *//**
      * 自定义字段4
-     */
+     *//*
     private String cdefine4;
-    /**
+    *//**
      * 自定义字段5
-     */
+     *//*
     private String cdefine5;
-    /**
+    *//**
      * 自定义字段6
-     */
+     *//*
     private String cdefine6;
-    /**
+    *//**
      * 自定义字段7
-     */
+     *//*
     private String cdefine7;
-    /**
+    *//**
      * 自定义字段8
-     */
+     *//*
     private String cdefine8;
-    /**
+    *//**
      * 自定义字段9
-     */
+     *//*
     private String cdefine9;
-    /**
+    *//**
      * 自定义字段10
-     */
-    private String cdefine10;
+     *//*
+    private String cdefine10;*/
     /**
      * 关键字
      */

+ 17 - 13
platform-dao/src/main/java/com/platform/dao/dto/workflow/WorkflowTaskDTO.java

@@ -78,31 +78,31 @@ public class WorkflowTaskDTO extends BaseDTO implements Serializable {
     /**
      * 审批层级节点顺序
      */
-    private Integer nodeSort;
+    //private Integer nodeSort;
     /**
-     * 待办  已办  撤回  终止 等
+     * 1 审批中  2 已完结 3 待发起 4 终止  5 驳回
      */
     private Integer status;
     /**
      * 处理人ID
      */
-    private String userId;
-    /**
+    /*private String userId;
+    *//**
      * 处理人
-     */
+     *//*
     private String userName;
-    /**
+    *//**
      * 处理时间
-     */
+     *//*
     private LocalDateTime handleTime;
-    /**
+    *//**
      * 处理时间开始
-     */
+     *//*
     private LocalDateTime handleTimeStart;
-    /**
+    *//**
      * 处理时间结束
-     */
-    private LocalDateTime handleTimeEnd;
+     *//*
+    private LocalDateTime handleTimeEnd;*/
     /**
      * 关键字
      */
@@ -110,5 +110,9 @@ public class WorkflowTaskDTO extends BaseDTO implements Serializable {
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
-    private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
+    //private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
+    private String lastUserId; // 最近一次处理人
+    private String lastUserName; // 最近一次处理人
+    private LocalDateTime lastTime; // 最近处理时间
+    private String remark; // 当前节点
 }

+ 14 - 9
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTask.java

@@ -27,7 +27,7 @@ public class WorkflowTask implements Serializable {
     @Id
     private String id;
     /**
-     * 创建人ID
+     * 发起人Id
      */
     private String createdUserId;
     /**
@@ -35,7 +35,7 @@ public class WorkflowTask implements Serializable {
      */
     private String updateUserId;
     /**
-     * 添加时间
+     * 发起时间
      */
     private LocalDateTime createdTime;
     /**
@@ -43,7 +43,7 @@ public class WorkflowTask implements Serializable {
      */
     private LocalDateTime updateTime;
     /**
-     * 创建
+     * 发起
      */
     private String createdUserName;
     /**
@@ -61,27 +61,27 @@ public class WorkflowTask implements Serializable {
     /**
      * 审批层级
      */
-    private Integer nodeLevel;
+    //private Integer nodeLevel;
     /**
      * 审批层级节点顺序
      */
     private Integer nodeSort;
     /**
-     * 待办  已办  撤回  终止 处理中
+     * 1 审批中  2 已完结 3 待发起 4 终止  5 驳回
      */
     private Integer status;
     /**
      * 处理人ID
      */
-    private String userId;
+    //private String userId;
     /**
      * 处理人
      */
-    private String userName;
+    //private String userName;
     /**
      * 处理时间
      */
-    private LocalDateTime handleTime;
+    //private LocalDateTime handleTime;
 
     /**
      * 数据权限
@@ -91,5 +91,10 @@ public class WorkflowTask implements Serializable {
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
-    private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
+    //private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
+
+    private String lastUserId; // 最近一次处理人
+    private String lastUserName; // 最近一次处理人
+    private LocalDateTime lastTime; // 最近处理时间
+    private String remark; // 当前节点
 }

+ 30 - 21
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTaskBom.java

@@ -27,7 +27,7 @@ public class WorkflowTaskBom implements Serializable {
     @Id
     private String id;
     /**
-     * 创建人ID
+     * 任务所属人
      */
     private String createdUserId;
     /**
@@ -54,46 +54,55 @@ public class WorkflowTaskBom implements Serializable {
      * 流程任务ID
      */
     private String taskId;
+
     /**
-     * 自定义字段1
+     * 0 待办 1 已办
      */
-    private String cdefine1;
+    private Integer status;
     /**
-     * 自定义字段2
+     * 人员类型 1 发起人 2 审批人
      */
-    private String cdefine2;
+    private Integer personalType;
     /**
+     * 自定义字段1
+     *//*
+    private String cdefine1;
+    *//**
+     * 自定义字段2
+     *//*
+    private String cdefine2;
+    *//**
      * 自定义字段3
-     */
+     *//*
     private String cdefine3;
-    /**
+    *//**
      * 自定义字段4
-     */
+     *//*
     private String cdefine4;
-    /**
+    *//**
      * 自定义字段5
-     */
+     *//*
     private String cdefine5;
-    /**
+    *//**
      * 自定义字段6
-     */
+     *//*
     private String cdefine6;
-    /**
+    *//**
      * 自定义字段7
-     */
+     *//*
     private String cdefine7;
-    /**
+    *//**
      * 自定义字段8
-     */
+     *//*
     private String cdefine8;
-    /**
+    *//**
      * 自定义字段9
-     */
+     *//*
     private String cdefine9;
-    /**
+    *//**
      * 自定义字段10
-     */
-    private String cdefine10;
+     *//*
+    private String cdefine10;*/
 
     /**
      * 数据权限

+ 1 - 1
platform-dao/src/main/java/com/platform/dao/entity/workflow/WorkflowTaskRecord.java

@@ -31,7 +31,7 @@ public class WorkflowTaskRecord implements Serializable {
      */
     private String taskId;
     /**
-     * 处理结果
+     * 处理结果 1 待发起 2 发起任务  3 同意  4 回退 5 终止
      */
     private Integer handleStatus;
     /**

+ 38 - 0
platform-dao/src/main/java/com/platform/dao/enums/FlowTaskBomStatusEnum.java

@@ -0,0 +1,38 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 是否启用
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum FlowTaskBomStatusEnum {
+    /**
+     * 审批中
+     */
+    VERIFYING(1),
+    /**
+     * 已完结
+     */
+    FINISH(2),
+    /**
+     * 待发起
+     */
+    APPLY(3),
+    /**
+     * 终止
+     */
+    PAUSE(4),
+    /**
+     * 驳回
+     */
+    BACK(5),
+    ;
+    private final Integer value;
+
+}

+ 38 - 0
platform-dao/src/main/java/com/platform/dao/enums/FlowTaskStatusEnum.java

@@ -0,0 +1,38 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 是否启用
+ * @Author liuyu
+ * @Date 2020/05/05
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum FlowTaskStatusEnum {
+    /**
+     * 审批中
+     */
+    VERIFYING(1),
+    /**
+     * 已完结
+     */
+    FINISH(2),
+    /**
+     * 待发起
+     */
+    APPLY(3),
+    /**
+     * 终止
+     */
+    PAUSE(4),
+    /**
+     * 驳回
+     */
+    BACK(5),
+    ;
+    private final Integer value;
+
+}

+ 38 - 0
platform-dao/src/main/java/com/platform/dao/enums/TaskRecordStatusEnum.java

@@ -0,0 +1,38 @@
+package com.platform.dao.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @Description 是否启用
+ * @Author liuyu
+ * @Date 2020/05/05 1 待发起 2 发起任务  3 同意  4 回退 5 终止
+ * @Version Copyright (c) 2019,合肥乾元坤合科技有限公司 All rights reserved.
+ */
+@Getter
+@AllArgsConstructor
+public enum TaskRecordStatusEnum {
+    /**
+     * 待发起
+     */
+    APPLY(1),
+    /**
+     * 发起任务
+     */
+    APPLY_SUCCESS(2),
+    /**
+     * 同意
+     */
+    YES(3),
+    /**
+     * 回退
+     */
+    BACK(4),
+    /**
+     * 终止
+     */
+    PAUSE(5),
+    ;
+    private final Integer value;
+
+}

+ 28 - 20
platform-dao/src/main/java/com/platform/dao/vo/query/workflow/WorkflowTaskBomVO.java

@@ -52,45 +52,53 @@ public class WorkflowTaskBomVO extends BaseVO implements Serializable {
      */
     private String taskId;
     /**
-     * 自定义字段1
+     * 待办 已办
      */
-    private String cdefine1;
+    private Integer status;
     /**
-     * 自定义字段2
+     * 人员类型 1 发起人 2 审批人
      */
+    private Integer personalType;
+   /* *//**
+     * 自定义字段1
+     *//*
+    private String cdefine1;
+    *//**
+     * 自定义字段2
+     *//*
     private String cdefine2;
-    /**
+    *//**
      * 自定义字段3
-     */
+     *//*
     private String cdefine3;
-    /**
+    *//**
      * 自定义字段4
-     */
+     *//*
     private String cdefine4;
-    /**
+    *//**
      * 自定义字段5
-     */
+     *//*
     private String cdefine5;
-    /**
+    *//**
      * 自定义字段6
-     */
+     *//*
     private String cdefine6;
-    /**
+    *//**
      * 自定义字段7
-     */
+     *//*
     private String cdefine7;
-    /**
+    *//**
      * 自定义字段8
-     */
+     *//*
     private String cdefine8;
-    /**
+    *//**
      * 自定义字段9
-     */
+     *//*
     private String cdefine9;
-    /**
+    *//**
      * 自定义字段10
-     */
-    private String cdefine10;
+     *//*
+    private String cdefine10;*/
 
 
 }

+ 12 - 8
platform-dao/src/main/java/com/platform/dao/vo/query/workflow/WorkflowTaskVO.java

@@ -58,7 +58,7 @@ public class WorkflowTaskVO extends BaseVO implements Serializable {
     /**
      * 审批层级
      */
-    private Integer nodeLevel;
+    //private Integer nodeLevel;
     /**
      * 审批层级节点顺序
      */
@@ -70,17 +70,21 @@ public class WorkflowTaskVO extends BaseVO implements Serializable {
     /**
      * 处理人ID
      */
-    private String userId;
-    /**
+    /*private String userId;
+    *//**
      * 处理人
-     */
+     *//*
     private String userName;
-    /**
+    *//**
      * 处理时间
-     */
-    private LocalDateTime handleTime;
+     *//*
+    private LocalDateTime handleTime;*/
 
     private String taskName; // 审批任务名称  规则 发起人发起-审批流名称-日期
 
-    private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
+    //private String taskType; // 任务关联表单类型  custom_form & sb_info & spare_info ....
+    private String lastUserId; // 最近一次处理人
+    private String lastUserName; // 最近一次处理人
+    private LocalDateTime lastTime; // 最近处理时间
+    private String remark; // 当前节点
 }

+ 1 - 0
platform-service/src/main/java/com/platform/service/custom/CustomFormService.java

@@ -39,4 +39,5 @@ public interface CustomFormService extends IBaseService<CustomForm, CustomFormDT
     void modByDTO(CustomFormDTO record);
 
     CustomFormVO getVOById(String id);
+
 }

+ 80 - 2
platform-service/src/main/java/com/platform/service/custom/impl/CustomFormDataServiceImpl.java

@@ -14,15 +14,26 @@ import com.platform.dao.entity.custom.CustomForm;
 import com.platform.dao.entity.custom.CustomFormBom;
 import com.platform.dao.entity.custom.CustomFormBomField;
 import com.platform.dao.entity.custom.CustomFormData;
+import com.platform.dao.entity.workflow.Workflow;
+import com.platform.dao.entity.workflow.WorkflowTask;
+import com.platform.dao.entity.workflow.WorkflowTaskBom;
+import com.platform.dao.entity.workflow.WorkflowTaskRecord;
+import com.platform.dao.enums.FlowTaskStatusEnum;
+import com.platform.dao.enums.TaskRecordStatusEnum;
+import com.platform.dao.enums.YesNoEnum;
 import com.platform.dao.mapper.custom.CustomFormBomFieldMapper;
 import com.platform.dao.mapper.custom.CustomFormBomMapper;
 import com.platform.dao.mapper.custom.CustomFormDataMapper;
 import com.platform.dao.mapper.custom.CustomFormMapper;
+import com.platform.dao.mapper.workflow.WorkflowMapper;
+import com.platform.dao.mapper.workflow.WorkflowTaskBomMapper;
+import com.platform.dao.mapper.workflow.WorkflowTaskMapper;
 import com.platform.dao.vo.query.custom.CustomFormDataVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.custom.CustomFormDataService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import tk.mybatis.mapper.weekend.Weekend;
 import tk.mybatis.mapper.weekend.WeekendCriteria;
@@ -49,6 +60,11 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
     private CustomFormMapper customFormMapper;
     @Resource
     private CustomFormBomMapper customFormBomMapper;
+    @Resource
+    private WorkflowMapper workflowMapper;
+    @Resource
+    private WorkflowTaskMapper workflowTaskMapper;
+    private WorkflowTaskBomMapper workflowTaskBomMapper;
 
     @Override
     public int batchDelete(List<String> ids) {
@@ -80,16 +96,75 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
         // 新增bom表(存储查询的value值)
         CustomFormBom bom = addBom(data,fieldList,form);
         // 流程ID不为空处理
-        handleFlow(bom);
+        handleFlow(data);
         mapper.insert(data);
         customFormBomMapper.insert(bom);
         return data;
     }
 
-    private void handleFlow(CustomFormBom bom) {
+    private void handleFlow(CustomFormData bom) {
+        // 获取流程
+        Workflow flow = workflowMapper.selectByPrimaryKey(bom.getFlowId());
+        // 建立task
+        WorkflowTask task = new WorkflowTask();
+        task.setId(IdGeneratorUtils.getObjectId());
+        saveTask(task,bom,flow);
+        // 存储发起人taskBom
+        saveTaskBom(task.getId());
+        // 处理记录存储
+        saveTaskRecord(task.getId());
+    }
+
+    private void saveTaskRecord(String taskId) {
+        WorkflowTaskRecord record = new WorkflowTaskRecord();
+        record.setId(IdGeneratorUtils.getObjectId());
+        record.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+        record.setCreatedTime(LocalDateTime.now());
+        record.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
+        record.setHandleStatus(TaskRecordStatusEnum.APPLY.getValue());
+        record.setTaskId(taskId);
+        record.setHandleRemark("任务待发起");
 
     }
 
+    /**
+     * 存储任务bom
+     * @param taskId
+     */
+    private void saveTaskBom(String taskId) {
+        WorkflowTaskBom bom = new WorkflowTaskBom();
+        bom.setCreatedTime(LocalDateTime.now());
+        bom.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+        bom.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
+        bom.setTaskId(taskId);
+        bom.setId(IdGeneratorUtils.getObjectId());
+        bom.setStatus(YesNoEnum.NO.getValue());
+        bom.setPersonalType(YesNoEnum.YES.getValue());
+        workflowTaskBomMapper.insert(bom);
+    }
+    /**
+     * 任务存储
+     * @param task
+     * @param bom
+     */
+    private void saveTask(WorkflowTask task, CustomFormData bom,Workflow flow) {
+        task.setFormDataId(bom.getId());
+        task.setCreatedTime(LocalDateTime.now());
+        // 发起人
+        task.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+        task.setCreatedUserName(SecurityUtils.getUserInfo().getRealName());
+        task.setFlowId(bom.getFlowId());
+        task.setNodeSort(YesNoEnum.YES.getValue());
+        task.setTaskName(getTaskName(task.getCreatedUserName(),flow.getName()));
+        task.setStatus(FlowTaskStatusEnum.APPLY.getValue());
+        workflowTaskMapper.insert(task);
+    }
+
+    private String getTaskName(String userName,String flowName) {
+        // 审批任务名称  规则 发起人发起-审批流名称-日期
+        String date = DateUtils.dateToString(LocalDateTime.now(),DateUtils.PATTERNYMD);
+        return userName + "-" + flowName + "-" + date;
+    }
     private void packageData(CustomFormData data) {
         data.setId(IdGeneratorUtils.getObjectId());
         data.setCreatedTime(LocalDateTime.now());
@@ -101,6 +176,9 @@ public class CustomFormDataServiceImpl extends BaseServiceImpl<CustomFormDataMap
         if(StringUtils.isBlank(record.getFormId())){
             throw new DeniedException("表单模板ID不能为空");
         }
+        if(StringUtils.isBlank(record.getFlowId())){
+            throw new DeniedException("流程ID不能为空");
+        }
     }
 
     private CustomFormBom addBom(CustomFormData record, List<CustomFormBomField> fieldList,CustomForm form){

+ 1 - 1
platform-service/src/main/java/com/platform/service/custom/impl/CustomFormServiceImpl.java

@@ -74,7 +74,7 @@ public class CustomFormServiceImpl extends BaseServiceImpl<CustomFormMapper, Cus
             throw new DeniedException("表单类型不能为空");
         }
         if(StringUtils.isEmpty(form.getCategory())){
-            throw new DeniedException("归属分类不能为空");
+            throw new DeniedException("模板分类不能为空");
         }
         CustomForm queryForm = new CustomForm();
         queryForm.setCategory(record.getCategory());