diff --git a/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java b/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java index 3313f039..87b30444 100644 --- a/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java +++ b/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java @@ -350,4 +350,5 @@ public interface ISysBaseAPI extends CommonAPI { */ List loadDictItemByKeyword(String dictCode, String keyword, Integer pageSize); + String translateByDictMap(Map dictMap, String keys); } diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java index 664548e8..95ee99ff 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/vo/ResultCommon.java @@ -6,7 +6,6 @@ package com.jero.common.api.vo; * @Description: 返回常量 */ public class ResultCommon { - private ResultCommon() {} /**操作成功*/ @@ -133,6 +132,16 @@ public class ResultCommon { */ public static final String EN_STANDARD_NUMBER_CONFLICT = "en.standard.number.conflict"; + /** + * 无效的企标计划 + */ + public static final String INVALID_ESP = "invalid.esp"; + + /** + * 不可以编辑废止或封存状态的企标 + */ + public static final String CAN_NOT_EDIT_ABOLISH_OR_ARCHIVE_ES = "can.not.edit.abolish.or.archive.es"; + // ---------项目合规评估流程--------- /** * 模块负责人不能为空 diff --git a/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java b/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java index 2796b28f..9c617f73 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/config/filter/csrf/CsrfFilter.java @@ -56,7 +56,7 @@ public class CsrfFilter implements Filter { String url = req.getRequestURL().toString(); // 获取来源 String referurl = req.getHeader("Referer"); - if(isWhiteReq(referurl) || Objects.equals(upgrade,"websocket") || url.contains("view")){ + if(isWhiteReq(referurl) || Objects.equals(upgrade,"websocket") || url.contains("view") || url.contains("doc.html")){ chain.doFilter(request, response); }else{ String log = ""; diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java index cf05517e..59f025ac 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java @@ -33,6 +33,7 @@ import com.jero.modules.system.mapper.*; import com.jero.modules.system.service.*; import com.jero.modules.system.util.SecurityUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.sequence.KeepCommand; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; @@ -1166,6 +1167,21 @@ public class SysBaseApiImpl implements ISysBaseAPI { return sysDictService.loadDict(dictCode, keyword, pageSize); } + @Override + public String translateByDictMap(Map dictMap, String keys) { + if (keys == null){ + return null; + } + String[] keyList = keys.split(","); + List resultList = new ArrayList<>(); + for (String key : keyList) { + if (dictMap.containsKey(key)){ + resultList.add(dictMap.get(key)); + } + } + return String.join(",",resultList); + } + @Override public Map> translateManyDict(String dictCodes, String keys) { List dictCodeList = Arrays.asList(dictCodes.split(",")); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java index f4e02906..fdfb8da6 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessApprovalRecord.java @@ -83,11 +83,11 @@ public class ProcessApprovalRecord { private String mesg; /** - * 完成注记(0未完成,1完成) + * 完成注记(1进行中,2已完成,3未处理,4已撤回) */ @Dict(dicCode = "prc_node_status") @TableField(value = "finish_flag") - @ApiModelProperty(value = "完成注记(1进行中,2已完成)") + @ApiModelProperty(value = "完成注记(1进行中,2已完成,3未处理,4已撤回)") private Integer finishFlag; /** @@ -98,7 +98,7 @@ public class ProcessApprovalRecord { private String projectId; /** - * 审批意见(0同意,1不同意) + * 审批意见(1通过,2驳回,3未处理) */ @Dict(dicCode = "commit_flag") @TableField(value = "commit_flag") @@ -186,4 +186,11 @@ public class ProcessApprovalRecord { */ @ApiModelProperty(value = "节点id") private String nodeId; + + /** + * 完成注记 搜索用 + */ + @TableField(exist = false) + @ApiModelProperty(value = "完成注记 搜索用") + private String finishFlagSearch; } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/FinishFlagEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/FinishFlagEnum.java index 37086187..bac9263d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/FinishFlagEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/FinishFlagEnum.java @@ -16,6 +16,7 @@ public enum FinishFlagEnum { INCOMPLETE("未完成", 1), COMPLETE("完成", 2), SUSPEND("暂停", 3), + WITHDRAWN("已撤回", 4) ; private String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java index 21130444..5c275958 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/enums/ProcessTypeEnum.java @@ -29,7 +29,7 @@ public enum ProcessTypeEnum { ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl"), ES_INSPECT_PLAN("企标稽查计划", 16, "com.jero.modules.activiti.process.esinspectplan.service.impl.EsInspectPlanFlow"), ES_INSPECT("企标稽查流程", 17, "com.jero.modules.activiti.process.esinspect.service.impl.EsInspectFlow"), - ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlowServiceImpl"), + ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlow"), ES_INSPECT_REPORT("企标稽查整改", 19, "com.jero.modules.activiti.process.esinspectrectify.service.impl.EsInspectRectifyFlow"), PERMISSION_APPLY_PROCESS("权限申请流程", 20, "com.jero.modules.activiti.process.espermissionapply.service.impl.EsPermissionApplyFlow"), STANDARD_DECLARE("标准宣贯流程", 21, "com.jero.modules.activiti.process.esdeclare.service.impl.EsDeclareFlow"), diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index 2deee254..f621a1a4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -138,10 +138,7 @@ public class MyGlobalEventListener implements ActivitiEventListener { approvalRecord.setUserId(assignee); approvalRecord.setOriginUserId(assignee); approvalRecord.setFinishFlag(FinishFlagEnum.INCOMPLETE.getValue()); - // 加一秒,解决流程审批信息发起节点和下一节点创建时间一致,排序错乱问题 - Date date = new Date(); - date.setTime(createTime.getTime() + 1000); - approvalRecord.setCreateTime(date); + approvalRecord.setCreateTime(createTime); approvalRecord.setNodeId(taskDefinitionKey); recordService.save(approvalRecord); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java index c1c98ba5..2996c481 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/service/ActFlowCommonService.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.entity.ProcessAll; @@ -15,6 +16,7 @@ import com.jero.modules.activiti.process.common.common.DraftCommon; import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.entity.StandTypeVO; +import com.jero.modules.activiti.process.common.enums.StandardStateEnum; import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO; @@ -25,6 +27,8 @@ import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.laws.common.util.CurrentUserUtil; import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan; import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RepositoryService; @@ -76,6 +80,9 @@ public class ActFlowCommonService { @Resource private IProcessHandleService processHandleService; + @Resource + private ILawsEnterpriseStandardService esService; + /** * 启动流程实例 */ @@ -474,4 +481,15 @@ public class ActFlowCommonService { processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO); return processInfoVO; } + + public void checkStandardState(String standardId) { + LawsEnterpriseStandard es = esService.getById(standardId); + if (es != null) { + String standardState = es.getStandardState(); + if (StandardStateEnum.ABOLISH.getStateValue().equals(standardState) || + StandardStateEnum.ARCHIVE.getStateValue().equals(standardState)) { + throw new JeroBootException(ResultCommon.CAN_NOT_EDIT_ABOLISH_OR_ARCHIVE_ES); + } + } + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index 27be26f2..9e4403d3 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -15,11 +15,9 @@ import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit; import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO; -import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitFlowUserVO; import com.jero.modules.activiti.process.esAnnualInit.service.ProcessEsAnnualInitService; import com.jero.modules.activiti.process.esAnnualInit.mapper.ProcessEsAnnualInitMapper; -import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive; -import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO; +import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; @@ -516,33 +514,42 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list) { - List originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList()); +// List originStandardNoList = list.stream().map(ProcessEsAnnualInit::getOriginEnStandardNo).collect(Collectors.toList()); - LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); - esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); - List esList = enterpriseStandardService.list(esWrapper); - // 转换成key为企标编号的map - Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); +// LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); +// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); +// List esList = enterpriseStandardService.list(esWrapper); +// // 转换成key为企标编号的map +// Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); list.forEach(item -> { // 如果是制定则去除掉所有的原企标名称 原企标编号 if (ESPProjectType.ENACT.getValue().equals(item.getProjectType())) { item.setOriginEnStandardName(null); item.setOriginEnStandardNo(null); + String decadeCode = item.getDecadeCode(); + if (StrUtil.isBlank(decadeCode)) { + // 获取当前年份 + Calendar date = Calendar.getInstance(); + String curYearNumber = String.valueOf(date.get(Calendar.YEAR)); + item.setDecadeCode(curYearNumber); + } // 设置变更状态 制定是新增 修订是变更 - item.setChangeStatus("1"); + item.setChangeStatus(ESPChangeType.ADD.getValue()); } else { - item.setChangeStatus("2"); - item.setOriginEnStandardNo(esMap.get(item.getOriginEnStandardNo()).getStandardName()); - item.setEnStandardCode(esMap.get(item.getOriginEnStandardNo()).getStandardCode()); - item.setEnNameCode(esMap.get(item.getOriginEnStandardNo()).getNameCode()); - item.setStandardCategoryCode(esMap.get(item.getOriginEnStandardNo()).getCategoryCode()); + item.setChangeStatus(ESPChangeType.CHANGE.getValue()); + } + // 如果标准等级分类是0级或3级,则需要将授权部门置空 + if (item.getEnStandardClassification().equals("1") || item.getEnStandardClassification().equals("4")) { + item.setAuthDept(null); } }); } private void transToDictValue(List list, List listDict) { list.forEach(item -> { + item.setProjectType(excelUtils.translateDictValue("esp_revision_type", item.getProjectType(), listDict)); + item.setEnStandardCode(excelUtils.translateDictValue("enterprise_standard_code", item.getEnStandardCode(), listDict)); item.setAuthDept(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getAuthDept(), listDict)); item.setCooperationUnit(excelUtils.translateDictValue("depart_name", "id", "sys_depart", item.getCooperationUnit(), listDict)); item.setMainDraftingUser(excelUtils.translateDictValue("CONCAT(realname, '(', username, ')')", "id", "sys_user", item.getMainDraftingUser(), listDict)); @@ -552,10 +559,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl validationList(List list, List listDict) { + // 找到各标准等级的授权部门 + Map> authDeptMap = excelUtils.getAllLevelAuthDeptMap(); + List esList = enterpriseStandardService.list(); List errorMsgs = new ArrayList<>(); @@ -587,7 +595,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl 0) { errorMsgs.add(errMsgHeader.append(errMsg).toString()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java index b247b658..ed7b6114 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualReport/service/impl/ProcessEsAnnualReportServiceImpl.java @@ -16,6 +16,7 @@ import com.jero.modules.activiti.process.esAnnualReport.entity.ProcessEsAnnualRe import com.jero.modules.activiti.process.esAnnualReport.entity.vo.AnnualReportDataVO; import com.jero.modules.activiti.process.esAnnualReport.mapper.ProcessEsAnnualReportMapper; import com.jero.modules.activiti.process.esAnnualReport.service.ProcessEsAnnualReportService; +import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPChangeType; import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectType; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; @@ -393,27 +394,34 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl list) { - List originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList()); - - LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); - esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); - List esList = enterpriseStandardService.list(esWrapper); - // 转换成key为企标编号的map - Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); +// List originStandardNoList = list.stream().map(ProcessEsAnnualReport::getOriginEnStandardNo).collect(Collectors.toList()); +// +// LambdaQueryWrapper esWrapper = new LambdaQueryWrapper<>(); +// esWrapper.in(LawsEnterpriseStandard::getStandardNumber, originStandardNoList); +// List esList = enterpriseStandardService.list(esWrapper); +// // 转换成key为企标编号的map +// Map esMap = esList.stream().collect(Collectors.toMap(LawsEnterpriseStandard::getStandardNumber, item -> item)); list.forEach(item -> { // 如果是制定则去除掉所有的原企标名称 原企标编号 if (ESPProjectType.ENACT.getValue().equals(item.getProjectType())) { item.setOriginEnStandardName(null); item.setOriginEnStandardNo(null); + String decadeCode = item.getDecadeCode(); + if (StrUtil.isBlank(decadeCode)) { + // 获取当前年份 + Calendar date = Calendar.getInstance(); + String curYearNumber = String.valueOf(date.get(Calendar.YEAR)); + item.setDecadeCode(curYearNumber); + } // 设置变更状态 制定是新增 修订是变更 - item.setChangeStatus("1"); + item.setChangeStatus(ESPChangeType.ADD.getValue()); } else { - item.setChangeStatus("2"); - item.setOriginEnStandardName(esMap.get(item.getOriginEnStandardNo()).getStandardName()); - item.setEnStandardCode(esMap.get(item.getOriginEnStandardNo()).getStandardCode()); - item.setEnNameCode(esMap.get(item.getOriginEnStandardNo()).getNameCode()); - item.setStandardCategoryCode(esMap.get(item.getOriginEnStandardNo()).getCategoryCode()); + item.setChangeStatus(ESPChangeType.CHANGE.getValue()); + } + // 如果标准等级分类是0级或3级,则需要将授权部门置空 + if (item.getEnStandardClassification().equals("1") || item.getEnStandardClassification().equals("4")) { + item.setAuthDept(null); } }); } @@ -428,8 +436,10 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl validationList(List list, List listDict) { + // 找到各标准等级的授权部门 + Map> authDeptMap = excelUtils.getAllLevelAuthDeptMap(); + List esList = enterpriseStandardService.list(); List errorMsgs = new ArrayList<>(); @@ -472,8 +485,9 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl 0) { errorMsgs.add(errMsgHeader.append(errMsg).toString()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java index 8aebe308..c72e5743 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/service/impl/ProcessEsChangeServiceImpl.java @@ -11,6 +11,7 @@ import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; +import com.jero.modules.activiti.process.common.enums.StandardStateEnum; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive; import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO; @@ -24,6 +25,8 @@ import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.service.ProcessNodeLinkService; +import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; +import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.sys.utils.UserUtils; import com.jero.modules.system.service.ISysUserDepartService; import lombok.extern.slf4j.Slf4j; @@ -163,7 +166,11 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl esInitChangeList = initChangeData.getDataList(); // 校验企标编号是否冲突 ProcessEsInitChange initChange = esInitChangeList.get(0); - // 如果是变更流程,则需要撤回制修订流程 if (ESPApplicationCategoryEnum.CHANGE.getValue().equals(initChange.getApplicationCategory())) { + // 如果是变更流程,则需要判断计划是否有效 + Set espIdSet = esInitChangeList.stream().map(ProcessEsInitChange::getEspId).collect(Collectors.toSet()); + List esplist = espService.list(new LambdaQueryWrapper().in(EnterpriseStandardPlan::getId, espIdSet)); + if (esplist == null || esplist.size() != espIdSet.size()) { + throw new JeroBootException(ResultCommon.INVALID_ESP); + } + // 如果是责任部门变更,需要判断计划是否已经逾期 + if (ESPProjectType.RESPONSIBLE_DEPT_CHANGE.getValue().equals(initChange.getProjectType())) { + for (EnterpriseStandardPlan esp : esplist) { + if (esp.getProjectStatus().equals(ESPProjectStatus.OVERDUE.getValue())) { + throw new JeroBootException(ResultCommon.INVALID_ESP); + } + } + } + // 如果是变更流程,则需要撤回制修订流程 List espIdList = initChangeData.getDataList().stream().map(ProcessEsInitChange::getEspId).collect(Collectors.toList()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.in(ProcessEsRevision::getEspId, espIdList); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java index afadc949..fcb80fd1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRecheck/service/impl/ProcessEsRecheckServiceImpl.java @@ -10,6 +10,7 @@ import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.entity.CommonVO; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; +import com.jero.modules.activiti.process.esChange.entity.ProcessEsChange; import com.jero.modules.activiti.process.esRecheck.entity.ProcessEsRecheck; import com.jero.modules.activiti.process.esRecheck.entity.vo.ESRecheckDataVO; import com.jero.modules.activiti.process.esRecheck.service.ProcessEsRecheckService; @@ -34,15 +35,15 @@ import java.util.*; import static com.jero.modules.activiti.process.esRecheck.entity.RecheckTaskNameConstant.*; /** -* @author ThinkBook -* @description 针对表【process_es_recheck(企业标准)】的数据库操作Service实现 -* @createDate 2023-10-29 21:00:54 -*/ + * @author ThinkBook + * @description 针对表【process_es_recheck(企业标准)】的数据库操作Service实现 + * @createDate 2023-10-29 21:00:54 + */ @Slf4j @Transactional(rollbackFor = JeroBootException.class) @Service public class ProcessEsRecheckServiceImpl extends ServiceImpl - implements ProcessEsRecheckService{ + implements ProcessEsRecheckService { @Resource private ActFlowCommonService actFlowCommonService; @@ -179,7 +180,11 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl() @@ -193,7 +200,8 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService { EsDeclareFlowVO esDeclareFlowVO = new EsDeclareFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java index 14597073..aecf3822 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java @@ -1,5 +1,8 @@ package com.jero.modules.activiti.process.esinspect.service.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -9,6 +12,7 @@ import com.jero.common.util.SnowflakeUtils; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; @@ -124,6 +128,9 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { // 更新流程总表信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT.getValue())); + processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); + DateTime date = DateUtil.date(); + processAll.setPrcNum(DateUtil.format(date, DatePattern.PURE_DATETIME_MS_PATTERN)); processAll.setCreateUserId(loginUser.getId()); processAllService.update(processAll, new LambdaUpdateWrapper() @@ -281,7 +288,8 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { EsInspectFlowVO esInspectFlowVO = new EsInspectFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java index d292de6e..3106a439 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java @@ -8,6 +8,7 @@ import com.jero.common.util.SnowflakeUtils; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; @@ -105,6 +106,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF // 更新流程总表信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT_DELAY_APPLY.getValue())); + + processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); processAll.setCreateUserId(loginUser.getId()); processAllService.update(processAll, new LambdaUpdateWrapper() @@ -193,7 +196,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO = new EsInspectDelayApplyFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index e5485ccc..95a0a51c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -1,5 +1,8 @@ package com.jero.modules.activiti.process.esinspectplan.service.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -12,6 +15,7 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNodeLink; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; @@ -122,6 +126,9 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { // 更新流程总表信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT_PLAN.getValue())); + DateTime date = DateUtil.date(); + processAll.setPrcNum(DateUtil.format(date, DatePattern.PURE_DATETIME_MS_PATTERN)); + processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); processAll.setCreateUserId(loginUser.getId()); processAllService.update(processAll, new LambdaUpdateWrapper() @@ -237,7 +244,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { EsInspectPlanFlowVO esInspectPlanFlowVO = new EsInspectPlanFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java index 8f75d6ee..ae783351 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/ProcessEsInspectPlanServiceImpl.java @@ -386,7 +386,7 @@ public class ProcessEsInspectPlanServiceImpl extends ServiceImpl() @@ -153,7 +160,8 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer EsInspectRectifyFlowVO esInspectReportFlowVO = new EsInspectRectifyFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java index 7efcf754..446c8c99 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java @@ -1,5 +1,8 @@ package com.jero.modules.activiti.process.espermissionapply.service.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -9,6 +12,7 @@ import com.jero.common.util.SnowflakeUtils; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; @@ -92,6 +96,9 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe // 更新流程总表信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processAll.setPrcType(Integer.valueOf(ProcessType.PERMISSION_APPLY_PROCESS.getValue())); + processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); + DateTime date = DateUtil.date(); + processAll.setPrcNum(DateUtil.format(date, DatePattern.PURE_DATETIME_MS_PATTERN)); processAll.setCreateUserId(loginUser.getId()); processAllService.update(processAll, new LambdaUpdateWrapper() @@ -162,7 +169,8 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe EsPermissionApplyFlowVO esPermissionApplyFlowVO = new EsPermissionApplyFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java index d51c384c..9fa0ea3d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java @@ -39,11 +39,14 @@ import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; import com.jero.modules.laws.standardization.entity.LawsStandardization; import com.jero.modules.laws.standardization.service.ILawsStandardizationService; +import com.jero.modules.system.entity.SysDepart; +import com.jero.modules.system.service.ISysDepartService; import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.tag.entity.LawsTag; import com.jero.modules.tag.enums.TableNameEnum; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -85,6 +88,9 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl sysDepartList = sysDepartService.listByIds(Arrays.asList(String.valueOf(read.toString()).split(","))); + jsonObject.put("responsible_department_dictText", CollectionUtils.isNotEmpty(sysDepartList) ? + sysDepartList.stream().map(SysDepart::getDepartName).collect(Collectors.joining(",")) : ""); + } + // 企业参与情况 + if (businessJson.contains("enterprise_participation")){ + Object read = JSONPath.read(businessJson, "$.enterprise_participation"); + String text = dictService.queryDictText("yn", read.toString()); + jsonObject.put("enterprise_participation_dictText", text); + } + // 适用认证 + if (businessJson.contains("applicable_certification")){ + Object read = JSONPath.read(businessJson, "$.applicable_certification"); + String text = dictService.queryDictText("applicable_certification", read.toString()); + jsonObject.put("applicable_certification_dictText", text); + } processFbEntryChange.setBusinessJson(jsonObject.toJSONString()); } @Override @@ -501,4 +572,10 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl() .eq(ProcessFbEntryChange::getId, processAll.getProjectId())); } + + public static void main(String[] args) { + for (int i = 0; i < 103; i++) { + System.out.println(i); + } + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java index 5932bfe1..77a2b859 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardConsultationServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.entity.ProcessNodeLink; import com.jero.modules.activiti.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum; +import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.fb.common.ConsultationNodeSort; import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey; import com.jero.modules.activiti.process.fb.common.FbCommon; @@ -86,6 +87,9 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl + qw.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE) + .or().isNull(ProcessDraft::getSaveSource)); List processDraftList = processDraftService.list(deleteWrapper); for (ProcessDraft processDraft : processDraftList) { processDraftService.removeById(processDraft.getId()); @@ -488,7 +490,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { if (StringUtils.isNotBlank(taskId)) { deleteWrapper.eq(ProcessDraft::getTaskId, taskId); } - deleteWrapper.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE); + deleteWrapper.and(qw -> qw.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE) + .or().isNull(ProcessDraft::getSaveSource)); List processDraftList = processDraftService.list(deleteWrapper); for (ProcessDraft processDraft : processDraftList) { processDraftService.removeById(processDraft.getId()); @@ -548,7 +551,8 @@ public class ProcessHandleServiceImpl implements IProcessHandleService { } else { // 流程信息 ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId)); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); if (!Objects.isNull(processAll)) { basicProcessInfoDTO.setProcessInstanceId(processAll.getProcessInstanceId()); basicProcessInfoDTO.setProcessType(processAll.getPrcType()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java index 0dc962bf..da71d4d7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/meetingmanage/service/impl/MeetingManageFlowServiceImpl.java @@ -1,5 +1,8 @@ package com.jero.modules.activiti.process.meetingmanage.service.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -108,6 +111,8 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService { // 更新流程总表信息 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processAll.setPrcType(Integer.valueOf(ProcessType.MEETING_MANAGE.getValue())); + DateTime date = DateUtil.date(); + processAll.setPrcNum(DateUtil.format(date, DatePattern.PURE_DATETIME_MS_PATTERN)); processAll.setCreateUserId(loginUser.getId()); processAllService.update(processAll, new LambdaUpdateWrapper() @@ -182,7 +187,8 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService { MeetingManageFlowVO meetingManageFlowVO = new MeetingManageFlowVO(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); ProcessAll processAll = processAllService.getOne(new LambdaQueryWrapper() - .eq(ProcessAll::getProjectId, projectId), false); + .eq(ProcessAll::getProjectId, projectId) + .orderByDesc(ProcessAll::getCreateTime), false); ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); // 是否存在草稿 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/common/ProcessProjectStandardCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/common/ProcessProjectStandardCommon.java index c74b4930..f9a94bac 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/common/ProcessProjectStandardCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/common/ProcessProjectStandardCommon.java @@ -5,6 +5,7 @@ package com.jero.modules.activiti.process.projectstandard.common; * @date 2024-01-15 17:25 */ public class ProcessProjectStandardCommon { + public static final String PASS = "pass"; public static final String STANDARDS_ENGINEER = "standardsEngineer"; public static final String MANAGER_LEADER_LIST = "managerLeaderList"; @@ -12,6 +13,8 @@ public class ProcessProjectStandardCommon { public static final String MODULE_OWNER_LIST_SIZE = "moduleOwnerListSize"; public static final String DESIGN_ENGINEER_LIST = "designEngineerList"; public static final String DESIGN_ENGINEER_LIST_SIZE = "designEngineerListSize"; + public static final String NOT_INVOLVED_MODULE_OWNER_LIST_SIZE = "notInvolvedModuleOwnerListSize"; + public static final String NOT_INVOLVED_MODULE_OWNER_LIST = "notInvolvedModuleOwnerList"; //法规工程师发起 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/controller/ProcessProjectStandardController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/controller/ProcessProjectStandardController.java index 9c5afad3..9e94e24e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/controller/ProcessProjectStandardController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/controller/ProcessProjectStandardController.java @@ -9,10 +9,14 @@ import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm; import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandard; import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTerm; +import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval; +import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermUser; import com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardService; import javax.servlet.http.HttpServletRequest; +import com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardTermApprovalService; +import com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardTermUserService; import com.jero.modules.activiti.process.projectstandard.vo.ProcessProjectStandardVO; import com.jero.modules.activiti.process.projectstandard.vo.StandardSelectionVO; import com.jero.modules.laws.common.vo.ManyStandardSelectionBox; @@ -45,7 +49,7 @@ import java.util.List; @Slf4j @Api(tags = "法规合规评估流程表") @RestController -@RequestMapping("processProjectStandard") +@RequestMapping("process/projectStandard") public class ProcessProjectStandardController extends JeroController { /** * 服务对象 @@ -54,63 +58,65 @@ public class ProcessProjectStandardController extends JeroController> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) { ProcessInfoVO processInfoVO = processProjectStandardService.queryProcessInfoVO(draftId, processInstanceId, taskId); return Result.OK(processInfoVO); } - @AutoLog(value = "未符合项跟踪流程-发起流程") - @ApiOperation(value = "未符合项跟踪流程-发起流程") + @AutoLog(value = "法规合规评估流程-发起流程") + @ApiOperation(value = "法规合规评估流程-发起流程") @PostMapping(value = "/startProcess") public Result startProcess(@Validated @RequestBody ProcessInfoVO processInfoVO) { processProjectStandardService.startProcess(processInfoVO); return Result.OK(); } - @AutoLog(value = "未符合项跟踪流程-同意") - @ApiOperation(value = "未符合项跟踪流程-同意") + @AutoLog(value = "法规合规评估流程-同意") + @ApiOperation(value = "法规合规评估流程-同意") @PostMapping("/agree") public Result agree(@Validated @RequestBody ProcessInfoVO processInfoVO) { processProjectStandardService.approveTask(processInfoVO, true); return Result.OK(); } - @AutoLog(value = "未符合项跟踪流程-驳回") - @ApiOperation(value = "未符合项跟踪流程-驳回") + @AutoLog(value = "法规合规评估流程-驳回") + @ApiOperation(value = "法规合规评估流程-驳回") @PostMapping("/reject") public Result reject(@Validated @RequestBody ProcessInfoVO processInfoVO) { processProjectStandardService.approveTask(processInfoVO, false); return Result.OK(); } - @AutoLog(value = "未符合项跟踪流程-提交") - @ApiOperation(value = "未符合项跟踪流程-提交") + @AutoLog(value = "法规合规评估流程-提交") + @ApiOperation(value = "法规合规评估流程-提交") @PostMapping("/submit") public Result submit(@Validated @RequestBody ProcessInfoVO processInfoVO) { processProjectStandardService.submit(processInfoVO); return Result.OK(); } - @AutoLog(value = "未符合项跟踪流程-保存为草稿") - @ApiOperation(value = "未符合项跟踪流程-保存为草稿") + @AutoLog(value = "法规合规评估流程-保存为草稿") + @ApiOperation(value = "法规合规评估流程-保存为草稿") @PostMapping(value = "/saveToDraft") public Result saveToDraft(@Validated @RequestBody ProcessInfoVO processInfoVO) { processProjectStandardService.saveToDraft(processInfoVO); return Result.OK(); } - @AutoLog(value = "未符合项跟踪流程-查询标准列表") + @AutoLog(value = "法规合规评估流程-查询标准列表") @ApiOperation(value="查询标准列表") @GetMapping(value = "/quaryStandard") public Result> quaryStandard(ManyStandardSelectionBoxVO selectionBoxVO, @@ -120,10 +126,10 @@ public class ProcessProjectStandardController extends JeroController> processProjectStandardGetList(@RequestBody ProcessProjectStandard processProjectStandard) { @@ -139,5 +145,18 @@ public class ProcessProjectStandardController extends JeroController> getTermApprovalList(@RequestParam(name="id") String id) { + List page = processProjectStandardService.getTermApprovalList(id); + return Result.OK(page); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandard.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandard.java index e7f9a7f9..939b5e62 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandard.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandard.java @@ -95,6 +95,13 @@ public class ProcessProjectStandard { @ApiModelProperty(value = "标准编号") private String standardNumber; + /** + * 标准名称 + */ + @TableField(value = "standard_name") + @ApiModelProperty(value = "标准名称") + private String standardName; + /** * 分解单来源 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTerm.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTerm.java index 4aa38a3a..ae45161c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTerm.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTerm.java @@ -8,6 +8,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.Date; +import java.util.List; + import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -136,6 +138,12 @@ public class ProcessProjectStandardTerm { @ApiModelProperty(value="设计工程师") private String designEngineer; + /** + * 设计工程师 + */ + @ApiModelProperty(value="设计工程师") + private String designEngineer_dictText; + /** * 抄送人员 */ @@ -150,6 +158,13 @@ public class ProcessProjectStandardTerm { @ApiModelProperty(value = "不涉及原因") private String notInvolved; + /** + * 是否与车型强关联 + */ + @TableField(exist = false) + @ApiModelProperty(value="是否与车型强关联") + private String isRelate; + /** * 车型系列 */ @@ -161,7 +176,7 @@ public class ProcessProjectStandardTerm { */ @TableField(exist = false) @ApiModelProperty(value="车型系列") - private String modelSeries_dict; + private String modelSeries_dictText; /** * 依据描述 @@ -194,4 +209,8 @@ public class ProcessProjectStandardTerm { @ApiModelProperty(value="评估结果") private String assessResults; + @TableField(exist = false) + @ApiModelProperty(value="评估结果") + private String assessResults_dictText; + } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermApproval.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermApproval.java index 6f185ecc..99fbb9b2 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermApproval.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermApproval.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.util.Date; @@ -80,6 +81,7 @@ public class ProcessProjectStandardTermApproval { /** * 责任单位负责人id */ + @Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')") @TableField(value = "responsible_unit_leader") @ApiModelProperty(value="责任单位负责人id") private String responsibleUnitLeader; @@ -94,6 +96,7 @@ public class ProcessProjectStandardTermApproval { /** * 评估结果(1-符合、2-不符合、3-不涉及) */ + @Dict(dicCode = "assess_results") @TableField(value = "assess_results") @ApiModelProperty(value="评估结果(1-符合、2-不符合、3-不涉及)") private String assessResults; @@ -101,6 +104,7 @@ public class ProcessProjectStandardTermApproval { /** * 是否立项 */ + @Dict(dicCode = "yn") @TableField(value = "project_approval_flag") @ApiModelProperty(value="是否立项") private String projectApprovalFlag; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermUser.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermUser.java index 3b94cde2..48278afa 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermUser.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/entity/ProcessProjectStandardTermUser.java @@ -109,8 +109,8 @@ public class ProcessProjectStandardTermUser { /**评估结果(1-符合、2-不符合)*/ @TableField(value = "assess_results") - @Dict(dicCode = "standards_assess_results") - @ApiModelProperty(value = "评估结果(1-符合、2-不符合)") + @Dict(dicCode = "assess_results") + @ApiModelProperty(value = "评估结果(1-符合、2-不符合、3-不涉及)") private String assessResults; /** @@ -134,10 +134,17 @@ public class ProcessProjectStandardTermUser { @ApiModelProperty(value="父执行实例流id") private String parentExecutionId; + /** + * 是否与车型强关联 + */ + @TableField(value = "is_relate") + @ApiModelProperty(value="是否与车型强关联") + private String isRelate; /** * 车型系列 */ @TableField(value = "model_series") + @Dict(dicCode = "model_series") @ApiModelProperty(value="车型系列") private String modelSeries; /** @@ -145,7 +152,7 @@ public class ProcessProjectStandardTermUser { */ @TableField(exist = false) @ApiModelProperty(value="车型系列") - private String modelSeries_dict; + private String modelSeries_dictText; /** * 依据描述 @@ -167,4 +174,11 @@ public class ProcessProjectStandardTermUser { @TableField(value = "project_approval_flag") @ApiModelProperty(value="是否立项") private Integer projectApprovalFlag; + + /** + * 任务id + */ + @TableField(exist = false) + @ApiModelProperty(value="任务id") + private String taskId; } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/ProcessProjectStandardTermMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/ProcessProjectStandardTermMapper.java index 2c24c6b4..8fdbe25f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/ProcessProjectStandardTermMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/ProcessProjectStandardTermMapper.java @@ -16,7 +16,11 @@ public interface ProcessProjectStandardTermMapper extends BaseMapper getByModuleOwner(@Param("processId") String processId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId, @Param("hasDesignEngineer") Boolean hasDesignEngineer); + List getByModuleOwnerAutoComplete(@Param("processId") String processId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId); + List getByDesignEngineer(@Param("processId") String processId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId); List getByStandardsEngineer(@Param("processId") String processId); + + List getByTermDesignEngineer(@Param("processId") String processId, @Param("originUserId") String originUserId); } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardMapper.xml index 25614f43..895d68d5 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardMapper.xml @@ -13,11 +13,12 @@ + id, create_by, create_time, update_by, update_time, org_code, del_flag, `source`, - standard_number, decomposition_order_Source + standard_number, standard_name, decomposition_order_Source \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardTermMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardTermMapper.xml index 39dce910..9f65bc79 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardTermMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/mapper/xml/ProcessProjectStandardTermMapper.xml @@ -28,6 +28,8 @@ + + @@ -38,16 +40,15 @@ select + ppstu.id term_user_id, + ppstu.not_involved, + ppstu.assess_results, + ppstu.model_series, + ppstu.description, + ppstu.file_id, + ppstu.design_engineer, - + - , - ppstu.id term_user_id, - ppstu.not_involved, - ppstu.assess_results, - ppstu.description, - ppstu.file_id, - ppstu.design_engineer 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} @@ -81,19 +82,40 @@ and ppstu.id is not null + + select - - - - , ppstu.id term_user_id, - ppstu.not_involved, - ppstu.assess_results, - ppstu.description, - ppstu.file_id, - ppstu.design_engineer + + + 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.id is not null + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardService.java index 73e5c11f..73e09f65 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardService.java @@ -3,12 +3,15 @@ package com.jero.modules.activiti.process.projectstandard.service; import cn.hutool.core.collection.CollStreamUtil; import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.dto.message.SendMessageDTO; import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.constant.CommonConstant; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.DictModel; @@ -24,7 +27,6 @@ import com.jero.modules.activiti.process.fb.dto.ProcessDTO; import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.projectassess.common.ProcessProjectAssessCommon; -import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTermUser; import com.jero.modules.activiti.process.projectstandard.common.ProcessProjectStandardCommon; import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTerm; import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermApproval; @@ -35,6 +37,7 @@ import com.jero.modules.activiti.process.projectstandard.vo.ProcessProjectStanda import com.jero.modules.activiti.process.projectstandard.vo.StandardSelectionVO; import com.jero.modules.activiti.service.ProcessAllService; import com.jero.modules.activiti.util.ThreadLocalUtil; +import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; import com.jero.modules.laws.common.mapper.LawsCommonMapper; import com.jero.modules.laws.common.util.CurrentUserUtil; import com.jero.modules.laws.common.vo.ManyStandardSelectionBoxVO; @@ -43,6 +46,8 @@ import com.jero.modules.laws.standard.entity.LawsOverseasStandard; import com.jero.modules.laws.standard.service.ILawsDomesticStandardService; import com.jero.modules.laws.standard.service.ILawsOverseasStandardService; import com.jero.modules.projectLibrary.common.AssessCommon; +import com.jero.modules.projectLibrary.entity.LawsSpecialProjectLibrary; +import com.jero.modules.projectLibrary.service.ILawsSpecialProjectLibraryService; import com.jero.modules.projectLibrary.vo.DecompositionOrderSourceVO; import com.jero.modules.split.entity.SarFileSplitInfoEO; import com.jero.modules.split.service.ISarFileSplitInfoService; @@ -56,8 +61,10 @@ import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandard; import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectStandardMapper; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.stream.Collectors; @@ -67,6 +74,7 @@ import java.util.stream.Collectors; *@date 2024-01-15 16:17 */ @Service +@Transactional(rollbackFor = Exception.class) public class ProcessProjectStandardService extends ServiceImpl { @Resource @@ -99,6 +107,8 @@ public class ProcessProjectStandardService extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProcessProjectStandardTermUser::getProcessId, processId); - List list = new ArrayList<>(); + List termUserList = new ArrayList<>(); switch (taskDefinitionKey) { //部所主管级领导下发 case ProcessProjectStandardCommon.BSZGJLDXF: @@ -150,82 +158,124 @@ public class ProcessProjectStandardService extends ServiceImpl modelSeriesDict = sysBaseAPI.queryDictItemsByCode("model_series"); + Map modelSeriesDictMap = CollStreamUtil.toMap(modelSeriesDict, DictModel::getValue, DictModel::getText); + List dictModels = sysBaseAPI.queryDictItemsByCode("assess_results"); - Map dictevaluationFeedbackMap = CollStreamUtil.toMap(dictModels, DictModel::getValue, DictModel::getText); + Map assessResultsMap = CollStreamUtil.toMap(dictModels, DictModel::getValue, DictModel::getText); //给条款中保存关联的信息 - Map> termIdListMap = CollStreamUtil.groupByKey(list, ProcessProjectStandardTermUser::getTermId); + Map> termIdListMap = CollStreamUtil.groupByKey(termUserList, ProcessProjectStandardTermUser::getTermId); for (ProcessProjectStandardTerm term : processProjectStandardTermList) { String termId = term.getId(); - List termUsers = termIdListMap.get(termId); - if (CollectionUtil.isNotEmpty(termUsers)){ + if (termIdListMap.containsKey(termId)) { + List termUsers = termIdListMap.get(termId); + String assessResults = AssessCommon.NOT_INVOLVED; + String projectApprovalFlag = YesOrNoEnum.NO.getValue(); + List moduleOwnerList = new ArrayList<>(); + List 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 (AssessCommon.ACCORD_WITH.equals(assessResults1)) { + assessResults = AssessCommon.ACCORD_WITH; + projectApprovalFlag = YesOrNoEnum.NO.getValue(); + } + } + if (ProcessProjectStandardCommon.BSZGJLDSP_.equals(taskDefinitionKey)){ + List userNameList = new ArrayList<>(); + moduleOwnerList.stream() + .filter(Objects::nonNull) + .distinct().forEach(i ->{ + userNameList.add(userNameMap.get(i)) ; + }); + term.setModuleOwner(String.join(",", userNameList)); + } + if (ProcessProjectStandardCommon.FGGCSSP.equals(taskDefinitionKey)){ + List userNameList = new ArrayList<>(); + responsibleUnitLeaderList.stream() + .filter(Objects::nonNull) + .distinct().forEach(i ->{ + userNameList.add(userNameMap.get(i)) ; + }); + term.setResponsibleUnitLeader(String.join(",", userNameList)); + } - ProcessProjectStandardTermUser termUser = termUsers.get(0); - term.setDescription(termUser.getDescription()); - term.setFileId(termUser.getFileId()); + term.setProjectApprovalFlag(projectApprovalFlag); + term.setAssessResults(assessResults); + term.setAssessResults_dictText(assessResultsMap.get(assessResults)); } + String modelSeries = term.getModelSeries(); + term.setModelSeries_dictText(sysBaseAPI.translateByDictMap(modelSeriesDictMap,modelSeries)); + String designEngineer = term.getDesignEngineer(); + term.setDesignEngineer_dictText(userNameMap.get(designEngineer)); } - //拼接分类法规标题 - List decompositionOrderSourceDictModels = sysBaseAPI.queryDictItemsByCode("decomposition_order_source"); - Map decompositionOrderSourceMap = CollStreamUtil.toMap(decompositionOrderSourceDictModels, DictModel::getValue, DictModel::getText); - Map splitInfoIdMap = this.getSplitInfoIdMap(processId); - List allProjectAssesTermList = new ArrayList<>(); - List usedSplitInfoId = new ArrayList<>(); - for (ProcessProjectStandardTerm term : processProjectStandardTermList) { - String splitInfoId = term.getSplitInfoId(); - if (!usedSplitInfoId.contains(splitInfoId) && splitInfoIdMap.containsKey(splitInfoId)) { - usedSplitInfoId.add(splitInfoId); - ProcessProjectStandardTerm titleTerm = splitInfoIdMap.get(splitInfoId); - ProcessProjectStandardTerm term1 = new ProcessProjectStandardTerm(); - term1.setTermName(titleTerm.getTermName()); - term1.setTermNumber(titleTerm.getTermNumber()); - term1.setTermText(decompositionOrderSourceMap.get(titleTerm.getTermText())); - allProjectAssesTermList.add(term1); - } - allProjectAssesTermList.add(term); + String moduleOwner1 = null; + if (processProjectStandardTermList.size()>0){ + ProcessProjectStandardTerm term = processProjectStandardTermList.get(0); + String moduleOwner = term.getModuleOwner(); + moduleOwner1 = userNameMap.get(moduleOwner); } ProcessProjectStandard processProjectStandard = this.getById(processId); ProcessProjectStandardVO processProjectStandardVO = new ProcessProjectStandardVO(); + processProjectStandardVO.setModuleOwner(moduleOwner1); processProjectStandardVO.setProcessProjectStandard(processProjectStandard); processProjectStandardVO.setProcessProjectStandardTermList(processProjectStandardTermList); - //processProjectStandardVO.setProcessProjectStandardTermUserList(); + if (ProcessProjectStandardCommon.FGGCSSP.equals(taskDefinitionKey)){ + String termId = processProjectStandardTermList.get(0).getId(); + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(ProcessProjectStandardTermApproval::getTermId,termId); + List approvalList = termApprovalService.list(wrapper1); + for (ProcessProjectStandardTermApproval termApproval : approvalList) { + String responsibleUnitLeader = termApproval.getResponsibleUnitLeader(); + termApproval.setResponsibleUnitLeader(userNameMap.get(responsibleUnitLeader)); + String assessResults = termApproval.getAssessResults(); + termApproval.setAssessResults(assessResultsMap.get(assessResults)); + String projectApprovalFlag = termApproval.getProjectApprovalFlag(); + termApproval.setProjectApprovalFlag(YesOrNoEnum.YES.getValue().equals(projectApprovalFlag)?YesOrNoEnum.YES.getName():YesOrNoEnum.NO.getName()); + } + processProjectStandardVO.setProcessProjectStandardTermApprovalList(approvalList); + + } processInfoVO.setBusinessInfoDTO(processProjectStandardVO); return processInfoVO; } @@ -253,6 +303,7 @@ public class ProcessProjectStandardService extends ServiceImpl processInfoVO, boolean pass) { - BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO(); - String taskId = basicTaskInfoDTO.getTaskId(); - ProcessDTO processDTO = processHandleService.getProcessDTO(taskId); - String processInstanceId = processDTO.getProcessInstanceId(); - ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); - processInfoVO.setBusinessId(processAll.getProjectId()); - Task task = processDTO.getTask(); - String taskDefinitionKey = task.getTaskDefinitionKey(); - if (taskDefinitionKey.contains("_") && !taskDefinitionKey.contains(ProcessProjectStandardCommon.MKZRRFF_)){ - taskDefinitionKey = taskDefinitionKey.substring(0,taskDefinitionKey.length()-1); - } - processHandleService.updateApprovalRecord(processInfoVO); - switch (taskDefinitionKey) { - //模块责任人审批 - case ProcessProjectStandardCommon.MKZRRFF_: - mkzrrffApprove(processInfoVO, processDTO, pass); - break; - //部所主管级领导审批 - case ProcessProjectStandardCommon.BSZGJLDSP_: - bszgjldspApprove(processInfoVO, processDTO, pass); - break; - //法规工程师审批 - case ProcessProjectStandardCommon.FGGCSSP: - fggcsspApprove(processInfoVO, processDTO, pass); - break; - default: - } - } - //模块责任人审批 - private void mkzrrffApprove(ProcessInfoVO processInfoVO, ProcessDTO processDTO, boolean pass) { - // 完成任务 - String taskId = processDTO.getTaskId(); - Map variables = new HashMap<>(); - variables.put(ProcessProjectAssessCommon.PASS, pass); - taskService.complete(taskId, variables); - } - //部所主管级领导审批 - private void bszgjldspApprove(ProcessInfoVO processInfoVO, ProcessDTO processDTO, boolean pass) { - String businessId = processInfoVO.getBusinessId(); - ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord(); - String originUserId = processApprovalRecord.getOriginUserId(); - Task task = processDTO.getTask(); - String executionId = task.getExecutionId(); - //查询表单 - ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); - List termList = businessInfoDTO.getProcessProjectStandardTermList(); - List termApprovalList = new ArrayList<>(); - //删除之前的立项结果 - List termIdList = termList.stream().map(ProcessProjectStandardTerm::getId).collect(Collectors.toList()); - LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); - deleteWrapper.eq(ProcessProjectStandardTermApproval::getProcessId,businessId); - deleteWrapper.eq(ProcessProjectStandardTermApproval::getResponsibleUnitLeader,originUserId); - deleteWrapper.in(ProcessProjectStandardTermApproval::getTermId,termIdList); - termApprovalService.remove(deleteWrapper); - //保存立项结果 - for (ProcessProjectStandardTerm term : termList) { - ProcessProjectStandardTermApproval termApproval = new ProcessProjectStandardTermApproval(); - termApproval.setProcessId(businessId); - termApproval.setResponsibleUnitLeader(CurrentUserUtil.getId()); - termApproval.setTermId(term.getId()); - termApproval.setAssessResults(term.getAssessResults()); - termApproval.setProjectApprovalFlag(term.getProjectApprovalFlag()); - termApprovalList.add(termApproval); - } - termApprovalService.saveBatch(termApprovalList); - } - //法规工程师审批 - private void fggcsspApprove(ProcessInfoVO processInfoVO, ProcessDTO processDTO, boolean pass) { - - } - public void submit(ProcessInfoVO processInfoVO) { BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO(); String taskId = basicTaskInfoDTO.getTaskId(); @@ -422,6 +401,221 @@ public class ProcessProjectStandardService extends ServiceImpl processInfoVO, boolean pass) { + BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO(); + String taskId = basicTaskInfoDTO.getTaskId(); + ProcessDTO processDTO = processHandleService.getProcessDTO(taskId); + String processInstanceId = processDTO.getProcessInstanceId(); + ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId); + processInfoVO.setBusinessId(processAll.getProjectId()); + Task task = processDTO.getTask(); + String taskDefinitionKey = task.getTaskDefinitionKey(); + if (taskDefinitionKey.contains("_") && !taskDefinitionKey.contains(ProcessProjectStandardCommon.MKZRRFF_)){ + taskDefinitionKey = taskDefinitionKey.substring(0,taskDefinitionKey.length()-1); + } + processHandleService.updateApprovalRecord(processInfoVO); + switch (taskDefinitionKey) { + //模块责任人审批 + case ProcessProjectStandardCommon.MKZRRSP_: + mkzrrffApprove(processInfoVO, processDTO, pass); + break; + //部所主管级领导审批 + case ProcessProjectStandardCommon.BSZGJLDSP_: + bszgjldspApprove(processInfoVO, processDTO, pass); + break; + //法规工程师审批 + case ProcessProjectStandardCommon.FGGCSSP: + fggcsspApprove(processInfoVO, processDTO, pass); + break; + default: + } + } + //模块责任人审批 + private void mkzrrffApprove(ProcessInfoVO processInfoVO, ProcessDTO processDTO, boolean pass) { + Task task = processDTO.getTask(); + String parentExecutionId = task.getFormKey(); + //查询表单 + ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + List termList = businessInfoDTO.getProcessProjectStandardTermList(); + List designEngineerList = termList.stream().map(ProcessProjectStandardTerm::getDesignEngineer).distinct().collect(Collectors.toList()); + + // 完成任务 + ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,parentExecutionId); + String taskId = processDTO.getTaskId(); + Map variables = new HashMap<>(); + variables.put(ProcessProjectStandardCommon.PASS, pass); + variables.put(ProcessProjectStandardCommon.DESIGN_ENGINEER_LIST, designEngineerList); + taskService.complete(taskId, variables); + } + //部所主管级领导审批 + private void bszgjldspApprove(ProcessInfoVO processInfoVO, ProcessDTO processDTO, boolean pass) { + String businessId = processInfoVO.getBusinessId(); + ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord(); + String originUserId = processApprovalRecord.getOriginUserId(); + Task task = processDTO.getTask(); + String executionId = task.getExecutionId(); + //查询表单 + ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + List termList = businessInfoDTO.getProcessProjectStandardTermList(); + List termApprovalList = new ArrayList<>(); + //删除之前的立项结果 + List termIdList = termList.stream().map(ProcessProjectStandardTerm::getId).collect(Collectors.toList()); + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); + deleteWrapper.eq(ProcessProjectStandardTermApproval::getProcessId,businessId); + deleteWrapper.eq(ProcessProjectStandardTermApproval::getResponsibleUnitLeader,originUserId); + deleteWrapper.in(ProcessProjectStandardTermApproval::getTermId,termIdList); + termApprovalService.remove(deleteWrapper); + //保存立项结果 + for (ProcessProjectStandardTerm term : termList) { + ProcessProjectStandardTermApproval termApproval = new ProcessProjectStandardTermApproval(); + termApproval.setProcessId(businessId); + termApproval.setResponsibleUnitLeader(CurrentUserUtil.getId()); + termApproval.setTermId(term.getId()); + termApproval.setAssessResults(term.getAssessResults()); + termApproval.setProjectApprovalFlag(term.getProjectApprovalFlag()); + termApprovalList.add(termApproval); + } + termApprovalService.saveBatch(termApprovalList); + + ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionId); + // 完成任务 + Map variables = new HashMap<>(); + //如果驳回查询下一步的模块责任人 + if (!pass){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessProjectStandardTermUser::getProcessId,businessId); + wrapper.eq(ProcessProjectStandardTermUser::getResponsibleUnitLeader,originUserId); + List termUserList = termUserMapper.selectList(wrapper); + for (ProcessProjectStandardTermUser termUser : termUserList) { + termUser.setParentExecutionId(executionId); + } + termUserService.updateBatchById(termUserList); + //选择不涉及的模块责任人 + List notInvolvedModuleOwnerList = termUserList.stream() + .filter(i -> StringUtils.isBlank(i.getDesignEngineer())) + .map(ProcessProjectStandardTermUser::getModuleOwner) + .distinct() + .collect(Collectors.toList()); + //选择设计工程师的模块责任人 + List moduleOwnerList = termUserList.stream() + .filter(i -> StringUtils.isNotBlank(i.getDesignEngineer())) + .map(ProcessProjectStandardTermUser::getModuleOwner) + .distinct() + .collect(Collectors.toList()); + variables.put(ProcessProjectStandardCommon.NOT_INVOLVED_MODULE_OWNER_LIST, notInvolvedModuleOwnerList); + variables.put(ProcessProjectStandardCommon.NOT_INVOLVED_MODULE_OWNER_LIST_SIZE, notInvolvedModuleOwnerList.size()); + variables.put(ProcessProjectStandardCommon.MODULE_OWNER_LIST, moduleOwnerList); + variables.put(ProcessProjectStandardCommon.MODULE_OWNER_LIST_SIZE, moduleOwnerList.size()); + } + String taskId = processDTO.getTaskId(); + variables.put(ProcessProjectStandardCommon.PASS, pass); + taskService.complete(taskId, variables); + } + //法规工程师审批 + private void fggcsspApprove(ProcessInfoVO processInfoVO, ProcessDTO processDTO, boolean pass) { + String businessId = processInfoVO.getBusinessId(); + ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord(); + String originUserId = processApprovalRecord.getOriginUserId(); + Task task = processDTO.getTask(); + String executionId = task.getExecutionId(); + //查询流程信息 + ProcessAll process = processAllService.getByProcessInstanceId(processDTO.getProcessInstanceId()); + ProcessProjectStandard processProjectStandard = this.getById(businessId); + + //查询不符合的评估 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessProjectStandardTermUser::getProcessId, businessId); + wrapper.eq(ProcessProjectStandardTermUser::getAssessResults, AssessCommon.NOT_COMPLIANT); + List notCompliantList = termUserService.list(wrapper); + Map> termIdMap = CollStreamUtil.groupByKey(notCompliantList, ProcessProjectStandardTermUser::getTermId); + //查询表单 + ProcessProjectStandardVO businessInfoDTO = processInfoVO.getBusinessInfoDTO(); + List termList = businessInfoDTO.getProcessProjectStandardTermList(); + List carbonCopyPersonnelList = new ArrayList<>(); + List updateTermList = new ArrayList<>(); + Date date = new Date(); + for (ProcessProjectStandardTerm term : termList) { + ProcessProjectStandardTerm term1 = new ProcessProjectStandardTerm(); + String termId = term.getId(); + String assessResults = term.getAssessResults(); + String designEngineer = term.getDesignEngineer(); + term1.setId(termId); + term1.setAssessResults(assessResults); + term1.setDescription(designEngineer); + if (!pass){ + continue; + } + updateTermList.add(term1); + carbonCopyPersonnelList.addAll(Arrays.asList(term.getCarbonCopyPersonnels().split(","))); + + LawsSpecialProjectLibrary projectLibrary = new LawsSpecialProjectLibrary(); + projectLibrary.setSource(processProjectStandard.getSource()); + String standardNumber = processProjectStandard.getStandardNumber(); + projectLibrary.setStandardNumber(standardNumber); + String standardName = processProjectStandard.getStandardName(); + projectLibrary.setStandardName(standardName); + projectLibrary.setStandardId(processProjectStandard.getStandardId()); + String termName = term.getTermName(); + String termNumber = term.getTermNumber(); + if (!Objects.equals(termName,standardName) && !Objects.equals(termNumber,standardNumber)){ + projectLibrary.setTermNumber(termNumber); + projectLibrary.setTermName(termName); + } + projectLibrary.setStandardState(processProjectStandard.getDecompositionOrderSource()); + projectLibrary.setModelSeries(term.getModelSeries()); + projectLibrary.setResult(term.getAssessResults()); + projectLibrary.setMaterial(term.getFileId()); + projectLibrary.setValuationTime(date); + projectLibrary.setProjectApproval(term.getProjectApprovalFlag()); + projectLibrary.setProcessNum(process.getPrcNum()); + //存入不符合描述 + if (termIdMap.containsKey(termId)) { + List termUserList = termIdMap.get(termId); + String description = termUserList.stream().map(ProcessProjectStandardTermUser::getDescription).collect(Collectors.joining(",")); + projectLibrary.setDescription(description); + } + //推送数据到法规项目库 + lawsSpecialProjectLibraryService.save(projectLibrary); + } + //更新数据 + if (pass){ + termService.updateBatchById(updateTermList); + } + // 完成任务 + String taskId = processDTO.getTaskId(); + Map variables = new HashMap<>(); + variables.put(ProcessProjectStandardCommon.PASS, pass); + if (!pass){ + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(ProcessProjectStandardTermUser::getProcessId, businessId); + wrapper1.isNotNull(ProcessProjectStandardTermUser::getResponsibleUnitLeader); + List termUserList = termUserService.list(wrapper1); + List designEngineerList = termUserList.stream() + .map(ProcessProjectStandardTermUser::getResponsibleUnitLeader) + .distinct() + .collect(Collectors.toList()); + variables.put(ProcessProjectStandardCommon.DESIGN_ENGINEER_LIST, designEngineerList); + variables.put(ProcessProjectStandardCommon.DESIGN_ENGINEER_LIST_SIZE, designEngineerList.size()); + } + + taskService.complete(taskId, variables); + if (pass){ + //发送消息 + String carbonCopyPersonnels = carbonCopyPersonnelList.stream().distinct().collect(Collectors.joining(",")); + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.PROJECT_STANDARD_COMPLETE); + sendMessageDTO.setToUserId(carbonCopyPersonnels); + Map sendMap = new HashMap<>(); + sendMap.put("prcName", process.getPrcName()); + sendMap.put("termNumber", process.getPrcName()); + sendMap.put("termName", process.getPrcName()); + sendMessageDTO.setMap(sendMap); + sendMessageAPI.sendMessage(sendMessageDTO); + } + + } + //部所主管级领导下发 private void bszgjldxfSubmit(ProcessInfoVO processInfoVO, ProcessDTO processDTO) { String businessId = processInfoVO.getBusinessId(); @@ -449,11 +643,12 @@ public class ProcessProjectStandardService extends ServiceImpl designEngineerList = Arrays.asList(designEngineers.split(",")); designEngineerIds.addAll(designEngineerList); - updateWrapper.set(ProcessProjectStandardTermUser::getModuleOwner, designEngineerList.get(0)); + updateWrapper.set(ProcessProjectStandardTermUser::getDesignEngineer, designEngineerList.get(0)); + updateWrapper.set(ProcessProjectStandardTermUser::getParentExecutionId, executionId); termUserService.update(updateWrapper); if (designEngineerList.size() >= 2){ @@ -529,6 +725,7 @@ public class ProcessProjectStandardService extends ServiceImpl termList = termMapper.getByModuleOwnerAutoComplete(projectId, assignee, executionParentId); + List designEngineerIds = termList.stream() + .map(ProcessProjectStandardTerm::getDesignEngineer) + .distinct() + .collect(Collectors.toList()); + ThreadLocalUtil.put(ProcessProjectAssessCommon.EXECUTION_ID,executionParentId); + Map variables = new HashMap<>(); + variables.put(ProcessProjectStandardCommon.DESIGN_ENGINEER_LIST, designEngineerIds); + taskService.complete(delegateTask.getId(),variables); } /** @@ -636,4 +847,35 @@ public class ProcessProjectStandardService extends ServiceImpl stringProcessProjectStandardTermMap = CollStreamUtil.toIdentityMap(list, ProcessProjectStandardTerm::getSplitInfoId); return stringProcessProjectStandardTermMap; } + + public IPage getTermUserList(ProcessProjectStandardTermUser processProjectStandardTermUser, Integer pageNo, Integer pageSize, HttpServletRequest req) { + ProcessDTO processDTO = processHandleService.getProcessDTO(processProjectStandardTermUser.getTaskId()); + ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord(); + String originUserId = processApprovalRecord.getOriginUserId(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.lambda() + .eq(ProcessProjectStandardTermUser::getTermId,processProjectStandardTermUser.getId()) + .eq(ProcessProjectStandardTermUser::getResponsibleUnitLeader,originUserId); + Page page = new Page<>(pageNo, pageSize); + Page pageList = termUserService.page(page, queryWrapper); + //获取所有用户信息 + List userList = sysBaseAPI.getAllUser(); + Map userNameMap = new HashMap<>(); + for (LoginUser loginUser : userList) { + userNameMap.put(loginUser.getId(), loginUser.calcNameWorkNo()); + } + for (ProcessProjectStandardTermUser record : pageList.getRecords()) { + String moduleOwner = record.getModuleOwner(); + record.setModuleOwner(userNameMap.get(moduleOwner)); + String designEngineer = record.getDesignEngineer(); + record.setDesignEngineer(userNameMap.get(designEngineer)); + } + return pageList; + } + + public List getTermApprovalList(String id) { + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(ProcessProjectStandardTermApproval::getTermId,id); + return termApprovalService.list(wrapper1); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardTermUserService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardTermUserService.java index 91264299..6466675e 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardTermUserService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/service/ProcessProjectStandardTermUserService.java @@ -1,8 +1,18 @@ package com.jero.modules.activiti.process.projectstandard.service; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.system.vo.LoginUser; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; import java.util.List; +import java.util.Map; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.modules.activiti.process.projectstandard.entity.ProcessProjectStandardTermUser; import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectStandardTermUserMapper; @@ -13,5 +23,26 @@ import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectSt */ @Service public class ProcessProjectStandardTermUserService extends ServiceImpl { + @Resource + private ISysBaseAPI sysBaseAPI; + public IPage queryPage(ProcessProjectStandardTermUser processProjectStandardTermUser, Integer pageNo, Integer pageSize, + HttpServletRequest req){ + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(processProjectStandardTermUser, req.getParameterMap()); + Page page = new Page<>(pageNo, pageSize); + Page pageList = page(page, queryWrapper); + //获取所有用户信息 + List userList = sysBaseAPI.getAllUser(); + Map userNameMap = new HashMap<>(); + for (LoginUser loginUser : userList) { + userNameMap.put(loginUser.getId(), loginUser.calcNameWorkNo()); + } + for (ProcessProjectStandardTermUser record : pageList.getRecords()) { + String moduleOwner = record.getModuleOwner(); + record.setModuleOwner(userNameMap.get(moduleOwner)); + String designEngineer = record.getDesignEngineer(); + record.setDesignEngineer(userNameMap.get(designEngineer)); + } + return pageList; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/vo/ProcessProjectStandardVO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/vo/ProcessProjectStandardVO.java index 4a543d77..4ce090bf 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/vo/ProcessProjectStandardVO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectstandard/vo/ProcessProjectStandardVO.java @@ -18,6 +18,9 @@ public class ProcessProjectStandardVO { /**业务基本信息*/ @ApiModelProperty(value = "业务基本信息") private ProcessProjectStandard processProjectStandard; + /**上一节点处理人*/ + @ApiModelProperty(value = "上一节点处理人") + private String moduleOwner; /**关联条款列表*/ @ApiModelProperty(value = "关联条款列表") private List processProjectStandardTermList; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 4b3f9ca7..e540c672 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -1,6 +1,7 @@ package com.jero.modules.activiti.service; import cn.hutool.core.collection.CollStreamUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -8,19 +9,23 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.api.dto.message.SendMessageDTO; +import com.jero.common.api.vo.Result; import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.SendMessageAPI; import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.modules.activiti.controller.WorkCenterController; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.mapper.ProcessAllMapper; import com.jero.modules.activiti.process.common.common.DraftCommon; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.util.SpringContextUtil; import com.jero.modules.activiti.vo.DelegateTaskParam; import com.jero.modules.activiti.vo.ResolveTaskParam; import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon; @@ -30,6 +35,7 @@ import org.activiti.engine.HistoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.task.Task; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; @@ -135,12 +141,37 @@ public class ProcessAllService extends ServiceImpl processDraftService.update(processDraftUpdateWrapper); //activiti撤销 runtimeService.deleteProcessInstance(processInstanceId,"强制撤回"); - //删除流程总表 - this.removeById(processAll.getId()); - //删除审批表 - LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); - wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId); - approvalRecordService.remove(wrapper1); + //更新流程总表状态 + update(new LambdaUpdateWrapper() + .eq(ProcessAll::getId, processAll.getId()) + .set(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue())); + + // 更新最后一条待办人员为流程发起人 + WorkCenterController workCenterController = SpringContextUtil.getBean(WorkCenterController.class); + ProcessApprovalRecord processApprovalRecord1 = new ProcessApprovalRecord(); + processApprovalRecord1.setProcessInstanceId(processInstanceId); + Result approvalRecordList = workCenterController.getApprovalRecordList(processApprovalRecord1, null); + if (!Objects.isNull(approvalRecordList.getResult())){ + Page pageList = (Page) approvalRecordList.getResult(); + if (CollectionUtils.isNotEmpty(pageList.getRecords())){ + List processApprovalRecords = JSON.parseArray(JSON.toJSONString(pageList.getRecords()), ProcessApprovalRecord.class); + if (CollectionUtils.isNotEmpty(processApprovalRecords)){ + approvalRecordService.update( + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getId, processApprovalRecords.get(0).getId()) + .set(ProcessApprovalRecord::getUserId, processApprovalRecords.get(processApprovalRecords.size() - 1).getOriginUserId())); + } + } + } + + //新增撤销审批记录 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); + processApprovalRecord.setUserId(loginUser.getId()); + processApprovalRecord.setProcessInstanceId(processInstanceId); + processApprovalRecord.setFinishFlag(FinishFlagEnum.WITHDRAWN.getValue()); + processApprovalRecord.setCreateTime(null); + approvalRecordService.save(processApprovalRecord); //todo 同步删除操作到统一待办 } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java index ca5621ed..5612701d 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessApprovalRecordService.java @@ -3,18 +3,19 @@ package com.jero.modules.activiti.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.system.api.ISysBaseAPI; -import com.jero.common.system.query.QueryGenerator; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; import com.jero.modules.laws.common.util.CurrentUserUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; + import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; import java.util.List; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper; -import com.jero.modules.activiti.entity.ProcessApprovalRecord; /** * *@author liJiaRao @@ -32,7 +33,12 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList(Page page, ProcessApprovalRecord processApprovalRecord, HttpServletRequest req) { - QueryWrapper wrapper = QueryGenerator.initQueryWrapper(processApprovalRecord, req.getParameterMap()); + QueryWrapper wrapper = new QueryWrapper<>(); + if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){ + wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(","))); + } + wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId()); + wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC"); Page pageList = this.page(page, wrapper); List records = pageList.getRecords(); for (ProcessApprovalRecord record : records) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java index 3f2476f2..9440608a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessNodeService.java @@ -150,6 +150,8 @@ public class ProcessNodeService extends ServiceImpl Objects.equals(processNode.getNodeName(), EsInitChangeConstant.AUTO_COPY)); // 将两个节点改名 processNodeList.forEach(processNode -> { if (Objects.equals(processNode.getNodeName(), EsInitChangeConstant.MAIN_DRAFT_USER_LEADER)) { @@ -162,6 +164,7 @@ public class ProcessNodeService extends ServiceImpl Objects.equals(processNode.getNodeName(), EsInitChangeConstant.EXPERT_CHECK)); processNodeList.forEach(processNode -> { if (Objects.equals(processNode.getNodeName(), EsInitChangeConstant.MAIN_DRAFT_USER_LEADER)) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/util/ExcelUtils.java b/laws-modules/src/main/java/com/jero/modules/activiti/util/ExcelUtils.java index ac8dfe59..c425c5c1 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/util/ExcelUtils.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/util/ExcelUtils.java @@ -1,6 +1,7 @@ package com.jero.modules.activiti.util; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.CommonAPI; import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.util.oConvertUtils; @@ -9,6 +10,10 @@ import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectTyp import com.jero.modules.laws.common.util.ImportUtil; import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard; import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService; +import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel; +import com.jero.modules.sys.entity.LawsGrade; +import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService; +import com.jero.modules.sys.service.ILawsGradeService; import com.jero.modules.system.entity.SysDictItem; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; @@ -46,6 +51,12 @@ public class ExcelUtils { @Resource private ImportUtil importUtil; + @Resource + private ILawsGradeService gradeService; + + @Resource + private ILawsEnterpriseStandardLevelService enterpriseStandardLevelService; + @Resource private ILawsEnterpriseStandardService enterpriseStandardService; @@ -234,19 +245,6 @@ public class ExcelUtils { return textValue.toString(); } - - public String validStandardClassification(String value, List listDict) { - // 非空检查 - if (StrUtil.isBlank(value)) { - return "'标准等级分类'不能为空。"; - } - // 检查授权部门 - if (!excelUtils.validDict("standard_grade_classify", value, null, null, true, listDict)) { - return "'标准等级分类'无效。"; - } - return ""; - } - public String validStandardType(String value, List listDict) { // 非空检查 if (StrUtil.isBlank(value)) { @@ -259,18 +257,48 @@ public class ExcelUtils { return ""; } - public String validAuthDept(String value, List listDict) { - // 非空检查 - if (StrUtil.isBlank(value)) { - return "'授权部门'不能为空。"; + public String validAuthDept(String authDept, List listDict, + String standardClassification, Map> authDeptMap) { + if (StrUtil.isBlank(standardClassification)) { + return "'标准等级分类'不能为空。"; } + // 检查授权部门 - if (!excelUtils.validDict("depart_name", value, "sys_depart", "id", false, listDict)) { - return "'授权部门'无效。"; + if (!excelUtils.validDict("standard_grade_classify", standardClassification, null, + null, true, listDict)) { + return "'标准等级分类'无效。"; } + + String level = translateDictValue("standard_grade_classify", standardClassification, listDict); + + if (level.equals("2") || level.equals("3")) { + if (StrUtil.isBlank(authDept)) { + return "'授权部门'不能为空。"; + } + + // 检查授权部门 + if (!excelUtils.validDict("depart_name", authDept, "sys_depart", "id", false, listDict)) { + return "'授权部门'无效。"; + } + + // 将授权部门转换为idList + String deptIds = excelUtils.translateDictValue("depart_name", "id", "sys_depart", authDept, listDict); + boolean isMatching = isMatchingAuthDept( + Arrays.asList(deptIds.split(",")), + level.equals("2") ? authDeptMap.get("1") : authDeptMap.get("2") + ); + if (!isMatching) { + return "'授权部门'和'标准等级分类'不匹配。"; + } + } + return ""; } + private boolean isMatchingAuthDept(List authDeptList, List levelDeptList) { + return new HashSet<>(levelDeptList).containsAll(authDeptList); + } + public String validCooperateUnit(String value, List listDict) { // 非空检查 if (StrUtil.isBlank(value)) { @@ -368,19 +396,24 @@ public class ExcelUtils { return matcher.find(); } - public String validSingleDateMustInput(String date, String name) { + public String validSingleDateMustInputNotBeforeToday(String date, String name) { if (StrUtil.isBlank(date)) { return "'" + name + "'不能为空。"; } - return this.validSingleDate(date, name); + return this.validSingleDateNotBeforeToday(date, name); } - public String validSingleDate(String date, String name) { - if (importUtil.singleDateValid(date)) { + public String validSingleDateNotBeforeToday(String date, String name) { + if (StrUtil.isBlank(date)) { return ""; - } else { + } + if (!importUtil.singleDateValid(date)) { return "'" + name + "'格式错误。"; } + if (!importUtil.singleDateValidNotBeforeToday(date)) { + return "'" + name + "'不能早于今天。"; + } + return ""; } public String validPartName(String value, List listDict) { @@ -414,4 +447,23 @@ public class ExcelUtils { } return ""; } + + public Map> getAllLevelAuthDeptMap() { + Map> authDeptMap = new HashMap<>(); + LambdaQueryWrapper gradeWrapper = new LambdaQueryWrapper<>(); + gradeWrapper.eq(LawsGrade::getLevel, 1); + LawsGrade levelOne = gradeService.getOne(gradeWrapper); + gradeWrapper.clear(); + gradeWrapper.eq(LawsGrade::getLevel, 2); + LawsGrade levelTwo = gradeService.getOne(gradeWrapper); + LambdaQueryWrapper levelWrapper = new LambdaQueryWrapper<>(); + levelWrapper.eq(LawsEnterpriseStandardLevel::getGradeId, levelOne.getId()); + List levelOneList = enterpriseStandardLevelService.list(levelWrapper); + levelWrapper.clear(); + authDeptMap.put("1", levelOneList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList())); + levelWrapper.eq(LawsEnterpriseStandardLevel::getGradeId, levelTwo.getId()); + List levelTwoList = enterpriseStandardLevelService.list(levelWrapper); + authDeptMap.put("2", levelTwoList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList())); + return authDeptMap; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java index ffab73da..819cba33 100644 --- a/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/compare/service/impl/SarFileCompareItemCommentServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.exception.JeroBootException; +import com.jero.common.util.MessageUtils; import com.jero.common.util.MinioUtil; import com.jero.modules.compare.entity.*; import com.jero.modules.compare.enums.AssessConsistencyEnum; @@ -279,7 +280,7 @@ public class SarFileCompareItemCommentServiceImpl extends ServiceImpl queryDetailByBusinessId(String businessId, @ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { diff --git a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java index acc4044c..8b2b1a11 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/dataCenter/service/impl/LawsDataCenterFolderServiceImpl.java @@ -22,12 +22,11 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @@ -48,6 +47,8 @@ public class LawsDataCenterFolderServiceImpl extends ServiceImpl allList = BeanCopyUtils.copyBeanList(lawsDataCenterFolderList, LawsDataCenterFolder.class); // 非管理员只能看到自己创建的 or 拥有管理权限 or 拥有查看权限的文件夹 or 默认根目录 - if (!roleIds.contains("admin")){ + List adminRoleCodeList = Arrays.asList(adminRoleCode.split(",")); + Collection intersection = CollectionUtils.intersection(Arrays.asList(roleIds.split(",")), adminRoleCodeList); + if (!roleIds.contains("admin") && CollectionUtils.isEmpty(intersection)){ lawsDataCenterFolderList = lawsDataCenterFolderList.stream() .filter(v -> (StringUtils.isNotBlank(v.getAuthManageIds()) && v.getAuthManageIds().contains(loginUser.getId())) || (StringUtils.isNotBlank(v.getAuthViewIds()) && v.getAuthViewIds().contains(loginUser.getId())) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index 3562350d..8c959695 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -1033,13 +1033,6 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { public List processProjectStandardGetList(String sarFileSplitInfoId) { List processProjectAssessTermList = new ArrayList<>(); ProcessProjectStandardTerm term = new ProcessProjectStandardTerm(); - // 文档拆分信息 - DocumentSplitInfo documentSplitInfo1 = documentSplitMapper.queryDocumentSplitInfoById(sarFileSplitInfoId); - term.setTermNumber(documentSplitInfo1.getSerialNumber()); - term.setTermName(documentSplitInfo1.getTitle()); - term.setSplitInfoId(sarFileSplitInfoId); - term.setTermText(documentSplitInfo1.getFileType()); - processProjectAssessTermList.add(term); // 文档拆分详情 Map parameter = new HashMap<>(); parameter.put(INFO_ID, sarFileSplitInfoId); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java index 1d757657..31fc5142 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/EnterpriseStandardInspectVo.java @@ -29,10 +29,10 @@ public class EnterpriseStandardInspectVo { private String id; /** - * 稽查依据标准号 + * 稽查依据标准编号 */ - @Excel(name = "稽查依据标准号", width = 15, needMerge = true) - @ApiModelProperty(value = "稽查依据标准号") + @Excel(name = "稽查依据标准编号", width = 18, needMerge = true) + @ApiModelProperty(value = "稽查依据标准编号") private String inspectNo; /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/ExportDataWithDelayVo.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/ExportDataWithDelayVo.java index ac091203..e3b69214 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/ExportDataWithDelayVo.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/entity/vo/ExportDataWithDelayVo.java @@ -27,8 +27,8 @@ public class ExportDataWithDelayVo { /** * 稽查依据标准号 */ - @Excel(name = "稽查依据标准号", width = 15) - @ApiModelProperty(value = "稽查依据标准号") + @Excel(name = "稽查依据标准编号", width = 18) + @ApiModelProperty(value = "稽查依据标准编号") private String inspectNo; /** diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java index ce3b48a1..c522fa5a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/job/ESPlanProjectStatusJob.java @@ -27,6 +27,7 @@ public class ESPlanProjectStatusJob implements Job { // 每天执行定时任务 判断所有进行中的计划是否逾期 逾期则修改项目状态为逾期 LambdaQueryWrapper espWrapper = new LambdaQueryWrapper<>(); espWrapper.eq(EnterpriseStandardPlan::getProjectStatus, ESPProjectStatus.IN_PROGRESS.getValue()); + espWrapper.eq(EnterpriseStandardPlan::getProjectStatus, ESPProjectStatus.OVERDUE.getValue()); espWrapper.eq(EnterpriseStandardPlan::getDelFlag, YesOrNoEnum.NO.getValue()); List list = espService.list(espWrapper); Date curDate = new Date(); @@ -35,6 +36,8 @@ public class ESPlanProjectStatusJob implements Job { curDate.after(p.getSolicitationDraftPlanCompleteDate()) || curDate.after(p.getPlanApprovalDate())) { p.setProjectStatus(ESPProjectStatus.OVERDUE.getValue()); + } else { + p.setProjectStatus(ESPProjectStatus.IN_PROGRESS.getValue()); } }); espService.updateBatchById(list); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml index 0baa3d76..ade6e263 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardInspectMapper.xml @@ -197,11 +197,13 @@ actual_inspect_user, inspect_status, group_concat(lesio.plan_inspect_object separator ',') plan_inspect_object, - (IF(lesid.id IS NOT NULL, TRUE, FALSE)) delay_flag + (IF(lesid.id IS NOT NULL, TRUE, FALSE)) delay_flag, + realname from laws_enterprise_standard_inspect lesi left join laws_enterprise_standard les on lesi.inspect_no = les.standard_number and les.del_flag = '0' left join laws_enterprise_standard_inspect_object lesio on lesi.id = lesio.inspect_id left join laws_enterprise_standard_inspect_delay lesid on lesi.id = lesid.inspect_id + left join sys_user u on lesi.inspect_user = u.id group by lesi.id) t ${ew.customSqlSegment} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardPlanMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardPlanMapper.xml index c964f13e..73c5e0d9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardPlanMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/mapper/xml/EnterpriseStandardPlanMapper.xml @@ -12,9 +12,6 @@ - - - @@ -53,32 +50,11 @@ - - - id,create_by,create_time, - update_by,update_time,org_code, - del_flag,process_name,deadline_date, - process_description,application_category,project_type, - origin_en_standard_num,new_en_standard_num,origin_en_standard_name, - new_en_standard_name,en_standard_english_name,en_standard_system, - en_standard_code,en_name_code,standard_category_code, - decade_code,en_standard_classification,draft_planned_complete_date, - solicitation_draft_plan_complete_date,plan_approval_date,project_status, - compilation_description,component_name,auth_dept, - cooperating_units,main_drafting_user,main_drafting_unit, - main_drafting_unit_responsible_person,standard_promoter,draft_completion_date, - draft_submission_date,solicitation_opinion_enabled,solicitation_draft_completion_date, - review_date,approval_date,release_date, - change_status,project_background,similar_na_standards_analysis, - similar_en_standards_analysis,standard_leading_necessity,project_expected_effects, - remarks,attachment,qualityFlag,cooperationUnit - - SELECT p.id, - p.process_name, - p.deadline_date, - p.process_description, p.application_category, p.project_type, p.origin_en_standard_no, @@ -237,7 +210,6 @@ p.similar_en_standards_analysis, p.standard_leading_necessity, p.project_expected_effects, - p.remarks, p.upload_attachment, p.quality_flag FROM diff --git a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java index f8936354..e0c4242a 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/enterprise/service/impl/EnterpriseStandardInspectServiceImpl.java @@ -398,7 +398,7 @@ public class EnterpriseStandardInspectServiceImpl extends ServiceImpl implements EnterpriseStandardPlanService, ESSequenceNumberProvider { - @Resource - private ISysBaseAPI sysBaseAPI; - @Resource private EnterpriseStandardPlanMapper esPlanMapper; @@ -54,8 +51,12 @@ public class EnterpriseStandardPlanServiceImpl extends ServiceImpl queryPageList(ESPlanQueryDTO esPlanQueryDTO, Integer pageNo, Integer pageSize) { IPage page = new Page<>(pageNo, pageSize); esPlanMapper.page(page, esPlanQueryDTO); - // TODO 判断其能否删除 主起草人在待办中未进行操作,该计划允许删除(目前都设为允许删除) - page.getRecords().forEach(p -> p.setAllowDel(true)); + // 未开始的才可以删除,发起流程的时候需要判断计划有没有被删除,如果计划被删除了则需要重新制定计划 + page.getRecords().forEach(enterpriseStandardPlanVo -> { + enterpriseStandardPlanVo.setAllowDel( + ESPProjectStatus.NOT_STARTED.getValue() + .equals(enterpriseStandardPlanVo.getProjectStatus())); + }); return page; } @@ -81,13 +82,18 @@ public class EnterpriseStandardPlanServiceImpl extends ServiceImpl page = new Page<>(pageNo, pageSize); esPlanMapper.page(page, esPlanQueryDTO); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java index 917d28d4..990748e9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeQuickAccessServiceImpl.java @@ -23,10 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @@ -170,15 +167,30 @@ public class LawsHomeQuickAccessServiceImpl extends ServiceImpl() .eq(LawsHomeQuickAccess::getUserId, sysUser.getId())); + // 全部菜单 + List menuAllList = sysPermissionService.list(); + // 获取拥有权限的菜单列表 + List sysPermissionList = queryPermissionMenuList(""); // 保存新数据 List lawsHomeQuickAccessList = new ArrayList<>(); if (StringUtils.isNotBlank(permissionIdList)){ - for (String permissionId : permissionIdList.split(",")) { + String[] menuId = permissionIdList.split(","); + List errorList = new ArrayList<>(); + for (String permissionId : menuId) { + long count = sysPermissionList.stream().filter(v -> v.getId().equals(permissionId)).count(); + if (count == 0){ + Optional optional = menuAllList.stream().filter(v -> v.getId().equals(permissionId)).findFirst(); + optional.ifPresent(v -> errorList.add(v.getName())); + } LawsHomeQuickAccess lawsHomeQuickAccess = new LawsHomeQuickAccess(); lawsHomeQuickAccess.setUserId(sysUser.getId()); lawsHomeQuickAccess.setPermissionId(permissionId); lawsHomeQuickAccessList.add(lawsHomeQuickAccess); } + if (!errorList.isEmpty()){ + String join = String.join("、", errorList); + throw new JeroBootException(join + ",不能保存没有权限的菜单!"); + } saveBatch(lawsHomeQuickAccessList); } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java new file mode 100644 index 00000000..545003ae --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsPartNameController.java @@ -0,0 +1,48 @@ +package com.jero.modules.laws.standard.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel; +import com.jero.modules.laws.standard.entity.LawsTreeNode; +import com.jero.modules.laws.standard.entity.PartName; +import com.jero.modules.laws.standard.entity.TreePage; +import com.jero.modules.laws.standard.service.PartNameService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2024/1/19 10:42 + */ +@Api(tags = "零部件") +@RestController +@RequestMapping("/laws/standard/partName") +@Slf4j +public class LawsPartNameController { + + @Resource + private PartNameService partNameService; + + @AutoLog(value = "企业标准-零部件树") + @ApiOperation(value = "企业标准-零部件树", notes = "企业标准-零部件树") + @GetMapping("/") + public Result> queryENTreeList( + @RequestParam(required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName, + @RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) { + TreePage list = partNameService.queryTreeList(nodeName, pageNo, pageSize); + return Result.OK(list); + } + + +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsUpdateRecordController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsUpdateRecordController.java new file mode 100644 index 00000000..cb49544d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsUpdateRecordController.java @@ -0,0 +1,60 @@ +package com.jero.modules.laws.standard.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.jero.common.api.vo.Result; +import com.jero.common.aspect.annotation.AutoLog; +import com.jero.modules.laws.standard.entity.LawsUpdateRecord; +import com.jero.modules.laws.standard.service.ILawsUpdateRecordService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.Collections; +import java.util.Map; + +/** + * @Description: 文档动态 + * @Author: jero-boot + * @Date: 2024-01-19 + * @Version: V1.0 + */ +@Api(tags = "文档动态") +@RestController +@RequestMapping("/laws/standard/updateRecord") +@Slf4j +public class LawsUpdateRecordController { + + @Resource + private ILawsUpdateRecordService lawsUpdateRecordService; + + @AutoLog(value = "文档动态-查询") + @ApiOperation(value = "文档动态-查询", notes = "文档动态-查询") + @GetMapping(value = "/list") + @ApiOperationSupport(order = 1) + @RequiresPermissions("standardRegulationLibrary:documentDynamics:search") + public Result> getUpdateRecordList( + @RequestParam("content") @ApiParam("消息内容") String content, + @RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面显示数量") Integer pageSize) { + IPage pageList = lawsUpdateRecordService.queryPageList(content, pageNo, pageSize); + return Result.OK(pageList); + } + + + @AutoLog(value = "文档动态-批量删除") + @ApiOperation(value = "文档动态-批量删除", notes = "文档动态-批量删除") + @PostMapping(value = "/deleteBatch") + @ApiOperationSupport(order = 2) + @RequiresPermissions("standardRegulationLibrary:documentDynamics:batchDelete") + public Result batchDelete(@RequestBody Map map) { + lawsUpdateRecordService.removeByIds(Arrays.asList(map.get("ids").split(","))); + return Result.OK(); + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/PartName.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/PartName.java new file mode 100644 index 00000000..19b95f7f --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/PartName.java @@ -0,0 +1,104 @@ +package com.jero.modules.laws.standard.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @TableName laws_part_name + */ +@Data +@TableName(value = "laws_part_name") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value = "laws_part_name对象", description = "零部件") +public class PartName implements Serializable { + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键ID") + private String id; + + /** + * 创建人 + */ + @ApiModelProperty(value = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新人 + */ + @ApiModelProperty(value = "更新人") + private String updateBy; + + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + private Date updateTime; + + /** + * 所属部门 + */ + @ApiModelProperty(value = "所属部门") + private String orgCode; + + /** + * 0表示未删除,1表示删除 + */ + @ApiModelProperty(value = "0表示未删除,1表示删除") + private Integer delFlag; + + /** + * 零部件码 + */ + @ApiModelProperty(value = "零部件码") + private String code; + + /** + * 零部件名称 + */ + @ApiModelProperty(value = "零部件名称") + private String name; + + /** + * 父级零件id + */ + @ApiModelProperty(value = "父级零件id") + private String parentId; + + /** + * 一级节点 + */ + @ApiModelProperty(value = "一级节点") + private String firstNode; + + /** + * 子零部件 + */ + @TableField(exist = false) + @ApiModelProperty(value = "子零部件") + private List childPartNameList; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java new file mode 100644 index 00000000..5663812b --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java @@ -0,0 +1,20 @@ +package com.jero.modules.laws.standard.entity; + +import lombok.Data; + +import java.util.List; + +/** + * @author: Mzaxd + * @Date: 2024/1/19 15:24 + */ +@Data +public class TreePage { + + private List records; + private long total; + private long size; + private long current; + + +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/PartNameMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/PartNameMapper.java new file mode 100644 index 00000000..67bf3c10 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/mapper/PartNameMapper.java @@ -0,0 +1,18 @@ +package com.jero.modules.laws.standard.mapper; + +import com.jero.modules.laws.standard.entity.PartName; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author ThinkBook +* @description 针对表【laws_part_name】的数据库操作Mapper +* @createDate 2024-01-19 10:37:39 +* @Entity com.jero.modules.laws.standard.entity.PartName +*/ +public interface PartNameMapper extends BaseMapper { + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsUpdateRecordService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsUpdateRecordService.java index 85240dea..d7190fd5 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsUpdateRecordService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsUpdateRecordService.java @@ -1,5 +1,6 @@ package com.jero.modules.laws.standard.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.jero.modules.laws.standard.entity.LawsUpdateRecord; import com.baomidou.mybatisplus.extension.service.IService; @@ -18,4 +19,12 @@ public interface ILawsUpdateRecordService extends IService { **/ void addRecord(String standardNumber, String content); + /** + * 文档动态列表 + * @param content 消息内容 + * @param pageNo 页码 + * @param pageSize 页面显示数量 + * @return IPage + */ + IPage queryPageList(String content, Integer pageNo, Integer pageSize); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java new file mode 100644 index 00000000..fc929ac3 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/PartNameService.java @@ -0,0 +1,27 @@ +package com.jero.modules.laws.standard.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.jero.modules.laws.enterprise.entity.vo.LawsTreeNodeModel; +import com.jero.modules.laws.standard.entity.PartName; +import com.baomidou.mybatisplus.extension.service.IService; +import com.jero.modules.laws.standard.entity.TreePage; + +import java.util.List; + +/** +* @author ThinkBook +* @description 针对表【laws_part_name】的数据库操作Service +* @createDate 2024-01-19 10:37:39 +*/ +public interface PartNameService extends IService { + + /** + * 查询零部件树 + * + * @param nodeName + * @param pageNo + * @param pageSize + * @return + */ + TreePage queryTreeList(String nodeName, Integer pageNo, Integer pageSize); +} diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java index efa9346a..38b9dbaf 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsTreeNodeServiceImpl.java @@ -103,7 +103,7 @@ public class LawsTreeNodeServiceImpl extends ServiceImpl findPathToRoot(List allNodes, LawsTreeNode node) { + public static Set findPathToRoot(List allNodes, LawsTreeNode node) { Set pathNodes = new HashSet<>(); LawsTreeNode[] currentHolder = new LawsTreeNode[1]; currentHolder[0] = node; @@ -116,7 +116,7 @@ public class LawsTreeNodeServiceImpl extends ServiceImpl findAllChildren(List allNodes, LawsTreeNode node) { + public Set findAllChildren(List allNodes, LawsTreeNode node) { Set childrenSet = new HashSet<>(); List directChildren = allNodes.stream() .filter(n -> n.getParentId().equals(node.getId())) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsUpdateRecordServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsUpdateRecordServiceImpl.java index 82556781..50571ab9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsUpdateRecordServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsUpdateRecordServiceImpl.java @@ -1,5 +1,12 @@ package com.jero.modules.laws.standard.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.api.vo.Result; +import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.modules.laws.enterprise.entity.vo.EnterpriseStandardPlanVo; import com.jero.modules.laws.standard.entity.LawsUpdateRecord; import com.jero.modules.laws.standard.mapper.LawsUpdateRecordMapper; import com.jero.modules.laws.standard.service.ILawsUpdateRecordService; @@ -31,4 +38,15 @@ public class LawsUpdateRecordServiceImpl extends ServiceImpl queryPageList(String content, Integer pageNo, Integer pageSize) { + IPage page = new Page<>(pageNo, pageSize); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(StrUtil.isNotBlank(content), LawsUpdateRecord::getContent, content); + queryWrapper.eq(LawsUpdateRecord::getDelFlag, YesOrNoEnum.NO.getValue()); + queryWrapper.orderByDesc(LawsUpdateRecord::getCreateTime); + page = page(page, queryWrapper); + return page; + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java new file mode 100644 index 00000000..35514fff --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/PartNameServiceImpl.java @@ -0,0 +1,84 @@ +package com.jero.modules.laws.standard.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.exception.JeroBootException; +import com.jero.modules.laws.standard.entity.PartName; +import com.jero.modules.laws.standard.entity.TreePage; +import com.jero.modules.laws.standard.service.PartNameService; +import com.jero.modules.laws.standard.mapper.PartNameMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + + +/** + * @author ThinkBook + * @description 针对表【laws_part_name】的数据库操作Service实现 + * @createDate 2024-01-19 10:37:39 + */ +@Service +@Transactional(rollbackFor = JeroBootException.class) +public class PartNameServiceImpl extends ServiceImpl + implements PartNameService { + + @Resource + private PartNameMapper partNameMapper; + + @Override + public TreePage queryTreeList(String nodeName, Integer pageNo, Integer pageSize) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PartName::getDelFlag, YesOrNoEnum.NO.getValue()) + .like(StrUtil.isNotBlank(nodeName), PartName::getName, nodeName); + List allNodes = partNameMapper.selectList(queryWrapper); + + // 将所有节点转换为映射,以便快速查找 + Map nodeMap = allNodes.stream() + .collect(Collectors.toMap(PartName::getId, Function.identity())); + + // 构建树形结构 + List topLevelNodes = new ArrayList<>(); + allNodes.forEach(node -> { + if (node.getParentId() == null) { + topLevelNodes.add(node); + } else { + PartName parentNode = nodeMap.get(node.getParentId()); + if (parentNode != null) { + if (parentNode.getChildPartNameList() == null) { + parentNode.setChildPartNameList(new ArrayList<>()); + } + parentNode.getChildPartNameList().add(node); + } + } + }); + + // 实现分页逻辑 + int start = (pageNo - 1) * pageSize; + int end = Math.min(start + pageSize, topLevelNodes.size()); + List pageData = topLevelNodes.subList(start, end); + + // 封装分页信息 + TreePage result = new TreePage<>(); + result.setRecords(pageData); + result.setTotal(topLevelNodes.size()); + result.setSize(pageSize); + result.setCurrent(pageNo); + return result; + } + + +} + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standardization/controller/LawsStandardizationController.java b/laws-modules/src/main/java/com/jero/modules/laws/standardization/controller/LawsStandardizationController.java index 812e8526..badc7c3e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standardization/controller/LawsStandardizationController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standardization/controller/LawsStandardizationController.java @@ -17,6 +17,7 @@ import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.formula.functions.T; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.context.annotation.Lazy; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -48,6 +49,7 @@ public class LawsStandardizationController extends JeroController queryTreeList() { return Result.OK(lawsStandardizationService.queryTreeList()); } @@ -59,6 +61,7 @@ public class LawsStandardizationController extends JeroController> queryStatistics() { return Result.OK(lawsStandardizationService.queryStatistics()); } @@ -72,6 +75,7 @@ public class LawsStandardizationController extends JeroController add(@Validated @RequestBody StandardizationVO standardizationVO) { lawsStandardizationService.addOrUpdateStandardization(standardizationVO); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); @@ -86,6 +90,7 @@ public class LawsStandardizationController extends JeroController edit(@Validated @RequestBody StandardizationVO standardizationVO) { log.info(""); lawsStandardizationService.addOrUpdateStandardization(standardizationVO); @@ -181,6 +186,7 @@ public class LawsStandardizationController extends JeroController queryDetailById(@ApiParam("id") String id) { return Result.OK(lawsStandardizationService.queryDetailById(id)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/controller/LawsTaskTransferController.java b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/controller/LawsTaskTransferController.java index 5e9e3e73..6126d447 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/controller/LawsTaskTransferController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/controller/LawsTaskTransferController.java @@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.poi.ss.formula.functions.T; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -43,6 +44,7 @@ public class LawsTaskTransferController { @AutoLog(value = "任务转交-基础库信息分页查询") @ApiOperation(value="任务转交-基础库信息分页查询", notes="任务转交-基础库信息分页查询") @GetMapping(value = "/queryBaseDB") + @RequiresPermissions("taskCareOf:basicInfo:search") public Result> queryBaseDB(LawsBaseDB lawsBaseDB, @ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { @@ -56,6 +58,7 @@ public class LawsTaskTransferController { @AutoLog(value = "任务转交-基础库信息转交") @ApiOperation(value="任务转交-基础库信息转交", notes="任务转交-基础库信息转交") @PostMapping(value = "/baseDBTransfer") + @RequiresPermissions("taskCareOf:basicInfo:transfer") public Result baseDBTransfer(@RequestBody LawsBaseDB lawsBaseDB) { lawsTaskTransferService.baseDBTransfer(lawsBaseDB); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); @@ -68,6 +71,7 @@ public class LawsTaskTransferController { @AutoLog(value = "任务转交-基础库信息转交(批量)") @ApiOperation(value="任务转交-基础库信息转交(批量)", notes="任务转交-基础库信息转交(批量)") @PostMapping(value = "/baseDBTransferBatch") + @RequiresPermissions("taskCareOf:basicInfo:batchTransfer") public Result baseDBTransferBatch(@RequestBody List lawsBaseDBList) { lawsTaskTransferService.baseDBTransferBatch(lawsBaseDBList); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); @@ -80,6 +84,7 @@ public class LawsTaskTransferController { @AutoLog(value = "任务转交-流程信息分页查询") @ApiOperation(value="任务转交-流程信息分页查询", notes="任务转交-流程信息分页查询") @GetMapping(value = "/queryProcessDB") + @RequiresPermissions("taskCareOf:processInfo:search") public Result> queryProcessDB(LawsProcessDB lawsProcessDb, @ApiParam("当前页") @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @ApiParam("每页条数") @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { @@ -93,6 +98,7 @@ public class LawsTaskTransferController { @AutoLog(value = "任务转交-流程信息转交") @ApiOperation(value="任务转交-流程信息转交", notes="任务转交-流程信息转交") @PostMapping(value = "/processDBTransfer") + @RequiresPermissions("taskCareOf:processInfo:transfer") public Result> processDBTransfer(@RequestBody LawsProcessDB lawsProcessDB) { lawsTaskTransferService.processDBTransfer(lawsProcessDB); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); @@ -105,6 +111,7 @@ public class LawsTaskTransferController { @AutoLog(value = "任务转交-流程信息转交(批量)") @ApiOperation(value="任务转交-流程信息转交(批量)", notes="任务转交-流程信息转交(批量)") @PostMapping(value = "/processDBTransferBatch") + @RequiresPermissions("taskCareOf:processInfo:batchTransfer") public Result> processDBTransferBatch(@RequestBody List lawsProcessDBList) { lawsTaskTransferService.processDBTransferBatch(lawsProcessDBList); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); diff --git a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsBaseDB.java b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsBaseDB.java index 25f39102..30490423 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsBaseDB.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsBaseDB.java @@ -1,5 +1,6 @@ package com.jero.modules.laws.tasktransfer.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -37,4 +38,8 @@ public class LawsBaseDB { /**转交人*/ @ApiModelProperty(value = "转交人") private String transferUser; + /**ids 查询用*/ + @ApiModelProperty(value = "ids 查询用") + @TableField(exist = false) + private String ids; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsProcessDB.java b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsProcessDB.java index 8147d67c..1ef9618f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsProcessDB.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/entity/LawsProcessDB.java @@ -1,5 +1,6 @@ package com.jero.modules.laws.tasktransfer.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.jero.common.aspect.annotation.Dict; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -45,4 +46,8 @@ public class LawsProcessDB { /**状态*/ @ApiModelProperty(value="状态: true:可转交,false:不可转交") private boolean state; + /**ids 查询用*/ + @ApiModelProperty(value = "ids 查询用") + @TableField(exist = false) + private String ids; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/mapper/LawsTaskTransferMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/mapper/LawsTaskTransferMapper.java index 84ab8091..22cc9b60 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/mapper/LawsTaskTransferMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/mapper/LawsTaskTransferMapper.java @@ -7,6 +7,8 @@ import com.jero.modules.laws.tasktransfer.entity.LawsBaseDB; import com.jero.modules.laws.tasktransfer.entity.LawsProcessDB; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @ClassName: LawsTaskTransferMapper * @Description: @@ -18,16 +20,31 @@ public interface LawsTaskTransferMapper { /** * 任务转交-基础库信息分页查询 * @param queryWrapper - * @param objectPage + * @param page * @return */ - IPage queryBaseDB(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, IPage objectPage); + IPage queryBaseDB(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, IPage page); + + /** + * 任务转交-基础库信息列表查询 + * @param queryWrapper + * @return + */ + List queryBaseDB(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); + /** * 任务转交-流程信息分页查询 * @param queryWrapper - * @param objectPage + * @param page * @return */ - IPage queryProcessDB(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, IPage objectPage); + IPage queryProcessDB(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, IPage page); + + /** + * 任务转交-流程信息列表查询 + * @param queryWrapper + * @return + */ + List queryProcessDB(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/ILawsTaskTransferService.java b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/ILawsTaskTransferService.java index 478302bb..89055fa8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/ILawsTaskTransferService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/ILawsTaskTransferService.java @@ -23,6 +23,13 @@ public interface ILawsTaskTransferService { */ IPage queryBaseDB(LawsBaseDB lawsBaseDB, Integer pageNo, Integer pageSize); + /** + * 任务转交-基础库信息列表查询 + * @param lawsBaseDB + * @return + */ + List queryBaseDB(LawsBaseDB lawsBaseDB); + /** * 任务转交-基础库信息转交 * @param lawsBaseDB @@ -44,6 +51,13 @@ public interface ILawsTaskTransferService { */ IPage queryProcessDB(LawsProcessDB lawsProcessDb, Integer pageNo, Integer pageSize); + /** + * 任务转交-流程信息列表查询 + * @param lawsProcessDb + * @return + */ + List queryProcessDB(LawsProcessDB lawsProcessDb); + /** * 任务转交-流程信息转交 * @param lawsProcessDB @@ -55,4 +69,16 @@ public interface ILawsTaskTransferService { * @param lawsProcessDBList */ void processDBTransferBatch(List lawsProcessDBList); + + /** + * 任务转交-是否水平越权(基础库信息) + * @param ids + */ + void isHorizontalOverstepByBaseDB(String ids); + + /** + * 任务转交-是否水平越权(流程信息) + * @param ids + */ + void isHorizontalOverstepByProcessDB(String ids); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/impl/LawsTaskTransferServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/impl/LawsTaskTransferServiceImpl.java index ed7890bb..a6e02fbb 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/impl/LawsTaskTransferServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/tasktransfer/service/impl/LawsTaskTransferServiceImpl.java @@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.MessageUtils; import com.jero.modules.activiti.enums.FinishFlagEnum; import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.enums.ProcessTypeEnum; @@ -28,10 +31,12 @@ import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -76,6 +81,12 @@ public class LawsTaskTransferServiceImpl implements ILawsTaskTransferService { @Override public IPage queryBaseDB(LawsBaseDB lawsBaseDB, Integer pageNo, Integer pageSize) { + QueryWrapper queryWrapper = getLawsBaseDBQueryWrapper(lawsBaseDB); + return lawsTaskTransferMapper.queryBaseDB(queryWrapper, new Page<>(pageNo, pageSize)); + } + + @NotNull + private static QueryWrapper getLawsBaseDBQueryWrapper(LawsBaseDB lawsBaseDB) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(lawsBaseDB.getUser()), "u.realname", lawsBaseDB.getUser()); queryWrapper.eq(StringUtils.isNotBlank(lawsBaseDB.getType()), "t.type", lawsBaseDB.getType()); @@ -83,14 +94,29 @@ public class LawsTaskTransferServiceImpl implements ILawsTaskTransferService { queryWrapper.orderByDesc("t.create_time"); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String roleIds = loginUser.getRoleIds(); - if (!roleIds.contains("admin")){ + if (!roleIds.contains("admin") && !roleIds.contains("BZGLY")){ queryWrapper.eq("t.user", loginUser.getId()); } - return lawsTaskTransferMapper.queryBaseDB(queryWrapper, new Page<>(pageNo, pageSize)); + if (StringUtils.isNotBlank(lawsBaseDB.getIds())){ + queryWrapper.in("t.id", Arrays.asList(lawsBaseDB.getIds().split(","))); + } + return queryWrapper; + } + + @Override + public List queryBaseDB(LawsBaseDB lawsBaseDB) { + QueryWrapper queryWrapper = getLawsBaseDBQueryWrapper(lawsBaseDB); + return lawsTaskTransferMapper.queryBaseDB(queryWrapper); } @Override public IPage queryProcessDB(LawsProcessDB lawsProcessDb, Integer pageNo, Integer pageSize) { + QueryWrapper queryWrapper = getLawsProcessDBQueryWrapper(lawsProcessDb); + return lawsTaskTransferMapper.queryProcessDB(queryWrapper, new Page<>(pageNo, pageSize)); + } + + @NotNull + private static QueryWrapper getLawsProcessDBQueryWrapper(LawsProcessDB lawsProcessDb) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(StringUtils.isNotBlank(lawsProcessDb.getUser()), "u.realname", lawsProcessDb.getUser()); queryWrapper.like(StringUtils.isNotBlank(lawsProcessDb.getPrcNum()), "prc_num", lawsProcessDb.getPrcNum()); @@ -103,10 +129,19 @@ public class LawsTaskTransferServiceImpl implements ILawsTaskTransferService { queryWrapper.orderByDesc("par.create_time"); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String roleIds = loginUser.getRoleIds(); - if (!roleIds.contains("admin")){ + if (!roleIds.contains("admin") && !roleIds.contains("BZGLY")){ queryWrapper.eq("par.user_id", loginUser.getId()); } - return lawsTaskTransferMapper.queryProcessDB(queryWrapper, new Page<>(pageNo, pageSize)); + if (StringUtils.isNotBlank(lawsProcessDb.getIds())){ + queryWrapper.in("pa.id", Arrays.asList(lawsProcessDb.getIds().split(","))); + } + return queryWrapper; + } + + @Override + public List queryProcessDB(LawsProcessDB lawsProcessDb) { + QueryWrapper queryWrapper = getLawsProcessDBQueryWrapper(lawsProcessDb); + return lawsTaskTransferMapper.queryProcessDB(queryWrapper); } @Override @@ -118,6 +153,10 @@ public class LawsTaskTransferServiceImpl implements ILawsTaskTransferService { @Override public void processDBTransferBatch(List lawsProcessDBList) { + // 水平越权 + List idlist = lawsProcessDBList.stream().map(LawsProcessDB::getId).collect(Collectors.toList()); + isHorizontalOverstepByProcessDB(String.join(",", idlist)); + for (LawsProcessDB lawsProcessDb : lawsProcessDBList) { String taskId = lawsProcessDb.getTaskId(); String toUserId = lawsProcessDb.getTransferUser(); @@ -130,6 +169,34 @@ public class LawsTaskTransferServiceImpl implements ILawsTaskTransferService { } } + @Override + public void isHorizontalOverstepByBaseDB(String ids) { + LawsBaseDB lawsBaseDB = new LawsBaseDB(); + lawsBaseDB.setIds(ids); + List lawsBaseDBList = queryBaseDB(lawsBaseDB); + if (Objects.isNull(lawsBaseDBList) || lawsBaseDBList.size() != ids.split(",").length) { + if(LanguageEnum.CN.equals(MessageUtils.getLanguage())) { + throw new JeroBootException("无权限!"); + }else{ + throw new JeroBootException("No access!"); + } + } + } + + @Override + public void isHorizontalOverstepByProcessDB(String ids) { + LawsProcessDB lawsProcessDB = new LawsProcessDB(); + lawsProcessDB.setIds(ids); + List lawsProcessDBList = queryProcessDB(lawsProcessDB); + if (Objects.isNull(lawsProcessDBList) || lawsProcessDBList.size() != ids.split(",").length) { + if(LanguageEnum.CN.equals(MessageUtils.getLanguage())) { + throw new JeroBootException("无权限!"); + }else{ + throw new JeroBootException("No access!"); + } + } + } + @Override public void baseDBTransfer(LawsBaseDB lawsBaseDB) { List lawsBaseDBList = new ArrayList<>(); @@ -139,6 +206,9 @@ public class LawsTaskTransferServiceImpl implements ILawsTaskTransferService { @Override public void baseDBTransferBatch(List lawsBaseDBList) { + // 水平越权 + List idlist = lawsBaseDBList.stream().map(LawsBaseDB::getId).collect(Collectors.toList()); + isHorizontalOverstepByBaseDB(String.join(",", idlist)); // 企标计划 standardPlan(lawsBaseDBList); // 标准拆分 diff --git a/laws-modules/src/main/resources/bpmn/未符合项跟踪流程.bpmn b/laws-modules/src/main/resources/bpmn/未符合项跟踪流程.bpmn index 67724ed2..06b9f898 100644 --- a/laws-modules/src/main/resources/bpmn/未符合项跟踪流程.bpmn +++ b/laws-modules/src/main/resources/bpmn/未符合项跟踪流程.bpmn @@ -1,32 +1,30 @@ - - + + Flow_12b9yhd - + Flow_12b9yhd Flow_0ndqyc9 - + Flow_0eu6g3b Flow_1uaygks Flow_0ame206 - - - - + + Flow_0ndqyc9 Flow_1torqxs Flow_1e2ecjo Flow_1ko64jc - + Flow_1ko64jc Flow_0rn2xkx @@ -57,7 +55,7 @@ - + diff --git a/laws-modules/src/main/resources/bpmn/未符合项跟踪流程 - 副本.bpmn b/laws-modules/src/main/resources/bpmn/未符合项跟踪流程camund.bpmn similarity index 86% rename from laws-modules/src/main/resources/bpmn/未符合项跟踪流程 - 副本.bpmn rename to laws-modules/src/main/resources/bpmn/未符合项跟踪流程camund.bpmn index b7ace2e6..9b63cb29 100644 --- a/laws-modules/src/main/resources/bpmn/未符合项跟踪流程 - 副本.bpmn +++ b/laws-modules/src/main/resources/bpmn/未符合项跟踪流程camund.bpmn @@ -1,32 +1,30 @@ - - + + Flow_12b9yhd - + Flow_12b9yhd Flow_0ndqyc9 - + Flow_0eu6g3b Flow_1uaygks Flow_0ame206 - - - - + + Flow_0ndqyc9 Flow_1torqxs Flow_1e2ecjo Flow_1ko64jc - + Flow_1ko64jc Flow_0rn2xkx diff --git a/laws-modules/src/main/resources/bpmn/法规合规评估流程.bpmn b/laws-modules/src/main/resources/bpmn/法规合规评估流程.bpmn index 53f84afc..fbe102c6 100644 --- a/laws-modules/src/main/resources/bpmn/法规合规评估流程.bpmn +++ b/laws-modules/src/main/resources/bpmn/法规合规评估流程.bpmn @@ -288,7 +288,7 @@ Flow_03v0fem Flow_1gw9i5e - + Flow_0c3ic1y Flow_19ehxvl @@ -473,18 +473,6 @@ - - - - - - - - - - - - @@ -502,28 +490,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -531,12 +497,6 @@ - - - - - - @@ -550,6 +510,12 @@ + + + + + + @@ -557,10 +523,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -575,28 +565,91 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -636,10 +689,6 @@ - - - - @@ -655,81 +704,20 @@ - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -752,49 +740,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -807,6 +752,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -818,18 +819,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - @@ -905,77 +956,16 @@ - - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -990,6 +980,13 @@ + + + + + + + @@ -998,6 +995,10 @@ + + + + @@ -1016,6 +1017,18 @@ + + + + + + + + + + + + @@ -1027,6 +1040,10 @@ + + + + @@ -1034,26 +1051,10 @@ - - - - - - - - - - - - - - - - diff --git a/laws-modules/src/main/resources/bpmn/法规合规评估流程camund.bpmn b/laws-modules/src/main/resources/bpmn/法规合规评估流程camund.bpmn index e8688aa8..927e2bfe 100644 --- a/laws-modules/src/main/resources/bpmn/法规合规评估流程camund.bpmn +++ b/laws-modules/src/main/resources/bpmn/法规合规评估流程camund.bpmn @@ -288,7 +288,7 @@ Flow_03v0fem Flow_1gw9i5e - + Flow_0c3ic1y Flow_19ehxvl @@ -473,18 +473,6 @@ - - - - - - - - - - - - @@ -502,28 +490,6 @@ - - - - - - - - - - - - - - - - - - - - - - @@ -531,12 +497,6 @@ - - - - - - @@ -550,6 +510,12 @@ + + + + + + @@ -557,10 +523,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + @@ -575,28 +565,91 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -636,10 +689,6 @@ - - - - @@ -655,81 +704,20 @@ - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -752,49 +740,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -807,6 +752,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -818,18 +819,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - @@ -905,77 +956,16 @@ - - - + + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -990,6 +980,13 @@ + + + + + + + @@ -998,6 +995,10 @@ + + + + @@ -1016,6 +1017,18 @@ + + + + + + + + + + + + @@ -1027,6 +1040,10 @@ + + + + @@ -1034,26 +1051,10 @@ - - - - - - - - - - - - - - - - diff --git a/laws-single-startup/src/main/resources/i18n/messages.properties b/laws-single-startup/src/main/resources/i18n/messages.properties index bebf8e04..0e6ede99 100644 --- a/laws-single-startup/src/main/resources/i18n/messages.properties +++ b/laws-single-startup/src/main/resources/i18n/messages.properties @@ -66,4 +66,6 @@ task.not.exists=\u4EFB\u52A1\u4E0D\u5B58\u5728 draft.not.exists=\u8349\u7A3F\u4E0D\u5B58\u5728 en.standard.number.conflict=\u4F01\u6807\u7F16\u53F7\u5DF2\u5B58\u5728\uFF0C\u9700\u7B49\u5F85\u91CD\u65B0\u751F\u6210\u987A\u5E8F\u53F7 tag.add.error.2=\u6BCF\u5F20\u8868\u6700\u591A\u670950\u4E2A\u5B57\u6BB5\u3002 -task.urging.error=\u53EA\u80FD\u50AC\u529E\u5F85\u529E\u4EFB\u52A1 \ No newline at end of file +task.urging.error=\u53EA\u80FD\u50AC\u529E\u5F85\u529E\u4EFB\u52A1 +invalid.esp=\u65E0\u6548\u7684\u4F01\u6807\u8BA1\u5212\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9 +can.not.edit.abolish.or.archive.es=\u5DF2\u5E9F\u6B62\u6216\u5DF2\u5F52\u6863\u7684\u4F01\u6807\u8BA1\u5212\u4E0D\u80FD\u7F16\u8F91,\u8BF7\u91CD\u65B0\u9009\u62E9 \ No newline at end of file diff --git a/laws-single-startup/src/main/resources/i18n/messages_en.properties b/laws-single-startup/src/main/resources/i18n/messages_en.properties index 5f776c69..fa79f13e 100644 --- a/laws-single-startup/src/main/resources/i18n/messages_en.properties +++ b/laws-single-startup/src/main/resources/i18n/messages_en.properties @@ -72,3 +72,5 @@ draft.not.exists=Draft not exists en.standard.number.conflict=standard number exists tag.add.error.2=each table can have a maximum of 50 fields. task.urging.error=Can only remind to do tasks +invalid.esp=Invalid enterprise standard, please check +can.not.edit.abolish.or.archive.es=Can not edit abolished or archived enterprise standards, please check \ No newline at end of file diff --git a/laws-single-startup/src/main/resources/i18n/messages_zh.properties b/laws-single-startup/src/main/resources/i18n/messages_zh.properties index d7516d92..a60a15cf 100644 --- a/laws-single-startup/src/main/resources/i18n/messages_zh.properties +++ b/laws-single-startup/src/main/resources/i18n/messages_zh.properties @@ -72,3 +72,5 @@ draft.not.exists=\u8349\u7A3F\u4E0D\u5B58\u5728 en.standard.number.conflict=\u4F01\u6807\u7F16\u53F7\u5DF2\u5B58\u5728\uFF0C\u9700\u7B49\u5F85\u91CD\u65B0\u751F\u6210\u987A\u5E8F\u53F7 tag.add.error.2=\u6BCF\u5F20\u8868\u6700\u591A\u670950\u4E2A\u5B57\u6BB5\u3002 task.urging.error=\u53EA\u80FD\u50AC\u529E\u5F85\u529E\u4EFB\u52A1 +invalid.esp=\u65E0\u6548\u7684\u4F01\u6807\u8BA1\u5212\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9 +can.not.edit.abolish.or.archive.es=\u5DF2\u5E9F\u6B62\u6216\u5DF2\u5F52\u6863\u7684\u4F01\u6807\u8BA1\u5212\u4E0D\u80FD\u7F16\u8F91,\u8BF7\u91CD\u65B0\u9009\u62E9 \ No newline at end of file