审批+待办交互修改版本1
This commit is contained in:
parent
373e29724b
commit
6ade7367e7
@ -178,7 +178,6 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
|
||||
//分发待办
|
||||
for (String assigneeId : firstNode.getAssignees()) {
|
||||
|
||||
TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
|
||||
todoTaskPojo.setDocumentNo(approvalId);
|
||||
todoTaskPojo.setProcessTitle(processTitle);
|
||||
@ -194,8 +193,20 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
todoTaskPojo.setIsDelete(0);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo);
|
||||
|
||||
}
|
||||
//创建发起
|
||||
InitiatedTaskPojo initiatedTaskPojo = new InitiatedTaskPojo();
|
||||
initiatedTaskPojo.setDocumentNo(approvalId);
|
||||
initiatedTaskPojo.setProcessTitle(processTitle);
|
||||
initiatedTaskPojo.setCurrentNode(ApprovalOrderEnum.PROOFREAD.getDesc());
|
||||
initiatedTaskPojo.setCurrentProcessor(JSON.toJSONString(firstNode.getAssignees()));
|
||||
initiatedTaskPojo.setCreatedById(userId);
|
||||
initiatedTaskPojo.setCreatedBy(createBy);
|
||||
initiatedTaskPojo.setDataType(CurrentNodeEnum.DATAAPPROVAL.getDesc());
|
||||
initiatedTaskPojo.setModelName(modelPojoOld.getModelName());
|
||||
initiatedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
initiatedTaskPojo.setIsDelete(0);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(initiatedTaskPojo);
|
||||
//将参数绑定到该机型审批流程中
|
||||
for (EngineParamDetailPojo engineParamDetailPojo : paramList) {
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
@ -317,12 +328,20 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
.update("approver_persons", "")
|
||||
.update("last_update_date", new Date())
|
||||
.eq("id", approvalId).doUpdate(EngineReviewListPojo.class);
|
||||
//审批流的待办全部is_delete=1
|
||||
//审批流的事项全部处理
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", 1)
|
||||
// .update("current_node", ParamValueVersionEnum.REFUSE.getDesc())
|
||||
.update("current_node", ParamValueVersionEnum.REFUSE.getDesc())
|
||||
.update("last_update_date", new Date())
|
||||
.eq("document_no", approvalId).doUpdate(TodoTaskPojo.class);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("current_node", ParamValueVersionEnum.REFUSE.getDesc())
|
||||
.update("last_update_date", new Date())
|
||||
.eq("document_no", approvalId).doUpdate(InitiatedTaskPojo.class);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("current_node", ParamValueVersionEnum.REFUSE.getDesc())
|
||||
.update("last_update_date", new Date())
|
||||
.eq("document_no", approvalId).doUpdate(CompletedTaskPojo.class);
|
||||
return "已拒绝";
|
||||
}
|
||||
//通过处理
|
||||
@ -331,7 +350,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("approval_id", approvalId)
|
||||
.eq("node_name", reviewListPojo.getNodeName()).doQuery(ParamApprovalRecordPojo.class);
|
||||
|
||||
//获取已经处理过的人
|
||||
Set<String> operatedUsers = nodeRecords.stream()
|
||||
.map(ParamApprovalRecordPojo::getAssignee)
|
||||
.collect(Collectors.toSet());
|
||||
@ -341,79 +360,45 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
.eq("node_order", (nodeOrder + 1))
|
||||
.doQuery(ApprovalConfigPojo.class);
|
||||
|
||||
|
||||
//必须已经全部通过 不是会签的话例外
|
||||
if (operatedUsers.containsAll(assigneeList) || notAll) {
|
||||
//当前环节审批人 用来完成当前环节审批人的待办
|
||||
String assignees = approvalConfigPojo.getAssignees();
|
||||
for (String assID : Arrays.asList(assignees.split(","))) {
|
||||
Integer isd;
|
||||
if (assID.equals(approver)) {
|
||||
isd = 1;//抢签者完成
|
||||
} else {
|
||||
isd = 2;//被抢签完成
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(approvalConfigPojos)) {
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", isd)
|
||||
.update("current_node", approvalConfigPojos.get(0).getNodeName())
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", JSON.toJSONString(Arrays.asList(approvalConfigPojos.get(0).getAssignees().split(","))))
|
||||
.eq("document_no", approvalId)
|
||||
.eq("owner_id", assID)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
} else {
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", isd)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", "")
|
||||
.eq("document_no", approvalId)
|
||||
.eq("owner_id", assID)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
}
|
||||
}
|
||||
String nodeName = "";
|
||||
String currentProcessor = "";
|
||||
|
||||
// 更新待办
|
||||
if (ObjectUtils.isNotEmpty(approvalConfigPojos)) {
|
||||
|
||||
ApprovalConfigPojo approvalConfigPojo1 = approvalConfigPojos.get(0);
|
||||
for (String nextAssId : Arrays.asList(approvalConfigPojo1.getAssignees().split(","))) {
|
||||
// 更新待办
|
||||
List<TodoTaskPojo> todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("document_no", approvalId)
|
||||
.eq("owner_id", nextAssId)
|
||||
.update("is_delete", 0)
|
||||
.doQuery(TodoTaskPojo.class);
|
||||
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_node", approvalConfigPojo1.getNodeName())
|
||||
.update("current_processor", JSON.toJSONString(Arrays.asList(approvalConfigPojo1.getAssignees().split(","))))
|
||||
.eq("document_no", approvalId)
|
||||
// .eq("is_delete", 0)
|
||||
// .eq("owner_id", nextAssId)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
if (ObjectUtils.isEmpty(todoTaskPojos)) {
|
||||
TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
|
||||
todoTaskPojo.setDocumentNo(approvalId);
|
||||
todoTaskPojo.setProcessTitle(processTopic);
|
||||
todoTaskPojo.setCurrentNode(approvalConfigPojo1.getNodeName());
|
||||
todoTaskPojo.setModelId(reviewListPojo.getModelId());
|
||||
todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber());
|
||||
todoTaskPojo.setOwnerId(nextAssId);
|
||||
todoTaskPojo.setDataType(CurrentNodeEnum.DATAAPPROVAL.getDesc());
|
||||
todoTaskPojo.setModelName(modelPojo.getModelName());
|
||||
todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy());
|
||||
todoTaskPojo.setCreatedBy(createBy);
|
||||
todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
todoTaskPojo.setIsDelete(0);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo);
|
||||
}
|
||||
}
|
||||
ApprovalConfigPojo approvalConfigPojo1 = approvalConfigPojos.get(0);
|
||||
nodeName = approvalConfigPojo1.getNodeName();
|
||||
currentProcessor = JSON.toJSONString(Arrays.asList(approvalConfigPojos.get(0).getAssignees().split(",")));
|
||||
|
||||
//更新审批流到下个审批节点
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("approver_persons", approvalConfigPojo1.getAssignees())
|
||||
.update("node_name", approvalConfigPojo1.getNodeName())
|
||||
.update("node_name", nodeName)
|
||||
.update("last_update_date", new Date())
|
||||
.eq("id", approvalId).doUpdate(EngineReviewListPojo.class);
|
||||
//为下个环节的人生成待办
|
||||
for (String nextAssId : Arrays.asList(approvalConfigPojo1.getAssignees().split(","))) {
|
||||
TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
|
||||
todoTaskPojo.setDocumentNo(approvalId);
|
||||
todoTaskPojo.setProcessTitle(processTopic);
|
||||
todoTaskPojo.setCurrentNode(nodeName);
|
||||
todoTaskPojo.setCurrentProcessor(currentProcessor);
|
||||
todoTaskPojo.setModelId(reviewListPojo.getModelId());
|
||||
todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber());
|
||||
todoTaskPojo.setOwnerId(nextAssId);
|
||||
todoTaskPojo.setDataType(CurrentNodeEnum.DATAAPPROVAL.getDesc());
|
||||
todoTaskPojo.setModelName(modelPojo.getModelName());
|
||||
todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy());
|
||||
todoTaskPojo.setCreatedBy(createBy);
|
||||
todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
todoTaskPojo.setIsDelete(0);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo);
|
||||
}
|
||||
|
||||
} else {
|
||||
// 所有环节完成
|
||||
DataEntryEngineModelPojo modelPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
@ -463,56 +448,84 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
.update("last_update_date", new Date())
|
||||
.eq("id", approvalId).doUpdate(EngineReviewListPojo.class);
|
||||
//待办环节修改
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", 1)
|
||||
.update("current_node", ParamValueVersionEnum.PASSED.getDesc())
|
||||
.update("last_update_date", new Date())
|
||||
.eq("document_no", approvalId).doUpdate(TodoTaskPojo.class);
|
||||
nodeName = ParamValueVersionEnum.PASSED.getDesc();
|
||||
currentProcessor = "";
|
||||
}
|
||||
//当前环节审批人 用来完成当前环节审批人的待办
|
||||
String assignees = approvalConfigPojo.getAssignees();
|
||||
for (String assID : Arrays.asList(assignees.split(","))) {
|
||||
//为当前人生成已办
|
||||
if (assID.equals(approver)) {
|
||||
TodoTaskPojo todoTaskPojo = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("document_no", approvalId)
|
||||
.eq("owner_id", assID)
|
||||
.eq("current_node", reviewListPojo.getNodeName())
|
||||
.doQueryFirst(TodoTaskPojo.class);
|
||||
CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo();
|
||||
BeanUtils.copyProperties(todoTaskPojo, completedTaskPojo, "id");
|
||||
completedTaskPojo.setIsDelete(0);
|
||||
completedTaskPojo.setCurrentNode(nodeName);
|
||||
completedTaskPojo.setCurrentProcessor(currentProcessor);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(completedTaskPojo);
|
||||
}
|
||||
|
||||
}
|
||||
//完成这个节点的所有待办
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", 1)
|
||||
.update("current_node", nodeName)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", currentProcessor)
|
||||
.eq("document_no", approvalId)
|
||||
.eq("current_node", reviewListPojo.getNodeName())
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
//更新发起的事项状态
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("current_node", nodeName)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", currentProcessor)
|
||||
.eq("document_no", approvalId)
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
|
||||
} else {
|
||||
//如果还有未通过的 找到未通过的
|
||||
List<String> remainingAssignees = assigneeList.stream()
|
||||
.filter(assignee -> !operatedUsers.contains(assignee))
|
||||
.collect(Collectors.toList());
|
||||
List<String> complateAssignees = assigneeList.stream()
|
||||
.filter(assignee -> operatedUsers.contains(assignee))
|
||||
.collect(Collectors.toList());
|
||||
String remainingAssigneesJson = JSON.toJSONString(remainingAssignees);
|
||||
//已完成人的待办is_delete=1
|
||||
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", 1)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", remainingAssignees)
|
||||
.eq("document_no", approvalId)
|
||||
.eq("owner_id", approver)
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
|
||||
for (String remainingAssignee : remainingAssignees) {
|
||||
List<TodoTaskPojo> todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
for (String complateAssignee : complateAssignees) {
|
||||
TodoTaskPojo todoTaskPojo1 = sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.eq("document_no", approvalId)
|
||||
.eq("owner_id", remainingAssignee)
|
||||
.update("is_delete", 0)
|
||||
.doQuery(TodoTaskPojo.class);
|
||||
if (ObjectUtils.isEmpty(todoTaskPojos)) {
|
||||
TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
|
||||
todoTaskPojo.setDocumentNo(approvalId);
|
||||
todoTaskPojo.setProcessTitle(processTopic);
|
||||
todoTaskPojo.setCurrentNode(reviewListPojo.getNodeName());
|
||||
todoTaskPojo.setModelId(reviewListPojo.getModelId());
|
||||
todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber());
|
||||
todoTaskPojo.setOwnerId(remainingAssignee);
|
||||
todoTaskPojo.setDataType(CurrentNodeEnum.DATAAPPROVAL.getDesc());
|
||||
todoTaskPojo.setModelName(modelPojo.getModelName());
|
||||
todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy());
|
||||
todoTaskPojo.setCreatedBy(createBy);
|
||||
todoTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
todoTaskPojo.setIsDelete(0);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo);
|
||||
}
|
||||
.eq("current_node", reviewListPojo.getNodeName())
|
||||
.eq("owner_id", complateAssignee)
|
||||
.doQueryFirst(TodoTaskPojo.class);
|
||||
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("is_delete", 1)
|
||||
.update("last_update_date", new Date())
|
||||
.update("current_processor", remainingAssigneesJson)
|
||||
.eq("id", todoTaskPojo1.getId())
|
||||
.doUpdate(TodoTaskPojo.class);
|
||||
|
||||
//生成已完成人的已办
|
||||
CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo();
|
||||
BeanUtils.copyProperties(todoTaskPojo1, completedTaskPojo, "id");
|
||||
completedTaskPojo.setIsDelete(0);
|
||||
completedTaskPojo.setCurrentProcessor(remainingAssigneesJson);
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(completedTaskPojo);
|
||||
}
|
||||
|
||||
//更新机型审批数据的当前审批人去掉已经审批通过的那个人
|
||||
sw.buildFromDatasource("xdap_app_223770822127386625")
|
||||
.update("approver_persons", String.join(",", remainingAssignees))
|
||||
.eq("id", approvalId).doUpdate(EngineReviewListPojo.class);
|
||||
|
||||
}
|
||||
|
||||
if (ObjectUtils.isNotEmpty(list)) {
|
||||
batchInsertParamDetail(list);
|
||||
}
|
||||
@ -707,7 +720,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|
||||
// 设置审批人和未审批人
|
||||
if (!approvedPersons.isEmpty()) {
|
||||
mergedDto.setApproverPersons(String.join(",", approvedPersons));
|
||||
}else{
|
||||
} else {
|
||||
mergedDto.setApproverPersons("");
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user