diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java index 5722b2f7..1d2164b7 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/InProduceOrderController.java @@ -344,7 +344,6 @@ public class InProduceOrderController extends BaseController { } List materialNos = new ArrayList<>(); List records = new ArrayList<>(); - List input1 = new ArrayList<>(); datas.forEach(it -> { BigDecimal num = BigDecimal.ZERO; InProduceOrderReceiveMaterialQO materialQO = request.getItems().stream().filter(q -> StrUtil.equals(q.getMaterialNo(), it.getMaterialNo())).findFirst().orElse(null); @@ -373,20 +372,6 @@ public class InProduceOrderController extends BaseController { .setCreateBy(UserUtil.getUserName()) .setCreateTime(Instant.now()) ); - if (!order.getList()) { - Zwm00Mb107QO q = input1.stream().filter(ip -> StrUtil.equals(ip.getCHARG(), content.getBatchNo())).findFirst() - .orElseGet(() -> { - Zwm00Mb107QO qo = new Zwm00Mb107QO() - .setPWERK(it.getFactoryNo()) - .setPSMNG(BigDecimal.ZERO) - .setAMEIN(it.getUnit()) - .setLGORT(it.getWarehouseNo()) - .setCHARG(content.getBatchNo()); - input1.add(qo); - return qo; - }); - q.setPSMNG(q.getPSMNG().add(content.getNum())); - } } if (num.compareTo(it.getNum()) != 0) { materialNos.add(it.getMaterialNo()); @@ -401,6 +386,37 @@ public class InProduceOrderController extends BaseController { }); VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(materialNos)) .throwMessage("以下物料的扫码数量与收货数量不一致:" + StrUtil.join(",", materialNos)); + List input1; + List sernrs; + if (order.getList()) { + input1 = list.stream() + .filter(it -> Objects.equals(it.getParentId(), 0L)) + .map(it -> new Zwm00Mb107QO() + .setPWERK(it.getFactoryNo()) + .setPSMNG(it.getNum()) + .setAMEIN(it.getUnit()) + .setLGORT(it.getWarehouseNo()) + .setCHARG(it.getBatchNo())) + .toList(); + sernrs = list.stream() + .filter(it -> Objects.equals(it.getParentId(), 0L)) + .map(InProduceOrderItemVO::getSernr) + .toList(); + } else { + input1 = records.stream().collect(Collectors.groupingBy(InMaterialScanRecord::getBatchNo)) + .entrySet() + .stream() + .map(kv -> new Zwm00Mb107QO() + .setPWERK(kv.getValue().get(0).getFactoryNo()) + .setPSMNG(kv.getValue().stream().map(InMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) + .setAMEIN(kv.getValue().get(0).getUnit()) + .setLGORT(kv.getValue().get(0).getWarehouseNo()) + .setCHARG(kv.getKey())) + .toList(); + sernrs = records.stream() + .map(InMaterialScanRecord::getSerialNo) + .toList(); + } inventoryService.in(input1.stream().map(it -> new InventoryDTO() .setMaterialNo(request.getItems().get(0).getMaterialNo()) .setNum(it.getPSMNG()) @@ -410,7 +426,7 @@ public class InProduceOrderController extends BaseController { ); inMaterialScanRecordRespository.saveAll(records); //同步入库信息到SAP - Zwm00Mb107DTO dto = sapService.zwm00_mb107(order.getOrderNo(), UserUtil.getUserName(), input1, null); + Zwm00Mb107DTO dto = sapService.zwm00_mb107(order.getOrderNo(), UserUtil.getUserName(), input1, sernrs); order.setMblnr(dto.getE_MBLNR()); order.setMjahr(dto.getE_MJAHR()); order.setState((short) 1); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java index 3f4655e3..dd847ff7 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/InProduceOrderItemVO.java @@ -60,4 +60,9 @@ public class InProduceOrderItemVO { * 批次号 */ private String batchNo; + + /** + * 序列号 + */ + private String sernr; }