fix:添加拆分

This commit is contained in:
郭飞 2025-05-19 19:48:17 +08:00
parent 6a9b526fed
commit e860f248fe

View File

@ -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<MaterialPacking> 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<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
//// 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<String, Object> 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<MaterialPacking> 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<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
// 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<String, Object> 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);