From 3a1d58ba602f806df8ef2f8d1f1403a4c3405606 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 24 Jul 2024 09:48:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20scc=E6=B5=81=E7=A8=8B=E6=9D=83=E9=99=90?= =?UTF-8?q?=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WorkCenterController.java | 5 +- .../listener/ProcessSCCEndListener.java | 46 +++++++++++++++++-- .../service/ProcessApprovalRecordService.java | 3 +- .../LawsConformityAssessmentLibrary.java | 12 +++++ .../entity/LawsEvaluationNotMetLibrary.java | 6 +++ ...awsConformityAssessmentLibraryService.java | 17 +++++-- ...onformityAssessmentLibraryServiceImpl.java | 39 ++++++++++++++-- ...awsEvaluationNotMetLibraryServiceImpl.java | 21 ++++----- 8 files changed, 122 insertions(+), 27 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java index ef90294a..77f65773 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java @@ -134,12 +134,11 @@ public class WorkCenterController { public Result getApprovalRecordList(ProcessApprovalRecord processApprovalRecord, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - @RequestParam(name = "type") String type, - HttpServletRequest req) { + @RequestParam(name = "type") String type) { Page page = new Page<>(pageNo, pageSize); Page pageList; try { - pageList = processApprovalRecordService.pageList(page, processApprovalRecord, type, req); + pageList = processApprovalRecordService.pageList(page, processApprovalRecord, type); }catch (Exception e){ return Result.error(MessageUtils.getMessage(ResultCommon.ERROR)); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java index 040eb084..17013d2f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/listener/ProcessSCCEndListener.java @@ -1,10 +1,13 @@ package com.jero.modules.activiti.process.standardComplianceCheck.listener; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheck; import com.jero.modules.activiti.process.standardComplianceCheck.entity.ProcessStandardComplianceCheckDetail; import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckDetailService; import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibrary; import com.jero.modules.assessmentLibrary.entity.LawsConformityAssessmentLibraryDetail; import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary; @@ -24,8 +27,9 @@ import java.util.List; import java.util.Optional; import java.util.stream.Collectors; -import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.DISCREPANCY; -import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.NOT_INVOLVE; +import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE; +import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*; +import static com.jero.modules.activiti.service.ProcessApprovalRecordService.COMPLETED_RECORD_LIST; /** * @author liJiaRao @@ -52,10 +56,39 @@ public class ProcessSCCEndListener implements ExecutionListener { @Resource private ILawsStandardMasterPlanService lawsStandardMasterPlanService; + + @Resource + private ProcessApprovalRecordService processApprovalRecordService; @Override public void notify(DelegateExecution delegateExecution) { log.info("法规符合性排查流程结束监听器开始执行"); + // 找到流程的所有审批人员 + Page page = new Page<>(1, Integer.MAX_VALUE); + ProcessApprovalRecord processApprovalRecord = new ProcessApprovalRecord(); + processApprovalRecord.setProcessInstanceId(delegateExecution.getProcessInstanceId()); + Page processApprovalRecordPage = processApprovalRecordService + .pageList(page, processApprovalRecord, COMPLETED_RECORD_LIST); + List processApprovalRecordList = processApprovalRecordPage.getRecords(); + // 找到流程的所有评估人 + boolean distribute = (boolean) delegateExecution.getVariable(DISTRIBUTE); + String allAssessors; + if (distribute) { + allAssessors = processApprovalRecordList.stream() + .filter(task -> task.getNodeId().equals(DESIGNER_ENGINEER_EVALUATION)) + .map(ProcessApprovalRecord::getUserId) + .distinct() + .collect(Collectors.joining(",")); + } else { + allAssessors = (String) delegateExecution.getVariable(MAIN_CHECK_USER); + } + String allApprovalUsers = processApprovalRecordList.stream() + .filter(task -> task.getNodeId().equals(COUNTERSIGN) || + task.getNodeId().equals(SENIOR_MANAGER_APPROVAL) || + task.getNodeId().equals(DESIGNER_ENGINEER_EVALUATION)) + .map(ProcessApprovalRecord::getUserId) + .distinct() + .collect(Collectors.joining(",")); LambdaQueryWrapper sccWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper sccDetailWrapper = new LambdaQueryWrapper<>(); // 找到流程数据 @@ -73,6 +106,8 @@ public class ProcessSCCEndListener implements ExecutionListener { if (lawsConformityAssessmentLibrary == null) { lawsConformityAssessmentLibrary = BeanCopyUtils.copyBean(scc, LawsConformityAssessmentLibrary.class); lawsConformityAssessmentLibrary.setId(null); + lawsConformityAssessmentLibrary.setAllApprovalUser(allApprovalUsers); + lawsConformityAssessmentLibrary.setAllAssessor(allAssessors); calService.save(lawsConformityAssessmentLibrary); lawsStandardMasterPlanService.syncRegulatoryComplianceInvestigation(lawsConformityAssessmentLibrary); } else { @@ -82,6 +117,8 @@ public class ProcessSCCEndListener implements ExecutionListener { lawsConformityAssessmentLibrary.setValuationTime(latestEvaluation .map(ProcessStandardComplianceCheckDetail::getValuationTime).orElse(null)); // 更新评估日期 + lawsConformityAssessmentLibrary.setAllApprovalUser(allApprovalUsers); + lawsConformityAssessmentLibrary.setAllAssessor(allAssessors); calService.updateById(lawsConformityAssessmentLibrary); } @@ -96,7 +133,10 @@ public class ProcessSCCEndListener implements ExecutionListener { .stream().filter(detail -> detail.getResult().equals(DISCREPANCY) || detail.getResult().equals(NOT_INVOLVE)).collect(Collectors.toList()); List lawsEvaluationNotMetLibraries = BeanCopyUtils.copyBeanList(notList, LawsEvaluationNotMetLibrary.class); - lawsEvaluationNotMetLibraries.forEach(detail -> detail.setId(null)); + lawsEvaluationNotMetLibraries.forEach(detail -> { + detail.setId(null); + detail.setAllApprovalUser(allApprovalUsers); + }); notMetService.saveBatch(lawsEvaluationNotMetLibraries); log.info("法规符合性排查流程结束监听器结束执行"); } 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 63f0c844..34a5ca94 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 @@ -19,7 +19,6 @@ 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 java.util.Map; @@ -60,7 +59,7 @@ public class ProcessApprovalRecordService extends ServiceImpl pageList(Page page, ProcessApprovalRecord processApprovalRecord, String type, HttpServletRequest req) { + public Page pageList(Page page, ProcessApprovalRecord processApprovalRecord, String type) { boolean allSnapshotFlag = type.equals(ALL_RECORD_LIST); String curUserId = UserUtils.getUserId(); QueryWrapper wrapper = new QueryWrapper<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java index 510f2942..d4a8c4e2 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsConformityAssessmentLibrary.java @@ -69,6 +69,18 @@ public class LawsConformityAssessmentLibrary implements Serializable { @ApiModelProperty(value = "结束评估日期") private Date endValuationTime; + /** + * 所有审批人员 + */ + @ApiModelProperty(value = "所有审批人员") + private String allApprovalUser; + + /** + * 所有审批人员 + */ + @ApiModelProperty(value = "所有审批人员") + private String allAssessor; + /** * 适用市场 */ diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java index ecdd0972..ecfb26d6 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/entity/LawsEvaluationNotMetLibrary.java @@ -248,6 +248,12 @@ public class LawsEvaluationNotMetLibrary implements Serializable { @Excel(name = "标准编号", width = 15, orderNum = "4") private String standardName; + /** + * 这条数据的所有审批人员 + */ + @ApiModelProperty(value = "这条数据的所有审批人员") + private String allApprovalUser; + /** * 关闭用主键ids */ diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/ILawsConformityAssessmentLibraryService.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/ILawsConformityAssessmentLibraryService.java index 23e4b808..6c156af5 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/ILawsConformityAssessmentLibraryService.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/ILawsConformityAssessmentLibraryService.java @@ -9,14 +9,15 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** -* @author ThinkBook -* @description 针对表【laws_conformity_assessment_library(法规符合性评估库)】的数据库操作Service -* @createDate 2024-06-24 14:47:19 -*/ + * @author ThinkBook + * @description 针对表【laws_conformity_assessment_library(法规符合性评估库)】的数据库操作Service + * @createDate 2024-06-24 14:47:19 + */ public interface ILawsConformityAssessmentLibraryService extends IService { /** * 分页列表 + * * @param lawsConformityAssessmentLibrary * @param pageNo * @param pageSize @@ -27,6 +28,7 @@ public interface ILawsConformityAssessmentLibraryService extends IService queryPage(LawsConformityAssessmentLibrary lawsConformityAssessmentLibrary, Integer pageNo, Integer pageSize) { - // TODO 数据权限 QueryWrapper queryWrapper = new QueryWrapper<>(); Page page = new Page<>(pageNo, pageSize); queryWrapper.like(StringUtils.isNotBlank(lawsConformityAssessmentLibrary.getStandardNumber()), @@ -79,8 +93,11 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl result = lawsConformityAssessmentLibraryMapper.queryByPage(page, queryWrapper); - return result; + if (noAdminAuth()) { + String userId = UserUtils.getUserId(); + queryWrapper.like("cs.all_approval_user", userId); + } + return lawsConformityAssessmentLibraryMapper.queryByPage(page, queryWrapper); } @Override @@ -100,6 +117,16 @@ public class LawsConformityAssessmentLibraryServiceImpl extends ServiceImpl roleId.equals(lawsAdmin) || roleId.equals(superAdmin)); + } + } diff --git a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java index d0b04562..5be2cac0 100644 --- a/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/assessmentLibrary/service/impl/LawsEvaluationNotMetLibraryServiceImpl.java @@ -12,9 +12,11 @@ import com.jero.common.util.FileUtils; import com.jero.common.util.ZipUtil; import com.jero.modules.assessmentLibrary.entity.LawsEvaluationNotMetLibrary; import com.jero.modules.assessmentLibrary.mapper.LawsEvaluationNotMetLibraryMapper; +import com.jero.modules.assessmentLibrary.service.ILawsConformityAssessmentLibraryService; import com.jero.modules.assessmentLibrary.service.ILawsEvaluationNotMetLibraryService; import com.jero.modules.laws.utils.ExcelExportUtilPro; import com.jero.modules.projectLibrary.common.AssessCommon; +import com.jero.modules.sys.utils.UserUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Workbook; @@ -47,24 +49,14 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl queryPage(LawsEvaluationNotMetLibrary lawsEvaluationNotMet, Integer pageNo, Integer pageSize, HttpServletRequest req) { - // TODO 权限 QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(lawsEvaluationNotMet, req.getParameterMap()); queryWrapper.like(StringUtils.isNotBlank(lawsEvaluationNotMet.getStandardNumber()), "nm.standard_number", lawsEvaluationNotMet.getStandardNumber()); @@ -82,6 +74,11 @@ public class LawsEvaluationNotMetLibraryServiceImpl extends ServiceImpl page = new Page<>(pageNo, pageSize); return notMetMapper.pageList(page, queryWrapper, lawsEvaluationNotMet);