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