From d4f47a3c09e994f896dc358df93656751a812e49 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期五, 16 八月 2024 10:17:01 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java |   65 ++++++++++++++++++++++++++++++--
 1 files changed, 60 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
index d00cda0..8ad4656 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.wms.asrs.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
@@ -28,14 +29,35 @@
     private OrderDetlService orderDetlService;
     @Autowired
     private OrderDetlFieldService orderDetlFieldService;
+    @Autowired
+    private OrderNoRuleService orderNoRuleService;
+
+    @Override
+    @Transactional
+    public boolean createOrder(List<CreateOrderParam> list) {
+        for (CreateOrderParam orderParam : list) {
+            createOrder(orderParam);
+        }
+        return true;
+    }
 
     @Override
     @Transactional
     public boolean createOrder(CreateOrderParam param) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
+        List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo()));
+        if (!orderList.isEmpty()) {
+            throw new CoolException("璁㈠崟宸插瓨鍦�");
+        }
+
+        String orderNo = param.getOrderNo();
+        if (Cools.isEmpty(param.getOrderNo())) {
+            orderNo = orderNoRuleService.getOrderNo(param.getOrderType().intValue());
+        }
+
         Order order = new Order();
-        order.setOrderNo(param.getOrderNo());
+        order.setOrderNo(orderNo);
         order.setOrderType(param.getOrderType());
         order.setOrderSettle(param.getOrderSettle());
         order.setOrderTime(format.format(new Date()));
@@ -50,6 +72,14 @@
             double anfme = Double.parseDouble(map.get("anfme").toString());
             String batch = map.get("batch").toString();
             String matnr = map.get("matnr").toString();
+            Double qty = 0D;
+            Double workQty = 0D;
+            if (map.containsKey("qty")) {
+                qty = Double.parseDouble(map.get("qty").toString());
+            }
+            if (map.containsKey("workQty")) {
+                workQty = Double.parseDouble(map.get("workQty").toString());
+            }
             String memo = map.getOrDefault("memo", "").toString();
             Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
             if (mat == null) {
@@ -60,8 +90,8 @@
             orderDetl.setOrderId(order.getId());
             orderDetl.setOrderNo(order.getOrderNo());
             orderDetl.setAnfme(anfme);
-            orderDetl.setQty(0D);
-            orderDetl.setWorkQty(0D);
+            orderDetl.setQty(qty);
+            orderDetl.setWorkQty(workQty);
             orderDetl.setBatch(batch);
             orderDetl.setMatId(mat.getId());
             orderDetl.setMemo(memo);
@@ -95,8 +125,7 @@
 
     @Override
     public boolean updateOrder(UpdateOrderParam param) {
-        Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo()));
-        order.setOrderNo(param.getOrderNo());
+        Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getId, param.getOrderId()));
         order.setOrderType(param.getOrderType());
         order.setOrderSettle(param.getOrderSettle());
         order.setUpdateTime(new Date());
@@ -110,6 +139,8 @@
             double anfme = Double.parseDouble(map.get("anfme").toString());
             String batch = map.get("batch").toString();
             String matnr = map.get("matnr").toString();
+            Double qty = Double.parseDouble(map.get("qty").toString());
+            Double workQty = Double.parseDouble(map.get("workQty").toString());
             String memo = map.getOrDefault("memo", "").toString();
             Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
             if (mat == null) {
@@ -136,6 +167,8 @@
             }else {
                 orderDetl.setOrderNo(order.getOrderNo());
                 orderDetl.setAnfme(anfme);
+                orderDetl.setQty(qty);
+                orderDetl.setWorkQty(workQty);
                 orderDetl.setBatch(batch);
                 orderDetl.setMemo(memo);
                 orderDetl.setUpdateTime(new Date());
@@ -198,4 +231,26 @@
         }
         return true;
     }
+
+    @Override
+    public boolean checkOrderComplete(Long orderId) {
+        Order order = this.getById(orderId);
+        if (order == null) {
+            return false;
+        }
+
+        boolean complete = true;
+        List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId));
+        if(orderDetls.isEmpty()) {
+            complete = false;
+        }
+
+        for (OrderDetl orderDetl : orderDetls) {
+            if (!orderDetl.getAnfme().equals(orderDetl.getQty())) {
+                complete = false;
+            }
+        }
+
+        return complete;
+    }
 }

--
Gitblit v1.9.1