From e394489cd102f8b7033295182915aafdf1aeebc1 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 03 四月 2026 09:23:37 +0800
Subject: [PATCH] 每次上报两条订单

---
 src/main/java/com/zy/third/lk/task/LKInTBScheduler.java |  100 +++++++++++++++++++++++++++++--------------------
 1 files changed, 59 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java b/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java
index 5eb0b41..cd59ff1 100644
--- a/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java
+++ b/src/main/java/com/zy/third/lk/task/LKInTBScheduler.java
@@ -1,11 +1,11 @@
 package com.zy.third.lk.task;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.DocType;
-import com.zy.asrs.entity.Mat;
 import com.zy.asrs.entity.Order;
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.service.DocTypeService;
@@ -24,6 +24,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.locks.ReentrantLock;
 
 /**
  * 鍏ュ簱鏇存柊瀹屾垚鍥炴姤
@@ -47,40 +48,52 @@
     @Autowired
     private ErpSqlServer erpSqlServer;
 
+    private final ReentrantLock lock = new ReentrantLock();
+
     @Transactional(rollbackFor = Throwable.class)
-    @Scheduled(cron = "${erp.refreshtime}")
+    @Scheduled(cron = "0/10 * * * * ?")
     public void pakinOrderComplete() {
         //log.info("寮�濮嬪叆搴撴洿鏂板畬鎴愬洖鎶�");
-        // 鎵�鏈夎鍗�
-        List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L));
-        DocType docType;
-        for (Order order : orders) {
+        // 鎷夸笉鍒伴攣鐩存帴璺宠繃锛堝叧閿級
+        if (!lock.tryLock()) {
+            System.out.println("涓婁竴娆′换鍔℃湭鎵ц瀹岋紝璺宠繃鏈");
+            return;
+        }
 
-            docType = docTypeService.selectById(order.getDocType());
-            if (docType == null) {
-                log.error("璇ヨ鍗曠被鍨嬩笉瀛樺湪:" + order.getDocType());
-                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-            }
-            List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
-            if (docType.getPakin() == 1) {
-                //鍏ュ簱鍗�
-                for (OrderDetl orderDetl : orderDetls) {
-                    log.info("璇ュ叆搴撳崟瀵硅薄:" + orderDetl);
-                    insertInDet(orderDetl);
+        // 鎵�鏈夎鍗�
+        try {
+            List<Order> orders = orderService.selectList(new EntityWrapper<Order>().setSqlSelect("TOP 2 *").eq("settle", 4L));
+            DocType docType;
+            for (Order order : orders) {
+
+                docType = docTypeService.selectById(order.getDocType());
+                if (docType == null) {
+                    log.error("璇ヨ鍗曠被鍨嬩笉瀛樺湪:" + order.getDocType());
+                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
                 }
-                insertInHed(order);
-            } else {
-                //鍑哄簱鍗�
-                for (OrderDetl orderDetl : orderDetls) {
-                    log.info("璇ュ嚭搴撳崟瀵硅薄:" + orderDetl);
-                    insertOutDet(orderDetl);
+                List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
+                if (docType.getPakin() == 1) {
+                    //鍏ュ簱鍗�
+                    for (OrderDetl orderDetl : orderDetls) {
+                        log.info("璇ュ叆搴撳崟瀵硅薄:" + orderDetl);
+                        insertInDet(orderDetl);
+                    }
+                    insertInHed(order);
+                } else {
+                    //鍑哄簱鍗�
+                    for (OrderDetl orderDetl : orderDetls) {
+                        log.info("璇ュ嚭搴撳崟瀵硅薄:" + orderDetl);
+                        insertOutDet(orderDetl);
+                    }
+                    insertOutHed(order);
                 }
-                insertOutHed(order);
+                // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
+                if (!orderService.updateSettle(order.getId(), 6L, null)) {
+                    throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+                }
             }
-            // 淇敼璁㈠崟鐘舵�� 4.瀹屾垚 ===>> 6.宸蹭笂鎶�
-            if (!orderService.updateSettle(order.getId(), 6L, null)) {
-                throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
-            }
+        } finally {
+            lock.unlock();
         }
     }
 
@@ -93,11 +106,9 @@
      */
     @Transactional(rollbackFor = Throwable.class)
     public boolean insertInDet(OrderDetl orderDetl) {
-        String sqlInDetTb = "select * from lk_InDetTB where BillNo='" + orderDetl.getOrderNo() + "' and " +
-                " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
+        String sqlInDetTb = "select * from lk_InDetTB where BillNo='" + orderDetl.getOrderNo() + "' and " + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
         List<InDetTB> inDets = erpSqlServer.select(sqlInDetTb, InDetTB.class);
-        String sqlInDetTbBak = "select * from lk_InDetTB_Bak where BillNo='" + orderDetl.getOrderNo() + "' and " +
-                " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
+        String sqlInDetTbBak = "select * from lk_InDetTB_Bak where BillNo='" + orderDetl.getOrderNo() + "' and " + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
         List<InDetTBBak> inDetBaks = erpSqlServer.select(sqlInDetTbBak, InDetTBBak.class);
         if (!inDets.isEmpty() || !inDetBaks.isEmpty()) {
             log.error("璇ュ崟鍙锋枡鍙蜂腑闂磋〃琛ㄨ韩宸插瓨鍦�:" + orderDetl.getOrderNo() + "==>>" + orderDetl.getOrderNo());
@@ -111,7 +122,7 @@
             return true;
         } else {
             log.error("鍏ュ簱鍥炰紶澶辫触,瀹炰綋绫绘墦鍗�:{}", content);
-            return false;
+            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
         }
 
     }
@@ -154,7 +165,7 @@
             return true;
         } else {
             log.error("鍏ュ簱鍗曡〃澶村洖浼犲け璐�:" + content);
-            return false;
+            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
         }
     }
 
@@ -166,11 +177,9 @@
      */
     @Transactional(rollbackFor = Throwable.class)
     public boolean insertOutDet(OrderDetl orderDetl) {
-        String sqlInDetTb = "select * from lk_OutDetTB where BillNo='" + orderDetl.getOrderNo() + "' and " +
-                " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
+        String sqlInDetTb = "select * from lk_OutDetTB where BillNo='" + orderDetl.getOrderNo() + "' and " + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
         List<OutDetTB> inDets = erpSqlServer.select(sqlInDetTb, OutDetTB.class);
-        String sqlInDetTbBak = "select * from lk_OutDetTB_Bak where BillNo='" + orderDetl.getOrderNo() + "' and " +
-                " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
+        String sqlInDetTbBak = "select * from lk_OutDetTB_Bak where BillNo='" + orderDetl.getOrderNo() + "' and " + " ItemId='" + orderDetl.getMatnr() + "' and ItemBatch='" + orderDetl.getBatch() + "' and proType='" + orderDetl.getSpecs() + "'";
         List<OutDetTBBak> inDetBaks = erpSqlServer.select(sqlInDetTbBak, OutDetTBBak.class);
         if (!inDets.isEmpty() || !inDetBaks.isEmpty()) {
             log.error("璇ュ崟鍙锋枡鍙蜂腑闂磋〃琛ㄨ韩宸插瓨鍦�:" + orderDetl.getOrderNo() + "==>>" + orderDetl.getOrderNo());
@@ -184,7 +193,7 @@
             return true;
         } else {
             log.error("鍏ュ簱鍥炰紶澶辫触,瀹炰綋绫绘墦鍗�:" + content.toString());
-            return false;
+            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
         }
 
     }
@@ -227,7 +236,7 @@
             return true;
         } else {
             log.error("鍏ュ簱鍗曡〃澶村洖浼犲け璐�:" + content);
-            return false;
+            throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
         }
     }
 
@@ -242,7 +251,16 @@
         if (!Cools.isEmpty(orderDetl.getProType())) content.put("proType", "'" + orderDetl.getProType() + "'");
         if (!Cools.isEmpty(orderDetl.getMemo())) content.put("remark", "'" + orderDetl.getMemo() + "'");
         if (!Cools.isEmpty(orderDetl.getOutOrderNo())) content.put("OrderNo", "'" + orderDetl.getOutOrderNo() + "'");
-        if (!Cools.isEmpty(orderDetl.getQty())) content.put("MainNum", orderDetl.getQty());
+        if (!Cools.isEmpty(orderDetl.getQty())) {
+            if (orderDetl.getQty() > orderDetl.getAnfme() && orderDetl.getQty() > orderDetl.getWorkQty()) {
+                log.info("淇閿欒鏁伴噺锛歿}", JSON.toJSON(orderDetl));
+                content.put("MainNum", orderDetl.getWorkQty());
+            } else if (orderDetl.getAnfme() == orderDetl.getWorkQty() && orderDetl.getQty() <= 0) {
+                content.put("MainNum", orderDetl.getWorkQty());
+            } else {
+                content.put("MainNum", orderDetl.getQty());
+            }
+        }
         if (!Cools.isEmpty(orderDetl.getWareId())) content.put("WareId", "'" + orderDetl.getWareId() + "'");
         if (!Cools.isEmpty(orderDetl.getWareName())) content.put("WareName", "'" + orderDetl.getWareName() + "'");
         if (!Cools.isEmpty(orderDetl.getPacking())) content.put("Packing", "'" + orderDetl.getPacking() + "'");

--
Gitblit v1.9.1