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 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)