From 2dda03567ad55821d11cbfadb26b675752332f65 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Mon, 18 Dec 2023 17:46:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B9=B4=E5=BA=A6=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2-=E6=A0=87=E5=87=86=E5=8C=96=E5=8F=91=E8=B5=B7?= =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E9=A9=B3=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/AnnualInitTaskNameConstant.java | 1 + .../entity/ProcessEsAnnualInit.java | 4 ++ .../impl/ProcessEsAnnualInitServiceImpl.java | 68 +++++++++++++++++-- 3 files changed, 66 insertions(+), 7 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java index 1e63f2aa..3a9c6564 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/AnnualInitTaskNameConstant.java @@ -9,6 +9,7 @@ public class AnnualInitTaskNameConstant { public static final String STANDARD_ENGINEER_INIT = "标准化工程师发起"; public static final String CONTACT_USER_SELECT = "部所联络人选取审批人"; public static final String STANDARD_ENGINEER_EDIT = "标准化工程师修改调整"; + public static final String STANDARD_ENGINEER_SECOND_EDIT = "标准化工程师二次修改调整"; public static final String MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE = "主起草单位主管级领导审批下发"; public static final String CONTACT_USER_EDIT = "部所联络人修改调整"; public static final String MAIN_DRAFT_WRITE = "主起草人填写信息"; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java index e18bc50a..cc9a330c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/entity/ProcessEsAnnualInit.java @@ -337,6 +337,10 @@ public class ProcessEsAnnualInit implements Serializable { @Dict(dicCode = "YN") private String rejectFlag; + @ApiModelProperty(value = "二级驳回标识") + @Dict(dicCode = "YN") + private String rejectSecondFlag; + /** * 执行id */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java index d05cc586..222d3fed 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esAnnualInit/service/impl/ProcessEsAnnualInitServiceImpl.java @@ -207,6 +207,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl userMap = new HashMap<>(); + boolean batchDelFlag = StrUtil.isNotBlank(annualInitData.getBatchRejectIds()); switch (taskName) { case CONTACT_USER_SELECT: dataList = annualInitData.getDataList(); @@ -298,10 +304,33 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl d.setRejectFlag(YesOrNoEnum.NO.getValue())); + // 先删后增 + if (batchDelFlag) { + saveOrUpdateBatch(dataList); + } else { + wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); + wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); + wrapper.eq(ProcessEsAnnualInit::getRejectSecondFlag, YesOrNoEnum.YES.getValue()); + remove(wrapper); + saveBatch(dataList); + } + break; case STANDARD_ENGINEER_EDIT: dataList = annualInitData.getDataList(); dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); - saveOrUpdateBatch(dataList); + // 先删后增 + if (batchDelFlag) { + saveOrUpdateBatch(dataList); + } else { + wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser); + wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); + wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); + remove(wrapper); + saveBatch(dataList); + } break; case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE: dataList = annualInitData.getDataList(); @@ -312,6 +341,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl mainDraftUserSet = new HashSet<>(); dataList.forEach(d -> mainDraftUserSet.add(d.getPrcMainDraftUser())); dataList.forEach(data -> data.setExecutionId(executionId)); + saveOrUpdateBatch(dataList); taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet); // 保存人员 userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet)); @@ -326,11 +356,26 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl d.setRejectFlag(YesOrNoEnum.NO.getValue())); - taskService.setVariable(taskId, "approvalUser", annualInitData.getDataList().get(0).getApprovalUser()); - dataList.forEach(data -> data.setExecutionId(executionId)); - dataList.forEach(data -> data.setApprovalUser(annualInitData.getDataList().get(0).getApprovalUser())); - saveOrUpdateBatch(dataList); + if (pass) { + dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); + taskService.setVariable(taskId, "approvalUser", annualInitData.getDataList().get(0).getApprovalUser()); + dataList.forEach(data -> data.setExecutionId(executionId)); + dataList.forEach(data -> data.setApprovalUser(annualInitData.getDataList().get(0).getApprovalUser())); + saveOrUpdateBatch(dataList); + } else { + if (dataList == null) { + // 找到所有数据,然后设置驳回标志位 + updateWrapper.eq(ProcessEsAnnualInit::getContactUser, userId); + updateWrapper.set(ProcessEsAnnualInit::getRejectSecondFlag, YesOrNoEnum.YES.getValue()); + updateWrapper.set(ProcessEsAnnualInit::getExecutionId, executionId); + update(updateWrapper); + } else { + dataList.forEach(d -> d.setRejectSecondFlag(YesOrNoEnum.YES.getValue())); + dataList.forEach(data -> data.setExecutionId(executionId)); + saveOrUpdateBatch(dataList); + } + } + break; case MAIN_DRAFT_WRITE: dataList = annualInitData.getDataList(); dataList.forEach(d -> d.setMainDraftingUser(userId)); @@ -380,9 +425,12 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl list = list(wrapper); annualInitData.setDataList(list); + if (list.isEmpty()) { + throw new JeroBootException("无法获取数据,请重试。"); + } // 将对应数据找出来 this.approvalProcess(annualInitData, false); }