修改:流程异常回滚处理和主题名称返回

This commit is contained in:
zjh 2025-12-24 09:37:56 +08:00
parent 9c532ff57c
commit 689e7742a0
7 changed files with 34 additions and 20 deletions

View File

@ -16,6 +16,7 @@ import java.sql.Timestamp;
public class ApprovalFlow extends MpaasBasePojo {
@RowID(sequence = "approval_flow_s", type = RowIDType.UUID)
private String id;
private String processTitle;
private String templateId;
private String currentNode; // 节点PROOFREAD, REVIEW, COUNTERSIGN, APPROVE
private String flowStatus; //DRAFT(草稿)APPROVING审批中COMPLETE(已完成)RETURNED(已撤回)REJECTED(已拒绝)

View File

@ -14,4 +14,8 @@ public class ApprovalFlowView {
private List<ApprovalNodeView> approveNodes;
private String flowStatus;
private String progressTitle;
private String ContentName;
private Integer templateVersion;
}

View File

@ -248,7 +248,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
}
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public void handleReportApproval(HandleApprovalRequest request) {
ApprovalFlow flow = bd.getBusinessDatabase()
.eq("id", request.getFlowId())

View File

@ -72,7 +72,7 @@ public class ParameterServiceImpl implements ParameterService {
}
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public TemplateInfoView maintenanceParameters(UpdateParameterForm form) {
// 公式格式检查
for (ParameterForm parameter : form.getParameterForms()) {

View File

@ -50,7 +50,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
private static final int FLOW_LOCK_EXPIRE_SECONDS = 15;
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public String startApproval(StartApprovalRequest request) {
// 验证模板存在
Template template = bd.getBusinessDatabase()
@ -85,6 +85,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
flow.setTemplateId(template.getId());
flow.setCurrentNode("PROOFREAD");
flow.setFlowStatus("APPROVING");
flow.setProcessTitle(request.getProcessTitle());
flow.setProofreadUsers(JSON.toJSONString(request.getProofreadUsers()));
flow.setReviewUsers(JSON.toJSONString(request.getReviewUsers()));
flow.setCountersignUsers(JSON.toJSONString(request.getCountersignUsers()));
@ -159,7 +160,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
}
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public void handleApproval(HandleApprovalRequest request) {
ApprovalFlow flow = bd.getBusinessDatabase()
.eq("id", request.getFlowId())
@ -206,7 +207,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
}
}
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public void processApprovalLogic(ApprovalFlow flow, HandleApprovalRequest request, String currentNode) {
// 记录审批结果
ApprovalRecord record = new ApprovalRecord();
@ -295,6 +296,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
if (flow == null) {
return approvalFlowView;
}
Template template = bd.getBusinessDatabase()
.eq("id", flow.getTemplateId())
.doQueryFirst(Template.class);
approvalFlowView.setExplanation(flow.getExplanation());
approvalFlowView.setFlowStatus(flow.getFlowStatus());
if (!"APPROVING".equals(flow.getFlowStatus())) {
@ -302,6 +306,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
return approvalFlowView;
}
processApprovalNodes(approvalFlowView, flow);
approvalFlowView.setProgressTitle(flow.getProcessTitle());
approvalFlowView.setContentName(template.getTemplateName());
approvalFlowView.setTemplateVersion(template.getVersion());
return approvalFlowView;
}
@ -469,7 +476,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
}
// 处理下一节点流转
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public void processNextNode(ApprovalFlow flow, String currentNode, String userId) {
// 检查当前节点是否满足流转条件
if (!checkNodeComplete(flow, currentNode)) {

View File

@ -72,7 +72,7 @@ public class TemplateServiceImpl implements TemplateService {
}
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public void updateTemplate(UpdateTemplateForm form) {
Template template = bd.getBusinessDatabase()
.viewQueryMode(true)
@ -134,7 +134,7 @@ public class TemplateServiceImpl implements TemplateService {
}
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public MyResponse importTemplate(MultipartFile file, String templateRowId, String userId) {
// 验证文件是否为工作表
if (file == null || file.isEmpty()) {
@ -225,7 +225,7 @@ public class TemplateServiceImpl implements TemplateService {
}
@Override
@Transactional(rollbackFor = CommonException.class)
@Transactional(rollbackFor = Exception.class)
public void updateTemplateStatus(String templateId, String status) {
if (Objects.equals(status, "COMPLETE")) {// 更新之前模板为历史
Template template = bd.getBusinessDatabase().eq("id", templateId).doQueryFirst(Template.class);

View File

@ -1,7 +1,8 @@
DROP TABLE IF EXISTS `yfsjglpt_model_approval_flow`;
-- yc_datasource_0.approval_config definition
CREATE TABLE `approval_config` (
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 '环节',
@ -17,6 +18,7 @@ CREATE TABLE `approval_config` (
CREATE TABLE `yfsjglpt_model_approval_flow`
(
`id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL,
`process_title` varchar(100) COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程标题',
`template_id` varchar(64) COLLATE utf8mb4_general_ci NOT NULL COMMENT '关联模板ID',
`current_node` varchar(20) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '当前节点(PROOFREAD, REVIEW, COUNTERSIGN, APPROVE)',
`flow_status` varchar(20) COLLATE utf8mb4_general_ci NOT NULL COMMENT '流程状态',