1、修改bug
This commit is contained in:
@@ -11,6 +11,7 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi;
|
||||
import com.zt.plat.module.bpm.api.task.BpmTaskApi;
|
||||
import com.zt.plat.module.bpm.api.task.dto.*;
|
||||
import com.zt.plat.module.bpm.enums.task.BpmProcessInstanceStatusEnum;
|
||||
import com.zt.plat.module.bpm.enums.task.BpmTaskStatusEnum;
|
||||
import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
|
||||
@@ -40,6 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
@@ -554,53 +556,61 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
return sequenceApi.getNextSequence("PURCHASE_ORDER_NUMBER", null, null).getData();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) {
|
||||
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId());
|
||||
if (ObjectUtils.isEmpty(purchaseOrderDO)) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
// 获取当前流程正在审批的任务节点
|
||||
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData();
|
||||
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||
// @Override
|
||||
// @Transactional(rollbackFor=Exception.class)
|
||||
// public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) {
|
||||
// PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId());
|
||||
// if (ObjectUtils.isEmpty(purchaseOrderDO)) {
|
||||
// throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
// }
|
||||
// // 获取当前流程正在审批的任务节点
|
||||
// List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData();
|
||||
// BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||
//
|
||||
// // 判断是否流程已经通过、驳回
|
||||
// BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||
// badrDto.setProcessInstanceId(purchaseOrderDO.getProcessInstanceId()); // 流程实例id
|
||||
// badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
|
||||
// BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||
// //如果审核通过
|
||||
// if ("WAIT_PUSH".equals(purchaseorderReqVO.getStatus())) {
|
||||
// purchaseOrderDO.setStatus(getStatusByBpmProcessInstanceCode(approvalDetail.getStatus()));
|
||||
// } else {
|
||||
// //如果审核不通过
|
||||
// purchaseOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||
// }
|
||||
// //设置审核意见
|
||||
// purchaseOrderDO.setReviewOpinion(purchaseorderReqVO.getReviewOpinion());
|
||||
// if (ObjectUtils.isNotEmpty(undoTask)) {
|
||||
// purchaseOrderDO.setTaskId(undoTask.getId());
|
||||
// }
|
||||
// purchaseOrderMapper.updateById(purchaseOrderDO); //更新状态
|
||||
// // 需要调用bpm 审核接口更新审批中的状态
|
||||
// if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
// if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
// BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||
// btarDto.setId(undoTask.getId());
|
||||
// btarDto.setReason(purchaseorderReqVO.getReviewOpinion());
|
||||
// CommonResult<Boolean> booleanCommonResult = bpmProcessInstanceApi.approveTask(btarDto);
|
||||
// if (booleanCommonResult.isError()) {
|
||||
// throw new RuntimeException(booleanCommonResult.getMsg());
|
||||
// }
|
||||
// }
|
||||
// } else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
// if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
// BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||
// btrrDto.setId(undoTask.getId());
|
||||
// btrrDto.setReason(purchaseorderReqVO.getReviewOpinion());
|
||||
// CommonResult<Boolean> booleanCommonResult = bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||
// if (booleanCommonResult.isError()) {
|
||||
// throw new RuntimeException(booleanCommonResult.getMsg());
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
|
||||
|
||||
// 判断是否流程已经通过、驳回
|
||||
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||
badrDto.setProcessInstanceId(purchaseOrderDO.getProcessInstanceId()); // 流程实例id
|
||||
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
|
||||
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||
//如果审核通过
|
||||
if ("WAIT_PUSH".equals(purchaseorderReqVO.getStatus())) {
|
||||
purchaseOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
||||
} else {
|
||||
//如果审核不通过
|
||||
purchaseOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||
}
|
||||
//设置审核意见
|
||||
purchaseOrderDO.setReviewOpinion(purchaseorderReqVO.getReviewOpinion());
|
||||
if (ObjectUtils.isNotEmpty(undoTask)) {
|
||||
purchaseOrderDO.setTaskId(undoTask.getId());
|
||||
}
|
||||
purchaseOrderMapper.updateById(purchaseOrderDO); //更新状态
|
||||
// 需要调用bpm 审核接口更新审批中的状态
|
||||
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||
btarDto.setId(undoTask.getId());
|
||||
btarDto.setReason(purchaseorderReqVO.getReviewOpinion());
|
||||
bpmProcessInstanceApi.approveTask(btarDto);
|
||||
}
|
||||
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(purchaseorderReqVO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||
btrrDto.setId(undoTask.getId());
|
||||
btrrDto.setReason(purchaseorderReqVO.getReviewOpinion());
|
||||
bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) {
|
||||
@@ -687,4 +697,90 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
|
||||
public List<PurchaseOrderDO> getOrdersByIds(List<String> ids) {
|
||||
return purchaseOrderMapper.selectByIds(ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) {
|
||||
// 查询采购单
|
||||
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId());
|
||||
if (ObjectUtils.isEmpty(purchaseOrderDO)) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
|
||||
// 获取当前流程的所有任务节点
|
||||
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData();
|
||||
|
||||
// 筛选出当前待处理的任务(未结束的任务)
|
||||
BpmTaskRespDTO undoTask = taskList.stream()
|
||||
.filter(task -> task.getEndTime() == null)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
if (ObjectUtils.isEmpty(undoTask)) {
|
||||
throw new RuntimeException("未找到待审批的任务节点");
|
||||
}
|
||||
|
||||
// 先调用BPM审批接口,再更新本地状态
|
||||
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(purchaseorderReqVO.getStatus())) {
|
||||
// 审批通过
|
||||
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||
btarDto.setId(undoTask.getId());
|
||||
btarDto.setReason(purchaseorderReqVO.getReviewOpinion());
|
||||
CommonResult<Boolean> result = bpmProcessInstanceApi.approveTask(btarDto);
|
||||
if (result.isError()) {
|
||||
throw new RuntimeException(result.getMsg());
|
||||
}
|
||||
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(purchaseorderReqVO.getStatus())) {
|
||||
// 审批驳回
|
||||
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||
btrrDto.setId(undoTask.getId());
|
||||
btrrDto.setReason(purchaseorderReqVO.getReviewOpinion());
|
||||
CommonResult<Boolean> result = bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||
if (result.isError()) {
|
||||
throw new RuntimeException(result.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
// 调用BPM接口后,查询最新的审批详情
|
||||
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||
badrDto.setProcessInstanceId(purchaseOrderDO.getProcessInstanceId());
|
||||
badrDto.setTaskId(undoTask.getId());
|
||||
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||
|
||||
// 使用统一方法转换状态
|
||||
purchaseOrderDO.setStatus(getStatusByBpmProcessInstanceCode(approvalDetail.getStatus()));
|
||||
purchaseOrderDO.setReviewOpinion(purchaseorderReqVO.getReviewOpinion());
|
||||
purchaseOrderDO.setTaskId(undoTask.getId());
|
||||
|
||||
purchaseOrderMapper.updateById(purchaseOrderDO);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private String getStatusByBpmProcessInstanceCode(Integer code) {
|
||||
log.debug("转换BPM状态码 - 输入码: {}", code);
|
||||
return Optional.ofNullable(code)
|
||||
.map(c -> switch (c) {
|
||||
case -1, 3, 4 -> {
|
||||
log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.DRAFT.getCode());
|
||||
yield OrderStatusEnum.DRAFT.getCode();
|
||||
}
|
||||
case 1 -> {
|
||||
log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.APPROVING.getCode());
|
||||
yield OrderStatusEnum.APPROVING.getCode();
|
||||
}
|
||||
case 2 -> {
|
||||
log.debug("BPM状态码 {} 转换为: {}", c, OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
||||
yield OrderStatusEnum.TO_SUBMIT_ERP.getCode();
|
||||
}
|
||||
default -> {
|
||||
log.error("未定义的BPM状态码: {}", c);
|
||||
throw new IllegalArgumentException("未定义的BPM状态码:" + c);
|
||||
}
|
||||
})
|
||||
.orElseThrow(() -> {
|
||||
log.error("BPM状态码为null");
|
||||
return new IllegalArgumentException("BPM状态码不能为null");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSONException;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.zt.plat.framework.common.pojo.CommonResult;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils;
|
||||
@@ -17,6 +18,7 @@ import com.zt.plat.module.contractorder.api.vo.contract.ContractRespVO;
|
||||
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
|
||||
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.*;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
||||
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDO;
|
||||
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
|
||||
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper;
|
||||
@@ -40,6 +42,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS;
|
||||
@@ -311,55 +314,113 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
||||
return "提交审批成功";
|
||||
}
|
||||
|
||||
// @Override
|
||||
// @Transactional
|
||||
// public boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO) {
|
||||
// SalesOrderDO salesOrderDO = salesOrderMapper.selectById(salesOrderReviewReqVO.getId());
|
||||
// if (ObjectUtils.isEmpty(salesOrderDO)) {
|
||||
// throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
// }
|
||||
// // 获取当前流程正在审批的任务节点
|
||||
// List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(salesOrderDO.getProcessInstanceId()).getData();
|
||||
// BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||
//
|
||||
// // 判断是否流程已经通过、驳回
|
||||
// BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||
// badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId()); // 流程实例id
|
||||
// badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
|
||||
// BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||
// //如果审核通过
|
||||
// if ("WAIT_PUSH".equals(salesOrderReviewReqVO.getStatus())) {
|
||||
// salesOrderDO.setStatus(getStatusByBpmProcessInstanceCode(approvalDetail.getStatus()));
|
||||
// } else {
|
||||
// //如果审核不通过
|
||||
// salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||
// }
|
||||
// //设置审核意见
|
||||
// salesOrderDO.setReviewOpinion(salesOrderDO.getReviewOpinion());
|
||||
// if (ObjectUtils.isNotEmpty(undoTask)) {
|
||||
// salesOrderDO.setTaskId(undoTask.getId());
|
||||
// }
|
||||
// salesOrderMapper.updateById(salesOrderDO); //更新状态
|
||||
//
|
||||
// // 需要调用bpm 审核接口更新审批中的状态
|
||||
// if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(salesOrderDO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
// if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
// BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||
// btarDto.setId(undoTask.getId());
|
||||
// btarDto.setReason(salesOrderDO.getReviewOpinion());
|
||||
// bpmProcessInstanceApi.approveTask(btarDto);
|
||||
// }
|
||||
// } else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(salesOrderDO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
// if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
// BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||
// btrrDto.setId(undoTask.getId());
|
||||
// btrrDto.setReason(salesOrderDO.getReviewOpinion());
|
||||
// bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||
// }
|
||||
// }
|
||||
// return true;
|
||||
// }
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@Transactional(rollbackFor=Exception.class)
|
||||
public boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO) {
|
||||
// 查询采购单
|
||||
SalesOrderDO salesOrderDO = salesOrderMapper.selectById(salesOrderReviewReqVO.getId());
|
||||
if (ObjectUtils.isEmpty(salesOrderDO)) {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
// 获取当前流程正在审批的任务节点
|
||||
|
||||
// 获取当前流程的所有任务节点
|
||||
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(salesOrderDO.getProcessInstanceId()).getData();
|
||||
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
|
||||
|
||||
// 判断是否流程已经通过、驳回
|
||||
// 筛选出当前待处理的任务(未结束的任务)
|
||||
BpmTaskRespDTO undoTask = taskList.stream()
|
||||
.filter(task -> task.getEndTime() == null)
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
if (ObjectUtils.isEmpty(undoTask)) {
|
||||
throw new RuntimeException("未找到待审批的任务节点");
|
||||
}
|
||||
|
||||
// 先调用BPM审批接口,再更新本地状态
|
||||
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(salesOrderReviewReqVO.getStatus())) {
|
||||
// 审批通过
|
||||
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||
btarDto.setId(undoTask.getId());
|
||||
btarDto.setReason(salesOrderReviewReqVO.getReviewOpinion());
|
||||
CommonResult<Boolean> result = bpmProcessInstanceApi.approveTask(btarDto);
|
||||
if (result.isError()) {
|
||||
throw new RuntimeException(result.getMsg());
|
||||
}
|
||||
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(salesOrderReviewReqVO.getStatus())) {
|
||||
// 审批驳回
|
||||
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||
btrrDto.setId(undoTask.getId());
|
||||
btrrDto.setReason(salesOrderReviewReqVO.getReviewOpinion());
|
||||
CommonResult<Boolean> result = bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||
if (result.isError()) {
|
||||
throw new RuntimeException(result.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
// 调用BPM接口后,查询最新的审批详情
|
||||
BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
|
||||
badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId()); // 流程实例id
|
||||
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id
|
||||
badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId());
|
||||
badrDto.setTaskId(undoTask.getId());
|
||||
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData();
|
||||
//如果审核通过
|
||||
if ("WAIT_PUSH".equals(salesOrderReviewReqVO.getStatus())) {
|
||||
salesOrderDO.setStatus(OrderStatusEnum.TO_SUBMIT_ERP.getCode());
|
||||
} else {
|
||||
//如果审核不通过
|
||||
salesOrderDO.setStatus(OrderStatusEnum.DRAFT.getCode());
|
||||
}
|
||||
//设置审核意见
|
||||
salesOrderDO.setReviewOpinion(salesOrderDO.getReviewOpinion());
|
||||
if (ObjectUtils.isNotEmpty(undoTask)) {
|
||||
salesOrderDO.setTaskId(undoTask.getId());
|
||||
}
|
||||
salesOrderMapper.updateById(salesOrderDO); //更新状态
|
||||
|
||||
// 需要调用bpm 审核接口更新审批中的状态
|
||||
if (DictEnum.BSE_CTRT_STS_WAIT_PUSH.getCode().equals(salesOrderDO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO();
|
||||
btarDto.setId(undoTask.getId());
|
||||
btarDto.setReason(salesOrderDO.getReviewOpinion());
|
||||
bpmProcessInstanceApi.approveTask(btarDto);
|
||||
}
|
||||
} else if (DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(salesOrderDO.getStatus()) && ObjectUtils.isNotEmpty(undoTask)) {
|
||||
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) {
|
||||
BpmTaskRejectReqDTO btrrDto = new BpmTaskRejectReqDTO();
|
||||
btrrDto.setId(undoTask.getId());
|
||||
btrrDto.setReason(salesOrderDO.getReviewOpinion());
|
||||
bpmProcessInstanceApi.rejectTask(btrrDto);
|
||||
}
|
||||
}
|
||||
// 使用统一方法转换状态
|
||||
salesOrderDO.setStatus(getStatusByBpmProcessInstanceCode(approvalDetail.getStatus()));
|
||||
salesOrderDO.setReviewOpinion(salesOrderReviewReqVO.getReviewOpinion());
|
||||
salesOrderDO.setTaskId(undoTask.getId());
|
||||
|
||||
salesOrderMapper.updateById(salesOrderDO);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) {
|
||||
|
||||
@@ -460,4 +521,15 @@ public class SalesOrderServiceImpl implements SalesOrderService {
|
||||
throw exception(PURCHASE_ORDER_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
private String getStatusByBpmProcessInstanceCode(Integer code) {
|
||||
return Optional.ofNullable(code)
|
||||
.map(c -> switch (c) {
|
||||
case -1, 3, 4 -> OrderStatusEnum.DRAFT.getCode();
|
||||
case 1 -> OrderStatusEnum.APPROVING.getCode();
|
||||
case 2 -> OrderStatusEnum.TO_SUBMIT_ERP.getCode();
|
||||
default -> throw new IllegalArgumentException("未定义的BPM状态码:" + c);
|
||||
})
|
||||
.orElseThrow(() -> new IllegalArgumentException("BPM状态码不能为null"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user