feat(pgi): 添加普通物料收货单控制器功能
- 实现送货单列表查询和详情获取接口 - 添加PDA扫码收货确认功能 - 集成SAP物料信息同步机制 - 实现普通物料上架任务管理 - 添加采购物料入库确认流程 - 集成条码扫描和二维码处理功能 - 实现质检单和非质检单分别处理逻辑 - 添加储位管理和库存同步功能 - 实现一键收货查询功能 - 集成序列号和批次号验证机制
This commit is contained in:
parent
be8c7cedb6
commit
443cbfd194
|
|
@ -10,7 +10,6 @@ import cn.hutool.core.util.IdUtil;
|
|||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.crypto.digest.DigestUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import com.nflg.wms.admin.pojo.dto.*;
|
||||
import com.nflg.wms.admin.repository.OutMaterialScanRecordRespository;
|
||||
import com.nflg.wms.admin.repository.SrmMaterialReceiptNoScanCodesRepository;
|
||||
|
|
@ -50,7 +49,10 @@ import java.math.BigDecimal;
|
|||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
|
@ -427,26 +429,45 @@ public class NormalPGIController extends BaseController {
|
|||
|
||||
if (CollectionUtil.isNotEmpty(scanCode)) {
|
||||
scanCode.forEach(code -> {
|
||||
WmsQrCodeMaster qrCodeMaster = qrCodeMasterService.getByCode(code.getCodeId());
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qrCodeMaster)).throwMessage("条码不存在");
|
||||
qrCodeMaster.setProcessStage(BarCodeProcessStage.InBound.getState())
|
||||
.setLastScanBy(UserUtil.getUserId())
|
||||
.setLastScanByname(UserUtil.getUserName())
|
||||
.setLastScanTime(LocalDateTime.now());
|
||||
if (CollectionUtil.isNotEmpty(qo.getItems())) {
|
||||
InCostCenterBackSubmitItemQRQO qrqo = qo.getItems()
|
||||
.stream()
|
||||
.filter(iit -> iit.getQrCode().contains(code.getCodeId()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (Objects.nonNull(qrqo)) {
|
||||
qrCodeMaster.setBinLocation(qrqo.getBinNo());
|
||||
}
|
||||
}
|
||||
qrCodeMasters.add(qrCodeMaster);
|
||||
if (qrCodeMaster.getPackagingType() == 0) {
|
||||
// 库存
|
||||
InventoryInDTO inventoryDTO = inventories.stream()
|
||||
.filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode())
|
||||
&& inventoriesDTO.getBatchNo().equals(code.getBatchNumber())
|
||||
&& inventoriesDTO.getSerialNo().equals(code.getSerialNumbers())
|
||||
&& inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode())
|
||||
&& inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse())
|
||||
).findFirst().orElse(null);
|
||||
|
||||
&& inventoriesDTO.getBatchNo().equals(qrCodeMaster.getBatchNo())
|
||||
&& inventoriesDTO.getSerialNo().equals(qrCodeMaster.getSerialNo())
|
||||
&& inventoriesDTO.getFactoryNo().equals(qrCodeMaster.getFactoryCode())
|
||||
&& inventoriesDTO.getWarehouseNo().equals(qrCodeMaster.getStorageLocation())
|
||||
&& StrUtil.equals(inventoriesDTO.getBinLocation(), qrCodeMaster.getBinLocation())
|
||||
).findFirst()
|
||||
.orElse(null);
|
||||
if (Objects.isNull(inventoryDTO)) {
|
||||
inventoryDTO = new InventoryInDTO()
|
||||
.setMaterialNo(item.getItemCode())
|
||||
.setFactoryNo(wmsPoReceipt.getFactoryCode())
|
||||
.setWarehouseNo(item.getReceivedWarehouse())
|
||||
.setBatchNo(code.getBatchNumber())
|
||||
.setSerialNo(code.getSerialNumbers())
|
||||
.setNum(code.getCodeNum());
|
||||
.setMaterialNo(qrCodeMaster.getMaterialCode())
|
||||
.setFactoryNo(qrCodeMaster.getFactoryCode())
|
||||
.setWarehouseNo(qrCodeMaster.getStorageLocation())
|
||||
.setBatchNo(qrCodeMaster.getBatchNo())
|
||||
.setSerialNo(qrCodeMaster.getSerialNo())
|
||||
.setNum(qrCodeMaster.getQuantity());
|
||||
inventories.add(inventoryDTO);
|
||||
} else {
|
||||
inventoryDTO.setNum(inventoryDTO.getNum().add(code.getCodeNum()));
|
||||
inventoryDTO.setNum(inventoryDTO.getNum().add(qrCodeMaster.getQuantity()));
|
||||
}
|
||||
ZWM3A17Item1DTO ietm1Dto = item1.stream()
|
||||
.filter(dto1 ->
|
||||
|
|
@ -485,36 +506,6 @@ public class NormalPGIController extends BaseController {
|
|||
// .setLastScanBy(UserUtil.getUserId())
|
||||
// .setLastScanByname(UserUtil.getUserName())
|
||||
// .setLastScanTime(LocalDateTime.now());
|
||||
|
||||
WmsQrCodeMaster wmsQrCodeMaster = new WmsQrCodeMaster();
|
||||
WmsQrCodeMaster existCode = qrCodeMasterService.lambdaQuery()
|
||||
.eq(WmsQrCodeMaster::getBarcodeCode, code.getCodeId())
|
||||
.one();
|
||||
if (existCode != null) {
|
||||
wmsQrCodeMaster = existCode;
|
||||
} else {
|
||||
wmsQrCodeMaster.setId(IdWorker.getId());
|
||||
}
|
||||
wmsQrCodeMaster
|
||||
.setBarcodeCode(code.getCodeId())
|
||||
.setBarcodeType((short) 1)
|
||||
.setMaterialCode(item.getItemCode())
|
||||
.setMaterialDescription(item.getItemName())
|
||||
.setProcessStage(BarCodeProcessStage.InBound.getState())
|
||||
.setReceiptItemId(item.getId())
|
||||
.setLastScanBy(UserUtil.getUserId())
|
||||
.setLastScanByname(UserUtil.getUserName())
|
||||
.setLastScanTime(LocalDateTime.now());
|
||||
|
||||
qrCodeMasters.add(wmsQrCodeMaster);
|
||||
if (CollectionUtil.isNotEmpty(qo.getItems())) {
|
||||
InCostCenterBackSubmitItemQRQO qrqo = qo.getItems()
|
||||
.stream()
|
||||
.filter(iit -> iit.getQrCode().contains(code.getCodeId()))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
VUtil.trueThrowBusinessError(Objects.isNull(qrqo)).throwMessage("条码" + code.getCodeId() + "已收货但不在本次扫码列表中");
|
||||
wmsQrCodeMaster.setBinLocation(qrqo.getBinNo());
|
||||
}
|
||||
});
|
||||
} else {
|
||||
|
|
@ -542,35 +533,11 @@ public class NormalPGIController extends BaseController {
|
|||
}
|
||||
if (CollectionUtil.isNotEmpty(qrCodeMasters)) {
|
||||
//同步箱码信息到物料码中
|
||||
List<WmsQrCodeMaster> parents = qrCodeMasters
|
||||
.stream()
|
||||
// .filter(qrCode -> qrCode.getPackagingType() == 1)
|
||||
.filter(qrCode -> qrCode.getPackagingType() != null && qrCode.getPackagingType() == 1)
|
||||
.toList();
|
||||
// List<WmsQrCodeMaster> children = qrCodeMasterService.lambdaQuery()
|
||||
// .in(WmsQrCodeMaster::getParentBarcodeId, parents
|
||||
// .stream()
|
||||
// .map(WmsQrCodeMaster::getId)
|
||||
// .toList()
|
||||
// )
|
||||
// .list();
|
||||
|
||||
List<WmsQrCodeMaster> children;
|
||||
if (CollectionUtil.isNotEmpty(parents)) {
|
||||
children = qrCodeMasterService.lambdaQuery()
|
||||
.in(WmsQrCodeMaster::getParentBarcodeId,
|
||||
parents.stream()
|
||||
.map(WmsQrCodeMaster::getId)
|
||||
.toList()
|
||||
)
|
||||
.list();
|
||||
} else {
|
||||
children = new ArrayList<>();
|
||||
}
|
||||
|
||||
parents.forEach(p -> {
|
||||
children.stream()
|
||||
.filter(c -> c.getParentBarcodeId().equals(p.getId()))
|
||||
qrCodeMasters.stream()
|
||||
.filter(qr -> qr.getPackagingType() == 1)
|
||||
.forEach(p -> {
|
||||
qrCodeMasters.stream()
|
||||
.filter(qr -> Objects.equals(qr.getParentBarcodeId(), p.getId()))
|
||||
.forEach(c -> {
|
||||
c.setProcessStage(p.getProcessStage());
|
||||
c.setLastScanBy(UserUtil.getUserId());
|
||||
|
|
@ -582,9 +549,7 @@ public class NormalPGIController extends BaseController {
|
|||
c.setReceiptItemId(p.getReceiptItemId());
|
||||
});
|
||||
});
|
||||
qrCodeMasters.addAll(children);
|
||||
// qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
qrCodeMasterService.saveOrUpdateBatch(qrCodeMasters);
|
||||
qrCodeMasterService.updateBarCode(qrCodeMasters);
|
||||
}
|
||||
normalPGIControllerService.takeDeliveryConfirm(receiptItems, storageLocationDTOS, inventories, zwm3A17DTOS, request.getTaskId(), scanCodes);
|
||||
return ApiResult.success();
|
||||
|
|
|
|||
Loading…
Reference in New Issue