From e860f248fe77bb4f897d63288b5e6e0c09509744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E9=A3=9E?= Date: Mon, 19 May 2025 19:48:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=B7=BB=E5=8A=A0=E6=8B=86=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idm/service/Impl/InvoiceServiceImpl.java | 130 +++++++++--------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java index 4b1e2af..9daa71d 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java @@ -3199,71 +3199,71 @@ public class InvoiceServiceImpl implements InvoiceService { // 拆条码,查询MATERIALQUANTITY 与 MATERIALQUANTITY2是否相等,如果相等则未修改了数量,不相等则修改了数量 // 如果已修改数量,则进行拆条码 -// for (int z = 0; z < packingQueryForList.size(); z++) { -// String MATERIALPACKINGNAME = packingQueryForList.get(z).get("MATERIALPACKINGNAME").toString(); -// Object[] bindSet = {MATERIALPACKINGNAME}; -// String qtysql = "WHERE MATERIALPACKINGNAME = ?"; -// List qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet); -// -// String qty = String.valueOf(qtyQueryForList.get(z).getMaterialQuantity()); -// -// String qty2 = new Double(qtyQueryForList.get(z).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity2()); -// String materialPackingName = qtyQueryForList.get(z).getMaterialPackingName(); -// String charge = qtyQueryForList.get(z).getCharge(); -// BigDecimal bigQty = new BigDecimal(qty); -// // 已拆数量 -// BigDecimal bigQty2 = new BigDecimal(qty2); -// -// // 如果已拆数量不等于原数量,并且已拆数量为0(未拆分数量) -// if(bigQty.compareTo(bigQty2) != 0 && !"0".equals(qty2)) { -// // 剩余数量 -// BigDecimal restQty = bigQty.subtract(bigQty2); -// -// // 生成新的拆分条码 -// String stringBigQty2 = bigQty2.toString(); -// String newPalletNo = CodeGenerator.packingGenerateCode(materialPackingName,stringBigQty2,charge); -// -// // 写入拆分的新条码,更新原数据库 -// List boxList = new ArrayList(); -//// MaterialPackingKey materialpackingKey = new MaterialPackingKey(); -// MaterialPacking materialpackingNew = new MaterialPacking(); -//// materialpackingKey.setSiteName("SDK"); -//// materialpackingKey.setMaterialPackingName(newPalletNo); -//// materialpackingNew.setKey(materialpackingKey); -// -// // 复制一个当前的原标签数据 -// materialpackingNew.setKey(qtyQueryForList.get(z).getKey()); -//// MaterialPacking materialpackingNew = qtyQueryForList.get(z); -// // 设置新为标签和数量 -// materialpackingNew.setMaterialPackingName(newPalletNo); -// // bigQty2 转double类型 -// materialpackingNew.setMaterialQuantity(bigQty2.doubleValue()); -// boxList.add(qtyQueryForList.get(z)); -// boxList.add(materialpackingNew); -// boolean moveTransformOut = packingChargeSplit(boxList, eventUser); -// if (moveTransformOut != true) { -// throw new RuntimeException("修改数量拆分失败"); -// } -// -// // 原条码扣减拆出的数量,用剩余数量更新原条码,条码不变,数量更新 -// SetEventInfo setEventInfo = new SetEventInfo(); -// Map pakHashMap = new HashMap<>(); -// pakHashMap.put("materialQuantity", restQty.doubleValue()); -// -// EventInfo eventInfo = new EventInfoUtil().makeEventInfo("备货出库拆分修改数量拆分条码", eventUser, "修改数量拆分条码"); -// setEventInfo.setUserColumns(pakHashMap); -// MaterialPackingServiceProxy.getMaterialPackingService().setEvent(new MaterialPackingKey( queryForList.get(z).get("SITENAME").toString(), -// queryForList.get(z).get("MATERIALPACKINGNAME").toString()), eventInfo, setEventInfo); -// -// // 删除被拆分的原条码数据,用拆分出的新条码覆盖,进行后面的过账,现场仓过账只过账已拆分出的数量,剩余数量的原条码不过账 -// boolean deletePacking = materialPackingKeyList.remove(MATERIALPACKINGNAME); -// if (deletePacking) { -// materialPackingKeyList.add(newPalletNo); -// } -// -// } -// -// } + for (int z = 0; z < packingQueryForList.size(); z++) { + String MATERIALPACKINGNAME = packingQueryForList.get(z).get("MATERIALPACKINGNAME").toString(); + Object[] bindSet = {MATERIALPACKINGNAME}; + String qtysql = "WHERE MATERIALPACKINGNAME = ?"; + List qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet); + + String qty = String.valueOf(qtyQueryForList.get(z).getMaterialQuantity()); + + String qty2 = new Double(qtyQueryForList.get(z).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity2()); + String materialPackingName = qtyQueryForList.get(z).getMaterialPackingName(); + String charge = qtyQueryForList.get(z).getCharge(); + BigDecimal bigQty = new BigDecimal(qty); + // 已拆数量 + BigDecimal bigQty2 = new BigDecimal(qty2); + + // 如果已拆数量不等于原数量,并且已拆数量为0(未拆分数量) + if(bigQty.compareTo(bigQty2) != 0 && !"0".equals(qty2)) { + // 剩余数量 + BigDecimal restQty = bigQty.subtract(bigQty2); + + // 生成新的拆分条码 + String stringBigQty2 = bigQty2.toString(); + String newPalletNo = CodeGenerator.packingGenerateCode(materialPackingName,stringBigQty2,charge); + + // 写入拆分的新条码,更新原数据库 + List boxList = new ArrayList(); +// MaterialPackingKey materialpackingKey = new MaterialPackingKey(); + MaterialPacking materialpackingNew = new MaterialPacking(); +// materialpackingKey.setSiteName("SDK"); +// materialpackingKey.setMaterialPackingName(newPalletNo); +// materialpackingNew.setKey(materialpackingKey); + + // 复制一个当前的原标签数据 + materialpackingNew.setKey(qtyQueryForList.get(z).getKey()); +// MaterialPacking materialpackingNew = qtyQueryForList.get(z); + // 设置新为标签和数量 + materialpackingNew.setMaterialPackingName(newPalletNo); + // bigQty2 转double类型 + materialpackingNew.setMaterialQuantity(bigQty2.doubleValue()); + boxList.add(qtyQueryForList.get(z)); + boxList.add(materialpackingNew); + boolean moveTransformOut = packingChargeSplit(boxList, eventUser); + if (moveTransformOut != true) { + throw new RuntimeException("修改数量拆分失败"); + } + + // 原条码扣减拆出的数量,用剩余数量更新原条码,条码不变,数量更新 + SetEventInfo setEventInfo = new SetEventInfo(); + Map pakHashMap = new HashMap<>(); + pakHashMap.put("materialQuantity", restQty.doubleValue()); + + EventInfo eventInfo = new EventInfoUtil().makeEventInfo("备货出库拆分修改数量拆分条码", eventUser, "修改数量拆分条码"); + setEventInfo.setUserColumns(pakHashMap); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(new MaterialPackingKey( queryForList.get(z).get("SITENAME").toString(), + queryForList.get(z).get("MATERIALPACKINGNAME").toString()), eventInfo, setEventInfo); + + // 删除被拆分的原条码数据,用拆分出的新条码覆盖,进行后面的过账,现场仓过账只过账已拆分出的数量,剩余数量的原条码不过账 + boolean deletePacking = materialPackingKeyList.remove(MATERIALPACKINGNAME); + if (deletePacking) { + materialPackingKeyList.add(newPalletNo); + } + + } + + } //new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);