From 14c80fbd16a51a355138345ecf69df9ca37746bf Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期五, 06 十一月 2026 09:18:32 +0800
Subject: [PATCH] 完善售后退货联动和订单作废保护
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/api/sale/ErpSaleOrderApiImpl.java | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/api/sale/ErpSaleOrderApiImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/api/sale/ErpSaleOrderApiImpl.java
index 08a9a10..bd0354a 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/api/sale/ErpSaleOrderApiImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/api/sale/ErpSaleOrderApiImpl.java
@@ -13,6 +13,10 @@
import cn.iocoder.yudao.module.erp.service.sale.ErpSaleOrderService;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import cn.iocoder.yudao.module.erp.enums.ErpAuditStatus;
+import java.util.Objects;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -21,6 +25,7 @@
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.invalidParamException;
/**
* ERP 閿�鍞鍗� API 瀹炵幇绫�
@@ -57,6 +62,18 @@
@Override
public CommonResult<ErpSaleOrderRespDTO> getSaleOrder(Long id) {
ErpSaleOrderDO order = saleOrderService.getSaleOrder(id);
+ return success(BeanUtils.toBean(order, ErpSaleOrderRespDTO.class));
+ }
+
+ @Override
+ @Transactional(propagation = Propagation.MANDATORY)
+ public CommonResult<ErpSaleOrderRespDTO> lockSaleOrderForNotice(Long id, String orderNo) {
+ if (id == null && (orderNo == null || orderNo.isBlank())) return success(null);
+ ErpSaleOrderDO order = id != null ? saleOrderMapper.selectByIdForUpdate(id) : saleOrderMapper.selectByNoForUpdate(orderNo);
+ if (order == null || (orderNo != null && !orderNo.isBlank() && !Objects.equals(orderNo, order.getNo())))
+ throw invalidParamException("鍏宠仈閿�鍞鍗曚笉瀛樺湪鎴栬鍗曠紪鍙蜂笉鍖归厤");
+ if (!Objects.equals(order.getStatus(), ErpAuditStatus.APPROVE.getStatus()))
+ throw invalidParamException("閿�鍞鍗曟湭瀹℃牳鎴栧凡浣滃簾锛屼笉鑳界敓鎴愬彂璐ч�氱煡");
return success(BeanUtils.toBean(order, ErpSaleOrderRespDTO.class));
}
@@ -121,4 +138,4 @@
return success(true);
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3