待办更新问题

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 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.ApprovalNodeRequest;
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.AnalysisModelParamterViewAndParam;

View File

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

View File

@ -1,4 +1,18 @@
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`
(