From e046dba174365eb8934ee1e4206f09821145e876 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 21 八月 2025 13:23:22 +0800
Subject: [PATCH] no message

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/OrderServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 45 insertions(+), 8 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 240c693..0e703ee 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.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.exception.CoolException;
 import com.zy.asrs.wms.asrs.entity.*;
@@ -39,19 +40,21 @@
     private OrderUtils orderUtils;
     @Autowired
     private WaitPakinService waitPakinService;
+    @Autowired
+    private LocDetlService locDetlService;
 
     @Override
     @Transactional
-    public boolean createOrder(List<CreateOrderParam> list) {
+    public boolean createOrder(List<CreateOrderParam> list, Long userId) {
         for (CreateOrderParam orderParam : list) {
-            createOrder(orderParam);
+            createOrder(orderParam, userId);
         }
         return true;
     }
 
     @Override
     @Transactional
-    public boolean createOrder(CreateOrderParam param) {
+    public boolean createOrder(CreateOrderParam param, Long userId) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
         List<Order> orderList = this.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, param.getOrderNo()));
@@ -74,14 +77,15 @@
         order.setIoPri(orderUtils.getIoPri());
         order.setOrderTime(format.format(new Date()));
         order.setCreateTime(new Date());
-        order.setCreateBy(9527L);
+        order.setCreateBy(userId);
+        order.setUpdateBy(userId);
         boolean result = this.save(order);
         if (!result) {
             throw new CoolException("鐢熸垚璁㈠崟澶辫触");
         }
 
         for (HashMap<String, Object> map : param.getList()) {
-            double anfme = Double.parseDouble(map.get("anfme").toString());
+            Double anfme = Double.parseDouble(map.get("anfme").toString());
             String batch = map.get("batch").toString();
             String matnr = map.get("matnr").toString();
             Double qty = 0D;
@@ -92,6 +96,20 @@
             if (map.containsKey("workQty")) {
                 workQty = Double.parseDouble(map.get("workQty").toString());
             }
+
+            if (param.getOrderType() == 2) {
+                List<LocDetl> detls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+                        .eq(StringUtils.isNotBlank(batch), LocDetl::getBatch, batch)
+                        .eq(StringUtils.isNotBlank(matnr), LocDetl::getMatnr, matnr));
+                if (detls.isEmpty()) {
+                    throw new CoolException("鐗╂枡锛�" + matnr + "鍓╀綑搴撳瓨浣欎笅锛�0" +  "锛屾棤娉曠敓鎴愬嚭搴撳崟!!");
+                }
+                Double sum = detls.stream().mapToDouble(LocDetl::getAnfme).sum();
+                if (anfme.compareTo(sum) > 0) {
+                    throw new CoolException("鐗╂枡锛�" + matnr + "鍓╀綑搴撳瓨浣欎笅锛�" + sum + "锛屾棤娉曠敓鎴愬嚭搴撳崟!!");
+                }
+            }
+
             String memo = map.getOrDefault("memo", "").toString();
             Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr));
             if (mat == null) {
@@ -108,7 +126,8 @@
             orderDetl.setMatId(mat.getId());
             orderDetl.setMemo(memo);
             orderDetl.setCreateTime(new Date());
-            orderDetl.setCreateBy(9527L);
+            orderDetl.setCreateBy(userId);
+            orderDetl.setUpdateBy(userId);
             boolean save = orderDetlService.save(orderDetl);
             if (!save) {
                 throw new CoolException("璁㈠崟鏄庣粏鍒涘缓澶辫触");
@@ -304,7 +323,25 @@
     }
 
     @Override
-    public List<OrderInfoDto> getDetlForOrderId(Long id) {
-        return this.baseMapper.getDetlForOrderId(id);
+    public List<OrderInfoDto> getDetlForOrderId(Long id, String matnr) {
+        if (!Objects.isNull(matnr)) {
+            if (Objects.isNull(matnr)) {
+                return this.baseMapper.getDetlForOrderId(id, null);
+            } else {
+                return this.baseMapper.getDetlForOrderId(id, matnr);
+            }
+        } else {
+            return this.baseMapper.getDetlForOrderId(id, null);
+        }
+    }
+
+    /**
+     * 鎻愪氦瀹岀粨璁㈠崟
+     * @param id
+     * @return
+     */
+    @Override
+    public Order doneOrder(Long id) {
+        return null;
     }
 }

--
Gitblit v1.9.1