Merge branch 'feature/bug-883' into develop

This commit is contained in:
曹鹏飞 2025-11-13 18:17:18 +08:00
commit 136b14a74a
2 changed files with 37 additions and 16 deletions

View File

@ -344,7 +344,6 @@ public class InProduceOrderController extends BaseController {
} }
List<String> materialNos = new ArrayList<>(); List<String> materialNos = new ArrayList<>();
List<InMaterialScanRecord> records = new ArrayList<>(); List<InMaterialScanRecord> records = new ArrayList<>();
List<Zwm00Mb107QO> input1 = new ArrayList<>();
datas.forEach(it -> { datas.forEach(it -> {
BigDecimal num = BigDecimal.ZERO; BigDecimal num = BigDecimal.ZERO;
InProduceOrderReceiveMaterialQO materialQO = request.getItems().stream().filter(q -> StrUtil.equals(q.getMaterialNo(), it.getMaterialNo())).findFirst().orElse(null); 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()) .setCreateBy(UserUtil.getUserName())
.setCreateTime(Instant.now()) .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) { if (num.compareTo(it.getNum()) != 0) {
materialNos.add(it.getMaterialNo()); materialNos.add(it.getMaterialNo());
@ -401,6 +386,37 @@ public class InProduceOrderController extends BaseController {
}); });
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(materialNos)) VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(materialNos))
.throwMessage("以下物料的扫码数量与收货数量不一致:" + StrUtil.join(",", materialNos)); .throwMessage("以下物料的扫码数量与收货数量不一致:" + StrUtil.join(",", materialNos));
List<Zwm00Mb107QO> input1;
List<String> 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() inventoryService.in(input1.stream().map(it -> new InventoryDTO()
.setMaterialNo(request.getItems().get(0).getMaterialNo()) .setMaterialNo(request.getItems().get(0).getMaterialNo())
.setNum(it.getPSMNG()) .setNum(it.getPSMNG())
@ -410,7 +426,7 @@ public class InProduceOrderController extends BaseController {
); );
inMaterialScanRecordRespository.saveAll(records); inMaterialScanRecordRespository.saveAll(records);
//同步入库信息到SAP //同步入库信息到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.setMblnr(dto.getE_MBLNR());
order.setMjahr(dto.getE_MJAHR()); order.setMjahr(dto.getE_MJAHR());
order.setState((short) 1); order.setState((short) 1);

View File

@ -60,4 +60,9 @@ public class InProduceOrderItemVO {
* 批次号 * 批次号
*/ */
private String batchNo; private String batchNo;
/**
* 序列号
*/
private String sernr;
} }