From 32db41e64178fee4102cf9c288320e69d911543f Mon Sep 17 00:00:00 2001 From: qitz <18810291185@163.com> Date: Tue, 20 Feb 2024 17:22:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/domain/vo/flow/MsCaseFlowVO.java | 2 + .../system/mapper/flow/MsCaseFlowMapper.java | 6 ++- .../domain/vo/mscase/MsCaseLogRecordVO.java | 4 ++ .../mapper/mscase/MsCaseLogRecordMapper.java | 3 ++ .../mscase/impl/MsSignSealServiceImpl.java | 49 ++++++++++++------- 5 files changed, 45 insertions(+), 19 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java index 8db4f5a..9a9147c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/flow/MsCaseFlowVO.java @@ -57,4 +57,6 @@ public class MsCaseFlowVO { * 按钮权限标识符 */ private String buttonAuthFlag; + + private String roleName; } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java index ea44696..df4f96b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/flow/MsCaseFlowMapper.java @@ -1,6 +1,7 @@ package com.ruoyi.system.mapper.flow; import com.ruoyi.system.domain.entity.flow.MsCaseFlow; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO; import org.apache.ibatis.annotations.Select; import tk.mybatis.mapper.common.Mapper; @@ -16,9 +17,12 @@ public interface MsCaseFlowMapper extends Mapper { @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 ") MsCaseFlow nextFlow(Integer caseFlowId); - @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 ") + @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 ") List nextFlowall(Integer caseFlowId); @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 ") MsCaseFlow nextFlow1(Integer caseFlowId); + + @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} ") + List selectFlowRole(Integer caseFlowId); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseLogRecordVO.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseLogRecordVO.java index 0559fac..2095237 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseLogRecordVO.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/mscase/MsCaseLogRecordVO.java @@ -64,6 +64,10 @@ public class MsCaseLogRecordVO { */ private String content; + private Integer nodeId; + + private Integer sort; + diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java index 3bc0d98..6e1c897 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/mapper/mscase/MsCaseLogRecordMapper.java @@ -44,4 +44,7 @@ public interface MsCaseLogRecordMapper extends Mapper { " order by create_time asc " + " ") List selectCaseLogRecordList(@Param("caseLogRecord") MsCaseLogRecord caseLogRecord); + + @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 ") + List selectCaseLogRecordListCaseProgress(Long caseAppliId); } \ No newline at end of file diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java index 571e161..cd7973a 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/mscase/impl/MsSignSealServiceImpl.java @@ -25,6 +25,7 @@ import com.ruoyi.common.utils.SmsUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.SaaSAPIFileUtils; import com.ruoyi.system.domain.entity.flow.MsCaseFlow; +import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.flow.MsCaseFlowMapper; import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify; @@ -451,27 +452,31 @@ public class MsSignSealServiceImpl implements MsSignSealService { public AjaxResult selectCaseProgress(MsSignSealDTO dto) { Map datas = new HashMap<>(); Long id = dto.getCaseId(); - MsCaseLogRecord caseLogRecord = new MsCaseLogRecord(); - caseLogRecord.setCaseAppliId(id); - List records = caseLogRecordMapper.selectCaseLogRecordList(caseLogRecord); +// MsCaseLogRecord caseLogRecord = new MsCaseLogRecord(); +// caseLogRecord.setCaseAppliId(id); + List records = caseLogRecordMapper.selectCaseLogRecordListCaseProgress(dto.getCaseId()); + MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(id); Integer caseFlowId = caseApplicationselect.getCaseFlowId(); MsCaseFlow msCaseFlow = caseFlowMapper.selectByPrimaryKey(caseFlowId); + CaseLogRecord caseLogRecordin = new CaseLogRecord(); + caseLogRecordin.setCaseNodeName(msCaseFlow.getNodeName()); + List msCaseFlowvos = caseFlowMapper.selectFlowRole(caseFlowId); - String nodeName = ""; - if(msCaseFlow!=null){ - nodeName = msCaseFlow.getNodeName(); + StringBuilder roleIn = new StringBuilder(); + for(MsCaseFlowVO mscaseFlowVO:msCaseFlowvos){ + roleIn.append( mscaseFlowVO.getRoleName()+"正在进行"+mscaseFlowVO.getNodeName()+";"); } - CaseLogRecord caseLogRecordin = getInCasenode(nodeName); + caseLogRecordin.setContent(roleIn.toString().substring(0,roleIn.toString().length()-1)); - // 根据流程id查找下一个流程节点 - MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId()); - String nodeName1 = ""; - if(nextFlow!=null){ - nodeName1 = nextFlow.getNodeName(); + MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseFlowId); + List nextMsCaseFlowvo = caseFlowMapper.selectFlowRole(nextFlow.getId()); + StringBuilder roleIn1 = new StringBuilder(); + for(MsCaseFlowVO mscaseFlowVO:nextMsCaseFlowvo){ + roleIn1.append( mscaseFlowVO.getRoleName()+";"); } - CaseLogRecord caseLogRecordnext = getNextRole(nodeName1); - caseLogRecordin.setNextRoleName(caseLogRecordnext.getNextRoleName()); + caseLogRecordin.setNextRoleName("下一节点角色:"+roleIn1.toString().substring(0,roleIn1.toString().length()-1)); + MsCaseLogRecordVO msCaseLogRecordVO = new MsCaseLogRecordVO(); BeanUtil.copyProperties(caseLogRecordin, msCaseLogRecordVO); List caseLogRecordsin = new ArrayList<>(); @@ -481,14 +486,22 @@ public class MsSignSealServiceImpl implements MsSignSealService { List caseLogRecordsnext = new ArrayList<>(); if (nextFlowall != null && nextFlowall.size() > 0) { for (MsCaseFlow msCaseFlow1 : nextFlowall) { - caseLogRecordsnext.add(getNextCaseLogRecord(msCaseFlow1.getNodeName())); - } - } + List msCaseFlowVOs = caseFlowMapper.selectFlowRole(msCaseFlow1.getId()); + MsCaseLogRecordVO caseLogRecord1 = new MsCaseLogRecordVO(); + caseLogRecord1.setCaseNodeName(msCaseFlowVOs.get(0).getNodeName()); + StringBuilder rolenext = new StringBuilder(); + for(MsCaseFlowVO mscaseFlowVO:msCaseFlowVOs){ + rolenext.append( mscaseFlowVO.getRoleName()+"将进行"+mscaseFlowVO.getNodeName()+";"); + } + caseLogRecord1.setContent( rolenext.toString().substring(0,rolenext.toString().length()-1)); + caseLogRecordsnext.add(caseLogRecord1); + } + + } datas.put("finishCasenode", records); datas.put("inCasenode", caseLogRecordsin); datas.put("nextCasenode", caseLogRecordsnext); - return success(datas); }