Merge remote-tracking branch 'origin/fourthStage' into fourthStage

This commit is contained in:
yjz
2024-01-30 15:50:22 +08:00
18 changed files with 95 additions and 49 deletions
@@ -109,6 +109,8 @@ public class ProcessEsAbolishServiceImpl extends ServiceImpl<ProcessEsAbolishMap
// 强制撤回
commonVO.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ABOLISH, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -159,7 +159,7 @@ public class ProcessEsAnnualInit implements Serializable {
/**
* 企标体系
*/
@Excel(name = "*标准体系", width = 25, orderNum = "7")
@Excel(name = "标准体系", width = 25, orderNum = "7")
@Dict(dictTable = "laws_tree_node", dicCode = "id", dicText = "node_name")
@ApiModelProperty(value = "企标体系")
private String enStandardSystem;
@@ -246,7 +246,7 @@ public class ProcessEsAnnualInit implements Serializable {
/**
* 零部件名称
*/
@Excel(name = "*零部件名称", width = 15, orderNum = "13")
@Excel(name = "零部件名称", width = 15, orderNum = "13")
@Dict(dictTable = "laws_part_name", dicCode = "code", dicText = "name")
@ApiModelProperty(value = "零部件名称")
private String componentName;
@@ -254,7 +254,7 @@ public class ProcessEsAnnualInit implements Serializable {
/**
* 授权部门
*/
@Excel(name = "*授权部门", width = 15, orderNum = "14")
@Excel(name = "授权部门", width = 15, orderNum = "14")
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
@ApiModelProperty(value = "授权部门")
private String authDept;
@@ -132,6 +132,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
// 强制撤回
commonVO.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -525,14 +527,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
}
private void cleanData(List<ProcessEsAnnualInit> list) {
// List<String> originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList());
// LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList);
// List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(esWrapper);
// // 转换成key为企标编号的map
// Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item));
list.forEach(item -> {
// 如果是制定则去除掉所有的原企标名称 原企标编号
if (ESPProjectType.ENACT.getValue().equals(item.getProjectType())) {
@@ -567,10 +561,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
item.setContactUser(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getContactUser(), listDict));
item.setStandardType(excelUtils.translateDictValue("esp_standard_type", item.getStandardType(), listDict));
item.setEnStandardClassification(excelUtils.translateDictValue("standard_grade_classify", item.getEnStandardClassification(), listDict));
item.setComponentName(excelUtils.translateDictValue("part_name", item.getComponentName(), listDict));
item.setDraftPlannedCompleteDate(importUtil.convertDate(item.getDraftPlannedCompleteDateString()));
item.setSolicitationDraftPlanCompleteDate(importUtil.convertDate(item.getSolicitationDraftPlanCompleteDateString()));
item.setPlanApprovalDate(importUtil.convertDate(item.getPlanApprovalDateString()));
item.setComponentName(excelUtils.translateDictValue("name", "code", "laws_part_name", item.getComponentName(), listDict));
});
}
@@ -616,11 +610,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
// 检查制修订类型 编号 名称
errMsg.append(validProjectType(plan, listDict, esList));
// 检查标准等级分类和授权部门
errMsg.append(excelUtils.validAuthDept(authDept, listDict, standardClassification, authDeptMap));
errMsg.append(excelUtils.validAuthDept(authDept, listDict, mainDraftingUnit, standardClassification, authDeptMap, false));
// 检查所有数据字典校验的字段
errMsg.append(excelUtils.validCooperateUnit(cooperationUnit, listDict));
errMsg.append(excelUtils.validMainDraftingUser(mainDraftingUser, listDict));
errMsg.append(excelUtils.validMainDraftingUnit(mainDraftingUnit, listDict));
errMsg.append(excelUtils.validMainDraftingUnitResponsiblePerson(mainDraftingUnitResponsiblePerson, listDict));
errMsg.append(excelUtils.validStandardPromoter(standardPromoter, listDict));
errMsg.append(excelUtils.validStandardSystem(standardSystem, listDict, false));
@@ -179,7 +179,7 @@ public class ProcessEsAnnualReport implements Serializable {
/**
* 企标等级分类
*/
@Excel(name = "*标准等级分类", width = 15, orderNum = "10")
@Excel(name = "标准等级分类", width = 15, orderNum = "10")
@Dict(dicCode = "standard_grade_classify")
@ApiModelProperty(value = "企标等级分类")
private String enStandardClassification;
@@ -235,6 +235,7 @@ public class ProcessEsAnnualReport implements Serializable {
/**
* 零部件名称
*/
@Dict(dictTable = "laws_part_name", dicCode = "code", dicText = "name")
@ApiModelProperty(value = "零部件名称")
private String componentName;
/**
@@ -315,7 +316,7 @@ public class ProcessEsAnnualReport implements Serializable {
/**
* 授权部门
*/
@Excel(name = "*授权部门", width = 15, orderNum = "5")
@Excel(name = "授权部门", width = 15, orderNum = "5")
@Dict(dictTable = "sys_depart", dicCode = "id", dicText = "depart_name")
@ApiModelProperty(value = "授权部门")
private String authDept;
@@ -128,6 +128,8 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
// 强制撤回
commonVO.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ANNUAL_REPORT, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -427,14 +429,6 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
}
private void cleanData(List<ProcessEsAnnualReport> list) {
// List<String> originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList());
//
// LambdaQueryWrapper<LawsEnterpriseStandard> esWrapper = new LambdaQueryWrapper<>();
// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList);
// List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(esWrapper);
// // 转换成key为企标编号的map
// Map<String, LawsEnterpriseStandard> esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item));
list.forEach(item -> {
// 如果是制定则去除掉所有的原企标名称 原企标编号
if (ESPProjectType.ENACT.getValue().equals(item.getProjectType())) {
@@ -472,6 +466,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
item.setDraftPlannedCompleteDate(importUtil.convertDate(item.getDraftPlannedCompleteDateString()));
item.setSolicitationDraftPlanCompleteDate(importUtil.convertDate(item.getSolicitationDraftPlanCompleteDateString()));
item.setPlanApprovalDate(importUtil.convertDate(item.getPlanApprovalDateString()));
item.setComponentName(excelUtils.translateDictValue("name", "code", "laws_part_name", item.getComponentName(), listDict));
});
}
@@ -507,6 +502,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
String draftPlannedCompleteDateString = plan.getDraftPlannedCompleteDateString();
String solicitationDraftPlanCompleteDateString = plan.getSolicitationDraftPlanCompleteDateString();
String planApprovalDateString = plan.getPlanApprovalDateString();
String partName = plan.getComponentName();
StringBuilder errMsgHeader = new StringBuilder();
StringBuilder errMsg = new StringBuilder();
@@ -515,11 +511,10 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
// 检查制修订类型 编号 名称
errMsg.append(validProjectType(plan, listDict, esList));
// 检查标准等级分类和授权部门
errMsg.append(excelUtils.validAuthDept(authDept, listDict, standardClassification, authDeptMap));
errMsg.append(excelUtils.validAuthDept(authDept, listDict, mainDraftingUnit, standardClassification, authDeptMap, false));
// 检查所有数据字典校验的字段
errMsg.append(excelUtils.validCooperateUnit(cooperationUnit, listDict));
errMsg.append(excelUtils.validMainDraftingUser(mainDraftingUser, listDict));
errMsg.append(excelUtils.validMainDraftingUnit(mainDraftingUnit, listDict));
errMsg.append(excelUtils.validMainDraftingUnitResponsiblePerson(mainDraftingUnitResponsiblePerson, listDict));
errMsg.append(excelUtils.validStandardPromoter(standardPromoter, listDict));
errMsg.append(excelUtils.validWorkGroup(workGroup, listDict));
@@ -528,6 +523,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
errMsg.append(excelUtils.validSingleDateMustInputNotBeforeToday(draftPlannedCompleteDateString, "草稿计划完成日期"));
errMsg.append(excelUtils.validSingleDateMustInputNotBeforeToday(solicitationDraftPlanCompleteDateString, "征求意见稿计划完成日期"));
errMsg.append(excelUtils.validSingleDateMustInputNotBeforeToday(planApprovalDateString, "计划报批日期"));
errMsg.append(excelUtils.validPartName(partName, listDict, false));
// 如果数据有问题,则将提示信息添加到 errorMsgs 中
if (errMsg.length() > 0) {
errorMsgs.add(errMsgHeader.append(errMsg).toString());
@@ -112,6 +112,8 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
// 强制撤回
common.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_ARCHIVE, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(common, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -125,6 +125,8 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
// 强制撤回
common.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_CHANGE, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(common, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -108,6 +108,8 @@ public class ProcessEsEnableServiceImpl extends ServiceImpl<ProcessEsEnableMappe
// 强制撤回
common.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_ENABLE, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(common, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -138,6 +138,8 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
// 强制撤回
commonVO.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_INIT_CHANGE, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -104,6 +104,8 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
// 强制撤回
common.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(common, ProcessTypeEnum.ES_RECHECK, jsonData);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(common, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
// 根据流程实例id更新流程总表
@@ -149,6 +149,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
Date dueTime = commonVO.getDueTime();
Integer prcType = ProcessTypeEnum.ES_REVISION.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, true);
// 自动完成第一个任务
actFlowCommonService.completeTask(taskId, userId);
}
@@ -14,6 +14,8 @@ import java.util.List;
public interface ProcessProjectStandardTermMapper extends BaseMapper<ProcessProjectStandardTerm> {
List<ProcessProjectStandardTerm> getByResponsibleUnitLeader(@Param("processId") String processId, @Param("originUserId") String originUserId, @Param("hasModuleOwner") Boolean hasModuleOwner);
List<ProcessProjectStandardTerm> getByResponsibleUnitLeaderSp(@Param("processId") String processId, @Param("originUserId") String originUserId);
List<ProcessProjectStandardTerm> getByModuleOwner(@Param("processId") String processId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId, @Param("hasDesignEngineer") Boolean hasDesignEngineer);
List<ProcessProjectStandardTerm> getByRejectModuleOwner(@Param("processId") String processId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId);
@@ -59,6 +59,21 @@
and ppstu.id is not null
</select>
<select id="getByResponsibleUnitLeaderSp" resultMap="BaseResultMap">
select
group_concat(ppstu.module_owner) module_owner,
<include refid="Base_Column_List">
<property name="alias" value="ppst"/>
</include>
from process_project_standard_term ppst
left join process_project_standard_term_user ppstu on ppst.id = ppstu.term_id
where ppst.process_id = #{processId}
and ppstu.responsible_unit_leader = #{originUserId}
and ppstu.module_owner is not null
and ppstu.id is not null
group by ppst.id
</select>
<select id="getByModuleOwner" resultMap="BaseResultMap">
select
ppstu.id term_user_id,
@@ -43,6 +43,9 @@
<if test="termUser.id != null and termUser.id != ''">
and ppstu.term_id = #{termUser.id}
</if>
<if test="termUser.responsibleUnitLeader != null and termUser.responsibleUnitLeader != ''">
and ppstu.responsible_unit_leader = #{termUser.responsibleUnitLeader}
</if>
<if test="termUser.userName != null and termUser.userName != ''">
and su.username like concat('%', #{termUser.userName}, '%')
</if>
@@ -173,7 +173,7 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
break;
//部所主管级领导审批
case ProcessProjectStandardCommon.BSZGJLDSP_:
processProjectStandardTermList = termMapper.getByResponsibleUnitLeader(processId, originUserId, true);
processProjectStandardTermList = termMapper.getByResponsibleUnitLeaderSp(processId, originUserId);
wrapper.eq(ProcessProjectStandardTermUser::getResponsibleUnitLeader, originUserId);
termUserList = termUserService.list(wrapper);
break;
@@ -199,26 +199,27 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
Map<String, List<ProcessProjectStandardTermUser>> termIdListMap = CollStreamUtil.groupByKey(termUserList, ProcessProjectStandardTermUser::getTermId);
for (ProcessProjectStandardTerm term : processProjectStandardTermList) {
String termId = term.getId();
String assessResults = term.getAssessResults();
if (termIdListMap.containsKey(termId)) {
List<ProcessProjectStandardTermUser> termUsers = termIdListMap.get(termId);
String assessResults = AssessCommon.NOT_INVOLVED;
String projectApprovalFlag = YesOrNoEnum.NO.getValue();
List<String> moduleOwnerList = new ArrayList<>();
List<String> responsibleUnitLeaderList = new ArrayList<>();
for (ProcessProjectStandardTermUser termUser : termUsers) {
moduleOwnerList.add(termUser.getModuleOwner());
responsibleUnitLeaderList.add(termUser.getResponsibleUnitLeader());
String assessResults1 = termUser.getAssessResults();
if (AssessCommon.NOT_COMPLIANT.equals(assessResults1)) {
assessResults = AssessCommon.NOT_COMPLIANT;
projectApprovalFlag = YesOrNoEnum.YES.getValue();
break;
if (!ProcessProjectStandardCommon.MKZRRSP_.equals(taskDefinitionKey)){
for (ProcessProjectStandardTermUser termUser : termUsers) {
moduleOwnerList.add(termUser.getModuleOwner());
responsibleUnitLeaderList.add(termUser.getResponsibleUnitLeader());
}
if (AssessCommon.ACCORD_WITH.equals(assessResults1)) {
List<String> assessResultList = CollStreamUtil.toList(termUsers, ProcessProjectStandardTermUser::getAssessResults);
if (assessResultList.contains(AssessCommon.NOT_COMPLIANT)){
assessResults = AssessCommon.NOT_COMPLIANT;
}else if (assessResultList.contains(AssessCommon.ACCORD_WITH)){
assessResults = AssessCommon.ACCORD_WITH;
projectApprovalFlag = YesOrNoEnum.NO.getValue();
}else {
assessResults = AssessCommon.NOT_INVOLVED;
}
}
if (ProcessProjectStandardCommon.BSZGJLDSP_.equals(taskDefinitionKey)){
List<String> userNameList = new ArrayList<>();
moduleOwnerList.stream()
@@ -238,10 +239,17 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
term.setResponsibleUnitLeader(String.join(",", userNameList));
}
term.setProjectApprovalFlag(projectApprovalFlag);
term.setAssessResults(assessResults);
term.setAssessResults_dictText(assessResultsMap.get(assessResults));
}
term.setAssessResults_dictText(assessResultsMap.get(assessResults));
String projectApprovalFlag;
if (AssessCommon.NOT_COMPLIANT.equals(assessResults)) {
projectApprovalFlag = YesOrNoEnum.YES.getValue();
}else {
projectApprovalFlag = YesOrNoEnum.NO.getValue();
}
term.setProjectApprovalFlag(projectApprovalFlag);
String modelSeries = term.getModelSeries();
term.setModelSeries_dictText(sysBaseAPI.translateByDictMap(modelSeriesDictMap,modelSeries));
String designEngineer = term.getDesignEngineer();
@@ -934,6 +942,10 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
public IPage<ProcessProjectStandardTermUser> getTermUserList(ProcessProjectStandardTermUser termUser, Integer pageNo, Integer pageSize) {
Page<ProcessProjectStandardTermUser> page = new Page<>(pageNo, pageSize);
Page<ProcessProjectStandardTermUser> pageList = termUserMapper.selectPageByUser(page, termUser);
for (ProcessProjectStandardTermUser record : pageList.getRecords()) {
String moduleOwner = record.getModuleOwner();
record.setModuleOwner(sysBaseAPI.translateUserRealNameFromTable(moduleOwner));
}
return pageList;
}
@@ -261,8 +261,11 @@ public class ExcelUtils {
return "";
}
public String validAuthDept(String authDept, List<SysDictItemCore> listDict,
String standardClassification, Map<String, List<String>> authDeptMap) {
public String validAuthDept(String authDept, List<SysDictItemCore> listDict, String mainDraftingUnit,
String standardClassification, Map<String, List<String>> authDeptMap, boolean mustInput) {
// 先校验主起草部门
this.validMainDraftingUnit(mainDraftingUnit, listDict);
if (StrUtil.isBlank(authDept) && StrUtil.isBlank(standardClassification)) {
return "";
}
@@ -280,7 +283,11 @@ public class ExcelUtils {
String level = translateDictValue("standard_grade_classify", standardClassification, listDict);
if (StrUtil.isBlank(authDept)) {
return "'授权部门'不能为空。";
if (mustInput) {
return "'授权部门'不能为空。";
} else {
return "";
}
}
// 检查授权部门
if (!excelUtils.validDict("depart_name", authDept, "sys_depart", "id", false, listDict)) {
@@ -288,11 +295,14 @@ public class ExcelUtils {
}
// 将授权部门转换为idList
String deptIds = excelUtils.translateDictValue("depart_name", "id", "sys_depart", authDept, listDict);
List<String> deptList = new ArrayList<>(Arrays.asList(deptIds.split(",")));
String mainDraftUnitId = excelUtils.translateDictValue("depart_name", "id", "sys_depart", mainDraftingUnit, listDict);
if (level.equals("2") || level.equals("3")) {
boolean isMatching = isMatchingAuthDept(
Arrays.asList(deptIds.split(",")),
level.equals("2") ? authDeptMap.get("1") : authDeptMap.get("2")
);
List<String> levelOneIds = authDeptMap.get("1");
levelOneIds.add(mainDraftUnitId);
List<String> levelTwoIds = authDeptMap.get("2");
levelTwoIds.add(mainDraftUnitId);
boolean isMatching = isMatchingAuthDept(deptList, level.equals("2") ? levelOneIds : levelTwoIds);
if (!isMatching) {
return "'授权部门'和'标准等级分类'不匹配。";
}
@@ -435,7 +445,7 @@ public class ExcelUtils {
}
}
// 检查工作组
if (!excelUtils.validDict("part_name", value, null, null, true, listDict)) {
if (!excelUtils.validDict("code", value, "laws_part_name", "name", true, listDict)) {
return "'零部件名称'无效。";
}
return "";