采购物料入库的调试

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.convert.Convert;
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.dto.QCMaterialSyncDTO;
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 jakarta.annotation.Resource;
import jakarta.validation.Valid;
import net.sf.jsqlparser.statement.select.First;
import org.apache.commons.lang3.tuple.Triple;
import org.apache.ibatis.annotations.One;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
@ -109,7 +112,7 @@ public class NormalPGIController extends BaseController {
// 查看扫码记录
@GetMapping("getScanCodes")
@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<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas);
@ -289,7 +292,7 @@ public class NormalPGIController extends BaseController {
item.setUpdateUserName(UserUtil.getUserName());
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("/"));
storageLocationDTOS.add(new StorageLocationDTO()
.setBinNos(bins)
@ -317,33 +320,56 @@ public class NormalPGIController extends BaseController {
List<ZWM3A17Item1DTO> item1 = zwm3A17DTO.getItem1();
List<ZWM3A17Item2DTO> item2 = zwm3A17DTO.getItem2();
List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId().toString());
if (CollectionUtil.isEmpty(scanCode)) {
List<SrmMaterialReceiptScanCodes> scanCode = srmMaterialReceiptScanCodesRepository.findByOrderItemId(item.getOrderItemId());
if (CollectionUtil.isNotEmpty(scanCode)) {
scanCode.forEach(code -> {
// 库存
InventoryDTO inventoryDTO = new InventoryDTO()
.setMaterialNo(item.getItemCode())
.setFactoryNo(wmsPoReceipt.getFactoryCode())
.setWarehouseNo(item.getReceivedWarehouse())
.setBatchNumber(code.getBatchNumber())
.setNum(code.getCodeNum());
inventories.add(inventoryDTO);
InventoryDTO inventoryDTO = inventories.stream()
.filter(inventoriesDTO -> inventoriesDTO.getMaterialNo().equals(item.getItemCode())
&& inventoriesDTO.getBatchNumber().equals(code.getBatchNumber())
&& inventoriesDTO.getFactoryNo().equals(wmsPoReceipt.getFactoryCode())
&& inventoriesDTO.getWarehouseNo().equals(item.getReceivedWarehouse())
).findFirst().orElse(null);
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("")
);
if (Objects.isNull(inventoryDTO)) {
inventoryDTO = new InventoryDTO()
.setMaterialNo(item.getItemCode())
.setFactoryNo(wmsPoReceipt.getFactoryCode())
.setWarehouseNo(item.getReceivedWarehouse())
.setBatchNumber(code.getBatchNumber())
.setNum(code.getCodeNum());
inventories.add(inventoryDTO);
} 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()
.setEBELP(item.getPoLineNumber())
.setFLAG("")
.setFLAG(code.getSerialNumbers()));
.setSERNR(code.getSerialNumbers()));
});
} else {
// 库存

View File

@ -65,7 +65,7 @@ public class POReceiptController {
*/
@GetMapping("getScanCodes")
@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<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas);

View File

@ -69,7 +69,7 @@ public class QCReceiptController {
*/
@GetMapping("getScanCodes")
@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<PDAScanCodeVO> pdas = Convert.toList(PDAScanCodeVO.class, scanCodes);
return ApiResult.success(pdas);

View File

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

View File

@ -293,6 +293,7 @@ public class NormalPGIControllerService {
.update();
}
if (CollectionUtil.isNotEmpty(inventories)) {
inventoryService.in(inventories);
}
@ -311,7 +312,7 @@ public class NormalPGIControllerService {
wmsPoReceiptItemService.lambdaUpdate()
.eq(WmsPoReceiptItem::getPoNum, zwm3A17DTO.getEbeln())
.eq(WmsPoReceiptItem::getReceiveId, taskId)
.set(WmsPoReceiptItem::getMaterialDoc, returnDto.getValue().getKey())
.set(WmsPoReceiptItem::getMaterialDoc, returnDto.getKey().getKey())
.set(WmsPoReceiptItem::getMaterialDocYear, returnDto.getValue().getValue())
.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
from wms_srm_order
where id = #{orderId}
and not exists(select 1
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>
from wms_srm_order_item
where order_id = #{orderId}
and wms_srm_order_item.delivery_qty > wms_srm_order_item.receipt_qty</select>
</mapper>