From 8191663e334bc4e6db3585302e6fb3874037ed6f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期五, 08 四月 2022 13:29:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderController.java |   78 +++++++++++++++++++++++----------------
 1 files changed, 46 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderController.java b/src/main/java/com/zy/asrs/controller/OrderController.java
index 9336fd1..d33217c 100644
--- a/src/main/java/com/zy/asrs/controller/OrderController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderController.java
@@ -12,6 +12,7 @@
 import com.zy.asrs.entity.param.OrderDomainParam;
 import com.zy.asrs.service.OrderDetlService;
 import com.zy.asrs.service.OrderService;
+import com.zy.common.model.DetlDto;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -53,7 +54,7 @@
         excludeTrash(param);
         convert(param, wrapper);
         if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
-            wrapper.orderBy("create_time", false);
+            wrapper.orderBy("settle").orderBy("create_time", false);
         }
         wrapper.eq("status", 1);
         return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
@@ -113,17 +114,28 @@
         if (!orderService.insert(order)) {
             throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触");
         }
+        List<DetlDto> list = new ArrayList<>();
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
-            orderDetl.setOrderId(order.getId());
-            orderDetl.setOrderNo(order.getOrderNo());
-            orderDetl.setCreateBy(getUserId());
-            orderDetl.setCreateTime(now);
-            orderDetl.setUpdateBy(getUserId());
-            orderDetl.setUpdateTime(now);
-            orderDetl.setStatus(1);
-            orderDetl.setQty(0.0D);
-            if (!orderDetlService.insert(orderDetl)) {
-                throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+            if (DetlDto.has(list, dto)) {
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
+                if (!orderDetlService.updateById(item)) {
+                    throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+                }
+            } else {
+                list.add(dto);
+                orderDetl.setOrderId(order.getId());
+                orderDetl.setOrderNo(order.getOrderNo());
+                orderDetl.setCreateBy(getUserId());
+                orderDetl.setCreateTime(now);
+                orderDetl.setUpdateBy(getUserId());
+                orderDetl.setUpdateTime(now);
+                orderDetl.setStatus(1);
+                orderDetl.setQty(0.0D);
+                if (!orderDetlService.insert(orderDetl)) {
+                    throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+                }
             }
         }
         return R.ok("璁㈠崟娣诲姞鎴愬姛");
@@ -149,34 +161,34 @@
             }
         }
         // 淇敼鏄庣粏妗�
-        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
         // 1.娓呯┖鏄庣粏妗�
         if (!orderDetlService.delete(new EntityWrapper<OrderDetl>().eq("order_id", order.getId()))) {
             throw new CoolException("娓呯┖璁㈠崟鏄庣粏澶辫触");
         }
         // 2.閲嶇粍鏁版嵁
+        List<DetlDto> list = new ArrayList<>();
         for (OrderDetl orderDetl : param.getOrderDetlList()) {
-            OrderDetl detl = orderDetlService.findByLook(orderDetls, order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
-            // 鏂板
-            if (detl == null) {
-                detl = orderDetl;
-                detl.setOrderId(order.getId());
-                detl.setOrderNo(order.getOrderNo());
-                detl.setCreateTime(now);
-                detl.setCreateBy(userId);
-                detl.setUpdateTime(now);
-                detl.setUpdateBy(userId);
-                detl.setStatus(1);
-                detl.setQty(0.0D);
-            // 淇敼
+            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
+            if (DetlDto.has(list, dto)) {
+                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
+                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
+                if (!orderDetlService.updateById(item)) {
+                    throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+                }
             } else {
-                detl.setAnfme(orderDetl.getAnfme());    // 淇敼鏁伴噺
-                detl.setUpdateTime(now);
-                detl.setUpdateBy(userId);
-            }
-            // 鎸佷箙鍖�
-            if (!orderDetlService.insert(detl)) {
-                throw new CoolException("鏂板璁㈠崟鏄庣粏澶辫触");
+                list.add(dto);
+                orderDetl.setOrderId(order.getId());
+                orderDetl.setOrderNo(order.getOrderNo());
+                orderDetl.setCreateBy(getUserId());
+                orderDetl.setCreateTime(now);
+                orderDetl.setUpdateBy(getUserId());
+                orderDetl.setUpdateTime(now);
+                orderDetl.setStatus(1);
+                orderDetl.setQty(0.0D);
+                if (!orderDetlService.insert(orderDetl)) {
+                    throw new CoolException("淇濆瓨璁㈠崟鏄庣粏妗eけ璐�");
+                }
             }
         }
         return R.ok("璁㈠崟淇敼鎴愬姛");
@@ -224,6 +236,7 @@
 
     @RequestMapping(value = "/order/delete/auth")
     @ManagerAuth(memo = "鎵嬪姩鍒犻櫎璁㈠崟")
+    @Transactional
     public R delete(@RequestParam Long orderId){
         Order order = orderService.selectById(orderId);
         if (order != null) {
@@ -232,6 +245,7 @@
         if (!orderService.updateById(order)) {
             throw new CoolException("鍒犻櫎璁㈠崟澶辫触");
         }
+        orderDetlService.modifyStatus(orderId, 0);
         return R.ok();
     }
 

--
Gitblit v1.9.1