From c6c9b7d3baa822765768c110304d27623f946286 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期二, 15 七月 2025 14:29:09 +0800
Subject: [PATCH] `1`
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java | 145 ++++++++++++++++++++++++++++--------------------
1 files changed, 84 insertions(+), 61 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java
index 5845506..569281a 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/OrderUtils.java
@@ -1,61 +1,84 @@
-package com.zy.asrs.wms.utils;
-
-import com.zy.asrs.framework.exception.CoolException;
-import com.zy.asrs.wms.asrs.entity.Order;
-import com.zy.asrs.wms.asrs.entity.OrderDetl;
-import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
-import com.zy.asrs.wms.asrs.service.OrderDetlService;
-import com.zy.asrs.wms.asrs.service.OrderService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Date;
-
-@Component
-public class OrderUtils {
-
- @Autowired
- private OrderService orderService;
- @Autowired
- private OrderDetlService orderDetlService;
-
- @Transactional
- public void updateWorkQty(Long orderDetlId, Double qty) {
- OrderDetl orderDetl = orderDetlService.getById(orderDetlId);
- if(orderDetl == null) {
- throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
- }
-
- Order order = orderService.getById(orderDetl.getOrderId());
- if(order == null) {
- throw new CoolException("璁㈠崟涓嶅瓨鍦�");
- }
-
- if (order.getOrderSettle() == OrderSettleType.COMPLETE.val()
- || order.getOrderSettle() == OrderSettleType.CANCEL.val()
- || order.getOrderSettle() == OrderSettleType.WAIT_CANCEL.val()
- || order.getOrderSettle() == OrderSettleType.REPORT_COMPLETE.val()) {
- throw new CoolException("璁㈠崟褰撳墠鐘舵�佷笉鍙慨鏀�");
- }
-
- Double workQty = orderDetl.getWorkQty();
- orderDetl.setWorkQty(workQty + qty);
- orderDetl.setUpdateTime(new Date());
- if (!orderDetlService.updateById(orderDetl)) {
- throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
- }
-
-
- order.setOrderSettle(OrderSettleType.WORKING.val());
- order.setUpdateTime(new Date());
- if(!orderService.updateById(order)) {
- throw new CoolException("璁㈠崟鏇存柊澶辫触");
- }
- }
-
- public Integer getIoPri() {
- return 11;
- }
-
-}
+package com.zy.asrs.wms.utils;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.Order;
+import com.zy.asrs.wms.asrs.entity.OrderDetl;
+import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
+import com.zy.asrs.wms.asrs.service.OrderDetlService;
+import com.zy.asrs.wms.asrs.service.OrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class OrderUtils {
+
+ @Autowired
+ private OrderService orderService;
+ @Autowired
+ private OrderDetlService orderDetlService;
+
+ @Transactional
+ public void updateWorkQty(Long orderDetlId, Double qty) {
+ updateWorkQty(orderDetlId, qty, true);
+ }
+
+ @Transactional
+ public void updateWorkQty(Long orderDetlId, Double qty, boolean increase) {
+ OrderDetl orderDetl = orderDetlService.getById(orderDetlId);
+ if (orderDetl == null) {
+ throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�");
+ }
+
+ Order order = orderService.getById(orderDetl.getOrderId());
+ if (order == null) {
+ throw new CoolException("璁㈠崟涓嶅瓨鍦�");
+ }
+
+ if (order.getOrderSettle() == OrderSettleType.COMPLETE.val()
+ || order.getOrderSettle() == OrderSettleType.CANCEL.val()
+ || order.getOrderSettle() == OrderSettleType.WAIT_CANCEL.val()
+ || order.getOrderSettle() == OrderSettleType.REPORT_COMPLETE.val()) {
+ throw new CoolException("璁㈠崟褰撳墠鐘舵�佷笉鍙慨鏀�");
+ }
+
+ Double workQty = orderDetl.getWorkQty();
+ if (increase) {
+ orderDetl.setWorkQty(workQty + qty);
+ }else {
+ orderDetl.setWorkQty(workQty - qty);
+ }
+ orderDetl.setUpdateTime(new Date());
+ if (!orderDetlService.updateById(orderDetl)) {
+ throw new CoolException("璁㈠崟鏄庣粏鏇存柊澶辫触");
+ }
+
+ List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
+ boolean flag = false;
+ for (OrderDetl detl : orderDetls) {
+ if ((detl.getQty() + detl.getWorkQty()) > 0) {
+ flag = true;
+ break;
+ }
+ }
+
+ if (flag) {
+ order.setOrderSettle(OrderSettleType.WORKING.val());
+ } else {
+ order.setOrderSettle(OrderSettleType.WAIT.val());
+ }
+ order.setUpdateTime(new Date());
+ if (!orderService.updateById(order)) {
+ throw new CoolException("璁㈠崟鏇存柊澶辫触");
+ }
+ }
+
+ public Integer getIoPri() {
+ return 11;
+ }
+
+}
--
Gitblit v1.9.1