Procházet zdrojové kódy

优化查询流程

qitz před 2 roky
rodič
revize
32db41e641

+ 2
- 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java Zobrazit soubor

57
      * 按钮权限标识符
57
      * 按钮权限标识符
58
      */
58
      */
59
     private String buttonAuthFlag;
59
     private String buttonAuthFlag;
60
+
61
+    private String roleName;
60
 }
62
 }

+ 5
- 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java Zobrazit soubor

1
 package com.ruoyi.system.mapper.flow;
1
 package com.ruoyi.system.mapper.flow;
2
 
2
 
3
 import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
3
 import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
4
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
4
 import org.apache.ibatis.annotations.Select;
5
 import org.apache.ibatis.annotations.Select;
5
 import tk.mybatis.mapper.common.Mapper;
6
 import tk.mybatis.mapper.common.Mapper;
6
 
7
 
16
     @Select("select f1.id,f1.node_id nodeId,f1.node_name nodeName,f1.case_status_name caseStatusName,f1.back_flow_id backFlowId,f1.sort from ms_case_flow f1 join ms_case_flow f2 on  f2.id=#{caseFlowId}  and f1.sort=f2.sort+1 ")
17
     @Select("select f1.id,f1.node_id nodeId,f1.node_name nodeName,f1.case_status_name caseStatusName,f1.back_flow_id backFlowId,f1.sort from ms_case_flow f1 join ms_case_flow f2 on  f2.id=#{caseFlowId}  and f1.sort=f2.sort+1 ")
17
     MsCaseFlow nextFlow(Integer caseFlowId);
18
     MsCaseFlow nextFlow(Integer caseFlowId);
18
 
19
 
19
-    @Select("select f1.id,f1.node_id nodeId,f1.node_name nodeName,f1.case_status_name caseStatusName,f1.back_flow_id backFlowId,f1.sort from ms_case_flow f1 join ms_case_flow f2 on  f2.id=#{caseFlowId}  and f1.sort >= f2.sort+1 ")
20
+    @Select("select f1.id,f1.node_id nodeId,f1.node_name nodeName,f1.case_status_name caseStatusName,f1.back_flow_id backFlowId,f1.sort from ms_case_flow f1 join ms_case_flow f2 on  f2.id=#{caseFlowId}  and f1.sort >= f2.sort+1  order by f1.sort ")
20
     List<MsCaseFlow> nextFlowall(Integer caseFlowId);
21
     List<MsCaseFlow> nextFlowall(Integer caseFlowId);
21
 
22
 
22
     @Select("select f1.id,f1.node_id nodeId,f1.node_name nodeName,f1.case_status_name caseStatusName,f1.back_flow_id backFlowId,f1.sort from ms_case_flow f1 join ms_case_flow f2 on  f2.id=#{caseFlowId}  and f1.sort=f2.sort+3 ")
23
     @Select("select f1.id,f1.node_id nodeId,f1.node_name nodeName,f1.case_status_name caseStatusName,f1.back_flow_id backFlowId,f1.sort from ms_case_flow f1 join ms_case_flow f2 on  f2.id=#{caseFlowId}  and f1.sort=f2.sort+3 ")
23
     MsCaseFlow nextFlow1(Integer caseFlowId);
24
     MsCaseFlow nextFlow1(Integer caseFlowId);
25
+
26
+    @Select("SELECT r.role_name as roleName ,f.node_name as nodeName ,f.case_status_name as caseStatusName FROM ms_case_flow f left join ms_case_flow_role_related fr on f.id  = fr.flow_id  left join ms_sys_role r on fr.roleid  = r.role_id  WHERE f.id  = #{caseFlowId} ")
27
+    List<MsCaseFlowVO> selectFlowRole(Integer caseFlowId);
24
 }
28
 }

+ 4
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseLogRecordVO.java Zobrazit soubor

64
      */
64
      */
65
     private String content;
65
     private String content;
66
 
66
 
67
+    private Integer nodeId;
68
+
69
+    private Integer sort;
70
+
67
 
71
 
68
 
72
 
69
 
73
 

+ 3
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java Zobrazit soubor

44
             "       order by create_time asc  " +
44
             "       order by create_time asc  " +
45
             " </script>")
45
             " </script>")
46
     List<MsCaseLogRecordVO> selectCaseLogRecordList(@Param("caseLogRecord") MsCaseLogRecord caseLogRecord);
46
     List<MsCaseLogRecordVO> selectCaseLogRecordList(@Param("caseLogRecord") MsCaseLogRecord caseLogRecord);
47
+
48
+    @Select("SELECT group_concat( DISTINCT t.createNickName) createNickName,t.nodeName content,t.nodeId,t.sort FROM (SELECT l.create_nick_name createNickName ,f.node_name nodeName,f.node_id nodeId, f.sort FROM ms_case_log_record l left join ms_case_flow f on l.case_node  = f.node_id WHERE l.case_appli_id  = #{caseAppliId} and f.node_name is not null ) t group by t.nodeName,t.nodeId,t.sort  order by t.sort ")
49
+    List<MsCaseLogRecordVO> selectCaseLogRecordListCaseProgress(Long caseAppliId);
47
 }
50
 }

+ 30
- 17
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java Zobrazit soubor

25
 import com.ruoyi.common.utils.StringUtils;
25
 import com.ruoyi.common.utils.StringUtils;
26
 import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
26
 import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
27
 import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
27
 import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
28
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
28
 import com.ruoyi.system.mapper.SysUserMapper;
29
 import com.ruoyi.system.mapper.SysUserMapper;
29
 import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
30
 import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
30
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
31
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
451
     public AjaxResult selectCaseProgress(MsSignSealDTO dto) {
452
     public AjaxResult selectCaseProgress(MsSignSealDTO dto) {
452
         Map<String, Object> datas = new HashMap<>();
453
         Map<String, Object> datas = new HashMap<>();
453
         Long id = dto.getCaseId();
454
         Long id = dto.getCaseId();
454
-        MsCaseLogRecord caseLogRecord = new MsCaseLogRecord();
455
-        caseLogRecord.setCaseAppliId(id);
456
-        List<MsCaseLogRecordVO> records = caseLogRecordMapper.selectCaseLogRecordList(caseLogRecord);
455
+//        MsCaseLogRecord caseLogRecord = new MsCaseLogRecord();
456
+//        caseLogRecord.setCaseAppliId(id);
457
+        List<MsCaseLogRecordVO> records = caseLogRecordMapper.selectCaseLogRecordListCaseProgress(dto.getCaseId());
458
+
457
         MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(id);
459
         MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(id);
458
         Integer caseFlowId = caseApplicationselect.getCaseFlowId();
460
         Integer caseFlowId = caseApplicationselect.getCaseFlowId();
459
         MsCaseFlow msCaseFlow = caseFlowMapper.selectByPrimaryKey(caseFlowId);
461
         MsCaseFlow msCaseFlow = caseFlowMapper.selectByPrimaryKey(caseFlowId);
462
+        CaseLogRecord caseLogRecordin = new CaseLogRecord();
463
+        caseLogRecordin.setCaseNodeName(msCaseFlow.getNodeName());
464
+        List<MsCaseFlowVO> msCaseFlowvos = caseFlowMapper.selectFlowRole(caseFlowId);
460
 
465
 
461
-        String nodeName = "";
462
-        if(msCaseFlow!=null){
463
-            nodeName = msCaseFlow.getNodeName();
466
+        StringBuilder roleIn = new StringBuilder();
467
+        for(MsCaseFlowVO mscaseFlowVO:msCaseFlowvos){
468
+            roleIn.append( mscaseFlowVO.getRoleName()+"正在进行"+mscaseFlowVO.getNodeName()+";");
464
         }
469
         }
465
-        CaseLogRecord caseLogRecordin = getInCasenode(nodeName);
470
+        caseLogRecordin.setContent(roleIn.toString().substring(0,roleIn.toString().length()-1));
466
 
471
 
467
-        // 根据流程id查找下一个流程节点
468
-        MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId());
469
-        String nodeName1 = "";
470
-        if(nextFlow!=null){
471
-            nodeName1 = nextFlow.getNodeName();
472
+        MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseFlowId);
473
+        List<MsCaseFlowVO> nextMsCaseFlowvo = caseFlowMapper.selectFlowRole(nextFlow.getId());
474
+        StringBuilder roleIn1 = new StringBuilder();
475
+        for(MsCaseFlowVO mscaseFlowVO:nextMsCaseFlowvo){
476
+            roleIn1.append( mscaseFlowVO.getRoleName()+";");
472
         }
477
         }
473
-        CaseLogRecord caseLogRecordnext = getNextRole(nodeName1);
474
-        caseLogRecordin.setNextRoleName(caseLogRecordnext.getNextRoleName());
478
+        caseLogRecordin.setNextRoleName("下一节点角色:"+roleIn1.toString().substring(0,roleIn1.toString().length()-1));
479
+
475
         MsCaseLogRecordVO msCaseLogRecordVO = new MsCaseLogRecordVO();
480
         MsCaseLogRecordVO msCaseLogRecordVO = new MsCaseLogRecordVO();
476
         BeanUtil.copyProperties(caseLogRecordin, msCaseLogRecordVO);
481
         BeanUtil.copyProperties(caseLogRecordin, msCaseLogRecordVO);
477
         List<MsCaseLogRecordVO> caseLogRecordsin = new ArrayList<>();
482
         List<MsCaseLogRecordVO> caseLogRecordsin = new ArrayList<>();
481
         List<MsCaseLogRecordVO> caseLogRecordsnext = new ArrayList<>();
486
         List<MsCaseLogRecordVO> caseLogRecordsnext = new ArrayList<>();
482
         if (nextFlowall != null && nextFlowall.size() > 0) {
487
         if (nextFlowall != null && nextFlowall.size() > 0) {
483
             for (MsCaseFlow msCaseFlow1 : nextFlowall) {
488
             for (MsCaseFlow msCaseFlow1 : nextFlowall) {
484
-                caseLogRecordsnext.add(getNextCaseLogRecord(msCaseFlow1.getNodeName()));
489
+                List<MsCaseFlowVO> msCaseFlowVOs = caseFlowMapper.selectFlowRole(msCaseFlow1.getId());
490
+                MsCaseLogRecordVO caseLogRecord1 = new MsCaseLogRecordVO();
491
+                caseLogRecord1.setCaseNodeName(msCaseFlowVOs.get(0).getNodeName());
492
+
493
+                StringBuilder rolenext = new StringBuilder();
494
+                for(MsCaseFlowVO mscaseFlowVO:msCaseFlowVOs){
495
+                    rolenext.append( mscaseFlowVO.getRoleName()+"将进行"+mscaseFlowVO.getNodeName()+";");
496
+                }
497
+                caseLogRecord1.setContent( rolenext.toString().substring(0,rolenext.toString().length()-1));
498
+                caseLogRecordsnext.add(caseLogRecord1);
485
             }
499
             }
486
-        }
487
 
500
 
501
+        }
488
         datas.put("finishCasenode", records);
502
         datas.put("finishCasenode", records);
489
         datas.put("inCasenode", caseLogRecordsin);
503
         datas.put("inCasenode", caseLogRecordsin);
490
         datas.put("nextCasenode", caseLogRecordsnext);
504
         datas.put("nextCasenode", caseLogRecordsnext);
491
-
492
         return success(datas);
505
         return success(datas);
493
     }
506
     }
494
 
507