From fc2afc38a9eefaba1bb2f3fad0b793b4ea846cb3 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期一, 16 三月 2026 13:50:11 +0800
Subject: [PATCH] 销售-pda

---
 src/main/java/com/zy/asrs/controller/SaleOrderController.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/SaleOrderController.java b/src/main/java/com/zy/asrs/controller/SaleOrderController.java
index 63dd356..b979bd3 100644
--- a/src/main/java/com/zy/asrs/controller/SaleOrderController.java
+++ b/src/main/java/com/zy/asrs/controller/SaleOrderController.java
@@ -7,7 +7,9 @@
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
 import com.zy.asrs.entity.SaleOrder;
+import com.zy.asrs.entity.WaitPakin;
 import com.zy.asrs.service.SaleOrderService;
+import com.zy.asrs.service.WaitPakinService;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
@@ -16,6 +18,8 @@
 import com.zy.common.web.BaseController;
 
 import org.apache.poi.xssf.usermodel.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -31,8 +35,12 @@
 @RestController
 public class SaleOrderController extends BaseController {
 
+    private static final Logger logger = LoggerFactory.getLogger(SaleOrderController.class);
+
     @Autowired
     private SaleOrderService saleOrderService;
+    @Autowired
+    private WaitPakinService waitPakinService;
 
     @RequestMapping(value = "/saleOrder/{id}/auth")
     @ManagerAuth
@@ -314,6 +322,8 @@
                 // 淇濆瓨鎴栨洿鏂�
                 if (isUpdate) {
                     saleOrderService.updateById(saleOrder);
+                    // 閿�鍞鍗曟洿鏂板悗锛岄『甯︽洿鏂� xtyasrs 搴� cust_wait_pakin 鐨勬暟閲忥紙mobile/bill/query 鐨� count 鍙栬嚜 anfme锛夛紝浠呮洿鏂般�佷笉鎻掑叆锛屽け璐ヤ笉褰卞搷涓绘祦绋�
+                    updateWaitPakinQuantity(data);
                 } else {
                     saleOrderService.insert(saleOrder);
                 }
@@ -330,22 +340,62 @@
     }
     
     /**
-     * 姣旇緝涓や釜Double鍊兼槸鍚︾浉绛夛紙澶勭悊null鍊硷級
+     * 姣旇緝涓や釜Double鍊兼槸鍚︾浉绛夛紙澶勭悊null鍊煎拰0鍊硷級
+     * 閲嶈锛歯ull鍜�0琚涓烘槸涓嶅悓鐨勫�硷紝闇�瑕佹洿鏂�
      * @param d1 绗竴涓狣ouble鍊�
      * @param d2 绗簩涓狣ouble鍊�
      * @return true-鐩哥瓑锛宖alse-涓嶇浉绛�
      */
     private boolean isDoubleEqual(Double d1, Double d2) {
+        // 涓や釜閮芥槸null锛岃涓虹浉绛�
         if (d1 == null && d2 == null) {
             return true;
         }
+        // 涓�涓负null锛屽彟涓�涓笉涓簄ull锛岃涓轰笉鐩哥瓑锛堥渶瑕佹洿鏂帮級
+        // 娉ㄦ剰锛歯ull鍜�0鏄笉鍚岀殑锛宯ull鍜�0.0浼氳繑鍥瀎alse锛岃Е鍙戞洿鏂�
         if (d1 == null || d2 == null) {
             return false;
         }
-        // 浣跨敤璇樊鑼冨洿姣旇緝锛岄伩鍏嶆诞鐐规暟绮惧害闂
+        // 涓や釜閮戒笉涓簄ull锛屼娇鐢ㄨ宸寖鍥存瘮杈冿紝閬垮厤娴偣鏁扮簿搴﹂棶棰�
+        // 娉ㄦ剰锛�0鍊间細琚纭瘮杈冿紝渚嬪锛�0.0鍜�0.0浼氳繑鍥瀟rue锛�100.0鍜�0.0浼氳繑鍥瀎alse
         return Math.abs(d1 - d2) < 0.0001;
     }
 
+    /**
+     * 閿�鍞鍗曟暟閲忔洿鏂板悗锛岄『甯︽洿鏂� cust_wait_pakin 鐨� anfme/nqty锛坢obile/bill/query 鐨� count 鍙栬嚜 anfme锛夈��
+     * 浠呮寜 matnr+mnemonic 鏇存柊锛屼笉鎻掑叆锛涙棤鍖归厤鎴栧紓甯镐笉褰卞搷涓绘祦绋嬨��
+     */
+    private void updateWaitPakinQuantity(Map<String, Object> data) {
+        try {
+            String invCode = data.get("invCode") != null ? String.valueOf(data.get("invCode")).trim() : null;
+            String orderCode = data.get("orderCode") != null ? String.valueOf(data.get("orderCode")).trim() : null;
+            if (Cools.isEmpty(invCode) || Cools.isEmpty(orderCode)) {
+                logger.debug("cust_wait_pakin 璺宠繃鏇存柊锛氳鍗曞彿鎴栫墿鏂欑紪鐮佷负绌猴紝orderCode={}锛宨nvCode={}", orderCode, invCode);
+                return;
+            }
+            Double productQty = parseDoubleSafely(data.get("productQty"));
+            if (productQty == null) {
+                productQty = parseDoubleSafely(data.get("orderQty"));
+            }
+            logger.info("cust_wait_pakin 寮�濮嬫洿鏂帮細璁㈠崟鍙�={}锛岀墿鏂欑紪鐮�={}锛屾暟閲�={}", orderCode, invCode, productQty);
+            String invName = data.get("invName") != null ? String.valueOf(data.get("invName")) : null;
+            WaitPakin updateEntity = new WaitPakin();
+            updateEntity.setMaktx(invName);
+            updateEntity.setAnfme(productQty);
+            updateEntity.setNqty(productQty);
+            updateEntity.setModiTime(new Date());
+            Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>().eq("matnr", invCode).eq("mnemonic", orderCode);
+            boolean updated = waitPakinService.update(updateEntity, wrapper);
+            if (updated) {
+                logger.info("cust_wait_pakin 鏇存柊鎴愬姛锛氳鍗曞彿={}锛岀墿鏂欑紪鐮�={}锛屾暟閲�={}", orderCode, invCode, productQty);
+            } else {
+                logger.warn("cust_wait_pakin 鏇存柊鏈奖鍝嶈锛堝彲鑳芥棤鍖归厤璁板綍锛夛細璁㈠崟鍙�={}锛岀墿鏂欑紪鐮�={}", orderCode, invCode);
+            }
+        } catch (Exception e) {
+            logger.error("cust_wait_pakin 鏇存柊寮傚父锛歰rderCode={}锛宨nvCode={}锛宔rror={}", data.get("orderCode"), data.get("invCode"), e.getMessage(), e);
+        }
+    }
+
     @RequestMapping(value = "/saleOrder/update/auth")
     @ManagerAuth
     public R update(SaleOrder saleOrder) {

--
Gitblit v1.9.1