优化查询流程 #81
@@ -57,4 +57,6 @@ public class MsCaseFlowVO {
|
|||||||
* 按钮权限标识符
|
* 按钮权限标识符
|
||||||
*/
|
*/
|
||||||
private String buttonAuthFlag;
|
private String buttonAuthFlag;
|
||||||
|
|
||||||
|
private String roleName;
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.system.mapper.flow;
|
package com.ruoyi.system.mapper.flow;
|
||||||
|
|
||||||
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
||||||
|
import com.ruoyi.system.domain.vo.flow.MsCaseFlowVO;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import tk.mybatis.mapper.common.Mapper;
|
import tk.mybatis.mapper.common.Mapper;
|
||||||
|
|
||||||
@@ -16,9 +17,12 @@ public interface MsCaseFlowMapper extends Mapper<MsCaseFlow> {
|
|||||||
@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 ")
|
||||||
MsCaseFlow nextFlow(Integer caseFlowId);
|
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<MsCaseFlow> nextFlowall(Integer caseFlowId);
|
List<MsCaseFlow> 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 ")
|
@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);
|
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<MsCaseFlowVO> selectFlowRole(Integer caseFlowId);
|
||||||
}
|
}
|
||||||
+4
@@ -64,6 +64,10 @@ public class MsCaseLogRecordVO {
|
|||||||
*/
|
*/
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
|
private Integer nodeId;
|
||||||
|
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
@@ -44,4 +44,7 @@ public interface MsCaseLogRecordMapper extends Mapper<MsCaseLogRecord> {
|
|||||||
" order by create_time asc " +
|
" order by create_time asc " +
|
||||||
" </script>")
|
" </script>")
|
||||||
List<MsCaseLogRecordVO> selectCaseLogRecordList(@Param("caseLogRecord") MsCaseLogRecord caseLogRecord);
|
List<MsCaseLogRecordVO> 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<MsCaseLogRecordVO> selectCaseLogRecordListCaseProgress(Long caseAppliId);
|
||||||
}
|
}
|
||||||
+29
-16
@@ -25,6 +25,7 @@ import com.ruoyi.common.utils.SmsUtils;
|
|||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
|
import com.ruoyi.common.utils.file.SaaSAPIFileUtils;
|
||||||
import com.ruoyi.system.domain.entity.flow.MsCaseFlow;
|
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.SysUserMapper;
|
||||||
import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
|
import com.ruoyi.system.mapper.flow.MsCaseFlowMapper;
|
||||||
import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
|
import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
|
||||||
@@ -451,27 +452,31 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
public AjaxResult selectCaseProgress(MsSignSealDTO dto) {
|
public AjaxResult selectCaseProgress(MsSignSealDTO dto) {
|
||||||
Map<String, Object> datas = new HashMap<>();
|
Map<String, Object> datas = new HashMap<>();
|
||||||
Long id = dto.getCaseId();
|
Long id = dto.getCaseId();
|
||||||
MsCaseLogRecord caseLogRecord = new MsCaseLogRecord();
|
// MsCaseLogRecord caseLogRecord = new MsCaseLogRecord();
|
||||||
caseLogRecord.setCaseAppliId(id);
|
// caseLogRecord.setCaseAppliId(id);
|
||||||
List<MsCaseLogRecordVO> records = caseLogRecordMapper.selectCaseLogRecordList(caseLogRecord);
|
List<MsCaseLogRecordVO> records = caseLogRecordMapper.selectCaseLogRecordListCaseProgress(dto.getCaseId());
|
||||||
|
|
||||||
MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(id);
|
MsCaseApplication caseApplicationselect = msCaseApplicationMapper.selectByPrimaryKey(id);
|
||||||
Integer caseFlowId = caseApplicationselect.getCaseFlowId();
|
Integer caseFlowId = caseApplicationselect.getCaseFlowId();
|
||||||
MsCaseFlow msCaseFlow = caseFlowMapper.selectByPrimaryKey(caseFlowId);
|
MsCaseFlow msCaseFlow = caseFlowMapper.selectByPrimaryKey(caseFlowId);
|
||||||
|
CaseLogRecord caseLogRecordin = new CaseLogRecord();
|
||||||
|
caseLogRecordin.setCaseNodeName(msCaseFlow.getNodeName());
|
||||||
|
List<MsCaseFlowVO> msCaseFlowvos = caseFlowMapper.selectFlowRole(caseFlowId);
|
||||||
|
|
||||||
String nodeName = "";
|
StringBuilder roleIn = new StringBuilder();
|
||||||
if(msCaseFlow!=null){
|
for(MsCaseFlowVO mscaseFlowVO:msCaseFlowvos){
|
||||||
nodeName = msCaseFlow.getNodeName();
|
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(caseFlowId);
|
||||||
MsCaseFlow nextFlow = caseFlowMapper.nextFlow(caseApplicationselect.getCaseFlowId());
|
List<MsCaseFlowVO> nextMsCaseFlowvo = caseFlowMapper.selectFlowRole(nextFlow.getId());
|
||||||
String nodeName1 = "";
|
StringBuilder roleIn1 = new StringBuilder();
|
||||||
if(nextFlow!=null){
|
for(MsCaseFlowVO mscaseFlowVO:nextMsCaseFlowvo){
|
||||||
nodeName1 = nextFlow.getNodeName();
|
roleIn1.append( mscaseFlowVO.getRoleName()+";");
|
||||||
}
|
}
|
||||||
CaseLogRecord caseLogRecordnext = getNextRole(nodeName1);
|
caseLogRecordin.setNextRoleName("下一节点角色:"+roleIn1.toString().substring(0,roleIn1.toString().length()-1));
|
||||||
caseLogRecordin.setNextRoleName(caseLogRecordnext.getNextRoleName());
|
|
||||||
MsCaseLogRecordVO msCaseLogRecordVO = new MsCaseLogRecordVO();
|
MsCaseLogRecordVO msCaseLogRecordVO = new MsCaseLogRecordVO();
|
||||||
BeanUtil.copyProperties(caseLogRecordin, msCaseLogRecordVO);
|
BeanUtil.copyProperties(caseLogRecordin, msCaseLogRecordVO);
|
||||||
List<MsCaseLogRecordVO> caseLogRecordsin = new ArrayList<>();
|
List<MsCaseLogRecordVO> caseLogRecordsin = new ArrayList<>();
|
||||||
@@ -481,14 +486,22 @@ public class MsSignSealServiceImpl implements MsSignSealService {
|
|||||||
List<MsCaseLogRecordVO> caseLogRecordsnext = new ArrayList<>();
|
List<MsCaseLogRecordVO> caseLogRecordsnext = new ArrayList<>();
|
||||||
if (nextFlowall != null && nextFlowall.size() > 0) {
|
if (nextFlowall != null && nextFlowall.size() > 0) {
|
||||||
for (MsCaseFlow msCaseFlow1 : nextFlowall) {
|
for (MsCaseFlow msCaseFlow1 : nextFlowall) {
|
||||||
caseLogRecordsnext.add(getNextCaseLogRecord(msCaseFlow1.getNodeName()));
|
List<MsCaseFlowVO> 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("finishCasenode", records);
|
||||||
datas.put("inCasenode", caseLogRecordsin);
|
datas.put("inCasenode", caseLogRecordsin);
|
||||||
datas.put("nextCasenode", caseLogRecordsnext);
|
datas.put("nextCasenode", caseLogRecordsnext);
|
||||||
|
|
||||||
return success(datas);
|
return success(datas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user