Browse Source

Merge branch 'master' of http://62.234.61.92:3000/wjm/mec-cloud_IntelligentManufacturing_CLIENT

lph 1 year ago
parent
commit
6bae9c1f57

+ 13 - 4
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/controller/BpmExecuteProcessController.java

@@ -1,7 +1,6 @@
 package com.zkqy.execution.produce.dispersed.controller;
 
 
-
 import com.zkqy.common.annotation.Log;
 import com.zkqy.common.core.controller.BaseController;
 import com.zkqy.common.core.domain.AjaxResult;
@@ -14,6 +13,7 @@ import com.zkqy.execution.produce.dispersed.runbpm.RunImplementationClass;
 import com.zkqy.execution.produce.dispersed.service.IBpmExecuteProcessService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
 import javax.servlet.http.HttpServletResponse;
 import java.util.Map;
 
@@ -35,7 +35,6 @@ public class BpmExecuteProcessController extends BaseController {
 
     /**
      * 查询流程执行任务列表
-     *
      */
     // @PreAuthorize("@ss.hasPermi('system:process:list')")
     @GetMapping("/list")
@@ -44,6 +43,16 @@ public class BpmExecuteProcessController extends BaseController {
         return getDataTable(bpmExecuteProcessService.selectBpmExecuteProcessList(bpmExecuteProcess));
     }
 
+    /**
+     * 查询当前用户已提交的审批流程记录
+     */
+    @GetMapping("/listApproveLog")
+    public TableDataInfo listApproveLog(BpmExecuteProcess bpmExecuteProcess) throws Exception {
+        startPage();
+
+        return getDataTable(bpmExecuteProcessService.selectBpmExecuteProcessApproveLogList(bpmExecuteProcess));
+    }
+
     @GetMapping("listLog")
     public TableDataInfo listLog(BpmExecuteProcess bpmExecuteProcess) {
         startPage();
@@ -106,7 +115,7 @@ public class BpmExecuteProcessController extends BaseController {
      */
     @Log(title = "投产执行流程", businessType = BusinessType.INSERT)
     @PostMapping("/productionScheduling")
-    public AjaxResult productionScheduling(@RequestBody CommonEntity commonEntity)   {
+    public AjaxResult productionScheduling(@RequestBody CommonEntity commonEntity) {
         return bpmExecuteProcessService.productionScheduling(commonEntity);
     }
 
@@ -114,7 +123,7 @@ public class BpmExecuteProcessController extends BaseController {
      * 查询节点表单信息
      */
     @GetMapping("/getNodeFormInfos")
-    public AjaxResult getNodeFormInfos(Map<String,String> nodeForm) {
+    public AjaxResult getNodeFormInfos(Map<String, String> nodeForm) {
         return AjaxResult.success(PreExecutionToolClass.getNodeFormInfos(nodeForm));
     }
 

+ 16 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/entity/BpmExecuteProcess.java

@@ -37,6 +37,12 @@ public class BpmExecuteProcess extends BaseEntityPlus implements Serializable {
     @Excel(name = "任务名称")
     private String taskName;
 
+    /**
+     * 流程名称:审批发起的流程
+     */
+    @Excel(name = "任务名称")
+    private String taskProcessName;
+
     /**
      * 任务节点别名(记录当前流程执行过的最后一个节点id)
      */
@@ -179,13 +185,22 @@ public class BpmExecuteProcess extends BaseEntityPlus implements Serializable {
         this.taskNodeNextKey = taskNodeNextKey;
     }
 
+    public String getTaskProcessName() {
+        return taskProcessName;
+    }
+
+    public void setTaskProcessName(String taskProcessName) {
+        this.taskProcessName = taskProcessName;
+    }
+
     @Override
     public String toString() {
-        final StringBuffer sb = new StringBuffer("BpmExecuteProcess{");
+        final StringBuilder sb = new StringBuilder("BpmExecuteProcess{");
         sb.append("id=").append(id);
         sb.append(", taskKey='").append(taskKey).append('\'');
         sb.append(", taskPlanKey='").append(taskPlanKey).append('\'');
         sb.append(", taskName='").append(taskName).append('\'');
+        sb.append(", taskProcessName='").append(taskProcessName).append('\'');
         sb.append(", taskNodeKey='").append(taskNodeKey).append('\'');
         sb.append(", taskNodeNextKey='").append(taskNodeNextKey).append('\'');
         sb.append(", taskProcessKey='").append(taskProcessKey).append('\'');

+ 15 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/mapper/BpmExecuteProcessMapper.java

@@ -78,11 +78,25 @@ public interface BpmExecuteProcessMapper {
      */
     public List<CommonEntity> queryExecuteProcess(@Param("objectMap") Map<String, Object> objectMap);
 
+    /**
+     * 根据当前用户登陆信息得到当前可执行流程
+     */
+    public List<CommonEntity> queryExecuteApproveProcess(@Param("objectMap") Map<String, Object> objectMap);
+    /**
+     * 根据当前用户登陆信息得到当前用户提交过的审批流程
+     */
+    public List<CommonEntity> selectBpmExecuteProcessApproveLogList(@Param("objectMap") Map<String, Object> objectMap);
+
     /**
      * 根据当前用户登陆信息得到当前可执行流程
      */
     public List<CommonEntity> queryExecuteProcessEnd(@Param("objectMap") Map<String, Object> objectMap);
 
+    /**
+     * 根据当前用户登陆信息得到当前可执行流程
+     */
+    public List<CommonEntity> queryExecuteProcessApprovalEnd(@Param("objectMap") Map<String, Object> objectMap);
+
     /**
      * 查询流程执行任务
      *
@@ -132,7 +146,7 @@ public interface BpmExecuteProcessMapper {
      * @param objectMap
      * @return
      */
-    List<CommonEntity>  getFromInfoByFormKeys(String[] formKeys);
+    List<CommonEntity> getFromInfoByFormKeys(String[] formKeys);
 
 
     /**

+ 2 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/runbpm/PreExecutionToolClass.java

@@ -156,6 +156,8 @@ public class PreExecutionToolClass<R> {
         BpmExecuteProcess runBpmExecuteProcess = new BpmExecuteProcess();
         // 当前流程启动的唯一标识
         runBpmExecuteProcess.setTaskKey(taskKey);
+        // 当前流程名称
+        runBpmExecuteProcess.setTaskProcessName(bpmProcess.getProcessName());
         // 投产数据条的唯一标识
         runBpmExecuteProcess.setTaskPlanKey(intoProduction.getGuid().split("=")[1]);
         // 当前流程任务名称
@@ -538,7 +540,6 @@ public class PreExecutionToolClass<R> {
         //节点对应的表单信息不能为空
         if (bpmExecuteNodeForm != null) {
             String taskNodeFormContent = bpmExecuteNodeForm.getTaskNodeFormContent();
-
             //拿到当前节点对应的表单类型
             String taskNodeFormType = bpmExecuteNodeForm.getTaskNodeFormType();
             if (taskNodeFormType.equals("dragForm")) {

+ 9 - 1
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/IBpmExecuteProcessService.java

@@ -31,6 +31,14 @@ public interface IBpmExecuteProcessService {
      */
     List<CommonEntity> selectBpmExecuteProcessList(BpmExecuteProcess bpmExecuteProcess) throws Exception;
 
+    /**
+     * 查询当前用户提交的审批流程记录
+     *
+     * @param bpmExecuteProcess 流程执行任务
+     * @return 流程执行任务集合
+     */
+    List<CommonEntity> selectBpmExecuteProcessApproveLogList(BpmExecuteProcess bpmExecuteProcess) throws Exception;
+
     /**
      * 查询流程执行记录log列表
      *
@@ -100,7 +108,7 @@ public interface IBpmExecuteProcessService {
      * @param objectMap
      * @return
      */
-    List<CommonEntity>  getFromInfoByFormKeys(String[] formKeys);
+    List<CommonEntity> getFromInfoByFormKeys(String[] formKeys);
 
     /**
      * 根据groupKey查询表格组对应的表格信息

+ 29 - 9
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/dispersed/service/impl/BpmExecuteProcessServiceImpl.java

@@ -22,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -85,12 +82,22 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
         if (StringUtils.isNotEmpty(dictDataList)) {
             Map<String, Object> objectMap = new HashMap<>();  // 查询执行管道的参数
             objectMap.putAll(convertEntityToMap(bpmExecuteProcess));
-            dictDataList.forEach(item -> {
-                objectMap.put(item.getDictLabel(), item.getDictValue());
-            });
+
+            if (!bpmExecuteProcess.getTaskProcessType().equals("1")) {  // 审批类型
+                dictDataList.forEach(item -> {
+                    objectMap.put(item.getDictLabel(), item.getDictValue());
+                });
+            }
             if (bpmExecuteProcess.getTaskProcessState() == 3L) {
                 // 首先根据当前登陆用户得到他可以执行的所有节点
-                List<CommonEntity> commonEntities = runBpmExecuteProcessMapper.queryExecuteProcessEnd(objectMap);
+                List<CommonEntity> commonEntities;
+                if (bpmExecuteProcess.getTaskProcessType().equals("1")) {  //审批类型
+                    commonEntities = runBpmExecuteProcessMapper.queryExecuteProcessApprovalEnd(objectMap);
+                } else {
+                    commonEntities = runBpmExecuteProcessMapper.queryExecuteProcessEnd(objectMap);
+                }
+
+
                 if (bpmExecuteProcess.getTaskProcessType().equals("1")) {
                     // 审批类型得到当前节点前所执行过的日志
                     commonEntities.forEach(item -> {
@@ -110,7 +117,12 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
                 // 得到当前发起请求的用户角色列表
                 objectMap.put("taskRealRoleList", roles);
                 // 首先根据当前登陆用户得到他可以执行的所有节点
-                List<CommonEntity> commonEntities = runBpmExecuteProcessMapper.queryExecuteProcess(objectMap);
+                List<CommonEntity> commonEntities;
+                if (bpmExecuteProcess.getTaskProcessType().equals("1")) {
+                    commonEntities = runBpmExecuteProcessMapper.queryExecuteApproveProcess(objectMap);
+                } else {
+                    commonEntities = runBpmExecuteProcessMapper.queryExecuteProcess(objectMap);
+                }
                 // 0 工业类型 1 审批类型
                 if (bpmExecuteProcess.getTaskProcessType().equals("1")) {
                     // 审批类型得到当前节点前所执行过的日志
@@ -141,6 +153,14 @@ public class BpmExecuteProcessServiceImpl implements IBpmExecuteProcessService {
         return null;
     }
 
+    @Override
+    public List<CommonEntity> selectBpmExecuteProcessApproveLogList(BpmExecuteProcess bpmExecuteProcess) {
+        Map<String, Object> objectMap = new HashMap<>();  // 查询执行管道的参数
+        objectMap.putAll(convertEntityToMap(bpmExecuteProcess));
+        objectMap.put("createById", SecurityUtils.getUserId());
+        return runBpmExecuteProcessMapper.selectBpmExecuteProcessApproveLogList(objectMap);
+    }
+
     @Override
     public List<CommonEntity> selectBpmExecuteProcessListLog(BpmExecuteProcess bpmExecuteProcess) {
         SysDictData dictData = new SysDictData();

+ 224 - 0
zkqy-process-execution/src/main/resources/mapper/bpm/dispersed/BpmExecuteProcessMapper.xml

@@ -117,6 +117,7 @@
             <if test="taskKey != null">task_key,</if>
             <if test="taskPlanKey != null">task_plan_key,</if>
             <if test="taskName != null">task_name,</if>
+            <if test="taskProcessName != null">task_process_name,</if>
             <if test="taskNodeKey != null">task_node_key,</if>
             <if test="taskNodeNextKey != null">task_node_next_key,</if>
             <if test="taskProcessKey != null">task_process_key,</if>
@@ -131,6 +132,7 @@
             <if test="taskKey != null">#{taskKey},</if>
             <if test="taskPlanKey != null">#{taskPlanKey},</if>
             <if test="taskName != null">#{taskName},</if>
+            <if test="taskProcessName != null">#{taskProcessName},</if>
             <if test="taskNodeKey != null">#{taskNodeKey},</if>
             <if test="taskNodeNextKey != null">#{taskNodeNextKey},</if>
             <if test="taskProcessKey != null">#{taskProcessKey},</if>
@@ -262,6 +264,157 @@
         order by ben.create_time desc
     </select>
 
+
+    <select id="queryExecuteApproveProcess" resultMap="retMap">
+        select
+        bep.id as bep_id,
+        bep.task_key as bep_task_key,
+        bep.task_key as bpm_execute_process_task_key,
+        bep.task_process_name as bep_task_process_name,
+        bep.task_plan_key as bep_task_plan_key,
+        bep.task_plan_key as bpm_execute_process_task_plan_key,
+        bep.task_node_key as bep_task_node_key,
+        bep.task_node_next_key as bep_task_node_next_key,
+        bep.task_node_next_key as bpm_execute_process_task_node_next_key,
+        bep.task_process_type as bep_task_process_type,
+        bep.task_process_key as bep_task_process_key,
+        bep.task_process_xml_content as bep_task_process_xml_content,
+        bep.task_process_state as bep_task_process_state,
+        bep.task_process_note as bep_task_process_note,
+        bep.del_flag as bep_del_flag,
+        bep.remark as bep_remark,
+        ben.id as ben_id,
+        ben.task_process_key as ben_task_process_key,
+        ben.task_node_key as ben_task_node_key,
+        ben.task_node_name as ben_task_node_name,
+        ben.task_node_form_key as ben_task_node_form_key,
+        ben.task_node_form_type as ben_task_node_form_type,
+        ben.task_node_type as ben_task_node_type,
+        ben.task_node_before as ben_task_node_before,
+        ben.task_node_after as ben_task_node_after,
+        ben.task_node_role_permission as ben_task_node_role_permission,
+        ben.task_remark as ben_task_remark,
+        ben.task_node_number as ben_task_node_number,
+        ben.task_node_weight as ben_task_node_weight,
+        ben.task_node_state as ben_task_node_state,
+        ben.task_priority as ben_task_priority,
+        ben.task1 as ben_task1,
+        ben.task2 as ben_task2,
+        ben.task3 as ben_task3,
+        ben.task4 as ben_task4,
+        ben.task5 as ben_task5,
+        ben.del_flag as ben_del_flag,
+        ben.create_by_id as ben_create_by_id,
+        ben.create_by as ben_create_by,
+        ben.create_time as ben_create_time,
+        benm.id as benm_id,
+        benm.task_node_key as benm_task_node_key,
+        benm.task_virtually_role as benm_task_virtually_role,
+        benm.task_real_role as benm_task_real_role,
+        benm.task_execute_user_no as benm_task_execute_user_no,
+        benm.task_artificial_script_key as benm_task_artificial_script_key,
+        benm.task_automatic_script_trigger_type as benm_task_automatic_script_trigger_type
+        from
+        {DBNAME}.bpm_execute_process as bep
+        inner join {DBNAME}.bpm_execute_node as ben on
+        ben.task_process_key = bep.task_key
+        and ben.task_node_key = bep.task_node_next_key
+        join {DBNAME}.bpm_execute_node_middle as benm on
+        benm.task_node_key = ben.task_node_key
+        and benm.task_process_key = bep.task_key
+        where
+        bep.task_node_next_key in (select task_node_key
+        from {DBNAME}.bpm_execute_node_middle
+        where
+        FIND_IN_SET(#{userId}, task_execute_user_no) > 0
+        <if test="taskRealRoleList != null and taskRealRoleList.size() > 0">
+            OR
+            <foreach collection="taskRealRoleList" item="role" separator=" OR ">
+                FIND_IN_SET(#{role}, task_real_role) > 0
+            </foreach>
+        </if>
+        )
+        <if test="taskProcessState != null">and bep.task_process_state = #{taskProcessState}</if>
+        <if test="taskProcessType != null">and bep.task_process_type = #{taskProcessType}</if>
+        <if test="taskName != null  and taskName != ''">
+            and CONCAT(
+            IFNULL( bep.task_key, '' ),
+            IFNULL( bep.task_name, '' ),
+            IFNULL( bep.task_node_key, '' ),
+            IFNULL( bep.task_node_next_key, '' ),
+            IFNULL( bep.task_process_key, '' ),
+            IFNULL( bep.task_process_note, '' )
+            ) LIKE concat('%', #{taskName}, '%')
+        </if>
+
+        order by ben.create_time desc
+    </select>
+    <select id="selectBpmExecuteProcessApproveLogList" resultMap="retMap">
+        select
+        bep.id as bep_id,
+        bep.task_key as bep_task_key,
+        bep.task_key as bpm_execute_process_task_key,
+        bep.task_process_name as bep_task_process_name,
+        bep.task_plan_key as bep_task_plan_key,
+        bep.task_plan_key as bpm_execute_process_task_plan_key,
+        bep.task_node_key as bep_task_node_key,
+        bep.task_node_next_key as bep_task_node_next_key,
+        bep.task_node_next_key as bpm_execute_process_task_node_next_key,
+        bep.task_process_type as bep_task_process_type,
+        bep.task_process_key as bep_task_process_key,
+        bep.task_process_xml_content as bep_task_process_xml_content,
+        bep.task_process_state as bep_task_process_state,
+        bep.task_process_note as bep_task_process_note,
+        bep.del_flag as bep_del_flag,
+        bep.remark as bep_remark,
+        ben.id as ben_id,
+        ben.task_process_key as ben_task_process_key,
+        ben.task_node_key as ben_task_node_key,
+        ben.task_node_name as ben_task_node_name,
+        ben.task_node_form_key as ben_task_node_form_key,
+        ben.task_node_form_type as ben_task_node_form_type,
+        ben.task_node_type as ben_task_node_type,
+        ben.task_node_before as ben_task_node_before,
+        ben.task_node_after as ben_task_node_after,
+        ben.task_node_role_permission as ben_task_node_role_permission,
+        ben.task_remark as ben_task_remark,
+        ben.task_node_number as ben_task_node_number,
+        ben.task_node_weight as ben_task_node_weight,
+        ben.task_node_state as ben_task_node_state,
+        ben.task_priority as ben_task_priority,
+        ben.task1 as ben_task1,
+        ben.task2 as ben_task2,
+        ben.task3 as ben_task3,
+        ben.task4 as ben_task4,
+        ben.task5 as ben_task5,
+        ben.del_flag as ben_del_flag,
+        ben.create_by_id as ben_create_by_id,
+        ben.create_by as ben_create_by,
+        ben.create_time as ben_create_time
+        from
+        {DBNAME}.bpm_execute_process as bep
+        inner join {DBNAME}.bpm_execute_node as ben on
+        ben.task_process_key = bep.task_key
+        and ben.task_node_key = bep.task_node_next_key
+        where
+        ben.create_by_id = #{createById}
+        and ben.task_node_type = 'endEvent'
+        and bep.task_process_state != 0
+        and bep.task_process_type = 1
+        and bep.del_flag = 0
+        <if test="taskName != null  and taskName != ''">
+            and CONCAT(
+            IFNULL( bep.task_key, '' ),
+            IFNULL( bep.task_name, '' ),
+            IFNULL( bep.task_node_key, '' ),
+            IFNULL( bep.task_node_next_key, '' ),
+            IFNULL( bep.task_process_key, '' ),
+            IFNULL( bep.task_process_note, '' )
+            ) LIKE concat('%', #{taskName}, '%')
+        </if>
+        order by ben.create_time desc
+    </select>
+
     <select id="selectBpmExecuteProcessByTaskKey" parameterType="string" resultMap="BpmExecuteProcessResult">
         <include refid="selectBpmExecuteProcessVo"/>
         where task_key = #{taskKey} and del_flag = '0'
@@ -413,6 +566,77 @@
         order by ben.create_time desc
     </select>
 
+    <select id="queryExecuteProcessApprovalEnd" resultMap="retMap">
+        select
+        bep.id as bep_id,
+        bep.task_key as bep_task_key,
+        bep.task_key as bpm_execute_process_task_key,
+        bep.task_process_name as bep_task_process_name,
+        bep.task_plan_key as bep_task_plan_key,
+        bep.task_plan_key as bpm_execute_process_task_plan_key,
+        bep.task_node_key as bep_task_node_key,
+        bep.task_node_next_key as bep_task_node_next_key,
+        bep.task_node_next_key as bpm_execute_process_task_node_next_key,
+        bep.task_process_type as bep_task_process_type,
+        bep.task_process_key as bep_task_process_key,
+        bep.task_process_xml_content as bep_task_process_xml_content,
+        bep.task_process_state as bep_task_process_state,
+        bep.task_process_note as bep_task_process_note,
+        bep.del_flag as bep_del_flag,
+        bep.remark as bep_remark,
+        ben.id as ben_id,
+        ben.task_process_key as ben_task_process_key,
+        ben.task_node_key as ben_task_node_key,
+        ben.task_node_name as ben_task_node_name,
+        ben.task_node_form_key as ben_task_node_form_key,
+        ben.task_node_form_type as ben_task_node_form_type,
+        ben.task_node_type as ben_task_node_type,
+        ben.task_node_before as ben_task_node_before,
+        ben.task_node_after as ben_task_node_after,
+        ben.task_node_role_permission as ben_task_node_role_permission,
+        ben.task_remark as ben_task_remark,
+        ben.task_node_number as ben_task_node_number,
+        ben.task_node_weight as ben_task_node_weight,
+        ben.task_node_state as ben_task_node_state,
+        ben.task_priority as ben_task_priority,
+        ben.task1 as ben_task1,
+        ben.task2 as ben_task2,
+        ben.task3 as ben_task3,
+        ben.task4 as ben_task4,
+        ben.task5 as ben_task5,
+        ben.del_flag as ben_del_flag,
+        ben.create_by_id as ben_create_by_id,
+        ben.create_by as ben_create_by,
+        ben.create_time as ben_create_time,
+        benm.id as benm_id,
+        benm.task_node_key as benm_task_node_key,
+        benm.task_virtually_role as benm_task_virtually_role,
+        benm.task_real_role as benm_task_real_role,
+        benm.task_execute_user_no as benm_task_execute_user_no,
+        benm.task_artificial_script_key as benm_task_artificial_script_key,
+        benm.task_automatic_script_trigger_type as benm_task_automatic_script_trigger_type
+        from
+        {DBNAME}.bpm_execute_process as bep
+        inner join {DBNAME}.bpm_execute_node as ben on
+        ben.task_process_key = bep.task_key
+        and ben.task_node_key = bep.task_node_next_key
+        join {DBNAME}.bpm_execute_node_middle as benm on
+        benm.task_node_key = ben.task_node_key
+        and benm.task_process_key = bep.task_key
+        where bep.task_process_state = 3
+        <if test="taskProcessType != null">and bep.task_process_type = #{taskProcessType}</if>
+        <if test="taskName != null  and taskName != ''">
+            and CONCAT(
+            IFNULL( bep.task_key, '' ),
+            IFNULL( bep.task_name, '' ),
+            IFNULL( bep.task_node_key, '' ),
+            IFNULL( bep.task_node_next_key, '' ),
+            IFNULL( bep.task_process_key, '' ),
+            IFNULL( bep.task_process_note, '' ),
+            ) LIKE concat('%', #{taskName}, '%')
+        </if>
+        order by ben.create_time desc
+    </select>
 
     <update id="updateProcessStateByKey">
         update {DBNAME}.bpm_execute_process