From bf8d6f1968f6576da47680dbd3f1c3dd459a2397 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Fri, 12 Jul 2024 17:26:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20scc=E6=B5=81=E7=A8=8B=E5=90=84?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E5=88=86=E5=8F=91=E9=A9=B3=E5=9B=9E=E6=B5=81?= =?UTF-8?q?=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activiti/common/ActivitiCommon.java | 1 + ...ocessStandardComplianceCheckConstants.java | 4 +++ ...essStandardComplianceCheckServiceImpl.java | 30 +++++++++++++------ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java b/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java index deebcaaf..8ba1151f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/common/ActivitiCommon.java @@ -9,4 +9,5 @@ public class ActivitiCommon { public static final String MAIN_INSTANCE_ID = "mainInstanceId"; public static final String PARENT_TASK_ID = "parentTaskId"; public static final String DISTRIBUTE = "distribute"; + public static final String UNALLOCATED_QUANTITY = "unallocatedQuantity"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java index 439544e9..22eb5849 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/common/ProcessStandardComplianceCheckConstants.java @@ -12,6 +12,10 @@ public class ProcessStandardComplianceCheckConstants { public static final String DEPT_USER = "deptUser"; /** 主排查人 */ public static final String MAIN_CHECK_USER = "mainCheckUser"; + /** 设计师 */ + public static final String DESIGNER = "designer"; + /** 设计师列表 */ + public static final String DESIGNER_LIST = "designerList"; /** 会签人员列表 */ public static final String COUNTERSIGN_USER_LIST = "countersignUserList"; /** 设计工程师科室经理审核 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java index 4fa6ed8c..45359e7b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardComplianceCheck/service/impl/ProcessStandardComplianceCheckServiceImpl.java @@ -4,6 +4,7 @@ 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.service.impl.ServiceImpl; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.util.MinioUtil; import com.jero.modules.activiti.common.ActivitiCommon; @@ -12,7 +13,6 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ActFlowCommonService; -import com.jero.modules.activiti.process.demo.common.ProcessDemoCommon; import com.jero.modules.activiti.process.demo.vo.ProcessDemoVO; import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey; import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO; @@ -54,6 +54,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE; import static com.jero.modules.activiti.common.ActivitiCommon.PASS; @@ -240,6 +241,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl detailInfoList = businessInfoDTO.getDetailInfoList(); switch (xmlNodeId) { case DEPT_USER_DISTRIBUTE: // 设置主排查人 @@ -248,6 +251,17 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl StrUtil.isBlank(e.getDesignEngineer())).count(); + // 去重找到所有设计师 + List designEngineerList = detailInfoList.stream().map(ProcessStandardComplianceCheckDetail::getDesignEngineer).distinct().collect(Collectors.toList()); + runtimeService.setVariable(processInstanceId, DESIGNER_LIST, designEngineerList); + } + runtimeService.setVariable(processInstanceId, DISTRIBUTE, distributeFlag); + runtimeService.setVariable(processInstanceId, UNALLOCATED_QUANTITY, unallocatedQuantity); break; } // 审批节点 @@ -321,15 +335,15 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl variables = new HashMap<>(); variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId); variables.put(ActivitiCommon.PARENT_TASK_ID, taskId); - + String mainCheckUser = (String) delegateTask.getVariable(MAIN_CHECK_USER); switch (taskDefinitionKey) { //主排查人分批下发后自动任务 case AUTO_TASK_1: case AUTO_TASK_3: - // TODO - List interpreterList = (List) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER); - for (String interpreter : interpreterList) { - userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter); + List designerList = (List) delegateTask.getVariable(DESIGNER_LIST); + for (String designer : designerList) { + userInfoMap.put(DESIGNER, designer); + userInfoMap.put(MAIN_CHECK_USER, mainCheckUser); // 流程定义id String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE); basicProcessInfoDTO.setProcessDefinitionId(definitionId); @@ -343,9 +357,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl Date: Fri, 12 Jul 2024 17:44:28 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat(=E6=A0=87=E5=87=86=E8=A7=A3=E8=AF=BB?= =?UTF-8?q?=E6=B5=81=E7=A8=8B):=20=E5=AF=BC=E5=85=A5=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/ProcessStandardInterpret.java | 4 +++ ...ProcessStandardInterpretClauseSublist.java | 32 +++++++++---------- .../xml/ProcessStandardInterpretMapper.xml | 2 ++ .../StandardInterpretFlowServiceImpl.java | 25 +++++++++++---- .../standardinterpret/vo/FlowImportExcel.java | 9 ++++++ 5 files changed, 49 insertions(+), 23 deletions(-) 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 8fd2af85..0be28f7b 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 @@ -70,6 +70,10 @@ public class ProcessStandardInterpret extends BaseEntity { @ApiModelProperty(value = "分解单来源(字典)") @Dict(dicCode = "process_manuscript") private String decompositionSource; + /**发起时是否选择了条款(字典:1:是,2:否)*/ + @ApiModelProperty(value = "发起时是否选择了条款(字典:1:是,0:否)") + @Dict(dicCode = "yn") + private String isChooseClause; /**是否下发(字典:1:是,2:否)*/ @ApiModelProperty(value = "是否下发(字典:1:是,2:否)") @Dict(dicCode = "is_distribute") 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 86ab4890..506228ba 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 @@ -54,22 +54,6 @@ public class ProcessStandardInterpretClauseSublist extends BaseEntity { @ApiModelProperty(value = "相对上一版变化点说明") @Excel(name = "相对上一版变化点说明", width = 15) private String changeDescription; - /**专业领域*/ - @ApiModelProperty(value = "专业领域") - @Excel(name = "专业领域", width = 15, dicCode = "professional_field") - private String domainArea; - /**新认证实施日期*/ - @ApiModelProperty(value = "新认证实施日期") - @Excel(name = "新认证实施日期", width = 15) - private String newCerImplementDate; - /**新生产车实施日期*/ - @ApiModelProperty(value = "新生产车实施日期") - @Excel(name = "新生产车实施日期", width = 15) - private String newProductionImplementation; - /**注册日期*/ - @ApiModelProperty(value = "注册日期") - @Excel(name = "注册日期", width = 15) - private String registrationDate; /**法规注释*/ @ApiModelProperty(value = "法规注释") @Excel(name = "法规注释", width = 15) @@ -104,9 +88,25 @@ public class ProcessStandardInterpretClauseSublist extends BaseEntity { @ApiModelProperty(value = "动力类型") @Excel(name = "动力类型", width = 15, dicCode = "dynamic_type") private String powerType; + /**专业领域*/ + @ApiModelProperty(value = "专业领域") + @Excel(name = "专业领域", width = 15, dicCode = "professional_field") + private String domainArea; /**配置需求*/ @ApiModelProperty(value = "配置需求") private String configurationRequirements; + /**新认证实施日期*/ + @ApiModelProperty(value = "新认证实施日期") + @Excel(name = "新认证实施日期", width = 15) + private String newCerImplementDate; + /**新生产车实施日期*/ + @ApiModelProperty(value = "新生产车实施日期") + @Excel(name = "新生产车实施日期", width = 15) + private String newProductionImplementation; + /**注册日期*/ + @ApiModelProperty(value = "注册日期") + @Excel(name = "注册日期", width = 15) + private String registrationDate; /**企业标准*/ @ApiModelProperty(value = "企业标准") @Excel(name = "企业标准", width = 15) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/mapper/xml/ProcessStandardInterpretMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/mapper/xml/ProcessStandardInterpretMapper.xml index 876f5813..19912bdb 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/mapper/xml/ProcessStandardInterpretMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/mapper/xml/ProcessStandardInterpretMapper.xml @@ -14,9 +14,11 @@ master_interpret_id, parent_id, standard_id, + split_info_id, project_id, decomposition_source, is_distribute, + is_choose_clause, countersign_person_ids, uploader, approve_person_id, 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 25ff507e..f52edee7 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 @@ -246,7 +246,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe standardInterpretDTO.getProcessStandardInterpret().getDecompositionSource()); HashMap parameter = new HashMap<>(); parameter.put("standard_id", lawsDomesticStandard.getId()); - parameter.put("standard_type", + parameter.put("file_type", standardInterpretDTO.getProcessStandardInterpret().getDecompositionSource()); List> maps = documentSplitService.queryDocumentSplitDetailByList(parameter); if (!Objects.isNull(maps)){ @@ -555,6 +555,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe ProcessStandardInterpretClause processStandardInterpretClause = new ProcessStandardInterpretClause(); processStandardInterpretClause.setStandardInterpretId(processStandardInterpret.getId()); + // 标准主解读人分发 if (StandardInterpretCommon.MASTER_INTERPRET_DISTRIBUTE.equals(node)){ processStandardInterpretClause.setIsDistribute(YesOrNoEnum.NO.getValue()); @@ -565,6 +566,10 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe } processStandardInterpretClauseList = processStandardInterpretClauseService.queryList(processStandardInterpretClause); + // 主控部门联络人分发 + if (StandardInterpretCommon.CONTACT_PERSON_DISTRIBUTE.equals(node)){ + processStandardInterpretClauseList = new ArrayList<>(); + } } // 通过 标准解读流程id 查询 标准解读流程_条款中间表_子表 @@ -702,7 +707,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe MultipartFile file = IntekeyUtils.autoDecryptFile(entity.getValue()); ImportParams params = new ImportParams(); params.setNeedSave(true); - params.setHeadRows(1); + params.setHeadRows(0); // excel表格头部校验 excelHeadVerify(file, FlowImportExcel.class, 0, 0); List lists = ExcelImportUtil.importExcel(file.getInputStream(), @@ -710,15 +715,16 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe if (CollectionUtils.isEmpty(lists) || lists.size() <= 2) { return Result.error(ResultCommon.IMPORT_DATA_CANNOT_BE_EMPTY); } - lists.remove(0); List list = BeanCopyUtils.copyBeanList(lists, ProcessStandardInterpretClauseSublist.class); StringBuilder errorMSG = new StringBuilder(); + String standardInterpretId = request.getParameter("standardInterpretId"); String standardId = request.getParameter("standardId"); String splitInfoId = request.getParameter("splitInfoId"); LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getById(standardId); // 字段校验 for (int i = 0; i < list.size(); i++) { + list.get(i).setStandardInterpretId(standardInterpretId); String head = "第" + (i + 2) + "行:"; List firstVerify = firstVerify(i, list.get(i), lawsDomesticStandard, splitInfoId); List secondVerify = secondVerify(list.get(i)); @@ -1031,7 +1037,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe } } - if (exist){ + if (i > 0 && exist){ // 条款校验 LawsDocumentSplit lawsDocumentSplits = documentSplitMapper.selectOne( new LambdaQueryWrapper() @@ -1170,6 +1176,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe processStandardInterpretService.saveOrUpdate(processStandardInterpret); // 如果没选择条款 if (CollectionUtils.isEmpty(processStandardInterpretClauseList)){ + processStandardInterpret.setIsChooseClause(YesOrNoEnum.NO.getValue()); // 自动保存所有条款 processStandardInterpretClauseList = getClauseList(processStandardInterpret.getStandardId(), @@ -1242,6 +1249,7 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe standardInterpretFlowDTO.getProcessAll().getProcessInstanceId()); processStandardInterpretClauseSublistService.saveBatch(processStandardInterpretClauseSublists); }else { + // 不分发 // 保存会签人员、审核人员、批准人员 processStandardInterpretService.updateById(processStandardInterpret); map.put(StandardInterpretCommon.JOINTLY_SIGN_LIST, @@ -1250,7 +1258,10 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe processStandardInterpret.getUploader()); map.put(StandardInterpretCommon.TECHNICAL_OFFICER, processStandardInterpret.getApprovePersonId()); - // 不分发 + + // 删除旧数据 + processStandardInterpretClauseService.removeByIds(processAllDelIds); + processStandardInterpretClauseSublistService .saveOrUpdateBatch(processStandardInterpretClauseSublistList); @@ -1260,8 +1271,8 @@ public class StandardInterpretFlowServiceImpl implements StandardInterpretFlowSe processStandardInterpretClauseSublistList) { int count = processStandardInterpretClauseService.count( new LambdaQueryWrapper() - .eq(ProcessStandardInterpretClause::getStandardInterpretId, - standardInterpretId) + .eq(ProcessStandardInterpretClause::getId, + standardInterpretClauseSublist.getStandardInterpretClauseId()) .eq(ProcessStandardInterpretClause::getClauseId, standardInterpretClauseSublist.getClauseId())); if (count <= 0){ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java index aa3b0070..6373bde5 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/vo/FlowImportExcel.java @@ -24,6 +24,11 @@ public class FlowImportExcel { @TableField(exist = false) @Excel(name = "标准名称/条款标题", width = 15) private String itemTitle; + /**条款内容*/ + @ApiModelProperty(value = "条款内容") + @TableField(exist = false) + @Excel(name = "条款内容", width = 15) + private String itemContent; /**译文*/ @ApiModelProperty(value = "译文") @Excel(name = "译文", width = 15) @@ -72,6 +77,10 @@ public class FlowImportExcel { @ApiModelProperty(value = "新认证实施日期") @Excel(name = "新认证实施日期", width = 15) private String newCerImplementDate; + /**新生产车实施日期*/ + @ApiModelProperty(value = "新生产车实施日期") + @Excel(name = "新生产车实施日期", width = 15) + private String newProductionImplementation; /**注册日期*/ @ApiModelProperty(value = "注册日期") @Excel(name = "注册日期", width = 15)