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