From 2a2f094b447c604ca2884922586df32f0665b81c Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 29 四月 2026 09:27:44 +0800
Subject: [PATCH] 双伸出库改成订单出库 完成转订单
---
src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java | 91 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 76 insertions(+), 15 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 151b018..ea45c58 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakoutServiceImpl.java
@@ -27,19 +27,40 @@
}
@Override
- public OrderDetlPakout selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) {
- return this.baseMapper.selectItem(orderId, matnr, batch,brand,standby1,standby2,standby3);
+ public OrderDetlPakout selectItem(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String 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) {
- return this.baseMapper.selectItemByOrderNo(orderNo, matnr, batch,brand,standby1,standby2,standby3);
+ public OrderDetlPakout selectItem(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) {
+ // 鍚屼笂锛宱rderNo + 鐗╂枡缁村害鍦ㄦ柊妯″瀷涓笉淇濊瘉鍞竴锛屽彧浣滀负鏃ф暟鎹殑鍏滃簳鍖归厤銆�
+ return selectFirst(buildItemWrapper(null, orderNo, matnr, batch, brand, standby1, standby2, standby3, boxType1, boxType2, boxType3));
}
@Override
- public OrderDetlPakout findByLook(List<OrderDetlPakout> orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3) {
+ 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
+ public OrderDetlPakout findByLook(List<OrderDetlPakout> orderDetls, Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3) {
for (OrderDetlPakout orderDetl : orderDetls) {
- if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr) && orderDetl.getBrand().equals(brand) && orderDetl.getStandby1().equals(standby1) && orderDetl.getStandby2().equals(standby2) && orderDetl.getStandby3().equals(standby3)) {
+ if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr) && orderDetl.getBrand().equals(brand)
+ && orderDetl.getStandby1().equals(standby1) && orderDetl.getStandby2().equals(standby2) && orderDetl.getStandby3().equals(standby3)
+ && orderDetl.getBoxType1().equals(boxType1) && orderDetl.getBoxType2().equals(boxType2) && orderDetl.getBoxType3().equals(boxType3)
+ ) {
if (Cools.eq(batch, orderDetl.getBatch())) {
return orderDetl;
}
@@ -49,15 +70,15 @@
}
@Override
- public boolean increase(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) {
- return this.baseMapper.increase(orderId, matnr, batch,brand,standby1,standby2,standby3, qty) > 0;
+ public boolean increase(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double qty) {
+ return this.baseMapper.increase(orderId, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3, qty) > 0;
}
@Override
- public boolean decrease(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) {
- int decrease = this.baseMapper.decrease(orderNo, matnr, batch,brand,standby1,standby2,standby3, qty);
+ public boolean decrease(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double qty) {
+ int decrease = this.baseMapper.decrease(orderNo, matnr, batch,brand,standby1,standby2,standby3,boxType1,boxType2,boxType3, qty);
if (decrease == 0) {
- return this.baseMapper.decrease(orderNo, matnr, "",brand,standby1,standby2,standby3, qty) > 0;
+ return this.baseMapper.decrease(orderNo, matnr, "",brand,standby1,standby2,standby3,boxType1,boxType2,boxType3, qty) > 0;
} else {
return true;
}
@@ -74,8 +95,20 @@
}
@Override
- public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double qty) {
- return this.baseMapper.increaseQtyByOrderNo(orderNo, matnr, batch,brand,standby1,standby2,standby3, qty) > 0;
+ public boolean increaseQtyByOrderNo(String orderNo, String matnr, String batch, String brand, String standby1, String standby2, String standby3, String boxType1, String boxType2, String boxType3, Double qty) {
+ 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);
}
/**
@@ -87,7 +120,35 @@
* @return
*/
@Override
- public boolean increaseWorkQty(Long orderId, String matnr, String batch, String brand, String standby1, String standby2, String standby3, Double workQty) {
- return this.baseMapper.increaseWorkQty(orderId, matnr, batch,brand,standby1,standby2,standby3, workQty) > 0;
+ 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