diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java index aafc992a..6ac2a824 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutAssistanceController.java @@ -227,7 +227,7 @@ public class OutAssistanceController extends BaseController { .map(QRCodeQO::getContent) .collect(Collectors.toSet()); List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) ? Collections.emptyList() : qrCodeMasterService.lambdaQuery() - .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) + .eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) .list(); request.getItems().forEach(qitem -> { @@ -292,9 +292,9 @@ public class OutAssistanceController extends BaseController { pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) .throwMessage("物料" + materialNo + "的领取数量超出申请限制"); - qrCodeMaster.setFactoryCode(""); - qrCodeMaster.setStorageLocation(""); - qrCodeMaster.setBinLocation(""); +// qrCodeMaster.setFactoryCode(""); +// qrCodeMaster.setStorageLocation(""); +// qrCodeMaster.setBinLocation(""); qrCodeMaster.setProcessStage(BarCodeProcessStage.OutBound.getState()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); qrCodeMaster.setLastScanByname(UserUtil.getUserName()); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java index b18822e3..dca08272 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutCostCenterController.java @@ -225,7 +225,7 @@ public class OutCostCenterController extends BaseController { .map(QRCodeQO::getContent) .collect(Collectors.toSet()); List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) ? Collections.emptyList() : qrCodeMasterService.lambdaQuery() - .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) + .eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) .list(); request.getItems().forEach(qitem -> { @@ -286,9 +286,9 @@ public class OutCostCenterController extends BaseController { pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) .throwMessage("物料" + materialNo + "的领取数量超出申请限制"); - qrCodeMaster.setFactoryCode(""); - qrCodeMaster.setStorageLocation(""); - qrCodeMaster.setBinLocation(""); +// qrCodeMaster.setFactoryCode(""); +// qrCodeMaster.setStorageLocation(""); +// qrCodeMaster.setBinLocation(""); qrCodeMaster.setProcessStage(BarCodeProcessStage.OutBound.getState()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); qrCodeMaster.setLastScanByname(UserUtil.getUserName()); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java index 31cf4442..9ca9a10e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutProduceController.java @@ -338,7 +338,7 @@ public class OutProduceController extends BaseController { .map(QRCodeQO::getContent) .collect(Collectors.toSet()); List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) ? Collections.emptyList() : qrCodeMasterService.lambdaQuery() - .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) + .eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) .list(); // boolean enableOutScanChild = paramConfigService.getEnableOutScanChild(); @@ -408,9 +408,9 @@ public class OutProduceController extends BaseController { pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); VUtil.trueThrowBusinessError(item.getNum().compareTo(item.getSqsl()) > 0) .throwMessage("物料" + materialNo + "的领取数量超出申请限制"); - qrCodeMaster.setFactoryCode(""); - qrCodeMaster.setStorageLocation(""); - qrCodeMaster.setBinLocation(""); +// qrCodeMaster.setFactoryCode(""); +// qrCodeMaster.setStorageLocation(""); +// qrCodeMaster.setBinLocation(""); qrCodeMaster.setProcessStage(BarCodeProcessStage.OutBound.getState()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); qrCodeMaster.setLastScanByname(UserUtil.getUserName()); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java index 43fb55ab..2c8f0ef1 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/OutPurchaseController.java @@ -21,15 +21,11 @@ import com.nflg.wms.common.pojo.qo.QRCodeQO; import com.nflg.wms.common.pojo.vo.OutPurchaseVO; import com.nflg.wms.common.pojo.vo.ZWM3A05ItemVO; import com.nflg.wms.common.pojo.vo.ZWM3A05VO; +import com.nflg.wms.common.pojo.vo.Zwm3a09VO; import com.nflg.wms.common.util.UserUtil; import com.nflg.wms.common.util.VUtil; -import com.nflg.wms.repository.entity.WmsOutPurchase; -import com.nflg.wms.repository.entity.WmsOutPurchaseItem; -import com.nflg.wms.repository.entity.WmsQrCodeMaster; -import com.nflg.wms.repository.service.IWmsInventoryService; -import com.nflg.wms.repository.service.IWmsOutPurchaseItemService; -import com.nflg.wms.repository.service.IWmsOutPurchaseService; -import com.nflg.wms.repository.service.IWmsQrCodeMasterService; +import com.nflg.wms.repository.entity.*; +import com.nflg.wms.repository.service.*; import com.nflg.wms.starter.BaseController; import jakarta.annotation.Resource; import jakarta.validation.Valid; @@ -74,6 +70,12 @@ public class OutPurchaseController extends BaseController { @Resource private IWmsQrCodeMasterService qrCodeMasterService; + @Resource + private IWmsReturnRequestService returnRequestService; + + @Resource + private IWmsReturnRequestItemService returnRequestItemService; + // /** // * 获取采购退库信息(PDA使用) // * @return 要退库的物料信息列表 @@ -87,6 +89,42 @@ public class OutPurchaseController extends BaseController { // return ApiResult.success(result); // } + /** + * 查询申请单数据(PDA使用) + * @param no 退料申请单编号 + */ + @GetMapping("search") + public ApiResult> search(@RequestParam String no) { + WmsReturnRequest order = returnRequestService.lambdaQuery() + .eq(WmsReturnRequest::getApprovalStatus, 1) + .ne(WmsReturnRequest::getOutStatus, 1) + .eq(WmsReturnRequest::getApplicationNo, no) + .one(); + VUtil.trueThrowBusinessError(Objects.isNull(order)).throwMessage("申请单无效"); + List items = returnRequestItemService.lambdaQuery() + .eq(WmsReturnRequestItem::getApplicationId, order.getId()) + .gt(WmsReturnRequestItem::getLeft, 0) + .list(); + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(items)).throwMessage("所有物料均已完成"); + ZWM3A05VO vo = new ZWM3A05VO() + .setPurchaseOrderId(order.getId()) + .setLifnr(order.getSupplierCode()) + .setEbeln(order.getPoNum()) + .setItems( + items.stream() + .map(it -> new ZWM3A05ItemVO() + .setPurchaseOrderItemId(it.getId()) + .setMatnr(it.getMaterialCode()) + .setMaktx(it.getMaterialDescription()) + .setTemng(it.getLeft()) + .setMeins(it.getUnit()) + .setLgort(it.getStorageLocation()) + ) + .toList() + ); + return ApiResult.success(List.of(vo)); + } + /** * 保存(PDA使用) * @param request 采购退库信息 @@ -106,7 +144,7 @@ public class OutPurchaseController extends BaseController { .map(QRCodeQO::getContent) .collect(Collectors.toSet()); List qrCodeMasters = CollectionUtil.isEmpty(allQrCodes) ? Collections.emptyList() : qrCodeMasterService.lambdaQuery() - .ne(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) + .eq(WmsQrCodeMaster::getProcessStage, BarCodeProcessStage.InBound.getState()) .in(WmsQrCodeMaster::getBarcodeCode, allQrCodes) .list(); request.getItems().forEach(it -> { @@ -129,9 +167,9 @@ public class OutPurchaseController extends BaseController { VUtil.trueThrowBusinessError(!check(qrCodeMaster, it.getCharg(), it.getSernrs())) .throwMessage("物料" + it.getMatnr() + "包含不符合批次号和序列号的扫码记录"); item.setNum(item.getNum().add(qrCodeMaster.getQuantity())); - qrCodeMaster.setFactoryCode(""); - qrCodeMaster.setStorageLocation(""); - qrCodeMaster.setBinLocation(""); +// qrCodeMaster.setFactoryCode(""); +// qrCodeMaster.setStorageLocation(""); +// qrCodeMaster.setBinLocation(""); qrCodeMaster.setProcessStage(BarCodeProcessStage.OutBound.getState()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); qrCodeMaster.setLastScanByname(UserUtil.getUserName()); @@ -246,6 +284,28 @@ public class OutPurchaseController extends BaseController { .setNum(list.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) ).toList() ); + request.getItems().forEach(it -> { + WmsReturnRequestItem item = returnRequestItemService.getById(it.getPurchaseOrderItemId()); + item.setLeft(item.getLeft().subtract(it.getTemng())); + VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) + .throwMessage("物料" + it.getMatnr() + "的扫码数量大于退货数量"); + returnRequestItemService.updateById(item); + }); + if (returnRequestItemService.lambdaQuery() + .eq(WmsReturnRequestItem::getApplicationId, request.getPurchaseOrderId()) + .gt(WmsReturnRequestItem::getLeft, 0) + .exists() + ) { + returnRequestService.lambdaUpdate() + .set(WmsReturnRequest::getOutStatus, 2) + .eq(WmsReturnRequest::getId, request.getPurchaseOrderId()) + .update(); + } else { + returnRequestService.lambdaUpdate() + .set(WmsReturnRequest::getOutStatus, 1) + .eq(WmsReturnRequest::getId, request.getPurchaseOrderId()) + .update(); + } Pair result = sapService.zwm3A06(request.getEbeln(), input1, input2); outPurchaseService.lambdaUpdate() .set(WmsOutPurchase::getMatDoc, result.getKey()) diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java index 074f0075..cf170bc2 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/PurchaseReturnController.java @@ -325,7 +325,8 @@ public class PurchaseReturnController extends BaseController { .setMaterialDescription(purchaseReturnDTO.getMaterialDescription()) .setRequestQuantity(purchaseReturnDTO.getRequestQuantity()) .setOutboundStatus(Short.valueOf("0")) - .setUnit(purchaseReturnDTO.getUnit()); + .setUnit(purchaseReturnDTO.getUnit()) + .setLeft(purchaseReturnDTO.getRequestQuantity()); returnRequestItems.add(returnRequestItem); } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java index 414ad631..e541e979 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/QrCodeMasterController.java @@ -190,6 +190,10 @@ public class QrCodeMasterController extends BaseController { smallQrCodeMaster.setLastScanBy(UserUtil.getUserId()); smallQrCodeMaster.setLastScanByname(UserUtil.getUserName()); } +// qrCodeMaster.setPoNumber(smallQrCodeMasters.get(0).getPoNumber()); +// qrCodeMaster.setPoLineNumber(smallQrCodeMasters.get(0).getPoLineNumber()); +// qrCodeMaster.setDeliveryNo(smallQrCodeMasters.get(0).getDeliveryNo()); +// qrCodeMaster.setDeliveryLineNo(smallQrCodeMasters.get(0).getDeliveryLineNo()); qrCodeMaster.setQuantity(smallQrCodeMasters.stream().map(WmsQrCodeMaster::getQuantity).reduce(BigDecimal.ZERO, BigDecimal::add)); qrCodeMaster.setLastScanTime(LocalDateTime.now()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java index 30003260..b3e30cac 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ScanRecordController.java @@ -136,7 +136,7 @@ public class ScanRecordController extends BaseController { return tv; }); v.stream() - .collect(Collectors.groupingBy(OutMaterialScanRecord::getKey8)) + .collect(Collectors.groupingBy(OutMaterialScanRecord::getKey9)) .forEach((key, vv) -> { vo.getItems().add(new OutDifferenceItemVO() .setRecommendbatchNo("") diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java index c6d9087e..6999e113 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferCompanyController.java @@ -323,8 +323,8 @@ public class TransferCompanyController extends BaseController { pti.setNum(pti.getNum().add(qrCodeMaster.getQuantity())); VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) .throwMessage("物料" + materialNo + "的出库数量超出申请限制"); - qrCodeMaster.setStorageLocation(""); - qrCodeMaster.setBinLocation(""); +// qrCodeMaster.setStorageLocation(""); +// qrCodeMaster.setBinLocation(""); qrCodeMaster.setProcessStage(BarCodeProcessStage.OutBound.getState()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); qrCodeMaster.setLastScanByname(UserUtil.getUserName()); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java index 52699c57..3b63643f 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/TransferFactoryController.java @@ -320,8 +320,8 @@ public class TransferFactoryController extends BaseController { item.setLeft(item.getLeft().subtract(qrCodeMaster.getQuantity())); VUtil.trueThrowBusinessError(item.getLeft().compareTo(BigDecimal.ZERO) < 0) .throwMessage("物料" + materialNo + "的出库数量超出申请限制"); - qrCodeMaster.setStorageLocation(""); - qrCodeMaster.setBinLocation(""); +// qrCodeMaster.setStorageLocation(""); +// qrCodeMaster.setBinLocation(""); qrCodeMaster.setProcessStage(BarCodeProcessStage.OutBound.getState()); qrCodeMaster.setLastScanBy(UserUtil.getUserId()); qrCodeMaster.setLastScanByname(UserUtil.getUserName()); diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05ItemVO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05ItemVO.java index 021d2c8b..4b4d9d28 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05ItemVO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05ItemVO.java @@ -6,15 +6,23 @@ import com.nflg.wms.common.pojo.qo.QRCodeQO; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Positive; import lombok.Data; +import lombok.experimental.Accessors; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; @Data +@Accessors(chain = true) @JsonIgnoreProperties(ignoreUnknown = true) public class ZWM3A05ItemVO { + /** + * 申请单项ID + */ + @NotNull + private Long purchaseOrderItemId; + /** * 采购凭证的项目编号 */ diff --git a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05VO.java b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05VO.java index f25267a2..62e56848 100644 --- a/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05VO.java +++ b/nflg-wms-common/src/main/java/com/nflg/wms/common/pojo/vo/ZWM3A05VO.java @@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.vo; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.experimental.Accessors; @@ -29,6 +30,12 @@ public class ZWM3A05VO { @NotBlank private String werks; + /** + * 申请单ID + */ + @NotNull + private Long purchaseOrderId; + @Valid @NotEmpty private List items = new ArrayList<>(); diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java index 1f6fc5b9..b4e62679 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/entity/WmsReturnRequestItem.java @@ -77,6 +77,11 @@ public class WmsReturnRequestItem implements Serializable { */ private BigDecimal requestQuantity; + /** + * 剩余数量 + */ + private BigDecimal left; + /** * 出库状态 */