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,4 +57,6 @@ public class MsCaseFlowVO {
57 57
      * 按钮权限标识符
58 58
      */
59 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,6 +1,7 @@
1 1
 package com.ruoyi.system.mapper.flow;
2 2
 
3 3
 import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
4
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
4 5
 import org.apache.ibatis.annotations.Select;
5 6
 import tk.mybatis.mapper.common.Mapper;
6 7
 
@@ -16,9 +17,12 @@ public interface MsCaseFlowMapper extends Mapper<MsCaseFlow> {
16 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 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 21
     List<MsCaseFlow> nextFlowall(Integer caseFlowId);
21 22
 
22 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 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,6 +64,10 @@ public class MsCaseLogRecordVO {
64 64
      */
65 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,4 +44,7 @@ public interface MsCaseLogRecordMapper extends Mapper<MsCaseLogRecord> {
44 44
             "       order by create_time asc  " +
45 45
             " </script>")
46 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,6 +25,7 @@ import com.ruoyi.common.utils.SmsUtils;
25 25
 import com.ruoyi.common.utils.StringUtils;
26 26
 import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
27 27
 import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
28
+import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
28 29
 import com.ruoyi.system.mapper.SysUserMapper;
29 30
 import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
30 31
 import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
@@ -451,27 +452,31 @@ public class MsSignSealServiceImpl implements MsSignSealService {
451 452
     public AjaxResult selectCaseProgress(MsSignSealDTO dto) {
452 453
         Map<String, Object> datas = new HashMap<>();
453 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 459
         MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(id);
458 460
         Integer caseFlowId = caseApplicationselect.getCaseFlowId();
459 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 480
         MsCaseLogRecordVO msCaseLogRecordVO = new MsCaseLogRecordVO();
476 481
         BeanUtil.copyProperties(caseLogRecordin, msCaseLogRecordVO);
477 482
         List<MsCaseLogRecordVO> caseLogRecordsin = new ArrayList<>();
@@ -481,14 +486,22 @@ public class MsSignSealServiceImpl implements MsSignSealService {
481 486
         List<MsCaseLogRecordVO> caseLogRecordsnext = new ArrayList<>();
482 487
         if (nextFlowall != null && nextFlowall.size() > 0) {
483 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 502
         datas.put("finishCasenode", records);
489 503
         datas.put("inCasenode", caseLogRecordsin);
490 504
         datas.put("nextCasenode", caseLogRecordsnext);
491
-
492 505
         return success(datas);
493 506
     }
494 507