符合性流程-历史数据迁移,sql、接口。

This commit is contained in:
wangzhijiang
2023-04-11 18:29:27 +08:00
parent 7a8b251b41
commit 68eb777be8
4 changed files with 590 additions and 8 deletions
@@ -506,3 +506,88 @@ WHERE
`id` IN (SELECT temp.id FROM (SELECT id FROM project_laws_inventory WHERE verify_flow_status IS NULL ) temp);
-- *********************************************** 法规相关历史数据处理sql *********************************************************
-- 以下sql需要按照顺序执行,否则会出问题。 2023-04-11 未同步生产环境
-- 处理 法规清单确认 待确认状态的数据sql
UPDATE `project_laws_inventory` SET
`design_flow_status` = 'List to be checked',
`verify_flow_status` = 'List to be checked'
where id in (
SELECT temp.id FROM (
SELECT
id
FROM
project_laws_inventory
WHERE inventory_affirm_status = 'List to confirm'
) temp
);
-- 处理待办中心-流程历史,之前的符合性流程数据sql。
-- 1.将之前符合性流程的 发起人审核节点, 处理结果为 符合、不涉及的数据,更新为通过(现在法规工程师审核的时候 处理结果是通过)
update process_history set
operator_result = 'Adopt'
where id in (
SELECT temp.id FROM (
select
id
from
process_history
where task_definition_key = 'fqrsh' and operator_result in ('Compliance','NA')
) temp
);
-- 2.将之前符合性流程的 发起人审核节点,修改为 法规工程师审核节点
update process_history set
task_definition_key = 'fggcssh'
where id in (
SELECT temp.id FROM (
select
id
from
process_history
where task_definition_key = 'fqrsh'
) temp
);
-- 3.将之前符合性流程的 责任人处理任务 节点,修改为 符合性确认节点
update process_history set
task_definition_key = 'zrrtjjfw'
where id in (
SELECT temp.id FROM (
select
id
from
process_history
where task_definition_key = 'zrrclrw'
) temp
);
-- 处理待办中心-流程节点明细,之前的符合性流程节点任务节点keysql
-- 1.将之前符合性流程的 发起人审核节点,修改为 法规工程师审核节点
update process_info_detail set
task_definition_key = 'fggcssh'
where id in (
SELECT temp.id FROM (
select
id
from
process_info_detail
where task_definition_key = 'fqrsh' and `status` = 'haveDone'
) temp
);
-- 2.将之前符合性流程的 责任人处理任务 节点,修改为 符合性确认节点
update process_info_detail set
task_definition_key = 'zrrtjjfw'
where id in (
SELECT temp.id FROM (
select
id
from
process_info_detail
where task_definition_key = 'zrrclrw' and `status` = 'haveDone'
) temp
);
@@ -54,4 +54,11 @@ public class ProjectProcessTodoCenterController {
public Result<?> initHistoryData(@RequestParam Map<String,Object> params) {
return this.processInfoEOService.initHistoryData(params);
}
@AutoLog(value = "待办中心-符合性流程数据迁移")
@ApiOperation(value="待办中心-符合性流程数据迁移", notes="待办中心-符合性流程数据迁移")
@GetMapping(value = "/complianceDataMigration")
public Result<?> complianceDataMigration(@RequestParam Map<String,Object> params) {
return this.processInfoEOService.complianceDataMigration(params);
}
}
@@ -119,4 +119,11 @@ public interface IProcessInfoEOService extends IService<ProcessInfoEO> {
IPage lawsAssessIssuedProcess(Map<String, Object> params);
Result<?> initHistoryData(Map<String, Object> params);
/**
* 符合性流程数据迁移
* @param params
* @return
*/
Result<?> complianceDataMigration(Map<String, Object> params);
}
@@ -15,15 +15,9 @@ import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluation
import com.jero.modules.lawsTechnologyEvaluation.entity.LawsTechnologyEvaluationFlowDetailEO;
import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationEOService;
import com.jero.modules.lawsTechnologyEvaluation.service.ILawsTechnologyEvaluationFlowDetailEOService;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectTaskInventoryDetailEO;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectTaskInventoryDetailEOService;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.project.service.*;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
@@ -41,9 +35,11 @@ import com.jero.modules.todoCenter.mapper.ProcessInfoEOMapper;
import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService;
import com.jero.modules.todoCenter.service.IProcessInfoEOService;
import com.jero.modules.todoCenter.vo.ProcessInfoVO;
import com.jero.modules.wkflow.entity.ProcessHistoryEO;
import com.jero.modules.wkflow.enums.DesignComplianceNodeEnum;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import com.jero.modules.wkflow.feginClient.impl.WorkFlowFeignClientImpl;
import com.jero.modules.wkflow.service.IProcessHistoryEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@@ -96,6 +92,10 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
private SysCategoryServiceImpl sysCategoryService;
@Autowired
private SysDictItemServiceImpl sysDictItemServiceImpl;
@Autowired
private IProcessHistoryEOService processHistoryEOService;
@Autowired
private IProjectTaskInventoryFeedbackEOService projectTaskInventoryFeedbackEOService;
/**
* 保存
@@ -1232,4 +1232,487 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
}
return targetMarket;
}
@Override
public Result<?> complianceDataMigration(Map<String, Object> params) {
List<ProcessHistoryEO> addProcessHistoryEOList = new ArrayList<>();
// 查询所有的工程交付信息
List<ProjectTaskInventoryFeedbackEO> projectTaskInventoryFeedbackEOList = this.projectTaskInventoryFeedbackEOService.list();
// 查询所有的任务确认流程信息
QueryWrapper<ProcessInfoEO> rwqrPiQueryWrap = new QueryWrapper<>();
rwqrPiQueryWrap.lambda().eq(ProcessInfoEO::getFlowType,FlowTypeEnum.RWQRLC.getValue());
rwqrPiQueryWrap.orderByDesc("create_time");
List<ProcessInfoEO> rwqrProcessInfoEOList = this.list(rwqrPiQueryWrap);
// 查询所有的项目信息
List<ProjectLibraryBase> projectLibraryBaseList = this.projectLibraryBaseService.list();
// 查询所有的法规清单信息
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list();
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getId).distinct().collect(Collectors.toList());
// 查询所有的流程历史信息
List<ProcessHistoryEO> processHistoryEOList = this.processHistoryEOService.list();
// 查询所有的流程明细信息
List<ProcessInfoDetailEO> processInfoDetailEOList = this.processInfoDetailEOService.list();
// 1.处理已经完成的设计符合性流程历史
QueryWrapper<ProjectTaskInventoryEO> designTaskInventoryQueryWrap = new QueryWrapper<>();
designTaskInventoryQueryWrap.isNotNull("design_p_id");
designTaskInventoryQueryWrap.lambda().eq(ProjectTaskInventoryEO::getDesignStatus,DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
designTaskInventoryQueryWrap.lambda().in(ProjectTaskInventoryEO::getProjectLawsInventoryId,projectLawsInventoryIdList);
List<ProjectTaskInventoryEO> designTaskInventoryList = this.projectTaskInventoryEOService.list(designTaskInventoryQueryWrap);
params.put("designTaskInventoryListSize",designTaskInventoryList.size());
if(CollectionUtils.isNotEmpty(designTaskInventoryList)){
// 将数据在任务清单中的状态,同步更新到法规清单中
List<ProjectLawsInventoryEO> updateLawsInventoryDesignStatusList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOList) {
for (ProjectTaskInventoryEO projectTaskInventoryEO : designTaskInventoryList) {
if(StringUtils.equals(projectLawsInventoryEO.getId(),projectTaskInventoryEO.getProjectLawsInventoryId())){
projectLawsInventoryEO.setDesignFlowStatus(projectTaskInventoryEO.getDesignFlowTaskStatus());
updateLawsInventoryDesignStatusList.add(projectLawsInventoryEO);
break;
}
}
}
if (CollectionUtils.isNotEmpty(updateLawsInventoryDesignStatusList)) {
params.put("更新法规清单设计符合性流程状态条数",updateLawsInventoryDesignStatusList.size());
this.projectLawsInventoryEOService.updateBatchById(updateLawsInventoryDesignStatusList);
}
List<String> designPIdList = designTaskInventoryList.stream().map(ProjectTaskInventoryEO::getDesignPId).distinct().collect(Collectors.toList());
QueryWrapper<ProcessHistoryEO> piQueryWrap = new QueryWrapper<>();
piQueryWrap.lambda().in(ProcessHistoryEO::getActiProcInstId,designPIdList);
List<ProcessHistoryEO> designProcessHistoryEOList = processHistoryEOList.stream().filter(processHistoryEO -> {
boolean flag = false;
for (String designPId : designPIdList) {
if (StringUtils.equals(designPId,processHistoryEO.getActiProcInstId())) {
flag = true;
break;
}
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(designProcessHistoryEOList)){
// 将之前的 任务创建节点的历史记录逻辑删除掉。
List<ProcessHistoryEO> deleteProcessHistoryEOList = designProcessHistoryEOList.stream().filter(processHistoryEO -> {
boolean flag = false;
if (StringUtils.equals(processHistoryEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.TASK_CREATION.getKey())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(deleteProcessHistoryEOList)){
deleteProcessHistoryEOList.forEach(processHistoryEO -> {
if(!StringUtils.contains(processHistoryEO.getActiProcInstId(),"(删除)")){
processHistoryEO.setActiProcInstId(processHistoryEO.getActiProcInstId() + "(删除)");
}
});
this.processHistoryEOService.updateBatchById(deleteProcessHistoryEOList);
}
}
// 删除发起流程节点的历史信息。
QueryWrapper<ProcessHistoryEO> removePHWarp = new QueryWrapper<>();
List<String> taskDefinitionKeyList = new ArrayList<>();
taskDefinitionKeyList.add(VerifyComplianceFlowNodeKeyEnum.FQLC.getValue());
taskDefinitionKeyList.add(VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue());
removePHWarp.lambda().in(ProcessHistoryEO::getTaskDefinitionKey,taskDefinitionKeyList);
removePHWarp.lambda().in(ProcessHistoryEO::getActiProcInstId,designPIdList);
List<ProcessHistoryEO> remvovePhList = this.processHistoryEOService.list(removePHWarp);
params.put("设计符合性发起流程、责任人确认节点删除条数",remvovePhList.size());
if (CollectionUtils.isNotEmpty(remvovePhList)) {
List<String> idList = remvovePhList.stream().map(ProcessHistoryEO::getId).distinct().collect(Collectors.toList());
this.processHistoryEOService.deleteByIds(idList);
}
List<ProcessHistoryEO> updateProcessHistoryEOInfoList = new ArrayList<>();
// 设置设计符合性流程,发起流程节点历史信息。
for (ProjectTaskInventoryEO designTaskInventory : designTaskInventoryList) {
String projectLawsInventoryId = designTaskInventory.getProjectLawsInventoryId();
String designPId = designTaskInventory.getDesignPId();
List<ProjectLawsInventoryEO> projectLawsInventoryEOListTemp = projectLawsInventoryEOList.stream().filter(lawsInventoryEO -> {
boolean flag = false;
if (StringUtils.equals(lawsInventoryEO.getId(), projectLawsInventoryId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOListTemp)){
ProjectLawsInventoryEO projectLawsInventoryEO = projectLawsInventoryEOListTemp.get(0);
List<ProcessInfoEO> processInfoEOList = rwqrProcessInfoEOList.stream().filter(rwqrProcessInfo -> {
boolean flag = false;
if (StringUtils.equals(rwqrProcessInfo.getProjectLawsInventoryId(), projectLawsInventoryId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(processInfoEOList)){
ProcessInfoEO rwqrProcessInfoEO = processInfoEOList.get(0);
String projectLibraryId = projectLawsInventoryEO.getProjectLibraryId();
List<ProjectLibraryBase> projectLibraryBaseEOListTemp = projectLibraryBaseList.stream().filter(projectLibraryBase -> {
boolean flag = false;
if (StringUtils.equals(projectLibraryBase.getId(), projectLibraryId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(projectLibraryBaseEOListTemp)){
ProjectLibraryBase projectLibraryBaseEO = projectLibraryBaseEOListTemp.get(0);
String studioEngineer = projectLibraryBaseEO.getStudioEngineer();
ProcessHistoryEO addProcessHistoryEO = new ProcessHistoryEO();
addProcessHistoryEO.setActiProcInstId(designPId);
addProcessHistoryEO.setTaskDefinitionKey(DesignComplianceFlowNodeKeyEnum.FQLC.getValue());
addProcessHistoryEO.setProjectLawsInventoryId(projectLawsInventoryId);
// 获取当前法规清单数据 在走任务确认流程的时候信息。
addProcessHistoryEO.setAssignee(studioEngineer);
addProcessHistoryEO.setOperatorPersonId(studioEngineer);
// 获取任务确认第一步发起时的信息
String rwqrActiProcInstId = rwqrProcessInfoEO.getActiProcInstId();
List<ProcessInfoDetailEO> rwqrProcessInfoDetailEOList = processInfoDetailEOList.stream().filter(processInfoDetailEO -> {
boolean flag = false;
if (StringUtils.equals(processInfoDetailEO.getActiProcInstId(), rwqrActiProcInstId) && processInfoDetailEO.getSubmitTime() != null) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(rwqrProcessInfoDetailEOList)){
Collections.sort(rwqrProcessInfoDetailEOList, new Comparator<ProcessInfoDetailEO>() {
@Override
public int compare(ProcessInfoDetailEO p1, ProcessInfoDetailEO p2) {
if(p1.getSubmitTime() != null && p2.getSubmitTime() != null){
return p1.getSubmitTime().compareTo(p2.getSubmitTime());
}
return 1;
}
});
addProcessHistoryEO.setCreateTime(rwqrProcessInfoDetailEOList.get(0).getSubmitTime());
addProcessHistoryEOList.add(addProcessHistoryEO);
}
}
// 获取任务确认最后一步提交的时候的信息,设置为"任务责任确认"节点信息。
String rwqrActiProcInstId = rwqrProcessInfoEO.getActiProcInstId();
List<ProcessInfoDetailEO> rwqrProcessInfoDetailEOList = processInfoDetailEOList.stream().filter(processInfoDetailEO -> {
boolean flag = false;
if (StringUtils.equals(processInfoDetailEO.getActiProcInstId(), rwqrActiProcInstId) && processInfoDetailEO.getSubmitTime() != null) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(rwqrProcessInfoDetailEOList)){
Collections.sort(rwqrProcessInfoDetailEOList, new Comparator<ProcessInfoDetailEO>() {
@Override
public int compare(ProcessInfoDetailEO p1, ProcessInfoDetailEO p2) {
if(p1.getSubmitTime() != null && p2.getSubmitTime() != null){
return p2.getSubmitTime().compareTo(p1.getSubmitTime());
}
return 1;
}
});
ProcessInfoDetailEO processInfoDetailEO = rwqrProcessInfoDetailEOList.get(0);
ProcessHistoryEO addProcessHistoryEO = new ProcessHistoryEO();
addProcessHistoryEO.setActiProcInstId(designPId);
addProcessHistoryEO.setTaskDefinitionKey(DesignComplianceFlowNodeKeyEnum.ZRRQR.getValue());
addProcessHistoryEO.setProjectLawsInventoryId(projectLawsInventoryId);
// 获取当前法规清单数据 在走任务确认流程的时候信息。
addProcessHistoryEO.setAssignee(processInfoDetailEO.getUserId());
addProcessHistoryEO.setOperatorPersonId(processInfoDetailEO.getUserId());
addProcessHistoryEO.setCreateTime(processInfoDetailEO.getSubmitTime());
String approvalFiles = projectTaskInventoryFeedbackEOList.stream().filter(ptifEO -> {
boolean flag = false;
if (StringUtils.equals(ptifEO.getActiProcInstId(), designPId) && StringUtils.isNotEmpty(ptifEO.getFileId())) {
flag = true;
}
return flag;
}).map(ProjectTaskInventoryFeedbackEO::getFileId).collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(approvalFiles)){
addProcessHistoryEO.setApprovalFile(approvalFiles);
}
addProcessHistoryEOList.add(addProcessHistoryEO);
}
}
}
List<ProcessHistoryEO> processHistoryEOListTemp = processHistoryEOList.stream().filter(processHistoryEO -> {
boolean flag = false;
if (StringUtils.equals(processHistoryEO.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue())
&& StringUtils.equals(processHistoryEO.getActiProcInstId(), designPId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(processHistoryEOListTemp)){
ProcessHistoryEO updateApprovalFileEo = processHistoryEOListTemp.get(0);
String approvalFiles = projectTaskInventoryFeedbackEOList.stream().filter(ptifEO -> {
boolean flag = false;
if (StringUtils.equals(ptifEO.getActiProcInstId(), designPId) && StringUtils.isNotEmpty(ptifEO.getFileId())) {
flag = true;
}
return flag;
}).map(ProjectTaskInventoryFeedbackEO::getFileId).collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(approvalFiles)){
// 获取这个流程的 符合性确认节点信息,将之前工程交付的附件设置进去 zrrtjjfw
updateApprovalFileEo.setApprovalFile(approvalFiles);
updateProcessHistoryEOInfoList.add(updateApprovalFileEo);
}
}
}
if(CollectionUtils.isNotEmpty(updateProcessHistoryEOInfoList)){
log.debug("验证符合性需要更新的附件 " + updateProcessHistoryEOInfoList.size() + "");
this.processHistoryEOService.updateBatchById(updateProcessHistoryEOInfoList);
}
}
// 2.处理已经完成的验证符合性流程历史
QueryWrapper<ProjectTaskInventoryEO> verifyTaskInventoryQueryWrap = new QueryWrapper<>();
verifyTaskInventoryQueryWrap.isNotNull("verify_p_id");
verifyTaskInventoryQueryWrap.lambda().eq(ProjectTaskInventoryEO::getVerifyStatus,DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
verifyTaskInventoryQueryWrap.lambda().in(ProjectTaskInventoryEO::getProjectLawsInventoryId,projectLawsInventoryIdList);
List<ProjectTaskInventoryEO> verifyTaskInventoryList = this.projectTaskInventoryEOService.list(verifyTaskInventoryQueryWrap);
params.put("verifyTaskInventoryListSize",verifyTaskInventoryList.size());
if(CollectionUtils.isNotEmpty(verifyTaskInventoryList)){
// 将数据在任务清单中的状态,同步更新到法规清单中
List<ProjectLawsInventoryEO> updateLawsInventoryVerifyStatusList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOList) {
for (ProjectTaskInventoryEO projectTaskInventoryEO : verifyTaskInventoryList) {
if(StringUtils.equals(projectLawsInventoryEO.getId(),projectTaskInventoryEO.getProjectLawsInventoryId())){
projectLawsInventoryEO.setVerifyFlowStatus(projectTaskInventoryEO.getVerifyFlowTaskStatus());
updateLawsInventoryVerifyStatusList.add(projectLawsInventoryEO);
break;
}
}
}
if (CollectionUtils.isNotEmpty(updateLawsInventoryVerifyStatusList)) {
params.put("更新法规清单验证符合性流程状态条数",updateLawsInventoryVerifyStatusList.size());
this.projectLawsInventoryEOService.updateBatchById(updateLawsInventoryVerifyStatusList);
}
List<String> verifyPIdList = verifyTaskInventoryList.stream().map(ProjectTaskInventoryEO::getVerifyPId).distinct().collect(Collectors.toList());
QueryWrapper<ProcessHistoryEO> piQueryWrap = new QueryWrapper<>();
piQueryWrap.lambda().in(ProcessHistoryEO::getActiProcInstId,verifyPIdList);
List<ProcessHistoryEO> verifyProcessHistoryEOList = processHistoryEOList.stream().filter(processHistoryEO -> {
boolean flag = false;
for (String verifyPId : verifyPIdList) {
if (StringUtils.equals(verifyPId,processHistoryEO.getActiProcInstId())) {
flag = true;
break;
}
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(verifyProcessHistoryEOList)){
// 将之前的 任务创建节点的历史记录逻辑删除掉。
List<ProcessHistoryEO> deleteProcessHistoryEOList = verifyProcessHistoryEOList.stream().filter(processHistoryEO -> {
boolean flag = false;
if (StringUtils.equals(processHistoryEO.getTaskDefinitionKey(), DesignComplianceNodeEnum.TASK_CREATION.getKey())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(deleteProcessHistoryEOList)){
deleteProcessHistoryEOList.forEach(processHistoryEO -> {
if(!StringUtils.contains(processHistoryEO.getActiProcInstId(),"(删除)")){
processHistoryEO.setActiProcInstId(processHistoryEO.getActiProcInstId() + "(删除)");
}
});
this.processHistoryEOService.updateBatchById(deleteProcessHistoryEOList);
}
}
// 删除发起流程节点的历史信息。
QueryWrapper<ProcessHistoryEO> removePHWarp = new QueryWrapper<>();
List<String> taskDefinitionKeyList = new ArrayList<>();
taskDefinitionKeyList.add(VerifyComplianceFlowNodeKeyEnum.FQLC.getValue());
taskDefinitionKeyList.add(VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue());
removePHWarp.lambda().in(ProcessHistoryEO::getTaskDefinitionKey,taskDefinitionKeyList);
removePHWarp.lambda().in(ProcessHistoryEO::getActiProcInstId,verifyPIdList);
List<ProcessHistoryEO> remvovePhList = this.processHistoryEOService.list(removePHWarp);
params.put("验证符合性发起流程、责任人确认节点删除条数",remvovePhList.size());
if (CollectionUtils.isNotEmpty(remvovePhList)) {
List<String> idList = remvovePhList.stream().map(ProcessHistoryEO::getId).distinct().collect(Collectors.toList());
this.processHistoryEOService.deleteByIds(idList);
}
List<ProcessHistoryEO> updateProcessHistoryEOInfoList = new ArrayList<>();
// 设置验证符合性流程,发起流程节点历史信息。
for (ProjectTaskInventoryEO verifyTaskInventory : verifyTaskInventoryList) {
String projectLawsInventoryId = verifyTaskInventory.getProjectLawsInventoryId();
String verifyPId = verifyTaskInventory.getVerifyPId();
List<ProjectLawsInventoryEO> projectLawsInventoryEOListTemp = projectLawsInventoryEOList.stream().filter(lawsInventoryEO -> {
boolean flag = false;
if (StringUtils.equals(lawsInventoryEO.getId(), projectLawsInventoryId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOListTemp)){
ProjectLawsInventoryEO projectLawsInventoryEO = projectLawsInventoryEOListTemp.get(0);
List<ProcessInfoEO> processInfoEOList = rwqrProcessInfoEOList.stream().filter(rwqrProcessInfo -> {
boolean flag = false;
if (StringUtils.equals(rwqrProcessInfo.getProjectLawsInventoryId(), projectLawsInventoryId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(processInfoEOList)){
ProcessInfoEO rwqrProcessInfoEO = processInfoEOList.get(0);
String projectLibraryId = projectLawsInventoryEO.getProjectLibraryId();
List<ProjectLibraryBase> projectLibraryBaseEOListTemp = projectLibraryBaseList.stream().filter(projectLibraryBase -> {
boolean flag = false;
if (StringUtils.equals(projectLibraryBase.getId(), projectLibraryId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(projectLibraryBaseEOListTemp)){
ProjectLibraryBase projectLibraryBaseEO = projectLibraryBaseEOListTemp.get(0);
String studioEngineer = projectLibraryBaseEO.getStudioEngineer();
ProcessHistoryEO addProcessHistoryEO = new ProcessHistoryEO();
addProcessHistoryEO.setActiProcInstId(verifyPId);
addProcessHistoryEO.setTaskDefinitionKey(VerifyComplianceFlowNodeKeyEnum.FQLC.getValue());
addProcessHistoryEO.setProjectLawsInventoryId(projectLawsInventoryId);
// 获取当前法规清单数据 在走任务确认流程的时候信息。
addProcessHistoryEO.setAssignee(studioEngineer);
addProcessHistoryEO.setOperatorPersonId(studioEngineer);
// 获取任务确认第一步发起时的信息
String rwqrActiProcInstId = rwqrProcessInfoEO.getActiProcInstId();
List<ProcessInfoDetailEO> rwqrProcessInfoDetailEOList = processInfoDetailEOList.stream().filter(processInfoDetailEO -> {
boolean flag = false;
if (StringUtils.equals(processInfoDetailEO.getActiProcInstId(), rwqrActiProcInstId) && processInfoDetailEO.getSubmitTime() != null) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(rwqrProcessInfoDetailEOList)){
Collections.sort(rwqrProcessInfoDetailEOList, new Comparator<ProcessInfoDetailEO>() {
@Override
public int compare(ProcessInfoDetailEO p1, ProcessInfoDetailEO p2) {
if(p1.getSubmitTime() != null && p2.getSubmitTime() != null){
return p1.getSubmitTime().compareTo(p2.getSubmitTime());
}
return 1;
}
});
addProcessHistoryEO.setCreateTime(rwqrProcessInfoDetailEOList.get(0).getSubmitTime());
addProcessHistoryEOList.add(addProcessHistoryEO);
}
}
// 获取任务确认最后一步提交的时候的信息,设置为"任务责任确认"节点信息。
String rwqrActiProcInstId = rwqrProcessInfoEO.getActiProcInstId();
List<ProcessInfoDetailEO> rwqrProcessInfoDetailEOList = processInfoDetailEOList.stream().filter(processInfoDetailEO -> {
boolean flag = false;
if (StringUtils.equals(processInfoDetailEO.getActiProcInstId(), rwqrActiProcInstId) && processInfoDetailEO.getSubmitTime() != null) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(rwqrProcessInfoDetailEOList)){
Collections.sort(rwqrProcessInfoDetailEOList, new Comparator<ProcessInfoDetailEO>() {
@Override
public int compare(ProcessInfoDetailEO p1, ProcessInfoDetailEO p2) {
if(p1.getSubmitTime() != null && p2.getSubmitTime() != null){
return p2.getSubmitTime().compareTo(p1.getSubmitTime());
}
return 1;
}
});
ProcessInfoDetailEO processInfoDetailEO = rwqrProcessInfoDetailEOList.get(0);
ProcessHistoryEO addProcessHistoryEO = new ProcessHistoryEO();
addProcessHistoryEO.setActiProcInstId(verifyPId);
addProcessHistoryEO.setTaskDefinitionKey(VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue());
addProcessHistoryEO.setProjectLawsInventoryId(projectLawsInventoryId);
// 获取当前法规清单数据 在走任务确认流程的时候信息。
addProcessHistoryEO.setAssignee(processInfoDetailEO.getUserId());
addProcessHistoryEO.setOperatorPersonId(processInfoDetailEO.getUserId());
addProcessHistoryEO.setCreateTime(processInfoDetailEO.getSubmitTime());
addProcessHistoryEOList.add(addProcessHistoryEO);
}
}
}
List<ProcessHistoryEO> processHistoryEOListTemp = processHistoryEOList.stream().filter(processHistoryEO -> {
boolean flag = false;
if (StringUtils.equals(processHistoryEO.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue())
&& StringUtils.equals(processHistoryEO.getActiProcInstId(), verifyPId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(processHistoryEOListTemp)){
ProcessHistoryEO updateApprovalFileEo = processHistoryEOListTemp.get(0);
String approvalFiles = projectTaskInventoryFeedbackEOList.stream().filter(ptifEO -> {
boolean flag = false;
if (StringUtils.equals(ptifEO.getActiProcInstId(), verifyPId) && StringUtils.isNotEmpty(ptifEO.getFileId())) {
flag = true;
}
return flag;
}).map(ProjectTaskInventoryFeedbackEO::getFileId).collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(approvalFiles)){
// 获取这个流程的 符合性确认节点信息,将之前工程交付的附件设置进去 zrrtjjfw
updateApprovalFileEo.setApprovalFile(approvalFiles);
updateProcessHistoryEOInfoList.add(updateApprovalFileEo);
}
}
}
if(CollectionUtils.isNotEmpty(updateProcessHistoryEOInfoList)){
log.debug("验证符合性需要更新的附件 " + updateProcessHistoryEOInfoList.size() + "");
this.processHistoryEOService.updateBatchById(updateProcessHistoryEOInfoList);
}
}
if(CollectionUtils.isNotEmpty(addProcessHistoryEOList)){
long countFqlc = addProcessHistoryEOList.stream().filter(history -> {
boolean flag = StringUtils.equals(history.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.FQLC.getValue());
return flag;
}).collect(Collectors.toList()).stream().count();
log.debug("发起流程节点总共添加 " + countFqlc + "");
params.put("发起流程条数",countFqlc);
long countZrrqr = addProcessHistoryEOList.stream().filter(history -> {
boolean flag = StringUtils.equals(history.getTaskDefinitionKey(), VerifyComplianceFlowNodeKeyEnum.ZRRQR.getValue());
return flag;
}).collect(Collectors.toList()).stream().count();
log.debug("责任人确认节点总共添加 " + countZrrqr + "");
params.put("责任人确认节点条数",countZrrqr);
this.processHistoryEOService.saveBatch(addProcessHistoryEOList);
}
return Result.OK("处理数据成功",params);
}
}