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 312fdd00..72639d74 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 @@ -13,28 +13,28 @@ public enum ProcessTypeEnum { DEMO("测试流程",0, "com.jero.modules.activiti.process.demo.service.ProcessDemoService","/workCenter/StandardEntryOrChangeProcess","/workCenter/StandardEntryOrChangeProcess"), - FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbEntryChangeServiceImpl","/workCenter/StandardEntryOrChangeProcess","/workCenter/StandardEntryOrChangeProcess"), - FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl","/workCenter/StandardConsultationProcess","/workCenter/StandardConsultationProcess"), - PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService","/workCenter/ProjectComplianceEvaluationProcess","/workCenter/ProjectComplianceEvaluationProcess"), - PROJECT_NOT_MET("未符合项跟踪流程",4, "com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService","/workCenter/NoMatchTrackingProcess","/workCenter/NoMatchTrackingProcess"), - PROJECT_STANDARD("法规合规评估流程",5, "com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardService","/workCenter/StandardComplianceProcess","/workCenter/StandardComplianceProcess"), - FB_STANDARD_PURCHASE("法规采购流程",6, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardPurchaseServiceImpl","/workCenter/StandardProcurementProcess","/workCenter/StandardProcurementProcess"), - ES_INIT_CHANGE("企标立项/变更计划",7, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl","/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow","/workCenter/enterpriseStandardInitChange"), - ES_ANNUAL_REPORT("年度制修订计划审批流程(各部门主动上报)",8, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl","/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow","/workCenter/annualRevisionPlanActivelyReport"), - ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl","/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow","/workCenter/annualRevisionPlanStandardizationInit"), - ES_REVISION("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esRevision.service.impl.EsRevisionServiceImpl","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), - ES_CHANGE("企标更改流程",11, "com.jero.modules.activiti.process.esChange.service.impl.ProcessEsChangeServiceImpl","/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow","/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow"), - ES_RECHECK("企标复审流程",12, "com.jero.modules.activiti.process.esRecheck.service.impl.ProcessEsRecheckServiceImpl","/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow","/workCenter/enterpriseStandardRecheck"), - ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl","/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow","/workCenter/enterpriseStandardAnnul"), - ES_ARCHIVE("企标封存流程",14, "com.jero.modules.activiti.process.esArchive.service.impl.ProcessEsArchiveServiceImpl","/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow","/workCenter/enterpriseStandardSealSave"), - ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl","/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow","/workCenter/enterpriseStandardStartUse"), - ES_INSPECT_PLAN("企标稽查计划", 16, "com.jero.modules.activiti.process.esinspectplan.service.impl.EsInspectPlanFlow","/workCenter/EnterpriseStandardInspectionPlan","/workCenter/EnterpriseStandardInspectionPlan"), - ES_INSPECT("企标稽查流程", 17, "com.jero.modules.activiti.process.esinspect.service.impl.EsInspectFlow","/workCenter/EnterpriseStandardInspectionProcess","/workCenter/EnterpriseStandardInspectionProcess"), - ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlow","/workCenter/InspectionExtensionRequestProcess","/workCenter/InspectionExtensionRequestProcess"), - ES_INSPECT_REPORT("企标稽查整改", 19, "com.jero.modules.activiti.process.esinspectrectify.service.impl.EsInspectRectifyFlow","/workCenter/EnterpriseStandardInspectionRectification","/workCenter/EnterpriseStandardInspectionRectification"), - PERMISSION_APPLY_PROCESS("权限申请流程", 20, "com.jero.modules.activiti.process.espermissionapply.service.impl.EsPermissionApplyFlow","/workCenter/PermissionApplicationProcess","/workCenter/PermissionApplicationProcess"), - STANDARD_DECLARE("标准宣贯流程", 21, "com.jero.modules.activiti.process.esdeclare.service.impl.EsDeclareFlow","/workCenter/StandardPromotionProcess","/noMobile"), - MEETING_MANAGE("会后管理流程", 22, "com.jero.modules.activiti.process.meetingmanage.service.impl.MeetingManageFlow","/workCenter/PostMeetingManageProcess","/noMobile") +FB_ENTRY_CHANGE("标准法规入库/变更流程",1, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbEntryChangeServiceImpl","/workCenter/StandardEntryOrChangeProcess","/workCenter/StandardEntryOrChangeProcess"), +FB_STANDARD_CONSULTATION("标准征求意见流程",2, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardConsultationServiceImpl","/workCenter/StandardConsultationProcess","/workCenter/StandardConsultationProcess"), +PROJECT_ASSESS("项目合规评估流程",3, "com.jero.modules.activiti.process.projectassess.service.ProcessProjectAssessService","/workCenter/ProjectComplianceEvaluationProcess","/workCenter/ProjectComplianceEvaluationProcess"), +PROJECT_NOT_MET("未符合项跟踪流程",4, "com.jero.modules.activiti.process.projectnotmet.service.ProcessProjectNotMetService","/workCenter/NoMatchTrackingProcess","/workCenter/NoMatchTrackingProcess"), +PROJECT_STANDARD("法规合规评估流程",5, "com.jero.modules.activiti.process.projectstandard.service.ProcessProjectStandardService","/workCenter/StandardComplianceProcess","/workCenter/StandardComplianceProcess"), +FB_STANDARD_PURCHASE("法规采购流程",6, "com.jero.modules.activiti.process.fb.service.impl.ProcessFbStandardPurchaseServiceImpl","/workCenter/StandardProcurementProcess","/workCenter/StandardProcurementProcess"), +ES_INIT_CHANGE("企标立项/变更计划",7, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl","/workCenter/enterpriseStandardInitChange/planApprovalChangeFlow","/workCenter/enterpriseStandardInitChange"), +ES_ANNUAL_REPORT("年度制修订计划审批流程(各部门主动上报)",8, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl","/workCenter/annualRevisionPlanActivelyReport/revisionPlanActivelyReportFlow","/workCenter/annualRevisionPlanActivelyReport"), +ES_ANNUAL_INIT("年度制修订计划审批流程(标准化发起)",9, "com.jero.modules.activiti.process.esAnnualReport.service.impl.ProcessEsAnnualReportServiceImpl","/workCenter/annualRevisionPlanStandardizationInit/revisionPlanStandardizationInitFlow","/workCenter/annualRevisionPlanStandardizationInit"), +ES_REVISION("企标制修订流程(草案编写/征求意见/报批)", 10, "com.jero.modules.activiti.process.esRevision.service.impl.EsRevisionServiceImpl","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"), +ES_CHANGE("企标更改流程",11, "com.jero.modules.activiti.process.esChange.service.impl.ProcessEsChangeServiceImpl","/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow","/workCenter/enterpriseStandardChange/enterpriseStandardChangeFlow"), +ES_RECHECK("企标复审流程",12, "com.jero.modules.activiti.process.esRecheck.service.impl.ProcessEsRecheckServiceImpl","/workCenter/enterpriseStandardRecheck/enterpriseStandardRecheckFlow","/workCenter/enterpriseStandardRecheck"), +ES_ABOLISH("企标废止流程",13, "com.jero.modules.activiti.process.esAbolish.service.impl.ProcessEsAbolishServiceImpl","/workCenter/enterpriseStandardAnnul/enterpriseStandardAnnulFlow","/workCenter/enterpriseStandardAnnul"), +ES_ARCHIVE("企标封存流程",14, "com.jero.modules.activiti.process.esArchive.service.impl.ProcessEsArchiveServiceImpl","/workCenter/enterpriseStandardSealSave/enterpriseStandardSealSaveFlow","/workCenter/enterpriseStandardSealSave"), +ES_ENABLE("已封存企标启用流程",15, "com.jero.modules.activiti.process.esEnable.service.impl.ProcessEsEnableServiceImpl","/workCenter/enterpriseStandardStartUse/enterpriseStandardStartUseFlow","/workCenter/enterpriseStandardStartUse"), +ES_INSPECT_PLAN("企标稽查计划", 16, "com.jero.modules.activiti.process.esinspectplan.service.impl.EsInspectPlanFlow","/workCenter/EnterpriseStandardInspectionPlan","/workCenter/EnterpriseStandardInspectionPlan"), +ES_INSPECT("企标稽查流程", 17, "com.jero.modules.activiti.process.esinspect.service.impl.EsInspectFlow","/workCenter/EnterpriseStandardInspectionProcess","/workCenter/EnterpriseStandardInspectionProcess"), +ES_INSPECT_DELAY_APPLY("稽查延期申请流程", 18, "com.jero.modules.activiti.process.esinspectdelayapply.service.impl.EsInspectDelayApplyFlow","/workCenter/InspectionExtensionRequestProcess","/workCenter/InspectionExtensionRequestProcess"), +ES_INSPECT_REPORT("企标稽查整改", 19, "com.jero.modules.activiti.process.esinspectrectify.service.impl.EsInspectRectifyFlow","/workCenter/EnterpriseStandardInspectionRectification","/workCenter/EnterpriseStandardInspectionRectification"), +PERMISSION_APPLY_PROCESS("权限申请流程", 20, "com.jero.modules.activiti.process.espermissionapply.service.impl.EsPermissionApplyFlow","/workCenter/PermissionApplicationProcess","/workCenter/PermissionApplicationProcess"), +STANDARD_DECLARE("标准宣贯流程", 21, "com.jero.modules.activiti.process.esdeclare.service.impl.EsDeclareFlow","/workCenter/StandardPromotionProcess","/noMobile"), +MEETING_MANAGE("会后管理流程", 22, "com.jero.modules.activiti.process.meetingmanage.service.impl.MeetingManageFlow","/workCenter/PostMeetingManageProcess","/noMobile") ; private String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java index 08a215e2..df5cb1ed 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/enums/ProcessType.java @@ -11,26 +11,7 @@ import lombok.Getter; @Getter public enum ProcessType { - /** - * 企标立项变更 - */ - ES_INIT_CHANGE("企标立项/变更计划", "1", "es-init-change", "processEsInitChangeServiceImpl"), - ES_ANNUAL_REPORT("年度制修订-各部门主动上报", "2", "es-annual-report", "processEsAnnualReportServiceImpl"), - ES_ANNUAL_INIT("年度制修订-标准化部门主动发起", "3", "es-annual-init", "processEsAnnualInitServiceImpl"), - FB_ENTRY_CHANGE("标准法规入库/变更流程", "4", "fb-entry-change", "ProcessFbEntryChangeServiceImpl"), - ES_ABOLISH("企标废止流程", "5", "es-abolish", "ProcessEsAbolishServiceImpl"), - ES_ARCHIVE("企标封存流程", "6", "es-archive", "ProcessEsArchiveServiceImpl"), - ES_CHANGE("企标变更流程", "7", "es-change", "ProcessEsChangeServiceImpl"), - ES_RECHECK("企标复审流程", "8", "es-recheck", "ProcessEsRecheckServiceImpl"), - ES_ENABLE("已封存企标启用流程", "9", "es-enable", "ProcessEsEnableServiceImpl"), - ES_REVISION("企标制修订流程", "10", "es-revision", "ProcessEsRevisionServiceImpl"), - ES_INSPECT_PLAN("企标稽查计划", "16", "inspect_plan", "ProcessEsInspectPlanServiceImpl"), - ES_INSPECT("企标稽查流程", "17", "inspect_process", "ProcessEsInspectServiceImpl"), - ES_INSPECT_DELAY_APPLY("稽查延期申请流程", "18", "inspect_delay_apply_process", "ProcessEsInspectDelayApplyServiceImpl"), - ES_INSPECT_REPORT("企标稽查整改", "19", "inspect_report", "ProcessEsInspectReportServiceImpl"), - PERMISSION_APPLY_PROCESS("权限申请流程", "20", "permission_apply_process", "ProcessEsPermissionApplyServiceImpl"), - STANDARD_DECLARE("标准宣贯流程", "21", "standard_declare", "ProcessEsDeclareServiceImpl"), - MEETING_MANAGE("会后管理流程", "22", "meeting_manage", "ProcessMeetingManageServiceImpl") + STANDARD_INTERPRET("标准解读流程", "2", "standard_interpret", "StandardInterpretFlowServiceImpl"), ; private final String name; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java index 4ff07914..32414e89 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java @@ -1,5 +1,20 @@ package com.jero.modules.activiti.process.common.utility; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +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.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import lombok.RequiredArgsConstructor; +import org.apache.shiro.SecurityUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -11,26 +26,52 @@ import java.util.stream.Collectors; * @Date: 2024-06-24 16:08 * @Version: 1.0 **/ +@RequiredArgsConstructor +@Transactional(rollbackFor = {Exception.class, JeroBootException.class}) +@Component public class FlowUtility { + private final ProcessAllService processAllService; + private final ProcessApprovalRecordService processApprovalRecordService; + + public void flowApprovalUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + // 更新流程总表信息 + processAllService.updateById(processAll); + // 更新流程审批信息 + processApprovalRecordService.update( + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getUserId, loginUser.getId()) + .eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId()) + .set(StringUtils.isNotBlank(processApprovalRecord.getCommitText()), + ProcessApprovalRecord::getCommitText, processApprovalRecord.getCommitText()) + .set(ProcessApprovalRecord::getCommitFlag, processApprovalRecord.getCommitFlag()) + .set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue()) + .set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile()) + .set(ProcessApprovalRecord::getEndTime, new Date())); + } + /** * 将Map中值为List类型的元素转换为以逗号分隔的字符串。 - * 这个方法遍历输入的Map,如果发现任何值是List类型,则将这个List转换为一个以逗号分隔的字符串。 - * 这样做可以简化Map的表示,尤其是当List中包含许多元素时。 + * 这样做的目的是为了简化Map的表示,尤其是当List中包含多个元素时。 + * 对于非List类型的值,直接保留原样。 * * @param map 原始的Map,可能包含值为List类型的元素。 - * @return 返回一个新的Map,其中所有值为List类型的元素都被转换为字符串。 + * @return 返回一个新的Map,其中所有值为List类型的元素都被转换为以逗号分隔的字符串。 */ public static Map listToString(Map map) { - // 使用流式编程来处理Map的每个条目 - return map.entrySet().stream().map(v -> { - // 检查当前条目的值是否为List类型 + // 使用Stream API对原始Map进行处理 + Map stringObjectHashMap = map.entrySet().stream().map(v -> { + // 检查当前元素的值是否为List类型 if (v.getValue() instanceof List) { - // 如果是List类型,则将其转换为以逗号分隔的字符串 + // 将List类型的值转换为以逗号分隔的字符串 v.setValue(String.join(",", (List) v.getValue())); } - // 返回转换后的条目 + // 返回转换后的Map.Entry对象 return v; }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + // 返回转换后的Map + return stringObjectHashMap; } + } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/common/StandardInterpretCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/common/StandardInterpretCommon.java new file mode 100644 index 00000000..c13e803d --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/common/StandardInterpretCommon.java @@ -0,0 +1,111 @@ +package com.jero.modules.activiti.process.standardinterpret.common; + +/** + * @ClassName: standardInterpret + * @Description: + * @Author: yjz + * @Date: 2024-06-24 15:08 + * @Version: 1.0 + **/ +public class StandardInterpretCommon { + private StandardInterpretCommon(){ + + } + + /** + * 标准解读流程key + */ + public static final String KEY = "standard_interpret"; + + /** + * 法规工程师发起 + */ + public static final String REGULATORY_ENGINEER_START = "regulatory_engineer_start"; + /** + * 主控部门联络人分发 + */ + public static final String CONTACT_PERSON_DISTRIBUTE = "contact_person_distribute"; + /** + * 标准主解读人分发 + */ + public static final String MASTER_INTERPRET_DISTRIBUTE = "master_interpret_distribute"; + /** + * 解读人填写信息(分发) + */ + public static final String INTERPRETING_PEOPLE_FILLOUT = "interpreting_people_fillout"; + /** + * 标准主解读人填写解读信息(不分发) + */ + public static final String MASTER_INTERPRET_FILLOUT = "master_interpret_fillout"; + /** + * 标准主解读人审核(分发) + */ + public static final String MASTER_INTERPRET_APPROVE = "master_interpret_approve"; + /** + * 标准主解读汇总(分发) + */ + public static final String MASTER_INTERPRET_SUMMARY = "master_interpret_summary"; + /** + * 会签(分发) + */ + public static final String JOINTLY_SIGN_1 = "jointly_sign_1"; + /** + * 会签(不分发) + */ + public static final String JOINTLY_SIGN_2 = "jointly_sign_2"; + /** + * 各涉及部门科室经理审核(分发) + */ + public static final String DEPARTMENT_MANAGER_APPROVE_1 = "department_manager_approve_1"; + /** + * 各涉及部门科室经理审核(不分发) + */ + public static final String DEPARTMENT_MANAGER_APPROVE_2 = "department_manager_approve_2"; + /** + * 主控部门高级经理/法规认证技术管批准(分发) + */ + public static final String TECHNICAL_OFFICER_APPROVAL_1 = "technical_officer_approval_1"; + /** + * 主控部门高级经理/法规认证技术管批准(不分发) + */ + public static final String TECHNICAL_OFFICER_APPROVAL_2 = "technical_officer_approval_2"; + + + /** + * 法规工程师 + */ + public static final String REGULATORY_ENGINEER = "regulatoryEngineer"; + /** + * 主控部门联络人 + */ + public static final String CONTACT_PERSON = "contactPerson"; + /** + * 标准主解读人 + */ + public static final String MASTER_INTERPRET = "masterInterpret"; + /** + * 解读人 + */ + public static final String INTERPRETING_PEOPLE = "interpretingPeople"; + /** + * 部门科室经理 + */ + public static final String DEPARTMENT_MANAGER = "departmentManager"; + /** + * 技术官 + */ + public static final String TECHNICAL_OFFICER = "technicalOfficer"; + + /** + * 标准主解读人分发 自动任务 + */ + public static final String AUTO_TASK_1 = "autoTask_1"; + /** + * 子解读人填写信息 自动任务 + */ + public static final String AUTO_TASK_2 = "autoTask_2"; + /** + * 主解读重新分发 自动任务 + */ + public static final String AUTO_TASK_3 = "autoTask_3"; +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/common/standardInterpret.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/common/standardInterpret.java deleted file mode 100644 index d056ffcc..00000000 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/common/standardInterpret.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.jero.modules.activiti.process.standardinterpret.common; - -/** - * @ClassName: standardInterpret - * @Description: - * @Author: yjz - * @Date: 2024-06-24 15:08 - * @Version: 1.0 - **/ -public class standardInterpret { - private standardInterpret(){ - - } - - /** - * 标准解读流程key - */ - public static final String KEY = "standard_interpret"; -} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseController.java index a24cf688..4fe2a335 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseController.java @@ -15,6 +15,6 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor public class ProcessStandardInterpretClauseController { - private ProcessStandardInterpretClauseService processStandardInterpretClauseService; + private final ProcessStandardInterpretClauseService processStandardInterpretClauseService; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseSublistController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseSublistController.java index 7c4ddc7d..c3af4c27 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseSublistController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretClauseSublistController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor public class ProcessStandardInterpretClauseSublistController { - private ProcessStandardInterpretClauseSublistService processStandardInterpretClauseSublistService; + private final ProcessStandardInterpretClauseSublistService processStandardInterpretClauseSublistService; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretController.java index 8cf1ed18..ef37d08b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/ProcessStandardInterpretController.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController("/processStandardInterpret") public class ProcessStandardInterpretController { - private ProcessStandardInterpretService processStandardInterpretService; + private final ProcessStandardInterpretService processStandardInterpretService; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/StandardInterpretFlowController.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/StandardInterpretFlowController.java index f3a4b731..3a8cbb01 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/StandardInterpretFlowController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/controller/StandardInterpretFlowController.java @@ -12,9 +12,14 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.task.Task; import org.apache.poi.ss.formula.functions.T; import org.springframework.web.bind.annotation.*; +import java.text.ParseException; +import java.util.List; +import java.util.Map; + /** * @ClassName: 标准解读流程 * @Description: @@ -29,7 +34,7 @@ import org.springframework.web.bind.annotation.*; @RequestMapping("/process/standardInterpretFlow") public class StandardInterpretFlowController { - private StandardInterpretFlowService standardInterpretFlowService; + private final StandardInterpretFlowService standardInterpretFlowService; /** * 标准解读流程-生成项目id @@ -44,7 +49,7 @@ public class StandardInterpretFlowController { /** * 标准解读流程-流程发起 - * @param standardInterpretFlowDTO 企标稽查计划流程VO对象 + * @param standardInterpretFlowDTO 标准解读流程对象 * @return 结果对象 */ @AutoLog(value = "标准解读流程-流程发起") @@ -54,4 +59,40 @@ public class StandardInterpretFlowController { standardInterpretFlowService.flowStart(standardInterpretFlowDTO); return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); } + + /** + * 标准解读流程-流程审批 + * @param standardInterpretFlowDTO 标准解读流程对象 + * @return 结果对象 + */ + @AutoLog(value = "企标稽查整改-流程审批") + @ApiOperation(value="企标稽查整改-流程审批", notes="企标稽查整改-流程审批") + @PostMapping(value = "/flowApproval") + public Result flowApproval(@RequestBody StandardInterpretFlowDTO standardInterpretFlowDTO) { + standardInterpretFlowService.flowApproval(standardInterpretFlowDTO); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + + /** + * 标准解读流程-生成项目id + * @return 项目id + */ + @AutoLog(value = "标准解读流程-demo", operateType = CommonConstant.OPERATE_TYPE_1) + @ApiOperation(value="标准解读流程-demo", notes="标准解读流程-demo") + @PostMapping(value = "/demo") + public String demo(@RequestBody Map map) { + standardInterpretFlowService.demo(map); + return "1"; + } + + /** + * 标准解读流程-生成项目id + * @return 项目id + */ + @AutoLog(value = "标准解读流程-getTaskId", operateType = CommonConstant.OPERATE_TYPE_1) + @ApiOperation(value="标准解读流程-getTaskId", notes="标准解读流程-getTaskId") + @PostMapping(value = "/getTaskId") + public List demo(String processInstanceId) { + return standardInterpretFlowService.getTaskId(processInstanceId); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretDTO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretDTO.java index d573aaf6..3c489a18 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretDTO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretDTO.java @@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.standardinterpret.dto; import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpret; import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpretClause; +import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpretClauseSublist; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,4 +25,8 @@ public class StandardInterpretDTO implements Serializable { /**标准解读流程_条款中间表*/ @ApiModelProperty(value = "标准解读流程_条款中间表") private List processStandardInterpretClauseList; + + /**标准解读流程_条款中间表*/ + @ApiModelProperty(value = "标准解读流程_条款中间表_子表") + private List processStandardInterpretClauseSublistList; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretFlowDTO.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretFlowDTO.java index 00ae276b..3a1e8795 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretFlowDTO.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/dto/StandardInterpretFlowDTO.java @@ -5,7 +5,6 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.io.Serializable; import java.util.Map; /** @@ -16,7 +15,7 @@ import java.util.Map; * @Version: 1.0 **/ @Data -public class StandardInterpretFlowDTO implements Serializable { +public class StandardInterpretFlowDTO { /**流程信息*/ @ApiModelProperty(value = "流程信息") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java index b9cd4d7f..79184cca 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java @@ -4,6 +4,7 @@ package com.jero.modules.activiti.process.standardinterpret.entity; import com.jero.modules.laws.documenttool.entity.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; /** * 标准解读流程(ProcessStandardInterpret)表实体类 @@ -11,6 +12,7 @@ import lombok.Data; * @author makejava * @since 2024-06-24 14:41:18 */ +@EqualsAndHashCode(callSuper = true) @Data public class ProcessStandardInterpret extends BaseEntity { /**主解读人*/ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClause.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClause.java index 13c67e2c..bceff496 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClause.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClause.java @@ -4,6 +4,7 @@ package com.jero.modules.activiti.process.standardinterpret.entity; import com.jero.modules.laws.documenttool.entity.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; /** * 标准解读流程_条款中间表(ProcessStandardInterpretClause)表实体类 @@ -11,6 +12,7 @@ import lombok.Data; * @author makejava * @since 2024-06-24 14:46:07 */ +@EqualsAndHashCode(callSuper = true) @Data public class ProcessStandardInterpretClause extends BaseEntity { /**标准解读流程id*/ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java index 133c579a..81d9cf28 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpretClauseSublist.java @@ -1,7 +1,7 @@ package com.jero.modules.activiti.process.standardinterpret.entity; -import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.jero.modules.laws.documenttool.entity.BaseEntity; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,7 +12,7 @@ import lombok.Data; * @since 2024-06-24 14:47:59 */ @Data -public class ProcessStandardInterpretClauseSublist extends Model { +public class ProcessStandardInterpretClauseSublist extends BaseEntity { /**标准解读流程_条款中间表id*/ @ApiModelProperty(value = "标准解读流程_条款中间表id") private String standardInterpretClauseId; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/listener/StandardInterpretFlowListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/listener/StandardInterpretFlowListener.java new file mode 100644 index 00000000..33d111fd --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/listener/StandardInterpretFlowListener.java @@ -0,0 +1,22 @@ +package com.jero.modules.activiti.process.standardinterpret.listener; + +import com.jero.common.util.SpringContextUtils; +import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.delegate.TaskListener; + +/** + * @ClassName: StandardInterpretFlowListener + * @Description: + * @Author: yjz + * @Date: 2024-06-25 10:20 + * @Version: 1.0 + **/ +public class StandardInterpretFlowListener implements TaskListener { + @Override + public void notify(DelegateTask delegateTask) { + StandardInterpretFlowService standardInterpretFlowService = + SpringContextUtils.getBean(StandardInterpretFlowService.class); + standardInterpretFlowService.flowListener(delegateTask); + } +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/StandardInterpretFlowService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/StandardInterpretFlowService.java index d97b763f..d0c5d385 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/StandardInterpretFlowService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/StandardInterpretFlowService.java @@ -1,6 +1,11 @@ package com.jero.modules.activiti.process.standardinterpret.service; import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpretFlowDTO; +import org.activiti.engine.delegate.DelegateTask; +import org.activiti.engine.task.Task; + +import java.util.List; +import java.util.Map; /** * @InterfaceName: StandardInterpretFlowServicce @@ -11,8 +16,24 @@ import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpret **/ public interface StandardInterpretFlowService { /** - * standardInterpretFlowDTO + * 流程发起 * @param standardInterpretFlowDTO */ void flowStart(StandardInterpretFlowDTO standardInterpretFlowDTO); + + /** + * 流程审批 + * @param standardInterpretFlowDTO + */ + void flowApproval(StandardInterpretFlowDTO standardInterpretFlowDTO); + + /** + * 流程监听 + * @param delegateTask + */ + void flowListener(DelegateTask delegateTask); + + void demo(Map map); + + List getTaskId(String processInstanceId); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java index e8b4da10..4454375b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlowServiceImpl.java @@ -3,21 +3,28 @@ package com.jero.modules.activiti.process.standardinterpret.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.jero.common.constant.enums.YesOrNoEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.SnowflakeUtils; +import com.jero.modules.activiti.common.ActivitiCommon; 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.enums.ProcessType; import com.jero.modules.activiti.process.common.utility.FlowUtility; -import com.jero.modules.activiti.process.standardinterpret.common.standardInterpret; +import com.jero.modules.activiti.process.demo.common.ProcessDemoCommon; +import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon; import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpretDTO; import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpretFlowDTO; import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpret; import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpretClause; +import com.jero.modules.activiti.process.standardinterpret.entity.ProcessStandardInterpretClauseSublist; import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretClauseService; +import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretClauseSublistService; import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretService; import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService; import com.jero.modules.activiti.service.ProcessAllService; @@ -25,16 +32,18 @@ import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessNodeLinkService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.activiti.engine.ProcessEngines; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * @ClassName: StandardInterpretFlowServiceImpl @@ -46,19 +55,21 @@ import java.util.Map; @Service @Slf4j @RequiredArgsConstructor +@Transactional(rollbackFor = {Exception.class,JeroBootException.class}) public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowService { - private RuntimeService runtimeService; - private TaskService taskService; - private ProcessAllService processAllService; - private ProcessApprovalRecordService processApprovalRecordService; - private ProcessNodeLinkService processNodeLinkService; - private ProcessStandardInterpretService processStandardInterpretService; - private ProcessStandardInterpretClauseService processStandardInterpretClauseService; + private final FlowUtility flowUtility; + private final RuntimeService runtimeService; + private final TaskService taskService; + private final ProcessAllService processAllService; + private final ProcessApprovalRecordService processApprovalRecordService; + private final ProcessNodeLinkService processNodeLinkService; + private final ProcessStandardInterpretService processStandardInterpretService; + private final ProcessStandardInterpretClauseService processStandardInterpretClauseService; + private final ProcessStandardInterpretClauseSublistService processStandardInterpretClauseSublistService; @Override public void flowStart(StandardInterpretFlowDTO standardInterpretFlowDTO) { - log.info("标准解读流程-流程发起 开始"); // 流程信息 ProcessAll processAll = standardInterpretFlowDTO.getProcessAll(); // 流程审批信息 @@ -67,50 +78,175 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe Map map = standardInterpretFlowDTO.getMap(); // 根据流程key启动流程,设置流程变量,更新流程总表信息,更新流程审批信息,返回任务信息 - Task task = startProcessInstanceByKey(standardInterpret.KEY, map, processAll, processApprovalRecord); + Task task = startProcessInstanceByKey(StandardInterpretCommon.KEY, map, processAll, processApprovalRecord); // 处理业务信息 handleBusinessData(standardInterpretFlowDTO); // 自动完成第一个节点 taskService.complete(task.getId()); - log.info("标准解读流程-流程发起 结束"); + } + + @Override + public void flowApproval(StandardInterpretFlowDTO standardInterpretFlowDTO) { + // 流程信息 + ProcessAll processAll = standardInterpretFlowDTO.getProcessAll(); + // 流程审批信息 + ProcessApprovalRecord processApprovalRecord = standardInterpretFlowDTO.getProcessApprovalRecord(); + // map(参数) + Map map = standardInterpretFlowDTO.getMap(); + + // 更新流程总表信息,更新流程审批信息 + flowUtility.flowApprovalUpdate(processAll, processApprovalRecord); + + // 完成任务 + taskService.complete(processAll.getTaskId(), map); + + } + + @Override + public void flowListener(DelegateTask delegateTask) { + log.info("标准解读流程-流程监听器 开始"); + String taskId = delegateTask.getId(); + String taskDefinitionKey = delegateTask.getTaskDefinitionKey(); + String processInstanceId = delegateTask.getProcessInstanceId(); + Map userInfoMap = new HashMap<>(); + // 获取 当前流程实例id + String mainInstanceId =(String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID); + //保存父子关联信息 + Map variables = new HashMap<>(); + variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId); + variables.put(ActivitiCommon.PARENT_TASK_ID, taskId); + if (StandardInterpretCommon.AUTO_TASK_1.equals(taskDefinitionKey) + || StandardInterpretCommon.AUTO_TASK_3.equals(taskDefinitionKey)) { + // 获取子解读人 + List interpretingPeopleList = + (List) delegateTask.getVariable(StandardInterpretCommon.INTERPRETING_PEOPLE); + for (String interpretingPeople : interpretingPeopleList) { + // 循环发起 标准解读流程(主解读重新分发子流程) + userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpretingPeople); + log.info("循环发起 标准解读流程(主解读人重新分发子流程)"); + } + }else if (StandardInterpretCommon.AUTO_TASK_2.equals(taskDefinitionKey)){ + // 获取 标准主解读人 + String masterInterpret = (String) delegateTask.getVariable(StandardInterpretCommon.MASTER_INTERPRET); + userInfoMap.put(StandardInterpretCommon.MASTER_INTERPRET, masterInterpret); + log.info("发起 标准解读流程(子解读人流程)"); + }else if (StandardInterpretCommon.MASTER_INTERPRET_SUMMARY.equals(taskDefinitionKey)){ + // 标准主解读汇总 合并条款 + + } + log.info("标准解读流程-流程监听器 结束"); + } + + @Override + public void demo(Map map) { + // 完成任务 + taskService.complete((String) map.get("taskId"), map); + } + + @Override + public List getTaskId(String processInstanceId) { + + TaskService taskService = ProcessEngines.getDefaultProcessEngine().getTaskService(); + return taskService.createTaskQuery() + .processInstanceId(processInstanceId) + .list(); } private void handleBusinessData(StandardInterpretFlowDTO standardInterpretFlowDTO) { StandardInterpretDTO data = standardInterpretFlowDTO.getData(); // 标准解读流程 ProcessStandardInterpret processStandardInterpret = data.getProcessStandardInterpret(); - processStandardInterpretService.saveOrUpdate(processStandardInterpret); - + String standardInterpretId = processStandardInterpret.getId(); // 标准解读流程_条款中间表 List processStandardInterpretClauseList = data.getProcessStandardInterpretClauseList(); - for (ProcessStandardInterpretClause processStandardInterpretClause : processStandardInterpretClauseList) { - processStandardInterpretClause.setId(String.valueOf(SnowflakeUtils.snowflake())); - processStandardInterpretClause.setStandardInterpretId(processStandardInterpret.getId()); + // 标准解读流程_条款中间表_子表 + List processStandardInterpretClauseSublistList = + data.getProcessStandardInterpretClauseSublistList(); + // 当前任务节点 + String node = standardInterpretFlowDTO.getProcessApprovalRecord().getNodeId(); + + switch (node){ + // 法规工程师发起 + case StandardInterpretCommon.REGULATORY_ENGINEER_START: + processStandardInterpretService.saveOrUpdate(processStandardInterpret); + for (ProcessStandardInterpretClause standardInterpretClause : processStandardInterpretClauseList) { + standardInterpretClause.setId(String.valueOf(SnowflakeUtils.snowflake())); + standardInterpretClause.setDecompositionSource(processStandardInterpret.getDecompositionSource()); + standardInterpretClause.setStandardInterpretId(standardInterpretId); + } + processStandardInterpretClauseService.saveOrUpdateBatch(processStandardInterpretClauseList); + break; + // 主控部门联络人分发 + case StandardInterpretCommon.CONTACT_PERSON_DISTRIBUTE: + List clauseIdList = processStandardInterpretClauseList.stream() + .map(ProcessStandardInterpretClause::getId) + .collect(Collectors.toList()); + // 删除旧数据 + LambdaQueryWrapper removeQueryWrapper = new LambdaQueryWrapper<>(); + removeQueryWrapper.notIn(ProcessStandardInterpretClause::getStandardInterpretId, clauseIdList); + removeQueryWrapper.eq(ProcessStandardInterpretClause::getStandardInterpretId, standardInterpretId); + processStandardInterpretClauseService.remove(removeQueryWrapper); + break; + // 标准主解读人分发 + case StandardInterpretCommon.MASTER_INTERPRET_DISTRIBUTE: + if (YesOrNoEnum.YES.getValue().equals(processStandardInterpret.getIsDistribute())){ + // 分发 + // 更新 标准解读流程_条款中间表 + processStandardInterpretClauseService.saveOrUpdateBatch(processStandardInterpretClauseList); + // 生成 标准解读流程_条款中间表_子表 数据 + List processStandardInterpretClauseSublists = + new ArrayList<>(); + for (ProcessStandardInterpretClause StandardInterpretClause : processStandardInterpretClauseList) { + // 子解读人 + String[] interpretPersonIds = StandardInterpretClause.getInterpretPersonIds().split(","); + for (String interpretPersonId : interpretPersonIds) { + ProcessStandardInterpretClauseSublist clauseSublist = + new ProcessStandardInterpretClauseSublist(); + clauseSublist.setStandardInterpretClauseId(StandardInterpretClause.getId()); + clauseSublist.setClauseId(StandardInterpretClause.getClauseId()); + clauseSublist.setInterpretPersonId(interpretPersonId); + processStandardInterpretClauseSublists.add(clauseSublist); + } + } + processStandardInterpretClauseSublistService.saveBatch(processStandardInterpretClauseSublists); + }else { + // 不分发 + processStandardInterpretClauseSublistService + .saveOrUpdateBatch(processStandardInterpretClauseSublistList); + } + break; + default: + processStandardInterpretClauseSublistService + .saveOrUpdateBatch(processStandardInterpretClauseSublistList); + break; } - processStandardInterpretClauseService.saveOrUpdateBatch(processStandardInterpretClauseList); + } private Task startProcessInstanceByKey(String key, Map map, ProcessAll processAll, ProcessApprovalRecord processApprovalRecord) { // 启动流程 ProcessInstance processInstance = runtimeService - .startProcessInstanceByKey(key); + .startProcessInstanceByKey(key, map); // 设置流程变量 runtimeService.setVariables(processInstance.getId(), map); - // 更新流程总表信息 + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - processAll.setPrcType(Integer.valueOf(ProcessType.ES_INSPECT_REPORT.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() - .eq(ProcessAll::getProcessInstanceId, processInstance.getId())); + String formatDate = DateUtil.format(date, DatePattern.PURE_DATETIME_MS_PATTERN); + + // 更新流程总表信息 + LambdaUpdateWrapper processAllUpdate = new LambdaUpdateWrapper<>(); + processAllUpdate.eq(ProcessAll::getProcessInstanceId, processInstance.getId()); + processAllUpdate.set(ProcessAll::getPrcNum, formatDate); + processAllUpdate.set(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue()); + processAllUpdate.set(ProcessAll::getCreateUserId, loginUser.getId()); + processAllUpdate.set(ProcessAll::getPrcType, ProcessType.STANDARD_INTERPRET.getValue()); + processAllService.update(processAll, processAllUpdate); // 根据流程实例id查询任务信息 Task task = taskService.createTaskQuery() @@ -118,13 +254,13 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe .singleResult(); // 更新流程审批信息 - processApprovalRecord.setUserId(loginUser.getId()); - processApprovalRecord.setProjectId(processAll.getProjectId()); - processApprovalRecord.setFinishFlag(FinishFlagEnum.COMPLETE.getValue()); - processApprovalRecord.setEndTime(new Date()); - processApprovalRecordService.update(processApprovalRecord, - new LambdaUpdateWrapper() - .eq(ProcessApprovalRecord::getTaskId, task.getId())); + LambdaUpdateWrapper processApprovalRecordUpdate = new LambdaUpdateWrapper<>(); + processApprovalRecordUpdate.eq(ProcessApprovalRecord::getTaskId, task.getId()); + processApprovalRecordUpdate.set(ProcessApprovalRecord::getUserId, loginUser.getId()); + processApprovalRecordUpdate.set(ProcessApprovalRecord::getProjectId, processAll.getProjectId()); + processApprovalRecordUpdate.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue()); + processApprovalRecordUpdate.set(ProcessApprovalRecord::getEndTime, new Date()); + processApprovalRecordService.update(processApprovalRecord, processApprovalRecordUpdate); // 新增流程实例节点关联用户表信息 processNodeLinkService.saveNodeUserLink(processInstance.getProcessDefinitionId(), processInstance.getId() 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 840ca8aa..f701dceb 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 @@ -9,7 +9,6 @@ import com.jero.modules.activiti.entity.ProcessModelNode; import com.jero.modules.activiti.entity.ProcessNode; import com.jero.modules.activiti.mapper.ProcessModelNodeMapper; import com.jero.modules.activiti.mapper.ProcessNodeMapper; -import com.jero.modules.activiti.process.common.enums.ProcessType; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -113,10 +112,6 @@ public class ProcessNodeService extends ServiceImpl