修改:导入修改前的保存
This commit is contained in:
parent
e47f92f576
commit
2b63397840
@ -8,6 +8,5 @@ import javax.validation.constraints.NotBlank;
|
||||
public class ApprovalFlowForm {
|
||||
@NotBlank(message = "流程不能为空")
|
||||
private String flowId;
|
||||
@NotBlank(message = "模板不能为空")
|
||||
private String templateId;
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@ import java.sql.Timestamp;
|
||||
|
||||
@SQLQuery(value = {
|
||||
@SQL(view = "getAllReport",
|
||||
sql = "SELECT br.id AS \"reportId\", br.* FROM yfsjglpt_model_benchmarking_report br WHERE br.is_delete = 0 and br.title like CONCAT('%', #title, '%') and br.manufacturer_name like CONCAT('%', #manufacturerName, '%') and br.model_name like CONCAT('%', #modelName, '%') and br.product_number like CONCAT('%', #productNumber, '%') and br.module like CONCAT('%', #module, '%') and br.plate like CONCAT('%', #plate, '%') and br.platform like CONCAT('%', #platform, '%') and br.series like CONCAT('%', #series, '%') and br.market_segment like CONCAT('%', #marketSegment, '%') and br.project_name like CONCAT('%', #projectName, '%') and br.project_number like CONCAT('%', #projectNumber, '%') and br.status like CONCAT('%', #status, '%') ORDER BY CASE br.status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'REJECTED' THEN 3 ELSE 4 END ASC")
|
||||
sql = "SELECT br.id AS \"reportId\", br.* FROM yfsjglpt_model_benchmarking_report br WHERE br.is_delete = 0 and br.title like CONCAT('%', #title, '%') and br.manufacturer_name like CONCAT('%', #manufacturerName, '%') and br.model_name like CONCAT('%', #modelName, '%') and br.product_number like CONCAT('%', #productNumber, '%') and br.module like CONCAT('%', #module, '%') and br.plate like CONCAT('%', #plate, '%') and br.platform like CONCAT('%', #platform, '%') and br.series like CONCAT('%', #series, '%') and br.market_segment like CONCAT('%', #marketSegment, '%') and br.project_name like CONCAT('%', #projectName, '%') and br.project_number like CONCAT('%', #projectNumber, '%') and br.status like CONCAT('%', #status, '%') ORDER BY CASE br.status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'REJECTED' THEN 3 ELSE 4 END ASC , af.created_time DESC")
|
||||
})
|
||||
@Data
|
||||
public class TodoAndReportView {
|
||||
|
||||
@ -2,6 +2,9 @@ package com.xdap.self_development.service;
|
||||
|
||||
import com.definesys.mpaas.query.db.PageQueryResult;
|
||||
import com.xdap.self_development.controller.form.*;
|
||||
import com.xdap.self_development.pojo.ApprovalConfigPojo;
|
||||
import com.xdap.self_development.pojo.ApprovalFlow;
|
||||
import com.xdap.self_development.pojo.Template;
|
||||
import com.xdap.self_development.pojo.view.ApprovalFlowNodeView;
|
||||
import com.xdap.self_development.pojo.view.TemplateChangeView;
|
||||
import com.xdap.self_development.pojo.view.TodoAndTemplateView;
|
||||
@ -20,4 +23,18 @@ public interface TemplateApprovalService {
|
||||
ApprovalFlowNodeView getApprovalProcess(@Valid ApprovalFlowForm form);
|
||||
|
||||
void handleReturn(@Valid HandleApprovalRequest request);
|
||||
|
||||
void processApprovalLogic(
|
||||
ApprovalFlow flow, HandleApprovalRequest request, ApprovalConfigPojo currentNode
|
||||
);
|
||||
|
||||
void cancelProcess(ApprovalFlow flow, String status);
|
||||
|
||||
void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId);
|
||||
|
||||
boolean checkNodeComplete(ApprovalFlow flow, ApprovalConfigPojo node);
|
||||
|
||||
void updateTasks(ApprovalFlow flow, String status);
|
||||
|
||||
void addNodeTodo(ApprovalFlow flow, ApprovalConfigPojo node, Template template, String createBy);
|
||||
}
|
||||
|
||||
@ -131,6 +131,8 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
initiatedTask.setDataType("对标报告审核");
|
||||
initiatedTask.setProcessTitle(form.getProcessTitle());
|
||||
initiatedTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
initiatedTask.setIsDelete(0);
|
||||
initiatedTask.setModelId(flow.getTemplateId());
|
||||
bd.getBusinessDatabase().doInsert(initiatedTask);
|
||||
|
||||
// 更新报告状态为校对中
|
||||
@ -343,6 +345,8 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
completedTaskPojo.setOwnerId(request.getUserId());
|
||||
completedTaskPojo.setProcessTitle(flow.getProcessTitle());
|
||||
completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
completedTaskPojo.setIsDelete(0);
|
||||
completedTaskPojo.setModelId(flow.getTemplateId());
|
||||
bd.getBusinessDatabase().doInsert(completedTaskPojo);
|
||||
|
||||
// 处理驳回逻辑
|
||||
@ -445,7 +449,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
||||
.doUpdate(CompletedTaskPojo.class);
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.update("current_node", "已拒绝")
|
||||
.update("current_node", status)
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
}
|
||||
|
||||
|
||||
@ -35,6 +35,8 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
private RedisLockUtil redisLockUtil;
|
||||
@Resource
|
||||
private XdapDeptUsersService xdapDeptUsersService;
|
||||
@Resource
|
||||
private TemplateApprovalService myself;
|
||||
|
||||
// 分布式锁标志
|
||||
private static final String FLOW_LOCK_PREFIX = "approval:lock:";
|
||||
@ -141,11 +143,14 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
InitiatedTaskPojo initiatedTask = new InitiatedTaskPojo();
|
||||
initiatedTask.setDocumentNo(flow.getId());
|
||||
initiatedTask.setCreatedById(request.getUserId());
|
||||
initiatedTask.setCreatedBy(xdapDeptUsersService.selectUserByID(request.getUserId()).getUsername());
|
||||
initiatedTask.setCurrentNode(firstNode.getNodeName());
|
||||
initiatedTask.setCurrentProcessor(JSON.toJSONString(firstNode.getAssignees()));
|
||||
initiatedTask.setDataType("模板审核");
|
||||
initiatedTask.setProcessTitle(request.getProcessTitle());
|
||||
initiatedTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
initiatedTask.setIsDelete(0);
|
||||
initiatedTask.setModelId(flow.getTemplateId());
|
||||
bd.getBusinessDatabase().doInsert(initiatedTask);
|
||||
|
||||
// 更新模板状态为校对中
|
||||
@ -229,14 +234,14 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
if (processedCount > 0) {
|
||||
throw new CommonException("此节点已被他人处理");
|
||||
}
|
||||
processApprovalLogic(flow, request, currentNode);
|
||||
myself.processApprovalLogic(flow, request, currentNode);
|
||||
} finally {
|
||||
redisLockUtil.unlock(lockKey, lockValue);
|
||||
}
|
||||
}
|
||||
// 会签节点
|
||||
else {
|
||||
processApprovalLogic(flow, request, currentNode);
|
||||
myself.processApprovalLogic(flow, request, currentNode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -246,7 +251,9 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.toJavaList(String.class).contains(userId);
|
||||
}
|
||||
|
||||
private void processApprovalLogic(ApprovalFlow flow, HandleApprovalRequest request, ApprovalConfigPojo currentNode) {
|
||||
public void processApprovalLogic(
|
||||
ApprovalFlow flow, HandleApprovalRequest request, ApprovalConfigPojo currentNode
|
||||
) {
|
||||
// 记录审批结果
|
||||
ApprovalRecord record = new ApprovalRecord();
|
||||
record.setFlowId(flow.getId());
|
||||
@ -269,30 +276,33 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
CompletedTaskPojo completedTaskPojo = new CompletedTaskPojo();
|
||||
completedTaskPojo.setDocumentNo(flow.getId());
|
||||
completedTaskPojo.setCreatedById(request.getUserId());
|
||||
completedTaskPojo.setCreatedBy(xdapDeptUsersService.selectUserByID(request.getUserId()).getUsername());
|
||||
completedTaskPojo.setCurrentNode(currentNode.getNodeName());
|
||||
completedTaskPojo.setCurrentProcessor(JSON.toJSONString(currentNode.getAssignees()));
|
||||
completedTaskPojo.setCurrentProcessor(currentNode.getAssignees());
|
||||
completedTaskPojo.setDataType("模板审核");
|
||||
completedTaskPojo.setOwnerId(request.getUserId());
|
||||
completedTaskPojo.setProcessTitle(flow.getProcessTitle());
|
||||
completedTaskPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||
completedTaskPojo.setIsDelete(0);
|
||||
completedTaskPojo.setModelId(flow.getTemplateId());
|
||||
bd.getBusinessDatabase().doInsert(completedTaskPojo);
|
||||
|
||||
|
||||
// 处理驳回逻辑
|
||||
if ("REJECT".equals(request.getResult())) {
|
||||
// 审批人退回
|
||||
cancelProcess(flow, "REJECTED");
|
||||
myself.cancelProcess(flow, "REJECTED");
|
||||
return;
|
||||
} else if ("RETURN".equals(request.getResult())) {
|
||||
// 申请人撤回
|
||||
cancelProcess(flow, "RETURNED");
|
||||
myself.cancelProcess(flow, "RETURNED");
|
||||
return;
|
||||
}
|
||||
// 处理通过逻辑,流转到下一节点
|
||||
processNextNode(flow, currentNode, request.getUserId());
|
||||
myself.processNextNode(flow, currentNode, request.getUserId());
|
||||
}
|
||||
|
||||
private void cancelProcess(ApprovalFlow flow, String status) {
|
||||
public void cancelProcess(ApprovalFlow flow, String status) {
|
||||
// 更新流程状态
|
||||
flow.setFlowStatus(status);
|
||||
bd.getBusinessDatabase()
|
||||
@ -310,13 +320,13 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.update("return_num", template.getReturnNum() + 1)
|
||||
.doUpdate(Template.class);
|
||||
|
||||
updateTasks(flow, "已拒绝");
|
||||
myself.updateTasks(flow, "已拒绝");
|
||||
}
|
||||
|
||||
// 处理下一节点流转
|
||||
private void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId) {
|
||||
public void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId) {
|
||||
// 检查当前节点是否满足流转条件
|
||||
if (!checkNodeComplete(flow, currentNode)) {
|
||||
if (!myself.checkNodeComplete(flow, currentNode)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -347,12 +357,12 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.update("published_time", Timestamp.valueOf(LocalDateTime.now()))
|
||||
.doUpdate(Template.class);
|
||||
// 待办环节修改
|
||||
updateTasks(flow, "已完成");
|
||||
myself.updateTasks(flow, "已完成");
|
||||
// 更新机型版本
|
||||
// dataEntryEngineModelService.updateModelForNewVersion();
|
||||
} else {
|
||||
flow.setCurrentNode(nextNode.getNodeOrder());
|
||||
addNodeTodo(flow, nextNode, template, userId);
|
||||
myself.addNodeTodo(flow, nextNode, template, userId);
|
||||
}
|
||||
|
||||
bd.getBusinessDatabase()
|
||||
@ -363,7 +373,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
}
|
||||
|
||||
// 检查节点是否完成
|
||||
private boolean checkNodeComplete(ApprovalFlow flow, ApprovalConfigPojo node) {
|
||||
public boolean checkNodeComplete(ApprovalFlow flow, ApprovalConfigPojo node) {
|
||||
Integer processedCount = bd.getBusinessDatabase()
|
||||
.eq("flow_id", flow.getId())
|
||||
.eq("node", node.getNodeName())
|
||||
@ -375,7 +385,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
}
|
||||
}
|
||||
|
||||
private void addNodeTodo(ApprovalFlow flow, ApprovalConfigPojo node, Template template, String createBy) {
|
||||
public void addNodeTodo(ApprovalFlow flow, ApprovalConfigPojo node, Template template, String createBy) {
|
||||
// 获取处理人
|
||||
List<String> users = JSON.parseArray(node.getAssignees()).toJavaList(String.class);
|
||||
// 新增待办
|
||||
@ -400,14 +410,14 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
}
|
||||
|
||||
// 更新已办和发起的状态
|
||||
updateTasks(flow, node.getNodeName());
|
||||
myself.updateTasks(flow, node.getNodeName());
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
bd.getBusinessDatabase().doBatchInsert(list);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateTasks(ApprovalFlow flow, String status) {
|
||||
public void updateTasks(ApprovalFlow flow, String status) {
|
||||
// 更新已办和发起的节点状态
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
@ -415,7 +425,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
||||
.doUpdate(CompletedTaskPojo.class);
|
||||
bd.getBusinessDatabase()
|
||||
.eq("document_no", flow.getId())
|
||||
.update("current_node", "已拒绝")
|
||||
.update("current_node", status)
|
||||
.doUpdate(InitiatedTaskPojo.class);
|
||||
}
|
||||
|
||||
|
||||
@ -227,6 +227,7 @@ public class TemplateServiceImpl implements TemplateService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void processSheetData(List<Parameter> dataList, String sheetName,
|
||||
String templateRowId, String createBy, MyResponse problems) {
|
||||
if (dataList.isEmpty()) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user