feat: 年度制修订-标准化发起二级驳回

This commit is contained in:
2023-12-18 17:46:53 +08:00
parent c0e929111a
commit 2dda03567a
3 changed files with 66 additions and 7 deletions
@@ -9,6 +9,7 @@ public class AnnualInitTaskNameConstant {
public static final String STANDARD_ENGINEER_INIT = "标准化工程师发起"; public static final String STANDARD_ENGINEER_INIT = "标准化工程师发起";
public static final String CONTACT_USER_SELECT = "部所联络人选取审批人"; public static final String CONTACT_USER_SELECT = "部所联络人选取审批人";
public static final String STANDARD_ENGINEER_EDIT = "标准化工程师修改调整"; 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 MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE = "主起草单位主管级领导审批下发";
public static final String CONTACT_USER_EDIT = "部所联络人修改调整"; public static final String CONTACT_USER_EDIT = "部所联络人修改调整";
public static final String MAIN_DRAFT_WRITE = "主起草人填写信息"; public static final String MAIN_DRAFT_WRITE = "主起草人填写信息";
@@ -337,6 +337,10 @@ public class ProcessEsAnnualInit implements Serializable {
@Dict(dicCode = "YN") @Dict(dicCode = "YN")
private String rejectFlag; private String rejectFlag;
@ApiModelProperty(value = "二级驳回标识")
@Dict(dicCode = "YN")
private String rejectSecondFlag;
/** /**
* 执行id * 执行id
*/ */
@@ -207,6 +207,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
case CONTACT_USER_SELECT: case CONTACT_USER_SELECT:
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
break; break;
case STANDARD_ENGINEER_SECOND_EDIT:
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, approvalUser);
wrapper.eq(ProcessEsAnnualInit::getRejectSecondFlag, YesOrNoEnum.YES.getValue());
break;
case STANDARD_ENGINEER_EDIT: case STANDARD_ENGINEER_EDIT:
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId); wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
@@ -270,6 +275,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
String processDefinitionId = processInstance.getProcessDefinitionId(); String processDefinitionId = processInstance.getProcessDefinitionId();
Map<String, Object> userMap = new HashMap<>(); Map<String, Object> userMap = new HashMap<>();
boolean batchDelFlag = StrUtil.isNotBlank(annualInitData.getBatchRejectIds());
switch (taskName) { switch (taskName) {
case CONTACT_USER_SELECT: case CONTACT_USER_SELECT:
dataList = annualInitData.getDataList(); dataList = annualInitData.getDataList();
@@ -298,10 +304,33 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
} }
} }
break; break;
case STANDARD_ENGINEER_SECOND_EDIT:
dataList = annualInitData.getDataList();
dataList.forEach(d -> 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: case STANDARD_ENGINEER_EDIT:
dataList = annualInitData.getDataList(); dataList = annualInitData.getDataList();
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); 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; break;
case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE: case MAIN_DRAFT_LEADER_APPROVAL_DISTRIBUTE:
dataList = annualInitData.getDataList(); dataList = annualInitData.getDataList();
@@ -312,6 +341,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
Set<String> mainDraftUserSet = new HashSet<>(); Set<String> mainDraftUserSet = new HashSet<>();
dataList.forEach(d -> mainDraftUserSet.add(d.getPrcMainDraftUser())); dataList.forEach(d -> mainDraftUserSet.add(d.getPrcMainDraftUser()));
dataList.forEach(data -> data.setExecutionId(executionId)); dataList.forEach(data -> data.setExecutionId(executionId));
saveOrUpdateBatch(dataList);
taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet); taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet);
// 保存人员 // 保存人员
userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet)); userMap.put("mainDraftUserList", String.join(",", mainDraftUserSet));
@@ -326,11 +356,26 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
break; break;
case CONTACT_USER_EDIT: case CONTACT_USER_EDIT:
dataList = annualInitData.getDataList(); dataList = annualInitData.getDataList();
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); if (pass) {
taskService.setVariable(taskId, "approvalUser", annualInitData.getDataList().get(0).getApprovalUser()); dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
dataList.forEach(data -> data.setExecutionId(executionId)); taskService.setVariable(taskId, "approvalUser", annualInitData.getDataList().get(0).getApprovalUser());
dataList.forEach(data -> data.setApprovalUser(annualInitData.getDataList().get(0).getApprovalUser())); dataList.forEach(data -> data.setExecutionId(executionId));
saveOrUpdateBatch(dataList); 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: case MAIN_DRAFT_WRITE:
dataList = annualInitData.getDataList(); dataList = annualInitData.getDataList();
dataList.forEach(d -> d.setMainDraftingUser(userId)); dataList.forEach(d -> d.setMainDraftingUser(userId));
@@ -380,9 +425,12 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
@Override @Override
public void batchReject(AnnualInitDataVO annualInitData, String ids) { public void batchReject(AnnualInitDataVO annualInitData, String ids) {
CommonVO commonVO = annualInitData.getCommonVO(); CommonVO commonVO = annualInitData.getCommonVO();
String processInstanceId = commonVO.getProcessInstanceId(); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(commonVO.getTaskId());
String taskId = commonVO.getTaskId(); String taskId = commonVO.getTaskId();
// 获取task // 获取task
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取执行id
String executionId = task.getExecutionId();
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) { if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在"); throw new JeroBootException("taskId为空或任务不存在");
} }
@@ -392,8 +440,14 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
wrapper.eq(ProcessEsAnnualInit::getDelFlag, YesOrNoEnum.NO.getValue()); wrapper.eq(ProcessEsAnnualInit::getDelFlag, YesOrNoEnum.NO.getValue());
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
wrapper.in(ProcessEsAnnualInit::getId, Arrays.asList(ids.split(","))); wrapper.in(ProcessEsAnnualInit::getId, Arrays.asList(ids.split(",")));
if (STANDARD_ENGINEER_SECOND_EDIT.equals(task.getName())) {
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
}
List<ProcessEsAnnualInit> list = list(wrapper); List<ProcessEsAnnualInit> list = list(wrapper);
annualInitData.setDataList(list); annualInitData.setDataList(list);
if (list.isEmpty()) {
throw new JeroBootException("无法获取数据,请重试。");
}
// 将对应数据找出来 // 将对应数据找出来
this.approvalProcess(annualInitData, false); this.approvalProcess(annualInitData, false);
} }