待办中心-符合性流程处理责任人填写的反馈意见信息。

查询优化。
This commit is contained in:
wangzhijiang
2022-10-21 15:55:35 +08:00
parent 4e235565a3
commit 1a9051981b
3 changed files with 72 additions and 5 deletions
@@ -92,7 +92,7 @@
left join project_laws_inventory pli on pi.project_laws_inventory_id = pli.id
LEFT JOIN sys_user createBy on createBy.id = pi.create_by
<include refid="BaseQuerySql"/>
order by pi.create_time desc
order by pi.end_time asc
</select>
<select id="queryProjectProcessTodoTaskListList" resultType="com.jero.modules.todoCenter.vo.ProcessInfoVO">
select temp.* from (
@@ -212,12 +212,19 @@
bdl.serial_number,
bdl.title,
pi.flow_type,
pi.create_by,
pi.end_time,
pi.STATUS
pi.STATUS,
pi.prc_num,
pi.prc_name,
(select detail.task_id from process_info_detail detail where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} and detail.`status` = #{params.taskStatus} limit 1) as task_id,
(select detail.task_definition_key from process_info_detail detail where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} and detail.`status` = #{params.taskStatus} limit 1) as task_definition_key,
createBy.username AS "create_by",
pi.acti_proc_inst_id,
pi.create_time
FROM
process_info pi
LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id
LEFT JOIN sys_user createBy on createBy.id = pi.create_by
<where>
pi.flow_type IN
<foreach collection="params.flowTypeList" index="index" item="item" open="(" separator="," close=")">
@@ -247,5 +254,6 @@
and pi.flow_type = #{params.flowType}
</if>
</where>
order by pi.end_time asc
</select>
</mapper>
@@ -8,10 +8,12 @@ import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.enums.OperatorTypeEnum;
import com.jero.modules.project.enums.RequestSourceEnum;
import com.jero.modules.project.enums.TaskStatusEnum;
import com.jero.modules.project.service.IProjectTaskInventoryDetailEOService;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
@@ -51,6 +53,8 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
private ISysUserService sysUserService;
@Autowired
private IProjectTaskInventoryDetailEOService projectTaskInventoryDetailEOService;
@Autowired
private IProjectTaskInventoryEOService projectTaskInventoryEOService;
/**
* 保存
@@ -355,7 +359,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
}
public void setFlowTypeList(List<String> flowTypeList){
flowTypeList.add(FlowTypeEnum.QDQR.getValue());
//flowTypeList.add(FlowTypeEnum.QDQR.getValue());
flowTypeList.add(FlowTypeEnum.RWQRLC.getValue());
flowTypeList.add(FlowTypeEnum.SJFHXSHLC.getValue());
flowTypeList.add(FlowTypeEnum.YZFHXSCLC.getValue());
@@ -390,9 +394,10 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
}
return flag;
}).collect(Collectors.groupingBy(ProcessInfoDetailEO::getProcessInfoId));
//设置责任人反馈意见
this.setPersonChargeFeedback(datas);
List<String> userIdList = new ArrayList<>();
datas.forEach(data -> {
//设置上一个操作人。
for (Map.Entry<String, List<ProcessInfoDetailEO>> detailMap : lastAssigneeDetailMap.entrySet()) {
@@ -487,4 +492,56 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
});
}
}
/**
* 设置符合性流程中责任人反馈意见
* @param datas
*/
public void setPersonChargeFeedback(List<ProcessInfoVO> datas){
//符合性流程实例id
List<String> complianceProcessPrcIdList = datas.stream().filter(data -> {
boolean designFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue());
boolean preHomoFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue());
boolean verifyFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue());
boolean flag = false;
if(designFlowFlag || preHomoFlowFlag || verifyFlowFlag){
flag = true;
}
return flag;
}).map(ProcessInfoVO::getActiProcInstId).collect(Collectors.toList());
QueryWrapper<ProjectTaskInventoryEO> taskInventoryQueryWrap = new QueryWrapper<>();
taskInventoryQueryWrap.and(queryWrap -> {
queryWrap.lambda().in(ProjectTaskInventoryEO::getDesignPId,complianceProcessPrcIdList)
.or().in(ProjectTaskInventoryEO::getPrehomoPId,complianceProcessPrcIdList)
.or().in(ProjectTaskInventoryEO::getVerifyPId,complianceProcessPrcIdList);
});
//查询出符合性流程相关的任务清单信息。
List<ProjectTaskInventoryEO> taskInventoryList = this.projectTaskInventoryEOService.list(taskInventoryQueryWrap);
datas.forEach(data -> {
boolean designFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue());
boolean preHomoFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue());
boolean verifyFlowFlag = StringUtils.equals(data.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue());
String personChargeFeedback = taskInventoryList.stream().filter(taskInventory -> {
boolean flag = false;
if(designFlowFlag){
if(StringUtils.equals(data.getActiProcInstId(),taskInventory.getDesignPId())){
flag = true;
}
}else if(preHomoFlowFlag){
if(StringUtils.equals(data.getActiProcInstId(),taskInventory.getPrehomoPId())){
flag = true;
}
}else if(verifyFlowFlag){
if(StringUtils.equals(data.getActiProcInstId(),taskInventory.getVerifyPId())){
flag = true;
}
}
return flag;
}).map(ProjectTaskInventoryEO::getDesignPersonChargeFeedback).collect(Collectors.joining(","));
data.setPersonChargeFeedback(personChargeFeedback);
});
}
}
@@ -98,4 +98,6 @@ public class ProcessInfoVO implements Serializable {
private String studioEngineer;
/**任务清单明细表id,任务清单明细数据与待办中心明细表 是taskId一对一的关系**/
private String primaryKeyId;
/**符合性流程:责任人填写反馈意见*/
private String personChargeFeedback;
}