Bladeren bron

订单删除优化

24282 1 jaar geleden
bovenliggende
commit
ae94cafbca

+ 1 - 1
sd-business/src/main/java/com/sd/business/controller/order/OrderController.java

@@ -67,7 +67,7 @@ public class OrderController {
      */
     @PostMapping("/delete")
     public void delete(@RequestBody BaseSelectDto dto) {
-        orderService.delete(dto.getId());
+        orderService.delete(dto.getId(), true);
     }
 
     /**

+ 1 - 1
sd-business/src/main/java/com/sd/business/service/order/OrderService.java

@@ -43,7 +43,7 @@ public interface OrderService extends BaseService<OrderInfo> {
     /**
      * 订单删除
      */
-    void delete(Long id);
+    void delete(Long id, boolean saveLog);
 
     /**
      * 通过sku规格id获取产品价格

+ 15 - 7
sd-business/src/main/java/com/sd/business/service/order/impl/OrderServiceImpl.java

@@ -242,10 +242,15 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void delete(Long id) {
+    public void delete(Long id, boolean saveLog) {
         OrderInfo orderInfo = getById(id);
 
-        if (orderInfo.getStatus() > OrderStatusEnum.STOCK_PREPARATION.getKey()) {
+        if (orderInfo == null) {
+            throw new ServiceException("未找到订单");
+        }
+
+        if (Objects.equals(orderInfo.getDelFlag(), StatusConstant.NOT_DELETED)
+                && orderInfo.getStatus() > OrderStatusEnum.STOCK_PREPARATION.getKey()) {
             throw new ServiceException("订单正在生产中,无法直接删除,需要走审批流程");
         }
 
@@ -254,11 +259,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implem
         orderSkuBomService.remove(q -> q.eq(OrderSkuBom::getOrderId, id));
         orderPackageBomService.remove(q -> q.eq(OrderPackageBom::getOrderId, id));
 
-        OrderOperatingLog orderOperatingLog = new OrderOperatingLog();
-        orderOperatingLog.setType(30);
-        orderOperatingLog.setOrderId(id);
-        orderOperatingLog.setOrderCode(orderInfo.getCode());
-        orderOperatingLogService.save(orderOperatingLog);
+        if (saveLog) {
+            OrderOperatingLog orderOperatingLog = new OrderOperatingLog();
+            orderOperatingLog.setType(30);
+            orderOperatingLog.setOrderId(id);
+            orderOperatingLog.setOrderCode(orderInfo.getCode());
+            orderOperatingLogService.save(orderOperatingLog);
+        }
+
     }
 
     @Override

+ 1 - 1
sd-wln/src/main/java/com/sd/wln/service/impl/OrderHandleServiceImpl.java

@@ -49,7 +49,7 @@ public class OrderHandleServiceImpl implements OrderHandleService {
             if (Objects.equals(orderInfo.getDelFlag(), StatusConstant.NOT_DELETED)) {
                 throw new ServiceException("订单未被删除,无法重新同步");
             }
-            orderService.delete(orderInfo.getId());
+            orderService.delete(orderInfo.getId(), false);
         }
 
         String storageCode = wlnOrder.getString("storage_code");