From b0877a3275ed5bc96fb80f84949904e149946cf2 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 19:37:51 +0800
Subject: [PATCH] 将erp下发直接生成任务改成先生成订单再出库
---
src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java | 62 ++++++++++++++++++++++++++++++-
1 files changed, 60 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java
index cd2e894..ea45c58 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java
@@ -28,12 +28,30 @@
@Override
public OrderDetlPakout selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) {
- return this.baseMapper.selectItem(orderId, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3);
+ // 寤惰繜鍑哄簱鍚庯紝man_order_detl_pakout 浼氭寜鎵樼洏鎷嗘槑缁嗐��
+ // 鏃х殑 orderId + 鐗╂枡缁村害鍙兘鍛戒腑澶氭潯璁板綍锛屼笉鑳藉啀鐢� mapper 杩斿洖鍗曞璞$殑 selectOne 璇箟銆�
+ // 杩欓噷缁熶竴鏀逛负鍒楄〃鏌ヨ骞舵寜 id 鍙栫涓�鏉★紝閬垮厤 TooManyResultsException锛涢渶瑕佺簿纭洖鍐欐椂璇蜂紭鍏堜娇鐢� pallet_id銆�
+ return selectFirst(buildItemWrapper(orderId, null, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3));
}
@Override
public OrderDetlPakout selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) {
- return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3);
+ // 鍚屼笂锛宱rderNo + 鐗╂枡缁村害鍦ㄦ柊妯″瀷涓笉淇濊瘉鍞竴锛屽彧浣滀负鏃ф暟鎹殑鍏滃簳鍖归厤銆�
+ return selectFirst(buildItemWrapper(null, orderNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3));
+ }
+
+ @Override
+ public OrderDetlPakout selectItemByOrderNoAndPallet(String orderNo, String palletId) {
+ if (Cools.isEmpty(orderNo) || Cools.isEmpty(palletId)) {
+ return null;
+ }
+ // orderNo + palletId 鏄欢杩熷嚭搴撹鍗曟槑缁嗙殑绮剧‘鍖归厤閿��
+ // 浠嶇劧浣跨敤 selectList 鍙栫涓�鏉★紝闃叉鍘嗗彶鑴忔暟鎹噷鍚屼竴鎵樼洏閲嶅鏃� selectOne 鐩存帴涓柇瀹氭椂绾跨▼銆�
+ EntityWrapper<OrderDetlPakout> wrapper = new EntityWrapper<>();
+ wrapper.eq("order_no", orderNo)
+ .eq("pallet_id", palletId)
+ .orderBy("id", true);
+ return selectFirst(wrapper);
}
@Override
@@ -81,6 +99,18 @@
return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3, qty) > 0;
}
+ @Override
+ public boolean increaseQtyByOrderNoAndPallet(String orderNo, String palletId, Double qty) {
+ OrderDetlPakout orderDetl = selectItemByOrderNoAndPallet(orderNo, palletId);
+ if (orderDetl == null) {
+ return false;
+ }
+ // qty 鏄畬鎴愭暟閲忥紝鐢变换鍔″畬鎴愬洖鍐欓�掑锛泈orkQty 鏄换鍔$敓鎴愭暟閲忥紝瀹氭椂鐢熸垚浠诲姟鏃跺凡缁存姢銆�
+ Double oldQty = orderDetl.getQty() == null ? 0.0D : orderDetl.getQty();
+ orderDetl.setQty(oldQty + (qty == null ? 0.0D : qty));
+ return this.updateById(orderDetl);
+ }
+
/**
* 鍏ュ嚭搴撲换鍔$敓鎴愭椂锛屾洿鏂板崟鎹〃涓綔涓氭暟閲�
* @param orderId
@@ -93,4 +123,32 @@
public boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double workQty) {
return this.baseMapper.increaseWorkQty(orderId, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3, workQty) > 0;
}
+
+ private EntityWrapper<OrderDetlPakout> buildItemWrapper(Long orderId, String orderNo, String matnr, String batch, String brand,
+ String standby1, String standby2, String standby3,
+ String boxType1, String boxType2, String boxType3) {
+ EntityWrapper<OrderDetlPakout> wrapper = new EntityWrapper<>();
+ wrapper.eq("matnr", matnr)
+ .eq("batch", batch)
+ .eq("brand", brand)
+ .eq("standby1", standby1)
+ .eq("standby2", standby2)
+ .eq("standby3", standby3)
+ .eq("box_type1", boxType1)
+ .eq("box_type2", boxType2)
+ .eq("box_type3", boxType3)
+ .orderBy("id", true);
+ if (!Cools.isEmpty(orderId)) {
+ wrapper.eq("order_id", orderId);
+ }
+ if (!Cools.isEmpty(orderNo)) {
+ wrapper.eq("order_no", orderNo);
+ }
+ return wrapper;
+ }
+
+ private OrderDetlPakout selectFirst(EntityWrapper<OrderDetlPakout> wrapper) {
+ List<OrderDetlPakout> rows = this.selectList(wrapper);
+ return Cools.isEmpty(rows) ? null : rows.get(0);
+ }
}
--
Gitblit v1.9.1