采购物料入库的调试

This commit is contained in:
zhangke 2025-09-05 14:36:34 +08:00
parent a357ecb57b
commit be24ba7bc8
7 changed files with 57 additions and 34 deletions

View File

@ -7,6 +7,7 @@ package com.nflg.wms.admin.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptScanCodes; import com.nflg.wms.admin.pojo.document.SrmMaterialReceiptScanCodes;
import com.nflg.wms.admin.pojo.dto.QCMaterialSyncDTO; import com.nflg.wms.admin.pojo.dto.QCMaterialSyncDTO;
import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO;
@ -29,7 +30,9 @@ import com.nflg.wms.starter.BaseController;
import com.nflg.wms.starter.annotation.ApiMark; import com.nflg.wms.starter.annotation.ApiMark;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import net.sf.jsqlparser.statement.select.First;
import org.apache.commons.lang3.tuple.Triple; import org.apache.commons.lang3.tuple.Triple;
import org.apache.ibatis.annotations.One;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -109,7 +112,7 @@ public class NormalPGIController extends BaseController {
// 查看扫码记录 // 查看扫码记录
@GetMapping("getScanCodes") @GetMapping("getScanCodes")
@ApiMark(moduleName = "送货单管理", apiName = "获取扫码的详情信息") @ApiMark(moduleName = "送货单管理", apiName = "获取扫码的详情信息")
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam String orderItemId) { public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId); List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas); return ApiResult.success(pdas);
@ -289,7 +292,7 @@ public class NormalPGIController extends BaseController {
item.setUpdateUserName(UserUtil.getUserName()); item.setUpdateUserName(UserUtil.getUserName());
receiptItems.add(item); receiptItems.add(item);
//储位处理 //储位处理
if (!qo.getStorageLocation().equals(qo.getStorageLocationNew())) { if (StrUtil.isNotBlank(qo.getStorageLocationNew()) && qo.getStorageLocation().equals(qo.getStorageLocationNew())) {
List<String> bins = Arrays.asList(item.getStorageLocation().split("/")); List<String> bins = Arrays.asList(item.getStorageLocation().split("/"));
storageLocationDTOS.add(new StorageLocationDTO() storageLocationDTOS.add(new StorageLocationDTO()
.setBinNos(bins) .setBinNos(bins)
@ -317,33 +320,56 @@ public class NormalPGIController extends BaseController {
List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1(); List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1();
List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2(); List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2();
List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId().toString()); List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId());
if (CollectionUtil.isEmpty(scanCode)) { if (CollectionUtil.isNotEmpty(scanCode)) {
scanCode.forEach(code -> { scanCode.forEach(code -> {
// 库存 // 库存
InventoryDTO inventoryDTO = new InventoryDTO() InventoryDTO inventoryDTO = inventories.stream()
.setMaterialNo(item.getItemCode()) .filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode())
.setFactoryNo(wmsPoReceipt.getFactoryCode()) && inventoriesDTO.getBatchNumber().equals(code.getBatchNumber())
.setWarehouseNo(item.getReceivedWarehouse()) && inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode())
.setBatchNumber(code.getBatchNumber()) && inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse())
.setNum(code.getCodeNum()); ).findFirst().orElse(null);
inventories.add(inventoryDTO);
item1.add(new ZWM3A17Item1DTO() if (Objects.isNull(inventoryDTO)) {
.setEBELP(item.getPoLineNumber()) inventoryDTO = new InventoryDTO()
.setMATNR(item.getItemCode()) .setMaterialNo(item.getItemCode())
.setERFMG(code.getCodeNum()) .setFactoryNo(wmsPoReceipt.getFactoryCode())
.setMEINS(item.getUomCode()) .setWarehouseNo(item.getReceivedWarehouse())
.setCHARG(code.getBatchNumber()) .setBatchNumber(code.getBatchNumber())
.setWERKS(wmsPoReceipt.getFactoryCode()) .setNum(code.getCodeNum());
.setLGORT(item.getReceivedWarehouse()) inventories.add(inventoryDTO);
.setKZKRI("") } else {
); inventoryDTO.setNum(inventoryDTO.getNum().add(code.getCodeNum()));
}
ZWM3A17Item1DTO ietm1Dto = item1.stream()
.filter(dto1 ->
dto1.getEBELP().equals(item.getPoLineNumber())
&& dto1.getMATNR().equals(item.getItemCode())
&& dto1.getMEINS().equals(item.getUomCode())
&& dto1.getCHARG().equals(code.getBatchNumber())
&& dto1.getWERKS().equals(wmsPoReceipt.getFactoryCode())
&& dto1.getLGORT().equals(item.getReceivedWarehouse())
).findFirst().orElse(null);
if (Objects.isNull(ietm1Dto)) {
item1.add(new ZWM3A17Item1DTO()
.setEBELP(item.getPoLineNumber())
.setMATNR(item.getItemCode())
.setERFMG(code.getCodeNum())
.setMEINS(item.getUomCode())
.setCHARG(code.getBatchNumber())
.setWERKS(wmsPoReceipt.getFactoryCode())
.setLGORT(item.getReceivedWarehouse())
.setKZKRI("")
);
} else {
ietm1Dto.setERFMG(ietm1Dto.getERFMG().add(code.getCodeNum()));
}
item2.add(new ZWM3A17Item2DTO() item2.add(new ZWM3A17Item2DTO()
.setEBELP(item.getPoLineNumber()) .setEBELP(item.getPoLineNumber())
.setFLAG("") .setFLAG("")
.setFLAG(code.getSerialNumbers())); .setSERNR(code.getSerialNumbers()));
}); });
} else { } else {
// 库存 // 库存

View File

@ -65,7 +65,7 @@ public class POReceiptController {
*/ */
@GetMapping("getScanCodes") @GetMapping("getScanCodes")
@ApiMark(moduleName = "采购单入库管理", apiName = "获取扫码的详情信息") @ApiMark(moduleName = "采购单入库管理", apiName = "获取扫码的详情信息")
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam String orderItemId) { public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId); List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas); return ApiResult.success(pdas);

View File

@ -69,7 +69,7 @@ public class QCReceiptController {
*/ */
@GetMapping("getScanCodes") @GetMapping("getScanCodes")
@ApiMark(moduleName = "质检物料入库单", apiName = "获取扫码的详情信息") @ApiMark(moduleName = "质检物料入库单", apiName = "获取扫码的详情信息")
public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam String orderItemId) { public ApiResult<List<PDAScanCodeVO>> getScanCodes(@RequestParam Long orderItemId) {
List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId); List<SrmMaterialReceiptScanCodes> scanCodes = srmMaterialReceiptCanCodesRepository.findByOrderItemId(orderItemId);
List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes); List<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas); return ApiResult.success(pdas);

View File

@ -8,7 +8,7 @@ import java.util.List;
@Repository @Repository
public interface SrmMaterialReceiptScanCodesRepository extends MongoRepository<SrmMaterialReceiptScanCodes, String> { public interface SrmMaterialReceiptScanCodesRepository extends MongoRepository<SrmMaterialReceiptScanCodes, String> {
List<SrmMaterialReceiptScanCodes> findByOrderItemId(String orderItemId); List<SrmMaterialReceiptScanCodes> findByOrderItemId(Long orderItemId);
List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0); List<SrmMaterialReceiptScanCodes> findByCodeIdIn(List<String> attr0);
} }

View File

@ -293,6 +293,7 @@ public class NormalPGIControllerService {
.update(); .update();
} }
if (CollectionUtil.isNotEmpty(inventories)) { if (CollectionUtil.isNotEmpty(inventories)) {
inventoryService.in(inventories); inventoryService.in(inventories);
} }
@ -311,7 +312,7 @@ public class NormalPGIControllerService {
wmsPoReceiptItemService.lambdaUpdate() wmsPoReceiptItemService.lambdaUpdate()
.eq(WmsPoReceiptItem::getPoNum, zwm3A17DTO.getEbeln()) .eq(WmsPoReceiptItem::getPoNum, zwm3A17DTO.getEbeln())
.eq(WmsPoReceiptItem::getReceiveId, taskId) .eq(WmsPoReceiptItem::getReceiveId, taskId)
.set(WmsPoReceiptItem::getMaterialDoc, returnDto.getValue().getKey()) .set(WmsPoReceiptItem::getMaterialDoc, returnDto.getKey().getKey())
.set(WmsPoReceiptItem::getMaterialDocYear, returnDto.getValue().getValue()) .set(WmsPoReceiptItem::getMaterialDocYear, returnDto.getValue().getValue())
.update(); .update();
} }

View File

@ -44,7 +44,7 @@ public class POReceiptVO {
/** /**
* 发货时间 * 发货时间
*/ */
private LocalDate deliveryNoteDate; private String deliveryNoteDate;
/** /**
* 运单号 * 运单号

View File

@ -53,11 +53,7 @@
<select id="getUnCompletedItem" resultType="com.nflg.wms.repository.entity.WmsSrmOrder"> <select id="getUnCompletedItem" resultType="com.nflg.wms.repository.entity.WmsSrmOrder">
select id select id
from wms_srm_order from wms_srm_order_item
where id = #{orderId} where order_id = #{orderId}
and not exists(select 1 and wms_srm_order_item.delivery_qty > wms_srm_order_item.receipt_qty</select>
from wms_srm_order_item
where wms_srm_order.id = wms_srm_order_item.order_id
and wms_srm_order_item.delivery_qty > wms_srm_order_item.receipt_qty)
</select>
</mapper> </mapper>