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 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 = "主起草人填写信息";
@@ -337,6 +337,10 @@ public class ProcessEsAnnualInit implements Serializable {
@Dict(dicCode = "YN")
private String rejectFlag;
@ApiModelProperty(value = "二级驳回标识")
@Dict(dicCode = "YN")
private String rejectSecondFlag;
/**
* 执行id
*/
@@ -207,6 +207,11 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
case CONTACT_USER_SELECT:
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
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:
wrapper.eq(ProcessEsAnnualInit::getExecutionId, executionId);
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
@@ -270,6 +275,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
String processDefinitionId = processInstance.getProcessDefinitionId();
Map<String, Object> 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<ProcessEsAnnualI
}
}
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:
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<ProcessEsAnnualI
Set<String> 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<ProcessEsAnnualI
break;
case CONTACT_USER_EDIT:
dataList = annualInitData.getDataList();
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);
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<ProcessEsAnnualI
@Override
public void batchReject(AnnualInitDataVO annualInitData, String ids) {
CommonVO commonVO = annualInitData.getCommonVO();
String processInstanceId = commonVO.getProcessInstanceId();
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(commonVO.getTaskId());
String taskId = commonVO.getTaskId();
// 获取task
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
// 获取执行id
String executionId = task.getExecutionId();
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(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::getContactUser, userId);
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);
annualInitData.setDataList(list);
if (list.isEmpty()) {
throw new JeroBootException("无法获取数据,请重试。");
}
// 将对应数据找出来
this.approvalProcess(annualInitData, false);
}