待办更新问题

This commit is contained in:
ys.git 2025-12-23 17:38:59 +08:00
parent 1e4ce121dd
commit 26b0526093
4 changed files with 111 additions and 50 deletions

View File

@ -21,4 +21,6 @@ public class ApprovalNodeRequest {
private String userId; private String userId;
//审批发起说明 //审批发起说明
private String comment; private String comment;
//审批发起说明
private String processTitle;
} }

View File

@ -2,12 +2,8 @@ package com.xdap.self_development.service;
import com.xdap.self_development.controller.request.AnalysisRequest; import com.xdap.self_development.controller.request.AnalysisRequest;
import com.xdap.self_development.controller.request.ApprovalNodeRequest;
import com.xdap.self_development.controller.request.ReportRequest; import com.xdap.self_development.controller.request.ReportRequest;
import com.xdap.self_development.pojo.dto.ActivitiDataAndRecordDTO;
import com.xdap.self_development.pojo.dto.ActivitiDataDTO;
import com.xdap.self_development.pojo.dto.HandleApprovalDTO;
import com.xdap.self_development.pojo.dto.ShowActivitiDTO;
import com.xdap.self_development.pojo.view.AnalysisModelParamterView; import com.xdap.self_development.pojo.view.AnalysisModelParamterView;
import com.xdap.self_development.pojo.view.AnalysisModelParamterViewAndParam; import com.xdap.self_development.pojo.view.AnalysisModelParamterViewAndParam;

View File

@ -72,7 +72,11 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
if (ParamOperation.UPDATE.toString().equals(operation)) { if (ParamOperation.UPDATE.toString().equals(operation)) {
String parameterValue = StringUtils.isEmpty(engineParamDetailPojo.getParameterValue()) ? String parameterValue = StringUtils.isEmpty(engineParamDetailPojo.getParameterValue()) ?
"" : engineParamDetailPojo.getParameterValue(); "" : engineParamDetailPojo.getParameterValue();
com = "修改:" + parameterValue + "改为" + engineParamDetailPojo.getMinorVersion(); if (ObjectUtils.isEmpty(parameterValue)) {
com = "填写为:" + engineParamDetailPojo.getMinorVersion();
} else {
com = "修改:" + parameterValue + "改为" + engineParamDetailPojo.getMinorVersion();
}
} }
if (ParamOperation.INSERT.toString().equals(operation)) { if (ParamOperation.INSERT.toString().equals(operation)) {
com = "新增"; com = "新增";
@ -117,7 +121,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
log.info("参与审批的数据为空"); log.info("参与审批的数据为空");
return; return;
} }
String processTitle = approvalNodeRequest.getProcessTitle();
String userId = approvalNodeRequest.getUserId(); String userId = approvalNodeRequest.getUserId();
// 1. 获取第一个审批环节按nodeOrder排序取最小 // 1. 获取第一个审批环节按nodeOrder排序取最小
ApprovalNodeDTO firstNode = approvalNodeRequest.getNodeList().stream() ApprovalNodeDTO firstNode = approvalNodeRequest.getNodeList().stream()
@ -157,7 +161,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
engineReviewListPojo.setModelId(engineModelId); engineReviewListPojo.setModelId(engineModelId);
engineReviewListPojo.setModelName(modelPojoOld.getModelName()); engineReviewListPojo.setModelName(modelPojoOld.getModelName());
engineReviewListPojo.setYcOrOth(modelPojoOld.getYcOrOth()); engineReviewListPojo.setYcOrOth(modelPojoOld.getYcOrOth());
engineReviewListPojo.setProcessTopic(processTopic); engineReviewListPojo.setProcessTopic(processTitle);
// engineReviewListPojo.setSubsystemName(subSystem); // engineReviewListPojo.setSubsystemName(subSystem);
engineReviewListPojo.setStatusCode(ParamValueVersionEnum.UNDER.getCode()); engineReviewListPojo.setStatusCode(ParamValueVersionEnum.UNDER.getCode());
engineReviewListPojo.setApplicant(userId); engineReviewListPojo.setApplicant(userId);
@ -174,12 +178,12 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
TodoTaskPojo todoTaskPojo = new TodoTaskPojo(); TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
todoTaskPojo.setDocumentNo(approvalId); todoTaskPojo.setDocumentNo(approvalId);
todoTaskPojo.setProcessTitle(CurrentNodeEnum.DATAAPPROVAL.getDesc()); todoTaskPojo.setProcessTitle(processTitle);
todoTaskPojo.setCurrentNode(ApprovalOrderEnum.PROOFREAD.getDesc()); todoTaskPojo.setCurrentNode(ApprovalOrderEnum.PROOFREAD.getDesc());
todoTaskPojo.setModelId(engineModelId); todoTaskPojo.setModelId(engineModelId);
todoTaskPojo.setVersionNumber(modelPojoOld.getVersionNumber()); todoTaskPojo.setVersionNumber(modelPojoOld.getVersionNumber());
todoTaskPojo.setOwnerId(assigneeId); todoTaskPojo.setOwnerId(assigneeId);
todoTaskPojo.setDataType(modelPojoOld.getYcOrOth()); todoTaskPojo.setDataType(CurrentNodeEnum.DATAAPPROVAL.getDesc());
todoTaskPojo.setModelName(modelPojoOld.getModelName()); todoTaskPojo.setModelName(modelPojoOld.getModelName());
todoTaskPojo.setCreatedById(userId); todoTaskPojo.setCreatedById(userId);
todoTaskPojo.setCreatedBy(createBy); todoTaskPojo.setCreatedBy(createBy);
@ -256,6 +260,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
|| reviewListPojo.getStatusCode() == ParamValueVersionEnum.PASSED.getCode()) { || reviewListPojo.getStatusCode() == ParamValueVersionEnum.PASSED.getCode()) {
throw new RuntimeException("无效的审批记录请检查是否已经审批完成或被拒绝"); throw new RuntimeException("无效的审批记录请检查是否已经审批完成或被拒绝");
} }
String processTopic = reviewListPojo.getProcessTopic();
//查看当前人是否有权限审批 //查看当前人是否有权限审批
String currentAssignees = reviewListPojo.getApproverPersons(); String currentAssignees = reviewListPojo.getApproverPersons();
List<String> assigneeList = Arrays.asList(currentAssignees.split(",")); List<String> assigneeList = Arrays.asList(currentAssignees.split(","));
@ -311,6 +316,7 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
//审批流的待办全部is_delete=1 //审批流的待办全部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("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);
return "已拒绝"; return "已拒绝";
@ -325,6 +331,11 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
Set<String> operatedUsers = nodeRecords.stream() Set<String> operatedUsers = nodeRecords.stream()
.map(ParamApprovalRecordPojo::getAssignee) .map(ParamApprovalRecordPojo::getAssignee)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
// 获取下一个环节
List<ApprovalConfigPojo> approvalConfigPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
.eq("approval_id", approvalId)
.eq("node_order", (nodeOrder + 1))
.doQuery(ApprovalConfigPojo.class);
//必须已经全部通过 不是会签的话例外 //必须已经全部通过 不是会签的话例外
if (operatedUsers.containsAll(assigneeList) || notAll) { if (operatedUsers.containsAll(assigneeList) || notAll) {
@ -337,37 +348,61 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
} else { } else {
isd = 2;//被抢签完成 isd = 2;//被抢签完成
} }
sw.buildFromDatasource("xdap_app_223770822127386625") if (ObjectUtils.isNotEmpty(approvalConfigPojos)) {
.update("is_delete", isd) sw.buildFromDatasource("xdap_app_223770822127386625")
.update("last_update_date", new Date()) .update("is_delete", isd)
.eq("document_no", approvalId) .update("current_node", approvalConfigPojos.get(0).getNodeName())
.eq("owner_id", assID) .update("last_update_date", new Date())
.doUpdate(TodoTaskPojo.class); .update("current_processor", 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);
}
} }
// 获取下一个环节
List<ApprovalConfigPojo> approvalConfigPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
.eq("approval_id", approvalId)
.eq("node_order", (nodeOrder + 1))
.doQuery(ApprovalConfigPojo.class);
if (ObjectUtils.isNotEmpty(approvalConfigPojos)) { if (ObjectUtils.isNotEmpty(approvalConfigPojos)) {
ApprovalConfigPojo approvalConfigPojo1 = approvalConfigPojos.get(0); ApprovalConfigPojo approvalConfigPojo1 = approvalConfigPojos.get(0);
for (String nextAssId : Arrays.asList(approvalConfigPojo1.getAssignees().split(","))) { for (String nextAssId : Arrays.asList(approvalConfigPojo1.getAssignees().split(","))) {
TodoTaskPojo todoTaskPojo = new TodoTaskPojo(); // 更新待办
todoTaskPojo.setDocumentNo(approvalId); List<TodoTaskPojo> todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
todoTaskPojo.setProcessTitle(CurrentNodeEnum.DATAAPPROVAL.getDesc()); .eq("document_no", approvalId)
todoTaskPojo.setCurrentNode(approvalConfigPojo1.getNodeName()); .eq("owner_id", nextAssId)
todoTaskPojo.setModelId(reviewListPojo.getModelId()); .update("is_delete", 0)
todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber()); .doQuery(TodoTaskPojo.class);
todoTaskPojo.setOwnerId(nextAssId);
todoTaskPojo.setDataType(modelPojo.getYcOrOth()); sw.buildFromDatasource("xdap_app_223770822127386625")
todoTaskPojo.setModelName(modelPojo.getModelName()); .update("last_update_date", new Date())
todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy()); .update("current_node", approvalConfigPojo1.getNodeName())
todoTaskPojo.setCreatedBy(createBy); .update("current_processor", Arrays.asList(approvalConfigPojo1.getAssignees().split(",")))
todoTaskPojo.setCreationDate(new Date()); .eq("document_no", approvalId)
todoTaskPojo.setIsDelete(0); // .eq("is_delete", 0)
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); // .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(new Date());
todoTaskPojo.setIsDelete(0);
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo);
}
} }
//更新审批流到下个审批节点 //更新审批流到下个审批节点
sw.buildFromDatasource("xdap_app_223770822127386625") sw.buildFromDatasource("xdap_app_223770822127386625")
@ -423,6 +458,12 @@ 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);
//待办环节修改
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);
} }
} else { } else {
//如果还有未通过的 找到未通过的 //如果还有未通过的 找到未通过的
@ -434,25 +475,33 @@ public class ActivitiProcessServiceImpl implements ActivitiProcessService {
sw.buildFromDatasource("xdap_app_223770822127386625") sw.buildFromDatasource("xdap_app_223770822127386625")
.update("is_delete", 1) .update("is_delete", 1)
.update("last_update_date", new Date()) .update("last_update_date", new Date())
.update("current_processor", remainingAssignees)
.eq("document_no", approvalId) .eq("document_no", approvalId)
.eq("owner_id", approver)
.doUpdate(TodoTaskPojo.class); .doUpdate(TodoTaskPojo.class);
for (String remainingAssignee : remainingAssignees) { for (String remainingAssignee : remainingAssignees) {
TodoTaskPojo todoTaskPojo = new TodoTaskPojo(); List<TodoTaskPojo> todoTaskPojos = sw.buildFromDatasource("xdap_app_223770822127386625")
todoTaskPojo.setDocumentNo(approvalId); .eq("document_no", approvalId)
todoTaskPojo.setProcessTitle(CurrentNodeEnum.DATAAPPROVAL.getDesc()); .eq("owner_id", remainingAssignee)
todoTaskPojo.setCurrentNode(reviewListPojo.getNodeName()); .update("is_delete", 0)
todoTaskPojo.setModelId(reviewListPojo.getModelId()); .doQuery(TodoTaskPojo.class);
todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber()); if (ObjectUtils.isEmpty(todoTaskPojos)) {
todoTaskPojo.setOwnerId(remainingAssignee); TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
todoTaskPojo.setDataType(modelPojo.getYcOrOth()); todoTaskPojo.setDocumentNo(approvalId);
todoTaskPojo.setModelName(modelPojo.getModelName()); todoTaskPojo.setProcessTitle(processTopic);
todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy()); todoTaskPojo.setCurrentNode(reviewListPojo.getNodeName());
todoTaskPojo.setCreatedBy(createBy); todoTaskPojo.setModelId(reviewListPojo.getModelId());
todoTaskPojo.setCreationDate(new Date()); todoTaskPojo.setVersionNumber(modelPojo.getVersionNumber());
todoTaskPojo.setIsDelete(0); todoTaskPojo.setOwnerId(remainingAssignee);
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo); todoTaskPojo.setDataType(CurrentNodeEnum.DATAAPPROVAL.getDesc());
todoTaskPojo.setModelName(modelPojo.getModelName());
todoTaskPojo.setCreatedById(approvalConfigPojo.getCreatedBy());
todoTaskPojo.setCreatedBy(createBy);
todoTaskPojo.setCreationDate(new Date());
todoTaskPojo.setIsDelete(0);
sw.buildFromDatasource("xdap_app_223770822127386625").doInsert(todoTaskPojo);
}
} }
//更新机型审批数据的当前审批人去掉已经审批通过的那个人 //更新机型审批数据的当前审批人去掉已经审批通过的那个人
sw.buildFromDatasource("xdap_app_223770822127386625") sw.buildFromDatasource("xdap_app_223770822127386625")

View File

@ -1,4 +1,18 @@
DROP TABLE IF EXISTS `yfsjglpt_model_approval_flow`; DROP TABLE IF EXISTS `yfsjglpt_model_approval_flow`;
-- yc_datasource_0.approval_config definition
CREATE TABLE `approval_config` (
`id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL COMMENT 'ID',
`approval_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '流程ID',
`node_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '环节',
`assignees` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin COMMENT '处理人列表',
`node_order` int DEFAULT NULL COMMENT '环节顺序',
`created_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '创建人',
`creation_date` datetime DEFAULT NULL COMMENT '创建时间',
`last_updated_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL COMMENT '最后更新人',
`last_update_date` datetime DEFAULT NULL COMMENT '最后更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='流程配置表';
CREATE TABLE `yfsjglpt_model_approval_flow` CREATE TABLE `yfsjglpt_model_approval_flow`
( (