生产订单入库过账时,如果是清点件,则使用主物料信息过账
This commit is contained in:
parent
e9da850ec3
commit
6d3c1b388b
|
|
@ -353,7 +353,6 @@ public class InProduceOrderController extends BaseController {
|
|||
}
|
||||
List<String> materialNos = new ArrayList<>();
|
||||
List<InMaterialScanRecord> records = new ArrayList<>();
|
||||
List<Zwm00Mb107QO> 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);
|
||||
|
|
@ -382,20 +381,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());
|
||||
|
|
@ -410,6 +395,37 @@ public class InProduceOrderController extends BaseController {
|
|||
});
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isNotEmpty(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()
|
||||
.setMaterialNo(request.getItems().get(0).getMaterialNo())
|
||||
.setNum(it.getPSMNG())
|
||||
|
|
@ -419,7 +435,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);
|
||||
|
|
|
|||
|
|
@ -60,4 +60,9 @@ public class InProduceOrderItemVO {
|
|||
* 批次号
|
||||
*/
|
||||
private String batchNo;
|
||||
|
||||
/**
|
||||
* 序列号
|
||||
*/
|
||||
private String sernr;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue