diff --git a/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java b/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java index e8bcaad..a30de59 100644 --- a/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java +++ b/src/main/java/com/xdap/self_development/controller/ActivitiProcessController.java @@ -59,6 +59,12 @@ public class ActivitiProcessController { PageResultDTO msg = engineReviewListService.selectEngineReviewListByUserId(userID,page,size,ycOrOth); return Response.ok().data(msg); }; + //申请人退回审批 + @GetMapping(value = "/returnApproval") + public Response returnApproval(@RequestParam(value = "approvalId") String approvalId) { + String msg = engineReviewListService.returnApproval(approvalId); + return Response.ok().data(msg); + }; // // //查询删除所有部署信息(谨慎使用) diff --git a/src/main/java/com/xdap/self_development/service/EngineReviewListService.java b/src/main/java/com/xdap/self_development/service/EngineReviewListService.java index 62a1288..7da123e 100644 --- a/src/main/java/com/xdap/self_development/service/EngineReviewListService.java +++ b/src/main/java/com/xdap/self_development/service/EngineReviewListService.java @@ -7,4 +7,7 @@ import com.xdap.self_development.pojo.dto.PageResultDTO; public interface EngineReviewListService { //查看机型审批列表 PageResultDTO selectEngineReviewListByUserId(String userId,Integer page,Integer size,String ycOrOth); + //撤回审批(只有发起人在没有被人审批时可以撤回) + String returnApproval(String approvalId); + } diff --git a/src/main/java/com/xdap/self_development/service/impl/EngineReviewListServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/EngineReviewListServiceImpl.java index 48fe67d..d81cd12 100644 --- a/src/main/java/com/xdap/self_development/service/impl/EngineReviewListServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/EngineReviewListServiceImpl.java @@ -2,7 +2,11 @@ package com.xdap.self_development.service.impl; import com.definesys.mpaas.query.MpaasQueryFactory; import com.xdap.api.moudle.user.pojo.XdapUsers; +import com.xdap.self_development.enums.ParamValueVersionEnum; +import com.xdap.self_development.pojo.ApprovalConfigPojo; import com.xdap.self_development.pojo.EngineReviewListPojo; +import com.xdap.self_development.pojo.ParamApprovalRecordPojo; +import com.xdap.self_development.pojo.TodoTaskPojo; import com.xdap.self_development.pojo.dto.PageResultDTO; import com.xdap.self_development.service.EngineReviewListService; import com.xdap.self_development.service.XdapDeptUsersService; @@ -15,6 +19,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -72,4 +77,44 @@ public class EngineReviewListServiceImpl implements EngineReviewListService { pageResultDTO.setTotalCount(totalCount); return pageResultDTO; } + + //撤回审批 + @Override + public String returnApproval(String approvalId) { + if (StringUtils.isEmpty(approvalId)) { + throw new RuntimeException("未传入审批流ID"); + } + //如果这个审批流没有被审批过 + boolean b = true; + List engineReviewListPojos = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("id", approvalId) + .doQuery(EngineReviewListPojo.class); + if (ObjectUtils.isEmpty(engineReviewListPojos)) { + throw new RuntimeException("审批流未找到"); + } + String nodeName = engineReviewListPojos.get(0).getNodeName(); + // 获取环节 + List paramApprovalRecordPojos = sw.buildFromDatasource("xdap_app_223770822127386625") + .eq("approval_id", approvalId) + .doQuery(ParamApprovalRecordPojo.class); + if (paramApprovalRecordPojos.stream().anyMatch(x -> x.getOperator().equals("同意"))) { + b = false; + } + if (b) { + // 更新审批流状态为已撤回 + sw.buildFromDatasource("xdap_app_223770822127386625") + .update("status_code", ParamValueVersionEnum.WITHDRAWN.getCode()) + .update("status_description", ParamValueVersionEnum.WITHDRAWN.getDesc()) + .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("last_update_date", new Date()) + .eq("document_no", approvalId).doUpdate(TodoTaskPojo.class); + return "撤回成功"; + } + return "已经进入审批无法撤回"; + } }