Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
bdfd9e8844
|
|
@ -220,31 +220,32 @@ public class ComponentOutboundController extends BaseController {
|
|||
if (item.isQiTao()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getBatchs()))
|
||||
.throwMessage("齐套物料需要提供批次信息");
|
||||
item.getBatchs()
|
||||
.forEach(it -> {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(7)
|
||||
.setSourceId(packing.getId())
|
||||
.setSourceItemId(outboundItem.getPackingItemId())
|
||||
.setTicketId(outbound.getId())
|
||||
.setTicketItemId(outboundItem.getId())
|
||||
.setMaterialNo(outboundItem.getIdnrk())
|
||||
.setContent("")
|
||||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setUniqNo("")
|
||||
.setFactoryNo(packing.getFactoryNo())
|
||||
.setWarehouseNo(outboundItem.getLgort())
|
||||
item.getBatchs().forEach(it -> {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(7)
|
||||
.setSourceId(packing.getId())
|
||||
.setSourceItemId(outboundItem.getPackingItemId())
|
||||
.setTicketId(outbound.getId())
|
||||
.setTicketItemId(outboundItem.getId())
|
||||
.setMaterialNo(outboundItem.getIdnrk())
|
||||
.setContent("")
|
||||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setUniqNo("")
|
||||
.setQiTao(true)
|
||||
.setFactoryNo(packing.getFactoryNo())
|
||||
.setWarehouseNo(outboundItem.getLgort())
|
||||
// .setUnit(item.getMeins())
|
||||
.setNum(it.getNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
});
|
||||
.setNum(it.getNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
});
|
||||
VUtil.trueThrowBusinessError(outboundItem.getOutQty()
|
||||
.compareTo(records.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) != 0)
|
||||
.throwMessage("物料" + outboundItem.getIdnrk() + "的领取数量不等于装箱数量");
|
||||
} else {
|
||||
}
|
||||
if (item.isUseChildren()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getScanCodes()))
|
||||
.throwMessage("需要提供扫码信息");
|
||||
if (CollectionUtil.isNotEmpty(item.getScanCodes())) {
|
||||
|
|
@ -284,28 +285,31 @@ public class ComponentOutboundController extends BaseController {
|
|||
// .setLgpbe(outboundItem.getLgpbe());
|
||||
// outboundScanCodes.add(scanCodes);
|
||||
WmsQrCodeMaster qrCodeContent = qrCodeMasterService.getByCode(code.getCodeId());
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(7)
|
||||
.setSourceId(packing.getId())
|
||||
.setSourceItemId(outboundItem.getPackingItemId())
|
||||
.setTicketId(outbound.getId())
|
||||
.setTicketItemId(outboundItem.getId())
|
||||
.setMaterialNo(outboundItem.getIdnrk())
|
||||
.setContent(qrCodeContent.getBarcodeCode())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(code.getCodeId())
|
||||
.setFactoryNo(qrCodeContent.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeContent.getStorageLocation())
|
||||
.setBinNo(qrCodeContent.getBinLocation())
|
||||
if (!item.isQiTao()) {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(7)
|
||||
.setSourceId(packing.getId())
|
||||
.setSourceItemId(outboundItem.getPackingItemId())
|
||||
.setTicketId(outbound.getId())
|
||||
.setTicketItemId(outboundItem.getId())
|
||||
.setMaterialNo(outboundItem.getIdnrk())
|
||||
.setContent(qrCodeContent.getBarcodeCode())
|
||||
.setBatchNo(qrCodeContent.getBatchNo())
|
||||
.setSerialNo(qrCodeContent.getSerialNo())
|
||||
.setUniqNo(code.getCodeId())
|
||||
.setQiTao(false)
|
||||
.setFactoryNo(qrCodeContent.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeContent.getStorageLocation())
|
||||
.setBinNo(qrCodeContent.getBinLocation())
|
||||
// .setUnit(item.getMeins())
|
||||
.setNum(code.getCodeNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
.setNum(code.getCodeNum())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
}
|
||||
//组装下库存信息
|
||||
setInventoryOutDTO(inventories, outboundItem.getIdnrk(), packing.getFactoryNo()
|
||||
, qrCodeContent.getStorageLocation(), qrCodeContent.getBinLocation(),qrCodeContent.getBatchNo()
|
||||
, qrCodeContent.getStorageLocation(), qrCodeContent.getBinLocation(), qrCodeContent.getBatchNo()
|
||||
, qrCodeContent.getSerialNo(), code.getCodeNum());
|
||||
}
|
||||
|
||||
|
|
@ -405,11 +409,11 @@ public class ComponentOutboundController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() :qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
@ -438,11 +442,11 @@ public class ComponentOutboundController extends BaseController {
|
|||
.orElse(null);
|
||||
if (Objects.isNull(codeItem)) {
|
||||
scanCodesGroup.add(new ScanCodeQO()
|
||||
.setCodeId(record.getId())
|
||||
.setBatchNumber(record.getBatchNo())
|
||||
.setSerialNumbers(record.getSerialNo())
|
||||
.setCodeId(record.getId())
|
||||
.setBatchNumber(record.getBatchNo())
|
||||
.setSerialNumbers(record.getSerialNo())
|
||||
// .setCodeContent(record.getContent())
|
||||
.setCodeNum(record.getNum())
|
||||
.setCodeNum(record.getNum())
|
||||
);
|
||||
} else {
|
||||
codeItem.setCodeNum(codeItem.getCodeNum().add(record.getNum()));
|
||||
|
|
@ -573,7 +577,7 @@ public class ComponentOutboundController extends BaseController {
|
|||
组装库存信息
|
||||
*/
|
||||
private void setInventoryOutDTO(List<InventoryOutDTO> inventories, String materialNo,
|
||||
String factoryNo, String warehouseNo,String binNo, String batchNumber, String serialNo, BigDecimal outQty
|
||||
String factoryNo, String warehouseNo, String binNo, String batchNumber, String serialNo, BigDecimal outQty
|
||||
) {
|
||||
InventoryOutDTO inventory = inventories.stream()
|
||||
.filter(it -> StrUtil.equals(it.getMaterialNo(), materialNo)
|
||||
|
|
|
|||
|
|
@ -262,6 +262,7 @@ public class OutAssistanceController extends BaseController {
|
|||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setUniqNo("")
|
||||
.setQiTao(true)
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(order.getLgort1())
|
||||
.setUnit(item.getMeins())
|
||||
|
|
@ -276,7 +277,8 @@ public class OutAssistanceController extends BaseController {
|
|||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||
.throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制");
|
||||
});
|
||||
} else {
|
||||
}
|
||||
if (qitem.isUseChildren()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes()))
|
||||
.throwMessage("需要提供扫码信息");
|
||||
qitem.getQrCodes().forEach(qrCode -> {
|
||||
|
|
@ -299,27 +301,30 @@ public class OutAssistanceController extends BaseController {
|
|||
qrCodeMaster.setLastScanBy(UserUtil.getUserId());
|
||||
qrCodeMaster.setLastScanByname(UserUtil.getUserName());
|
||||
qrCodeMaster.setLastScanTime(LocalDateTime.now());
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(3)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setUnit(item.getMeins())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setEbeln(order.getEbeln())
|
||||
.setEbelp(item.getEbelp())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
if (!qitem.isQiTao()) {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(3)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setUnit(item.getMeins())
|
||||
.setQiTao(false)
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setEbeln(order.getEbeln())
|
||||
.setEbelp(item.getEbelp())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -377,11 +382,11 @@ public class OutAssistanceController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() : qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
@ -462,8 +467,7 @@ public class OutAssistanceController extends BaseController {
|
|||
.eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState())
|
||||
.in(WmsQrCodeMaster::getBarcodeCode, records.stream().map(OutMaterialScanRecord::getUniqNo).toList())
|
||||
.list();
|
||||
qrCodeMasters.stream()
|
||||
.forEach(p -> {
|
||||
qrCodeMasters.forEach(p -> {
|
||||
OutMaterialScanRecord record = records.stream()
|
||||
.filter(r -> r.getUniqNo().equals(p.getBarcodeCode()))
|
||||
.findFirst()
|
||||
|
|
|
|||
|
|
@ -259,6 +259,7 @@ public class OutCostCenterController extends BaseController {
|
|||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setUniqNo("")
|
||||
.setQiTao(true)
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(it.getNum())
|
||||
|
|
@ -270,7 +271,8 @@ public class OutCostCenterController extends BaseController {
|
|||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||
.throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制");
|
||||
});
|
||||
} else {
|
||||
}
|
||||
if (qitem.isUseChildren()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes()))
|
||||
.throwMessage("需要提供扫码信息");
|
||||
qitem.getQrCodes().forEach(qrCode -> {
|
||||
|
|
@ -293,24 +295,27 @@ public class OutCostCenterController extends BaseController {
|
|||
qrCodeMaster.setLastScanBy(UserUtil.getUserId());
|
||||
qrCodeMaster.setLastScanByname(UserUtil.getUserName());
|
||||
qrCodeMaster.setLastScanTime(LocalDateTime.now());
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(2)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
if (!qitem.isQiTao()) {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(2)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setQiTao(false)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -339,7 +344,7 @@ public class OutCostCenterController extends BaseController {
|
|||
}
|
||||
});
|
||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
submitSap(order, ticket, records, datas,qrCodeMasters);
|
||||
submitSap(order, ticket, records, datas, qrCodeMasters);
|
||||
} else {
|
||||
inventoryForOutRepository.saveAll(request.getRecommendBatch()
|
||||
.stream()
|
||||
|
|
@ -357,7 +362,7 @@ public class OutCostCenterController extends BaseController {
|
|||
}
|
||||
|
||||
private void submitSap(WmsOutCostcenter order, WmsOutCostcenterTicket ticket, List<OutMaterialScanRecord> records
|
||||
, List<WmsOutCostcenterItem> datas,List<WmsQrCodeMaster> qrCodeMasters) {
|
||||
, List<WmsOutCostcenterItem> datas, List<WmsQrCodeMaster> qrCodeMasters) {
|
||||
inventoryService.out(records.stream()
|
||||
.collect(Collectors.groupingBy(OutMaterialScanRecord::getKey))
|
||||
.values()
|
||||
|
|
@ -368,11 +373,11 @@ public class OutCostCenterController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() : qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
@ -455,7 +460,7 @@ public class OutCostCenterController extends BaseController {
|
|||
.list();
|
||||
qrCodeMasters.stream()
|
||||
.forEach(p -> {
|
||||
OutMaterialScanRecord record=records.stream()
|
||||
OutMaterialScanRecord record = records.stream()
|
||||
.filter(r -> r.getUniqNo().equals(p.getBarcodeCode()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
|
@ -466,7 +471,7 @@ public class OutCostCenterController extends BaseController {
|
|||
p.setLastScanBy(UserUtil.getUserId());
|
||||
p.setLastScanByname(UserUtil.getUserName());
|
||||
p.setLastScanTime(LocalDateTime.now());
|
||||
if (p.getPackagingType() == 1){
|
||||
if (p.getPackagingType() == 1) {
|
||||
List<WmsQrCodeMaster> children = qrCodeMasterService.lambdaQuery()
|
||||
.eq(WmsQrCodeMaster::getParentBarcodeId, p.getId())
|
||||
.list();
|
||||
|
|
@ -485,7 +490,7 @@ public class OutCostCenterController extends BaseController {
|
|||
}
|
||||
});
|
||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
submitSap(order, ticket, records, outCostcenterItemService.getList(order.getId()),qrCodeMasters);
|
||||
submitSap(order, ticket, records, outCostcenterItemService.getList(order.getId()), qrCodeMasters);
|
||||
} else {
|
||||
List<OutCostcenterInfoItemVO> items = outCostcenterTicketItemService.getList(qo.getId());
|
||||
items.forEach(it -> {
|
||||
|
|
|
|||
|
|
@ -373,6 +373,7 @@ public class OutProduceController extends BaseController {
|
|||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setUniqNo("")
|
||||
.setQiTao(true)
|
||||
.setFactoryNo(order.getDwerk())
|
||||
.setWarehouseNo(ticket.getLgort())
|
||||
.setUnit(item.getMeins())
|
||||
|
|
@ -389,7 +390,8 @@ public class OutProduceController extends BaseController {
|
|||
});
|
||||
VUtil.trueThrowBusinessError(item.getNum().compareTo(item.getSqsl()) > 0)
|
||||
.throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制");
|
||||
} else {
|
||||
}
|
||||
if (qitem.isUseChildren()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes()))
|
||||
.throwMessage("需要提供扫码信息");
|
||||
qitem.getQrCodes().forEach(qrCode -> {
|
||||
|
|
@ -415,26 +417,29 @@ public class OutProduceController extends BaseController {
|
|||
qrCodeMaster.setLastScanBy(UserUtil.getUserId());
|
||||
qrCodeMaster.setLastScanByname(UserUtil.getUserName());
|
||||
qrCodeMaster.setLastScanTime(LocalDateTime.now());
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(1)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setUnit(item.getMeins())
|
||||
.setRspos(item.getRspos())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
if (!qitem.isQiTao()) {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(1)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setQiTao(false)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setUnit(item.getMeins())
|
||||
.setRspos(item.getRspos())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -463,7 +468,7 @@ public class OutProduceController extends BaseController {
|
|||
}
|
||||
});
|
||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
submitSap(order, ticket, records, datas,qrCodeMasters);
|
||||
submitSap(order, ticket, records, datas, qrCodeMasters);
|
||||
} else {
|
||||
inventoryForOutRepository.saveAll(request.getRecommendBatch()
|
||||
.stream()
|
||||
|
|
@ -481,7 +486,7 @@ public class OutProduceController extends BaseController {
|
|||
}
|
||||
|
||||
private void submitSap(WmsOutProduce order, WmsOutProduceTicket ticket, List<OutMaterialScanRecord> records
|
||||
, List<WmsOutProduceItem> datas,List<WmsQrCodeMaster> qrCodeMasters) {
|
||||
, List<WmsOutProduceItem> datas, List<WmsQrCodeMaster> qrCodeMasters) {
|
||||
inventoryService.out(records.stream()
|
||||
.collect(Collectors.groupingBy(OutMaterialScanRecord::getKey))
|
||||
.values()
|
||||
|
|
@ -492,11 +497,11 @@ public class OutProduceController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() : qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
@ -606,7 +611,7 @@ public class OutProduceController extends BaseController {
|
|||
}
|
||||
});
|
||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
submitSap(order, ticket, records, outProduceItemService.getList(order.getId()),qrCodeMasters);
|
||||
submitSap(order, ticket, records, outProduceItemService.getList(order.getId()), qrCodeMasters);
|
||||
} else {
|
||||
List<OutProduceInfoItemVO> items = outProduceTicketItemService.getList(qo.getId());
|
||||
items.forEach(it -> {
|
||||
|
|
|
|||
|
|
@ -283,8 +283,8 @@ public class OutPurchaseController extends BaseController {
|
|||
.setBinLocation(qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
|
|||
|
|
@ -2,12 +2,17 @@ package com.nflg.wms.admin.controller;
|
|||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.nflg.wms.admin.pojo.dto.PdfPageDTO;
|
||||
import com.nflg.wms.admin.service.BasdeSerialNumberControllerService;
|
||||
import com.nflg.wms.admin.service.SapService;
|
||||
import com.nflg.wms.admin.util.PdfGeneratorUtil;
|
||||
import com.nflg.wms.admin.util.QRCodeUtil;
|
||||
import com.nflg.wms.admin.util.ThymeleafUtil;
|
||||
import com.nflg.wms.common.constant.BarCodeProcessStage;
|
||||
import com.nflg.wms.common.constant.UserType;
|
||||
import com.nflg.wms.common.pojo.ApiResult;
|
||||
|
|
@ -22,20 +27,16 @@ import com.nflg.wms.repository.service.*;
|
|||
import com.nflg.wms.starter.BaseController;
|
||||
import com.nflg.wms.starter.annotation.ApiMark;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -66,6 +67,9 @@ public class PurchaseReturnController extends BaseController {
|
|||
@Resource
|
||||
private IUserService userService;
|
||||
|
||||
@Resource
|
||||
private IUserSupplierService userSupplierService;
|
||||
|
||||
|
||||
/**
|
||||
* 获取送货单的入库信息
|
||||
|
|
@ -452,4 +456,28 @@ public class PurchaseReturnController extends BaseController {
|
|||
return ApiResult.success(qrCodeVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出采购退货申请单
|
||||
*/
|
||||
@GetMapping("exportTicket")
|
||||
public void exportTicket(HttpServletResponse response, @Valid @RequestParam @NotNull Long id) throws Exception {
|
||||
WmsReturnRequest order = returnRequestService.getById(id);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("申请单不存在");
|
||||
VUtil.trueThrowBusinessError(order.getApprovalStatus()!=1).throwMessage("申请单未审核通过");
|
||||
UserSupplier supplier=userSupplierService.getByCode(order.getSupplierCode());
|
||||
List<WmsReturnRequestItem> list = returnRequestItemService.lambdaQuery()
|
||||
.eq(WmsReturnRequestItem::getApplicationId, id)
|
||||
.list();
|
||||
Map<String, String> base = new HashMap<>();
|
||||
base.put("date", DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd"));
|
||||
base.put("qrcode", QRCodeUtil.generateQRCodeBase64(order.getApplicationNo(), 100, 100));
|
||||
base.put("supplier", supplier.getSupplierName());
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("info", order);
|
||||
variables.put("base", base);
|
||||
variables.put("pages", PdfPageDTO.create(list, 11, new WmsReturnRequestItem()));
|
||||
String html = ThymeleafUtil.generator("/template/", "采购退货申请单", ".html", variables);
|
||||
PdfGeneratorUtil.generatePdf("采购入(退)库单" + order.getApplicationNo(), html, response);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -292,7 +292,9 @@ public class TransferCompanyController extends BaseController {
|
|||
.setContent("")
|
||||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setBinNo(it.getBinNo())
|
||||
.setUniqNo("")
|
||||
.setQiTao(true)
|
||||
.setFactoryNo(order.getReswk())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(it.getNum())
|
||||
|
|
@ -307,7 +309,8 @@ public class TransferCompanyController extends BaseController {
|
|||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||
.throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制");
|
||||
});
|
||||
} else {
|
||||
}
|
||||
if (qitem.isUseChildren()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes()))
|
||||
.throwMessage("需要提供扫码信息");
|
||||
qitem.getQrCodes().forEach(qrCode -> {
|
||||
|
|
@ -329,28 +332,31 @@ public class TransferCompanyController extends BaseController {
|
|||
qrCodeMaster.setLastScanBy(UserUtil.getUserId());
|
||||
qrCodeMaster.setLastScanByname(UserUtil.getUserName());
|
||||
qrCodeMaster.setLastScanTime(LocalDateTime.now());
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(5)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setUnit(item.getMeins())
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setEbelp(item.getEbelp())
|
||||
.setEbeln(order.getEbeln())
|
||||
.setExt(item.getEbelp())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
if (!qitem.isQiTao()) {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(5)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setUnit(item.getMeins())
|
||||
.setQiTao(false)
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setEbelp(item.getEbelp())
|
||||
.setEbeln(order.getEbeln())
|
||||
.setExt(item.getEbelp())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -384,7 +390,7 @@ public class TransferCompanyController extends BaseController {
|
|||
}
|
||||
});
|
||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
submitSap(order, ticket, records, datas, ticketItems,qrCodeMasters);
|
||||
submitSap(order, ticket, records, datas, ticketItems, qrCodeMasters);
|
||||
} else {
|
||||
inventoryForOutRepository.saveAll(request.getRecommendBatch()
|
||||
.stream()
|
||||
|
|
@ -402,7 +408,7 @@ public class TransferCompanyController extends BaseController {
|
|||
}
|
||||
|
||||
private void submitSap(WmsTransferCompany order, WmsTransferCompanyTicket ticket, List<OutMaterialScanRecord> records
|
||||
, List<WmsTransferCompanyItem> datas, List<WmsTransferCompanyTicketItem> ticketItems,List<WmsQrCodeMaster> qrCodeMasters) {
|
||||
, List<WmsTransferCompanyItem> datas, List<WmsTransferCompanyTicketItem> ticketItems, List<WmsQrCodeMaster> qrCodeMasters) {
|
||||
inventoryService.out(records.stream()
|
||||
.collect(Collectors.groupingBy(OutMaterialScanRecord::getKey))
|
||||
.values()
|
||||
|
|
@ -413,11 +419,11 @@ public class TransferCompanyController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() : qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
@ -484,14 +490,14 @@ public class TransferCompanyController extends BaseController {
|
|||
) {
|
||||
if (qo.isPass()) {
|
||||
WmsTransferCompany order = transferCompanyService.getById(ticket.getOrderId());
|
||||
List<OutMaterialScanRecord> records =outMaterialScanRecordRespository.findByTicketId(ticket.getId());
|
||||
List<OutMaterialScanRecord> records = outMaterialScanRecordRespository.findByTicketId(ticket.getId());
|
||||
List<WmsQrCodeMaster> qrCodeMasters = qrCodeMasterService.lambdaQuery()
|
||||
.eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState())
|
||||
.in(WmsQrCodeMaster::getBarcodeCode, records.stream().map(OutMaterialScanRecord::getUniqNo).toList())
|
||||
.list();
|
||||
qrCodeMasters.stream()
|
||||
.forEach(p -> {
|
||||
OutMaterialScanRecord record=records.stream()
|
||||
OutMaterialScanRecord record = records.stream()
|
||||
.filter(r -> r.getUniqNo().equals(p.getBarcodeCode()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
|
@ -502,7 +508,7 @@ public class TransferCompanyController extends BaseController {
|
|||
p.setLastScanBy(UserUtil.getUserId());
|
||||
p.setLastScanByname(UserUtil.getUserName());
|
||||
p.setLastScanTime(LocalDateTime.now());
|
||||
if (p.getPackagingType() == 1){
|
||||
if (p.getPackagingType() == 1) {
|
||||
List<WmsQrCodeMaster> children = qrCodeMasterService.lambdaQuery()
|
||||
.eq(WmsQrCodeMaster::getParentBarcodeId, p.getId())
|
||||
.list();
|
||||
|
|
@ -525,7 +531,7 @@ public class TransferCompanyController extends BaseController {
|
|||
, records
|
||||
, transferCompanyItemService.getList(order.getId())
|
||||
, transferCompanyTicketItemService.lambdaQuery().eq(WmsTransferCompanyTicketItem::getTicketId, ticket.getId()).list()
|
||||
,qrCodeMasters
|
||||
, qrCodeMasters
|
||||
);
|
||||
} else {
|
||||
List<TransferCompanyItemVO> items = transferCompanyTicketItemService.getList(qo.getId());
|
||||
|
|
|
|||
|
|
@ -275,7 +275,6 @@ public class TransferFactoryController extends BaseController {
|
|||
.list();
|
||||
qrCodeMasters.addAll(tempList);
|
||||
}
|
||||
|
||||
request.getItems().forEach(qitem -> {
|
||||
WmsTransferFactoryItem item = datas.stream().filter(d -> Objects.equals(d.getId(), qitem.getItemId())).findFirst().orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(item)).throwMessage("物料" + qitem.getMaterialNo() + "不需要出库");
|
||||
|
|
@ -310,6 +309,7 @@ public class TransferFactoryController extends BaseController {
|
|||
.setBatchNo(it.getBatchNo())
|
||||
.setSerialNo(it.getSerialNo())
|
||||
.setUniqNo("")
|
||||
.setQiTao(true)
|
||||
.setFactoryNo(order.getWerks())
|
||||
.setWarehouseNo(request.getLgort())
|
||||
.setNum(it.getNum())
|
||||
|
|
@ -321,7 +321,8 @@ public class TransferFactoryController extends BaseController {
|
|||
VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0)
|
||||
.throwMessage("物料" + materialNo + "的领取数量超出申请限制");
|
||||
});
|
||||
} else {
|
||||
}
|
||||
if (qitem.isUseChildren()) {
|
||||
VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes()))
|
||||
.throwMessage("需要提供扫码信息");
|
||||
qitem.getQrCodes().forEach(qrCode -> {
|
||||
|
|
@ -342,26 +343,29 @@ public class TransferFactoryController extends BaseController {
|
|||
qrCodeMaster.setLastScanBy(UserUtil.getUserId());
|
||||
qrCodeMaster.setLastScanByname(UserUtil.getUserName());
|
||||
qrCodeMaster.setLastScanTime(LocalDateTime.now());
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(4)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setUnit(item.getMeins())
|
||||
.setRspos(item.getRspos())
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
if (!qitem.isQiTao()) {
|
||||
records.add(new OutMaterialScanRecord()
|
||||
.setSource(4)
|
||||
.setSourceId(order.getId())
|
||||
.setSourceItemId(item.getId())
|
||||
.setTicketId(ticket.getId())
|
||||
.setTicketItemId(pti.getId())
|
||||
.setMaterialNo(materialNo)
|
||||
.setUnit(item.getMeins())
|
||||
.setQiTao(false)
|
||||
.setRspos(item.getRspos())
|
||||
.setContent(qrCodeMaster.getBarcodeCode())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setUniqNo(qrCodeMaster.getBarcodeCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBinNo(qrCodeMaster.getBinLocation())
|
||||
.setNum(qrCodeMaster.getQuantity())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(Instant.now())
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
@ -405,11 +409,11 @@ public class TransferFactoryController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() : qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
@ -457,7 +461,7 @@ public class TransferFactoryController extends BaseController {
|
|||
.list();
|
||||
qrCodeMasters.stream()
|
||||
.forEach(p -> {
|
||||
OutMaterialScanRecord record=records.stream()
|
||||
OutMaterialScanRecord record = records.stream()
|
||||
.filter(r -> r.getUniqNo().equals(p.getBarcodeCode()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
|
@ -468,7 +472,7 @@ public class TransferFactoryController extends BaseController {
|
|||
p.setLastScanBy(UserUtil.getUserId());
|
||||
p.setLastScanByname(UserUtil.getUserName());
|
||||
p.setLastScanTime(LocalDateTime.now());
|
||||
if (p.getPackagingType() == 1){
|
||||
if (p.getPackagingType() == 1) {
|
||||
List<WmsQrCodeMaster> children = qrCodeMasterService.lambdaQuery()
|
||||
.eq(WmsQrCodeMaster::getParentBarcodeId, p.getId())
|
||||
.list();
|
||||
|
|
@ -497,11 +501,11 @@ public class TransferFactoryController extends BaseController {
|
|||
.setSerialNo(list.get(0).getSerialNo())
|
||||
.setFactoryNo(list.get(0).getFactoryNo())
|
||||
.setWarehouseNo(list.get(0).getWarehouseNo())
|
||||
.setBinLocation(qrCodeMasters.stream()
|
||||
.setBinLocation(list.get(0).isQiTao() ? list.get(0).getBinNo() : qrCodeMasters.stream()
|
||||
.filter(qr -> StrUtil.equals(qr.getBarcodeCode(), list.get(0).getUniqNo()))
|
||||
.findFirst()
|
||||
.get()
|
||||
.getBinLocation()
|
||||
.map(WmsQrCodeMaster::getBinLocation)
|
||||
.orElse("")
|
||||
)
|
||||
.setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||
).toList()
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@
|
|||
}
|
||||
|
||||
.package-logo {
|
||||
width: 150px;
|
||||
width: 250px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,202 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>采购退货申请单</title>
|
||||
<style>
|
||||
@page {
|
||||
size: A4 landscape; /* 横向 A4 */
|
||||
margin: 10mm; /* 页边距 */
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: SimSun, serif;
|
||||
font-size: 12px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 100%;
|
||||
margin: 0 auto;
|
||||
background-color: white;
|
||||
padding: 10px;
|
||||
border: 1px solid #ccc;
|
||||
page-break-after: always;
|
||||
}
|
||||
|
||||
.container:last-child {
|
||||
page-break-after: auto;
|
||||
}
|
||||
|
||||
.company-name {
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
|
||||
.title {
|
||||
text-align: center;
|
||||
font-size: 25px;
|
||||
font-weight: bold;
|
||||
margin: 20px 0;
|
||||
}
|
||||
|
||||
.info-item label {
|
||||
display: inline-block;
|
||||
width: 80px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.table-data {
|
||||
clear: both;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.table-data table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.table-desc table {
|
||||
width: 100%;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.table-desc td {
|
||||
text-align: left;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border: 1px solid #000;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
th {
|
||||
background-color: #f0f0f0;
|
||||
font-weight: bold;
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
td {
|
||||
height: 15px;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-top: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.footer-item {
|
||||
float: left;
|
||||
width: 33%;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.footer-item label {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.filled-row {
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.package-logo {
|
||||
width: 250px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.package-logo img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.qrcode {
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.qrcode img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.col-left {
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container" th:each="page,pageStat : ${pages}">
|
||||
<div style="position:relative;">
|
||||
<div class="package-logo" style="margin: 5px;position:absolute;"><img src="../img/logo1.png"/></div>
|
||||
<div class="qrcode"><img th:src="${base.qrcode}" src="../img/qrcode.png"/></div>
|
||||
<div>
|
||||
<div class="company-name">福建南方路面机械股份有限公司</div>
|
||||
<div class="title">采购入(退)库单</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-desc">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 30%;">采购订单号:<span th:text="${info.poNum}"></span></td>
|
||||
<td style="text-align: center">过账日期:<span th:text="${base.date}"></span></td>
|
||||
<td style="width: 25%;">页码:<span th:text="${pageStat.count}">1</span>/<span
|
||||
th:text="${pageStat.size}">1</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">供 应 商:<span th:text="${base.supplier}"></span></td>
|
||||
<td>物料凭证号:<span></span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div style="clear: both;"></div>
|
||||
|
||||
<div class="table-data">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 30px">订单<br/>项次</td>
|
||||
<td style="width: 70px">移动<br/>类型</td>
|
||||
<td style="width: 70px">物料号</td>
|
||||
<td>物料描述</td>
|
||||
<td style="width: 30px">单位</td>
|
||||
<td style="width: 50px">数量</td>
|
||||
<td style="width: 60px">工厂</td>
|
||||
<td style="width: 60px">仓库</td>
|
||||
<td style="width: 50px">仓位</td>
|
||||
</tr>
|
||||
<tr class="filled-row" th:each="item,iterStat : ${page.datas}">
|
||||
<td th:text="${iterStat.count}">1</td>
|
||||
<td></td>
|
||||
<td th:text="${item.materialCode}">物料号</td>
|
||||
<td th:text="${item.materialDescription}" class="col-left">非金属联件和紧固件等 M6 DIN 982 不锈钢304</td>
|
||||
<td th:text="${item.unit}">PC</td>
|
||||
<td th:text="${item.requestQuantity}">10.00</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<div class="footer-item">
|
||||
<label>品质检验:</label>
|
||||
</div>
|
||||
<div class="footer-item">
|
||||
<label>收料部门主管:</label>
|
||||
</div>
|
||||
<div class="footer-item">
|
||||
<label>收料经办人:</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -123,6 +123,11 @@ public class OutMaterialScanRecord {
|
|||
*/
|
||||
private String ext;
|
||||
|
||||
/**
|
||||
* 是否是齐套物料
|
||||
*/
|
||||
private boolean isQiTao = false;
|
||||
|
||||
/**
|
||||
* 创建人
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -35,6 +35,11 @@ public class ComponentOutboundItemInputQO {
|
|||
@JsonProperty("isQiTao")
|
||||
private boolean isQiTao;
|
||||
|
||||
/**
|
||||
* 是否扫码子项
|
||||
*/
|
||||
private boolean useChildren = true;
|
||||
|
||||
/**
|
||||
* 批次列表
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.nflg.wms.common.pojo.qo;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@Data
|
||||
public class InventoryInItemQRCodeQO {
|
||||
|
||||
|
|
@ -16,4 +18,8 @@ public class InventoryInItemQRCodeQO {
|
|||
* 储位编号
|
||||
*/
|
||||
private String binNo;
|
||||
|
||||
public String getBinNo() {
|
||||
return Objects.isNull(binNo) ? "" : binNo;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,11 @@ public class OutProduceSubmitItemQO {
|
|||
@JsonProperty("isQiTao")
|
||||
private boolean isQiTao;
|
||||
|
||||
/**
|
||||
* 是否扫码子项
|
||||
*/
|
||||
private boolean useChildren;
|
||||
|
||||
/**
|
||||
* 批次列表
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue