待办中心-项目法规任务,法规评估任务,待办、已办、已发列表优化。

禅道bug修改62251
This commit is contained in:
wangzhijiang
2022-11-17 17:08:45 +08:00
parent 03094024e7
commit b2bde27983
6 changed files with 71 additions and 72 deletions
@@ -6332,6 +6332,12 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
treeDictItem(categoryList, entry, treeFieldList, cut,null);
}
record1.put("technology_territory_id",technology_territory);
if(StringUtils.equals(cut,CutEnum.EN.getValue())){
if(record.containsKey("title") && record.containsKey("title_en")){
record.put("title",record.get("title_en"));
}
}
}
return infoPage;
}
@@ -381,6 +381,12 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
record1.put("sarFileSplitInfoList",sarFileSplitInfoList);
}
}
if(com.jero.modules.system.util.StringUtils.equals(cut,CutEnum.EN.getValue())){
if(record.containsKey("title") && record.containsKey("title_en")){
record.put("title",record.get("title_en"));
}
}
}
return infoPage;
}
@@ -18,7 +18,7 @@ public enum ProjectRoleEnum {
PREHOMODUTY("prehomo确认-责任人","8",""),
VERIFYINITIATOR("验证符合性确认-发起人","9",""),
VERIFYDUTY("验证符合性确认-责任人","10",""),
MANAGER("验证符合性确认-责任人","11",""),
MANAGER("manage","11",""),
ADMIN("系统管理员","12",""),
;
@@ -74,6 +74,7 @@ import com.jero.modules.wkflow.feginClient.impl.TaskFeignClientImpl;
import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl;
import com.jero.modules.wkflow.service.IProcessHistoryEOService;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.io.FileUtils;
@@ -129,6 +130,7 @@ import static com.jero.modules.document.service.impl.BussDocumentLibraryEOServic
* @Date: 2022-04-14
* @Version: V1.0
*/
@Slf4j
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsInventoryEOMapper, ProjectLawsInventoryEO> implements IProjectLawsInventoryEOService {
@@ -710,6 +712,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
@Override
public List<ProjectLawsInventoryEO> queryList(ProjectLawsInventoryEO projectLawsInventoryEO, HttpServletRequest req) {
long startTime = System.currentTimeMillis();
String dutyTerritoryStr = "";
if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDutyTerritory())) {
dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory();
@@ -749,6 +752,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())){
int isProjectRole = Integer.parseInt(projectLawsInventoryEO.getRoleCode());
log.info("一阶段消耗时间:" + (System.currentTimeMillis() - startTime));
if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue())){
@@ -758,10 +763,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
});
}
List<ProjectLawsInventoryEO> result = super.baseMapper.selectList(projectLawsInventoryEOQueryWrapper);
log.info("二阶段消耗时间:" + (System.currentTimeMillis() - startTime));
dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut());
long startTime = System.currentTimeMillis();
log.info("三阶段消耗时间:" + (System.currentTimeMillis() - startTime));
dataDictDispose(result,projectLawsInventoryEO.getCut());
log.debug("处理数据字典消耗时间:" + (System.currentTimeMillis() - startTime));
log.info("四阶段消耗时间:" + (System.currentTimeMillis() - startTime));
return result;
}
@@ -57,22 +57,8 @@
concat(pli.serial_number,'、',bdl.title_en) as standard_info,
</if>
pi.flow_type,
createBy.username as "create_by",
pi.create_by,
pi.end_time,
(
select
detail.task_id
from
process_info_detail detail
where detail.process_info_id = pi.id and detail.user_id = #{params.currentUserId} order by submit_time desc 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} order by submit_time desc limit 1
) as task_definition_key,
pi.status,
pi.prc_num,
pi.prc_name,
@@ -87,7 +73,6 @@
left join project_name_info pni on pni.id = plb.project_name_id
left join project_year_name_info pyni on pyni.id = plb.year_name_id
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
LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id
<where>
<if test="params.queryType != 'issuedProcess'">
@@ -141,22 +126,8 @@
concat(pli.serial_number,'、',bdl.title_en) as standard_info,
</if>
pi.flow_type,
createBy.username AS "create_by",
pi.create_by,
pi.end_time,
(
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` = 'NotDone' 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` = 'NotDone' limit 1
) as task_definition_key,
pi.STATUS,
pi.prc_num,
pi.prc_name,
@@ -171,7 +142,6 @@
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
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
LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id
where
(
@@ -201,7 +171,7 @@
'' as title,
'' as title_en,
pi.flow_type,
createBy.username AS "create_by",
pi.create_by,
(
select
pid.end_time
@@ -209,8 +179,6 @@
process_info_detail pid
where pid.process_info_id = pi.id and pid.STATUS = 'NotDone' order by pid.end_time asc limit 1
) as end_time,
'' as task_id,
'' as task_definition_key,
pi.STATUS,
pi.prc_num,
pi.prc_name,
@@ -225,7 +193,6 @@
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
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
WHERE
(
pi.id IN (
@@ -260,37 +227,12 @@
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}
<if test="params.taskStatus != null and params.taskStatus != ''">
and detail.`status` = #{params.taskStatus}
</if>
order by detail.submit_time desc
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}
<if test="params.taskStatus != null and params.taskStatus != ''">
and detail.`status` = #{params.taskStatus}
</if>
order by detail.submit_time desc
limit 1
) as task_definition_key,
createBy.username AS create_by,
pi.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=")">
@@ -206,7 +206,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
this.disposeData(result.getRecords(),cut);
this.disposeData(result.getRecords(),cut,TaskStatusEnum.NOT_DONE.getValue());
return result;
}
@@ -226,7 +226,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessPageList(page,params);
this.disposeData(result.getRecords(),cut);
this.disposeData(result.getRecords(),cut,"");
return result;
}
@@ -248,7 +248,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessPageList(page,params);
this.disposeData(result.getRecords(),cut);
this.disposeData(result.getRecords(),cut,"");
return result;
}
@@ -340,7 +340,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryLawsAssessPageList(page,params);
this.disposeData(result.getRecords(),cut);
this.disposeData(result.getRecords(),cut,TaskStatusEnum.NOT_DONE.getValue());
return result;
}
@@ -363,7 +363,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryLawsAssessPageList(page,params);
this.disposeData(result.getRecords(),cut);
this.disposeData(result.getRecords(),cut,TaskStatusEnum.HAVE_DONE.getValue());
return result;
}
@@ -386,7 +386,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryLawsAssessPageList(page,params);
this.disposeData(result.getRecords(),cut);
this.disposeData(result.getRecords(),cut,TaskStatusEnum.HAVE_DONE.getValue());
return result;
}
@@ -403,7 +403,7 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
* @param datas
* @param cut
*/
public void disposeData(List<ProcessInfoVO> datas, String cut){
public void disposeData(List<ProcessInfoVO> datas, String cut, String taskStatus){
if(CollectionUtils.isNotEmpty(datas)){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date currentDate = new Date();
@@ -557,6 +557,45 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
data.setEndTimePastDueFlag(true);
}
});
// 优化待办中心查询效率
List<String> createByUserIdList = datas.stream().map(ProcessInfoVO::getCreateBy).distinct().collect(Collectors.toList());
List<SysUser> createByUserList = this.sysUserService.querySysUserListByIdList(createByUserIdList);
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
datas.forEach(data -> {
// 设置发起人的名称
if(CollectionUtils.isNotEmpty(createByUserList) && StringUtils.isNotEmpty(data.getCreateBy())){
String createBy = createByUserList.stream().filter(createByUser -> {
boolean flag = false;
if(StringUtils.equals(createByUser.getId(),data.getCreateBy())){
flag = true;
}
return flag;
}).map(SysUser::getUsername).distinct().collect(Collectors.joining(","));
data.setCreateBy(createBy);
}
if(!StringUtils.equals(data.getFlowType(),FlowTypeEnum.QDQR.getValue())){
// 获取当前用户所拥有的待办任务信息
List<ProcessInfoDetailEO> currentUserProcessInfoDetailInfos = processInfoDetailEOList.stream().filter(detail -> {
boolean flag = false;
if (StringUtils.isNotEmpty(taskStatus)) {
flag = (StringUtils.equals(detail.getProcessInfoId(), data.getId()) && StringUtils.equals(detail.getUserId(), currentUser.getId()) && StringUtils.equals(taskStatus, detail.getStatus()));
} else {
flag = (StringUtils.equals(detail.getProcessInfoId(), data.getId()) && StringUtils.equals(detail.getUserId(), currentUser.getId()));
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(currentUserProcessInfoDetailInfos)){
// 设置taskId
data.setTaskId(currentUserProcessInfoDetailInfos.get(0).getTaskId());
// 设置taskDefinitionKey
data.setTaskDefinitionKey(currentUserProcessInfoDetailInfos.get(0).getTaskDefinitionKey());
}
}
});
}
}