1、修改bug

This commit is contained in:
潘荣晟
2025-10-29 17:55:13 +08:00
parent 3ef662e1ec
commit 0419b56b11
2 changed files with 250 additions and 82 deletions

View File

@@ -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.BpmTaskApi;
import com.zt.plat.module.bpm.api.task.dto.*; 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.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.api.vo.contract.ContractRespVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.dal.dataobject.contract.SystemRelativityDO; 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.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils; 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(); return sequenceApi.getNextSequence("PURCHASE_ORDER_NUMBER", null, null).getData();
} }
@Override // @Override
@Transactional(rollbackFor=Exception.class) // @Transactional(rollbackFor=Exception.class)
public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) { // public boolean orderPassReject(PurchaseorderReqVO purchaseorderReqVO) {
PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId()); // PurchaseOrderDO purchaseOrderDO = purchaseOrderMapper.selectById(purchaseorderReqVO.getId());
if (ObjectUtils.isEmpty(purchaseOrderDO)) { // if (ObjectUtils.isEmpty(purchaseOrderDO)) {
throw exception(PURCHASE_ORDER_NOT_EXISTS); // throw exception(PURCHASE_ORDER_NOT_EXISTS);
} // }
// 获取当前流程正在审批的任务节点 // // 获取当前流程正在审批的任务节点
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData(); // List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(purchaseOrderDO.getProcessInstanceId()).getData();
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1); // 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 @Override
public List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) { public List<DownOrUpOrderRespVO> getOrderByOrderIdAndType(DownOrUpOrderReqVO reqVO) {
@@ -687,4 +697,90 @@ public class PurchaseOrderServiceImpl implements PurchaseOrderService {
public List<PurchaseOrderDO> getOrdersByIds(List<String> ids) { public List<PurchaseOrderDO> getOrdersByIds(List<String> ids) {
return purchaseOrderMapper.selectByIds(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");
});
}
} }

View File

@@ -6,6 +6,7 @@ import com.alibaba.fastjson2.JSONException;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.pojo.PageResult;
import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.framework.common.util.object.BeanUtils;
import com.zt.plat.framework.security.core.util.SecurityFrameworkUtils; 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.purchaseorder.vo.*;
import com.zt.plat.module.contractorder.controller.admin.salesorder.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.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.dataobject.salesorder.SalesOrderDO;
import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper; import com.zt.plat.module.contractorder.dal.mysql.contract.SystemRelativityMapper;
import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderMapper; 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.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS; import static com.zt.plat.module.contractorder.enums.ErrorCodeConstants.CONTRACT_ORDER_EXISTS;
@@ -311,55 +314,113 @@ public class SalesOrderServiceImpl implements SalesOrderService {
return "提交审批成功"; 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 @Override
@Transactional @Transactional(rollbackFor=Exception.class)
public boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO) { public boolean orderPassReject(SalesOrderReviewReqVO salesOrderReviewReqVO) {
// 查询采购单
SalesOrderDO salesOrderDO = salesOrderMapper.selectById(salesOrderReviewReqVO.getId()); SalesOrderDO salesOrderDO = salesOrderMapper.selectById(salesOrderReviewReqVO.getId());
if (ObjectUtils.isEmpty(salesOrderDO)) { if (ObjectUtils.isEmpty(salesOrderDO)) {
throw exception(PURCHASE_ORDER_NOT_EXISTS); throw exception(PURCHASE_ORDER_NOT_EXISTS);
} }
// 获取当前流程正在审批的任务节点
// 获取当前流程的所有任务节点
List<BpmTaskRespDTO> taskList = bpmTaskApi.getTaskListByProcessInstanceId(salesOrderDO.getProcessInstanceId()).getData(); 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(); BpmApprovalDetailReqDTO badrDto = new BpmApprovalDetailReqDTO();
badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId()); // 流程实例id badrDto.setProcessInstanceId(salesOrderDO.getProcessInstanceId());
badrDto.setTaskId(undoTask.getId()); // 当前审核任务节点id badrDto.setTaskId(undoTask.getId());
BpmApprovalDetailRespDTO approvalDetail = bpmProcessInstanceApi.getApprovalDetail(SecurityFrameworkUtils.getLoginUserId(), badrDto).getData(); 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)) { salesOrderDO.setStatus(getStatusByBpmProcessInstanceCode(approvalDetail.getStatus()));
if (approvalDetail.getStatus().equals(BpmProcessInstanceStatusEnum.RUNNING.getStatus())) { salesOrderDO.setReviewOpinion(salesOrderReviewReqVO.getReviewOpinion());
BpmTaskApproveReqDTO btarDto = new BpmTaskApproveReqDTO(); salesOrderDO.setTaskId(undoTask.getId());
btarDto.setId(undoTask.getId());
btarDto.setReason(salesOrderDO.getReviewOpinion()); salesOrderMapper.updateById(salesOrderDO);
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; return true;
} }
@Override @Override
public boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) { public boolean linkOrder(LinkOrderReqVO LinkOrderReqVO) {
@@ -460,4 +521,15 @@ public class SalesOrderServiceImpl implements SalesOrderService {
throw exception(PURCHASE_ORDER_NOT_EXISTS); 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"));
}
} }