修改:数据流程整体修改,增加直送、撤回、退回
This commit is contained in:
parent
8e3e1d59f7
commit
c45f9938e9
@ -2,15 +2,22 @@ package com.xdap.self_development.controller;
|
|||||||
|
|
||||||
|
|
||||||
import com.definesys.mpaas.common.http.Response;
|
import com.definesys.mpaas.common.http.Response;
|
||||||
import com.xdap.self_development.controller.request.ApprovalByPlatformRequest;
|
import com.xdap.self_development.controller.form.ApprovalUserNodeDTO;
|
||||||
|
import com.xdap.self_development.controller.form.HandleApprovalRequest;
|
||||||
|
import com.xdap.self_development.controller.form.HandleReturnNodeForm;
|
||||||
import com.xdap.self_development.controller.request.ApprovalNodeRequest;
|
import com.xdap.self_development.controller.request.ApprovalNodeRequest;
|
||||||
import com.xdap.self_development.controller.request.EngineReviewListRequest;
|
import com.xdap.self_development.controller.request.EngineReviewListRequest;
|
||||||
|
import com.xdap.self_development.exception.CommonException;
|
||||||
|
import com.xdap.self_development.pojo.EngineReviewListPojo;
|
||||||
import com.xdap.self_development.pojo.dto.*;
|
import com.xdap.self_development.pojo.dto.*;
|
||||||
import com.xdap.self_development.service.ActivitiProcessService;
|
import com.xdap.self_development.service.ActivitiProcessService;
|
||||||
import com.xdap.self_development.service.EngineReviewListService;
|
import com.xdap.self_development.service.EngineReviewListService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,7 +58,8 @@ public class ActivitiProcessController {
|
|||||||
//查看审批详情
|
//查看审批详情
|
||||||
@PostMapping(value = "/showActiviti")
|
@PostMapping(value = "/showActiviti")
|
||||||
public Response showActiviti(@RequestBody ShowActivitiDTO showActivitiDTO) {
|
public Response showActiviti(@RequestBody ShowActivitiDTO showActivitiDTO) {
|
||||||
ActivitiDataAndRecordDTO activitiDataAndRecordDTO = activitiProcessService.showActivitiData(showActivitiDTO);
|
ActivitiDataAndRecordDTO activitiDataAndRecordDTO = activitiProcessService
|
||||||
|
.showActivitiData(showActivitiDTO);
|
||||||
return Response.ok().data(activitiDataAndRecordDTO);
|
return Response.ok().data(activitiDataAndRecordDTO);
|
||||||
}
|
}
|
||||||
//操作审批
|
//操作审批
|
||||||
@ -63,7 +71,7 @@ public class ActivitiProcessController {
|
|||||||
//查看审批
|
//查看审批
|
||||||
@PostMapping(value = "/showEngReview")
|
@PostMapping(value = "/showEngReview")
|
||||||
public Response showEngReview(@RequestBody EngineReviewListRequest engineReviewListRequest) {
|
public Response showEngReview(@RequestBody EngineReviewListRequest engineReviewListRequest) {
|
||||||
PageResultDTO msg = engineReviewListService.selectEngineReviewListByUserId(engineReviewListRequest);
|
PageResultDTO<EngineReviewListPojo> msg = engineReviewListService.selectEngineReviewListByUserId(engineReviewListRequest);
|
||||||
return Response.ok().data(msg);
|
return Response.ok().data(msg);
|
||||||
};
|
};
|
||||||
//申请人退回审批
|
//申请人退回审批
|
||||||
@ -72,33 +80,66 @@ public class ActivitiProcessController {
|
|||||||
String msg = engineReviewListService.returnApproval(approvalId);
|
String msg = engineReviewListService.returnApproval(approvalId);
|
||||||
return Response.ok().data(msg);
|
return Response.ok().data(msg);
|
||||||
};
|
};
|
||||||
|
// 获取是否直送
|
||||||
//
|
@GetMapping("/getIsDirect")
|
||||||
// //查询删除所有部署信息(谨慎使用)
|
public Response getIsDirect(
|
||||||
// @GetMapping(value = "/deleteDeployment")
|
@RequestParam String flowId
|
||||||
// public void deleteDeployment() {
|
) {
|
||||||
//
|
boolean flag = activitiProcessService.getIsDirect(flowId);
|
||||||
// List<Deployment> deployments = repositoryService.createDeploymentQuery().list();
|
return Response.ok().data(flag);
|
||||||
// for (Deployment deployment : deployments) {
|
}
|
||||||
// System.out.println("--------" + deployment);
|
// 获取流程审批人
|
||||||
// repositoryService.deleteDeployment(deployment.getId());
|
@GetMapping("/getApprovalUsers")
|
||||||
// }
|
public Response getApprovalUsers(
|
||||||
// }
|
@NotBlank @RequestParam String templateId
|
||||||
// //查询删除所有流程信息(谨慎使用)
|
) {
|
||||||
// @GetMapping(value = "/deleteProcessInstances")
|
List<ApprovalUserNodeDTO> nodes = activitiProcessService.getApprovalUsers(templateId);
|
||||||
// public void deleteProcessInstances(@RequestParam(value = "processkey")String processDefinitionKey) {
|
return Response.ok().data(nodes);
|
||||||
// // 1. 查询该流程定义下的所有流程实例ID
|
}
|
||||||
// List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery()
|
// 直送回退回的节点
|
||||||
// .processDefinitionKey(processDefinitionKey)
|
@GetMapping("/directSendingApproval")
|
||||||
// .list();
|
public Response directSendingApproval(
|
||||||
//
|
@RequestParam @NotBlank String templateId,
|
||||||
// // 2. 逐个删除流程实例(级联删除任务、变量等)
|
@RequestParam @NotBlank String userId
|
||||||
// for (ProcessInstance instance : instances) {
|
) {
|
||||||
// // 删除流程实例(true表示级联删除所有关联数据)
|
activitiProcessService.directSendingApproval(templateId, userId);
|
||||||
// runtimeService.deleteProcessInstance(instance.getId(), "删除原因:清理测试数据");
|
return Response.ok();
|
||||||
// }
|
}
|
||||||
// }
|
// 获取可退回节点
|
||||||
|
@GetMapping("/getReturnNodes")
|
||||||
|
public Response getReturnNodes(
|
||||||
|
@NotBlank String flowId
|
||||||
|
) {
|
||||||
|
List<String> result = activitiProcessService.getReturnNodes(flowId);
|
||||||
|
return Response.ok().data(result);
|
||||||
|
}
|
||||||
|
// 处理人退回指定节点
|
||||||
|
@PostMapping("/handleReturnToNode")
|
||||||
|
public Response handleReturnToNode(
|
||||||
|
@RequestBody @Valid HandleReturnNodeForm form,
|
||||||
|
BindingResult bindingResult
|
||||||
|
) {
|
||||||
|
if (bindingResult.hasErrors()) {
|
||||||
|
bindingResult.getFieldErrors().forEach(error -> {
|
||||||
|
throw new CommonException(error.getDefaultMessage());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
activitiProcessService.handleReturnToNode(form);
|
||||||
|
return Response.ok();
|
||||||
|
}
|
||||||
|
// 发起人撤回审批
|
||||||
|
@PostMapping("/handleReturn")
|
||||||
|
public Response handleReturn(
|
||||||
|
@RequestBody @Valid HandleApprovalRequest request,
|
||||||
|
BindingResult bindingResult
|
||||||
|
) {
|
||||||
|
if (bindingResult.hasErrors()) {
|
||||||
|
bindingResult.getFieldErrors().forEach(error -> {
|
||||||
|
throw new CommonException(error.getDefaultMessage());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
activitiProcessService.handleReturn(request);
|
||||||
|
return Response.ok();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -105,6 +105,13 @@ public class EngineReviewListPojo implements Serializable {
|
|||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date lastUpdateDate;
|
private Date lastUpdateDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退回标记
|
||||||
|
*/
|
||||||
|
private Integer returnNum;
|
||||||
|
/**
|
||||||
|
* 前一个节点
|
||||||
|
*/
|
||||||
|
private Integer preNode;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,5 +84,27 @@ public class ParamApprovalRecordPojo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Date lastUpdateDate;
|
private Date lastUpdateDate;
|
||||||
|
|
||||||
|
private Integer approvalLevel;
|
||||||
|
|
||||||
|
public ParamApprovalRecordPojo(
|
||||||
|
String approvalId,
|
||||||
|
String nodeName,
|
||||||
|
String assignee,
|
||||||
|
String operator,
|
||||||
|
Date operateTime,
|
||||||
|
String approvalComment,
|
||||||
|
Integer nodeOrder,
|
||||||
|
Date creationDate,
|
||||||
|
Integer approvalLevel
|
||||||
|
) {
|
||||||
|
this.approvalId = approvalId;
|
||||||
|
this.nodeName = nodeName;
|
||||||
|
this.assignee = assignee;
|
||||||
|
this.operator = operator;
|
||||||
|
this.operateTime = operateTime;
|
||||||
|
this.approvalComment = approvalComment;
|
||||||
|
this.nodeOrder = nodeOrder;
|
||||||
|
this.creationDate = creationDate;
|
||||||
|
this.approvalLevel = approvalLevel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
package com.xdap.self_development.pojo.dto;
|
package com.xdap.self_development.pojo.dto;
|
||||||
|
|
||||||
|
import com.xdap.self_development.pojo.view.FlowNode;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class ActivitiDataAndRecordDTO {
|
public class ActivitiDataAndRecordDTO {
|
||||||
@ -10,6 +12,6 @@ public class ActivitiDataAndRecordDTO {
|
|||||||
private String processTitle;
|
private String processTitle;
|
||||||
private String modelName;
|
private String modelName;
|
||||||
private ArrayList<ActivitiDataDTO> activitiDataDTOS;
|
private ArrayList<ActivitiDataDTO> activitiDataDTOS;
|
||||||
private ArrayList<ActivitiRecordDTO> activitiRecordDTOS;
|
private List<FlowNode> flowNodes;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import java.util.List;
|
|||||||
// CASE af.flow_status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'REJECTED' THEN 4 ELSE 5 END ASC,
|
// CASE af.flow_status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'REJECTED' THEN 4 ELSE 5 END ASC,
|
||||||
@SQLQuery(value = {
|
@SQLQuery(value = {
|
||||||
@SQL(view = "getAllReportApprovalList",
|
@SQL(view = "getAllReportApprovalList",
|
||||||
sql = "WITH RankedFlows AS ( SELECT af.id AS flowId, r.id AS reportId, af.process_title AS title, af.flow_status AS status, af.create_by AS createBy , xu.username AS username, af.created_time AS createdTime, ac.assignees AS current_users, ROW_NUMBER() OVER (PARTITION BY af.template_id ORDER BY af.created_time DESC) AS rn FROM yfsjglpt_model_approval_flow af LEFT JOIN approval_config ac ON af.id = ac.approval_id AND af.current_node = ac.node_order LEFT JOIN yfsjglpt_model_benchmarking_report r ON af.template_id = r.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE af.flow_type = 2 ) SELECT flowId, reportId, title, status, createBy , username, createdTime, current_users FROM RankedFlows WHERE rn = 1 AND r.title LIKE CONCAT('%', #title, '%') AND af.flow_status LIKE CONCAT('%', #status, '%') AND af.created_time LIKE CONCAT('%', #createdTime, '%') AND xu.username LIKE CONCAT('%', #username, '%') ORDER BY createdTime DESC")
|
sql = "WITH RankedFlows AS (SELECT af.id AS flowId, r.id AS reportId, af.process_title AS title, af.flow_status AS status, af.create_by AS createBy, xu.username AS username, af.created_time AS createdTime, ac.assignees AS current_users, ROW_NUMBER() OVER (PARTITION BY af.template_id ORDER BY af.created_time DESC) AS rn FROM yfsjglpt_model_approval_flow af LEFT JOIN approval_config ac ON af.id = ac.approval_id AND af.current_node = ac.node_order LEFT JOIN yfsjglpt_model_benchmarking_report r ON af.template_id = r.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE af.flow_type = 2) SELECT flowId, reportId, title, status, createBy, username, createdTime, current_users FROM RankedFlows WHERE rn = 1 AND title LIKE CONCAT('%', #title, '%') AND status LIKE CONCAT('%', #status, '%') AND createdTime LIKE CONCAT('%', #createdTime, '%') AND username LIKE CONCAT('%', #username, '%') ORDER BY createdTime DESC")
|
||||||
})
|
})
|
||||||
@Data
|
@Data
|
||||||
public class TodoAndReportListView {
|
public class TodoAndReportListView {
|
||||||
|
|||||||
@ -31,6 +31,7 @@ public class TodoAndReportView {
|
|||||||
private String projectName;
|
private String projectName;
|
||||||
private String projectNumber;
|
private String projectNumber;
|
||||||
private String createBy;
|
private String createBy;
|
||||||
|
private Integer returnNum;
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Timestamp uploadTime;
|
private Timestamp uploadTime;
|
||||||
private String filePath;
|
private String filePath;
|
||||||
|
|||||||
@ -13,7 +13,7 @@ import java.util.List;
|
|||||||
@SQLQuery(value = {
|
@SQLQuery(value = {
|
||||||
// CASE af.flow_status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'REJECTED' THEN 4 ELSE 5 END ASC
|
// CASE af.flow_status WHEN 'COMPLETE' THEN 1 WHEN 'APPROVING' THEN 2 WHEN 'DRAFT' THEN 3 WHEN 'REJECTED' THEN 4 ELSE 5 END ASC
|
||||||
@SQL(view = "getAllApproval",
|
@SQL(view = "getAllApproval",
|
||||||
sql = "WITH RankedFlows AS ( SELECT af.id AS flowId, t.id AS templateId, t.template_name AS templateName, t.version AS version, af.flow_status AS status , af.create_by AS createBy, xu.username AS username, af.created_time AS createdTime, ac.assignees AS current_users , ROW_NUMBER() OVER (PARTITION BY af.template_id ORDER BY af.created_time DESC) AS rn FROM yfsjglpt_model_approval_flow af LEFT JOIN approval_config ac ON af.id = ac.approval_id AND af.current_node = ac.node_order LEFT JOIN yfsjglpt_model_template t ON af.template_id = t.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE af.flow_type = 1 ) SELECT flowId, templateId, templateName, version, status , createBy, username, createdTime, current_users FROM RankedFlows WHERE t.template_name LIKE CONCAT('%', #templateName, '%') AND af.flow_status LIKE CONCAT('%', #status, '%') AND af.created_time LIKE CONCAT('%', #createdTime, '%') AND xu.username LIKE CONCAT('%', #username, '%') AND rn = 1 ORDER BY createdTime DESC"),
|
sql = "WITH RankedFlows AS ( SELECT af.id AS flowId, t.id AS templateId, t.template_name AS templateName, t.version AS version, af.flow_status AS status , af.create_by AS createBy, xu.username AS username, af.created_time AS createdTime, ac.assignees AS current_users , ROW_NUMBER() OVER (PARTITION BY af.template_id ORDER BY af.created_time DESC) AS rn FROM yfsjglpt_model_approval_flow af LEFT JOIN approval_config ac ON af.id = ac.approval_id AND af.current_node = ac.node_order LEFT JOIN yfsjglpt_model_template t ON af.template_id = t.id LEFT JOIN xdap_users xu ON xu.id = af.create_by WHERE af.flow_type = 1 ) SELECT flowId, templateId, templateName, version, status , createBy, username, createdTime, current_users FROM RankedFlows WHERE rn = 1 AND templateName LIKE CONCAT('%', #templateName, '%')AND status LIKE CONCAT('%', #status, '%')AND createdTime LIKE CONCAT('%', #createdTime, '%')AND username LIKE CONCAT('%', #username, '%') ORDER BY createdTime DESC"),
|
||||||
@SQL(view = "getApprovalByUserIdAndIds",
|
@SQL(view = "getApprovalByUserIdAndIds",
|
||||||
sql = "SELECT af.id AS \"flowId\", t.id AS \"templateId\", t.template_name AS \"templateName\", t.version AS \"version\", af.flow_status AS \"status\" , af.create_by AS \"createBy\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_template t ON af.template_id = t.id WHERE t.template_name like CONCAT('%',#templateName, '%') and af.flow_status like CONCAT('%',#status, '%') and af.flow_type = 1 and af.id NOT IN (#ids) AND af.create_by = #createBy"),
|
sql = "SELECT af.id AS \"flowId\", t.id AS \"templateId\", t.template_name AS \"templateName\", t.version AS \"version\", af.flow_status AS \"status\" , af.create_by AS \"createBy\", af.created_time AS \"createdTime\" , CASE WHEN current_node = 'PROOFREAD' THEN proofread_users WHEN current_node = 'REVIEW' THEN review_users WHEN current_node = 'COUNTERSIGN' THEN countersign_users WHEN current_node = 'APPROVE' THEN approve_users END AS current_users FROM yfsjglpt_model_approval_flow af JOIN yfsjglpt_model_template t ON af.template_id = t.id WHERE t.template_name like CONCAT('%',#templateName, '%') and af.flow_status like CONCAT('%',#status, '%') and af.flow_type = 1 and af.id NOT IN (#ids) AND af.create_by = #createBy"),
|
||||||
@SQL(view = "getTodoAndTemplate",
|
@SQL(view = "getTodoAndTemplate",
|
||||||
|
|||||||
@ -1,13 +1,21 @@
|
|||||||
package com.xdap.self_development.service;
|
package com.xdap.self_development.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.xdap.self_development.controller.form.ApprovalUserNodeDTO;
|
||||||
|
import com.xdap.self_development.controller.form.HandleApprovalRequest;
|
||||||
|
import com.xdap.self_development.controller.form.HandleReturnNodeForm;
|
||||||
import com.xdap.self_development.controller.request.ApprovalByPlatformRequest;
|
import com.xdap.self_development.controller.request.ApprovalByPlatformRequest;
|
||||||
import com.xdap.self_development.controller.request.ApprovalNodeRequest;
|
import com.xdap.self_development.controller.request.ApprovalNodeRequest;
|
||||||
|
import com.xdap.self_development.enums.ParamValueVersionEnum;
|
||||||
|
import com.xdap.self_development.pojo.*;
|
||||||
import com.xdap.self_development.pojo.dto.ActivitiDataAndRecordDTO;
|
import com.xdap.self_development.pojo.dto.ActivitiDataAndRecordDTO;
|
||||||
import com.xdap.self_development.pojo.dto.ActivitiDataDTO;
|
import com.xdap.self_development.pojo.dto.ActivitiDataDTO;
|
||||||
import com.xdap.self_development.pojo.dto.HandleApprovalDTO;
|
import com.xdap.self_development.pojo.dto.HandleApprovalDTO;
|
||||||
import com.xdap.self_development.pojo.dto.ShowActivitiDTO;
|
import com.xdap.self_development.pojo.dto.ShowActivitiDTO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface ActivitiProcessService {
|
public interface ActivitiProcessService {
|
||||||
@ -20,4 +28,47 @@ public interface ActivitiProcessService {
|
|||||||
String handleApproval(HandleApprovalDTO handleApprovalDTO);
|
String handleApproval(HandleApprovalDTO handleApprovalDTO);
|
||||||
|
|
||||||
void startActivitiByPlatform(ApprovalByPlatformRequest request);
|
void startActivitiByPlatform(ApprovalByPlatformRequest request);
|
||||||
|
|
||||||
|
boolean getIsDirect(String flowId);
|
||||||
|
|
||||||
|
List<ApprovalUserNodeDTO> getApprovalUsers(@NotBlank String flowId);
|
||||||
|
|
||||||
|
void directSendingApproval(@NotBlank String templateId, @NotBlank String userId);
|
||||||
|
|
||||||
|
List<String> getReturnNodes(@NotBlank String flowId);
|
||||||
|
|
||||||
|
void handleReturnToNode(@Valid HandleReturnNodeForm form);
|
||||||
|
|
||||||
|
void handleReturn(@Valid HandleApprovalRequest request);
|
||||||
|
|
||||||
|
void processApproval(
|
||||||
|
EngineReviewListPojo flow,
|
||||||
|
HandleApprovalDTO request,
|
||||||
|
ApprovalConfigPojo currentNode,
|
||||||
|
ParamApprovalRecordPojo lastedRecord,
|
||||||
|
ArrayList<EngineParamDetailPojo> list
|
||||||
|
);
|
||||||
|
void cancelProcess(
|
||||||
|
EngineReviewListPojo flow,
|
||||||
|
ApprovalConfigPojo node,
|
||||||
|
ParamValueVersionEnum status,
|
||||||
|
String userId
|
||||||
|
);
|
||||||
|
void updateTasks(
|
||||||
|
EngineReviewListPojo flow,
|
||||||
|
String status,
|
||||||
|
Integer enableReturn
|
||||||
|
);
|
||||||
|
void processNextNode(
|
||||||
|
EngineReviewListPojo flow,
|
||||||
|
ApprovalConfigPojo currentNode,
|
||||||
|
String userId,
|
||||||
|
List<EngineParamDetailPojo> list
|
||||||
|
);
|
||||||
|
void addNodeTodo(
|
||||||
|
EngineReviewListPojo flow,
|
||||||
|
ApprovalConfigPojo node,
|
||||||
|
String createBy,
|
||||||
|
Integer enableReturn
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -51,6 +51,6 @@ public interface BenchmarkingReportService {
|
|||||||
|
|
||||||
void cancelProcess(ApprovalFlow flow, ApprovalConfigPojo node, String status, String userId);
|
void cancelProcess(ApprovalFlow flow, ApprovalConfigPojo node, String status, String userId);
|
||||||
|
|
||||||
void updateTasks(ApprovalFlow flow, String status);
|
void updateTasks(ApprovalFlow flow, String status, Integer enableReturn);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -572,7 +572,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
|||||||
.orderBy("approval_time", "desc")
|
.orderBy("approval_time", "desc")
|
||||||
.doQueryFirst(ApprovalRecord.class);
|
.doQueryFirst(ApprovalRecord.class);
|
||||||
|
|
||||||
String lockKey = FLOW_LOCK_PREFIX + flow.getId() + ":" + currentNode;
|
String lockKey = FLOW_LOCK_PREFIX + flow.getId() + ":" + currentNode.getNodeName();
|
||||||
String lockValue = UUID.randomUUID().toString();
|
String lockValue = UUID.randomUUID().toString();
|
||||||
boolean lockAcquired = redisLockUtil
|
boolean lockAcquired = redisLockUtil
|
||||||
.tryLock(lockKey, lockValue, FLOW_LOCK_EXPIRE_SECONDS, TimeUnit.SECONDS);
|
.tryLock(lockKey, lockValue, FLOW_LOCK_EXPIRE_SECONDS, TimeUnit.SECONDS);
|
||||||
@ -670,7 +670,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
|||||||
.update("status", report.getStatus())
|
.update("status", report.getStatus())
|
||||||
.doUpdate(BenchmarkingReport.class);
|
.doUpdate(BenchmarkingReport.class);
|
||||||
// 待办环节修改
|
// 待办环节修改
|
||||||
myself.updateTasks(flow, "已完成");
|
myself.updateTasks(flow, "已完成", 0);
|
||||||
} else {
|
} else {
|
||||||
flow.setCurrentNode(nextNode.getNodeOrder());
|
flow.setCurrentNode(nextNode.getNodeOrder());
|
||||||
myself.addNodeTodo(flow, nextNode, report, userId, 0);
|
myself.addNodeTodo(flow, nextNode, report, userId, 0);
|
||||||
@ -713,7 +713,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 更新已办和发起的状态
|
// 更新已办和发起的状态
|
||||||
myself.updateTasks(flow, node.getNodeName());
|
myself.updateTasks(flow, node.getNodeName(), enableReturn);
|
||||||
|
|
||||||
if (!list.isEmpty()) {
|
if (!list.isEmpty()) {
|
||||||
bd.getBusinessDatabase().doBatchInsert(list);
|
bd.getBusinessDatabase().doBatchInsert(list);
|
||||||
@ -747,14 +747,32 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
|||||||
report.setStatus(status);
|
report.setStatus(status);
|
||||||
bd.getBusinessDatabase()
|
bd.getBusinessDatabase()
|
||||||
.rowid("id", report.getRowId())
|
.rowid("id", report.getRowId())
|
||||||
.update("status", report.getStatus())
|
.update("status", "DRAFT")
|
||||||
.update("return_num", report.getReturnNum() + 1)
|
.update("return_num", report.getReturnNum() + 1)
|
||||||
.doUpdate(BenchmarkingReport.class);
|
.doUpdate(BenchmarkingReport.class);
|
||||||
|
// 增加拒绝待办
|
||||||
myself.updateTasks(flow, "已拒绝");
|
if (Objects.equals(status, "REJECTED")) {
|
||||||
|
TodoTaskPojo todoTask = new TodoTaskPojo();
|
||||||
|
todoTask.setCreatedById(userId);
|
||||||
|
todoTask.setCreatedBy(xdapDeptUsersService.selectUserByID(userId).getUsername());
|
||||||
|
todoTask.setCurrentNode(node.getNodeName());
|
||||||
|
todoTask.setDataType("对标报告拒绝");
|
||||||
|
todoTask.setDocumentNo(flow.getId());
|
||||||
|
todoTask.setCreationDate(Timestamp.valueOf(LocalDateTime.now()));
|
||||||
|
todoTask.setIsDelete(0);
|
||||||
|
todoTask.setModelId(report.getId());
|
||||||
|
todoTask.setModelName(report.getTitle());
|
||||||
|
todoTask.setProcessTitle("拒绝提醒:"+flow.getProcessTitle());
|
||||||
|
todoTask.setStatusCode(flow.getFlowStatus());
|
||||||
|
todoTask.setVersionNumber(0);
|
||||||
|
todoTask.setOwnerId(flow.getCreateBy());
|
||||||
|
todoTask.setCurrentProcessor(JSON.toJSONString(Collections.singletonList(flow.getCreateBy())));
|
||||||
|
bd.getBusinessDatabase().doInsert(todoTask);
|
||||||
|
}
|
||||||
|
myself.updateTasks(flow, Objects.equals(report.getStatus(), "RETURNED") ? "已撤回" : "已拒绝", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateTasks(ApprovalFlow flow, String status) {
|
public void updateTasks(ApprovalFlow flow, String status, Integer enableReturn) {
|
||||||
// 更新已办和发起的节点状态
|
// 更新已办和发起的节点状态
|
||||||
bd.getBusinessDatabase()
|
bd.getBusinessDatabase()
|
||||||
.eq("document_no", flow.getId())
|
.eq("document_no", flow.getId())
|
||||||
@ -763,6 +781,7 @@ public class BenchmarkingReportServiceImpl implements BenchmarkingReportService
|
|||||||
bd.getBusinessDatabase()
|
bd.getBusinessDatabase()
|
||||||
.eq("document_no", flow.getId())
|
.eq("document_no", flow.getId())
|
||||||
.update("current_node", status)
|
.update("current_node", status)
|
||||||
|
.update("enable_return", enableReturn)
|
||||||
.doUpdate(InitiatedTaskPojo.class);
|
.doUpdate(InitiatedTaskPojo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -479,7 +479,11 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 处理下一节点流转
|
// 处理下一节点流转
|
||||||
public void processNextNode(ApprovalFlow flow, ApprovalConfigPojo currentNode, String userId) {
|
public void processNextNode(
|
||||||
|
ApprovalFlow flow,
|
||||||
|
ApprovalConfigPojo currentNode,
|
||||||
|
String userId
|
||||||
|
) {
|
||||||
// 检查当前节点是否满足流转条件
|
// 检查当前节点是否满足流转条件
|
||||||
if (!myself.checkNodeComplete(flow, currentNode)) {
|
if (!myself.checkNodeComplete(flow, currentNode)) {
|
||||||
return;
|
return;
|
||||||
@ -655,6 +659,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
|
|||||||
bd.getBusinessDatabase()
|
bd.getBusinessDatabase()
|
||||||
.eq("document_no", flow.getId())
|
.eq("document_no", flow.getId())
|
||||||
.update("current_node", status)
|
.update("current_node", status)
|
||||||
|
.update("enable_return", enableReturn)
|
||||||
.doUpdate(InitiatedTaskPojo.class);
|
.doUpdate(InitiatedTaskPojo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -230,7 +230,7 @@ public class TodoTaskServiceImpl implements TodoTaskService {
|
|||||||
ArrayList<TodoTaskPojo> todoTaskPojos = new ArrayList<>();
|
ArrayList<TodoTaskPojo> todoTaskPojos = new ArrayList<>();
|
||||||
ArrayList<InitiatedTaskPojo> taskPojos = new ArrayList<>();
|
ArrayList<InitiatedTaskPojo> taskPojos = new ArrayList<>();
|
||||||
|
|
||||||
// todo清除待办
|
// TODO:清除待办
|
||||||
|
|
||||||
XdapUsers xdapUsersPojo = xdapDeptUsersService.selectUserByID(userID);
|
XdapUsers xdapUsersPojo = xdapDeptUsersService.selectUserByID(userID);
|
||||||
DataEntryEngineModelPojo modelPojo = dataEntryEngineModelService.selectBymodelId(modelId);
|
DataEntryEngineModelPojo modelPojo = dataEntryEngineModelService.selectBymodelId(modelId);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user