diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java index 8f589da6..e80ea14d 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/ComponentOutboundController.java @@ -245,7 +245,7 @@ public class ComponentOutboundController extends BaseController { .compareTo(records.stream().map(OutMaterialScanRecord::getNum).reduce(BigDecimal.ZERO, BigDecimal::add)) != 0) .throwMessage("物料" + outboundItem.getIdnrk() + "的领取数量不等于装箱数量"); } - if (item.isUseChildren()) { + if (!item.isQiTao() || item.isUseChildren()) { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getScanCodes())) .throwMessage("需要提供扫码信息"); if (CollectionUtil.isNotEmpty(item.getScanCodes())) { diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java index 5c0d6bca..c2c2044d 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalPGIController.java @@ -505,7 +505,34 @@ public class NormalPGIController extends BaseController { } } if (CollectionUtil.isNotEmpty(qrCodeMasters)) { - qrCodeMasterService.updateBatchByCode(qrCodeMasters); + //同步箱码信息到物料码中 + List parents = qrCodeMasters + .stream() + .filter(qrCode -> qrCode.getPackagingType() == 1) + .toList(); + List children = qrCodeMasterService.lambdaQuery() + .in(WmsQrCodeMaster::getParentBarcodeId, parents + .stream() + .map(WmsQrCodeMaster::getId) + .toList() + ) + .list(); + parents.forEach(p -> { + children.stream() + .filter(c -> c.getParentBarcodeId().equals(p.getId())) + .forEach(c -> { + c.setProcessStage(p.getProcessStage()); + c.setLastScanBy(UserUtil.getUserId()); + c.setLastScanByname(UserUtil.getUserName()); + c.setLastScanTime(LocalDateTime.now()); + c.setFactoryCode(p.getFactoryCode()); + c.setStorageLocation(p.getStorageLocation()); + c.setBinLocation(p.getBinLocation()); + c.setReceiptItemId(p.getReceiptItemId()); + }); + }); + qrCodeMasters.addAll(children); + qrCodeMasterService.updateBarCode(qrCodeMasters); } normalPGIControllerService.takeDeliveryConfirm(receiptItems, storageLocationDTOS, inventories, zwm3A17DTOS, request.getTaskId(), scanCodes); return ApiResult.success(); diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java index 60b8f25a..ee90e13e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/controller/NormalQMController.java @@ -9,6 +9,7 @@ import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.pojo.ApiResult; import com.nflg.wms.common.pojo.PageData; import com.nflg.wms.common.pojo.dto.InventoryInDTO; +import com.nflg.wms.common.pojo.qo.InCostCenterBackSubmitItemQRQO; import com.nflg.wms.common.pojo.qo.NomalQMOrderSearchQO; import com.nflg.wms.common.pojo.qo.QCReceiveTaskConfirmQO; import com.nflg.wms.common.pojo.qo.ReceiveQO; @@ -277,23 +278,40 @@ public class NormalQMController extends BaseController { } qcReceiveDTOS.add(qcReceiveDTO); } - List qrCodeMasters = new ArrayList<>(); + List qrCodeMasters = qrCodeMasterService.getChildrenWithParent(request.stream() + .map(QCReceiveTaskConfirmQO::getItems) + .flatMap(List::stream) + .map(InCostCenterBackSubmitItemQRQO::getQrCode) + .toList() + ); request.forEach(rit -> { if (CollectionUtil.isNotEmpty(rit.getItems())) { rit.getItems().forEach(item -> { - qrCodeMasters.add( - new WmsQrCodeMaster() - .setBarcodeCode(item.getQrCode()) - .setProcessStage(BarCodeProcessStage.InBound.getState()) - .setBinLocation(item.getBinNo()) - .setLastScanBy(UserUtil.getUserId()) - .setLastScanByname(UserUtil.getUserName()) - .setLastScanTime(LocalDateTime.now()) - ); + WmsQrCodeMaster p = qrCodeMasters.stream() + .filter(q -> q.getBarcodeCode().equals(item.getQrCode())) + .findFirst() + .get(); + p.setProcessStage(BarCodeProcessStage.InBound.getState()); + p.setBinLocation(item.getBinNo()); + p.setLastScanBy(UserUtil.getUserId()); + p.setLastScanByname(UserUtil.getUserName()); + p.setLastScanTime(LocalDateTime.now()); + qrCodeMasters.stream() + .filter(q -> q.getParentBarcodeId().equals(p.getId())) + .forEach(c -> { + c.setProcessStage(p.getProcessStage()); + c.setLastScanBy(UserUtil.getUserId()); + c.setLastScanByname(UserUtil.getUserName()); + c.setLastScanTime(LocalDateTime.now()); + c.setFactoryCode(p.getFactoryCode()); + c.setStorageLocation(p.getStorageLocation()); + c.setBinLocation(p.getBinLocation()); + c.setReceiptItemId(p.getReceiptItemId()); + }); }); } }); - qrCodeMasterService.updateBatchByCode(qrCodeMasters); + qrCodeMasterService.updateBarCode(qrCodeMasters); normalQMControllerService.confirmReceive(qcReceiveDTOS); return ApiResult.success(); } 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 26b71cdd..1881988b 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 @@ -278,7 +278,7 @@ public class OutAssistanceController extends BaseController { .throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制"); }); } - if (qitem.isUseChildren()) { + if (!qitem.isQiTao() || qitem.isUseChildren()) { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes())) .throwMessage("需要提供扫码信息"); qitem.getQrCodes().forEach(qrCode -> { 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 046110a6..17169d65 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 @@ -272,7 +272,7 @@ public class OutCostCenterController extends BaseController { .throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制"); }); } - if (qitem.isUseChildren()) { + if (!qitem.isQiTao() || qitem.isUseChildren()) { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes())) .throwMessage("需要提供扫码信息"); qitem.getQrCodes().forEach(qrCode -> { 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 1e5a75c8..c2ab20a7 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 @@ -391,7 +391,7 @@ public class OutProduceController extends BaseController { VUtil.trueThrowBusinessError(item.getNum().compareTo(item.getSqsl()) > 0) .throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制"); } - if (qitem.isUseChildren()) { + if (!qitem.isQiTao() || qitem.isUseChildren()) { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes())) .throwMessage("需要提供扫码信息"); qitem.getQrCodes().forEach(qrCode -> { 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 17b4e271..212224fa 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 @@ -117,6 +117,7 @@ public class OutPurchaseController extends BaseController { .setMatnr(it.getMaterialCode()) .setMaktx(it.getMaterialDescription()) .setTemng(it.getLeft()) + .setWerks(it.getFactoryCode()) .setMeins(it.getUnit()) .setLgort(it.getStorageLocation()) ) @@ -152,7 +153,7 @@ public class OutPurchaseController extends BaseController { item.setId(IdUtil.getSnowflakeNextId()); item.setOrderId(orderId); item.setNum(BigDecimal.ZERO); - item.setWerks(request.getWerks()); + item.setWerks(it.getWerks()); if (CollectionUtil.isNotEmpty(it.getQrCodes())) { it.getQrCodes().forEach(qrCode -> { WmsQrCodeMaster qrCodeMaster = qrCodeMasters.stream() @@ -164,8 +165,8 @@ public class OutPurchaseController extends BaseController { .throwMessage("二维码" + qrCode + "未入库"); VUtil.trueThrowBusinessError(!StrUtil.equals(qrCodeMaster.getMaterialCode(), it.getMatnr())) .throwMessage("物料" + it.getMatnr() + "与二维码不匹配"); - VUtil.trueThrowBusinessError(!check(qrCodeMaster, it.getCharg(), it.getSernrs())) - .throwMessage("物料" + it.getMatnr() + "包含不符合批次号和序列号的扫码记录"); +// VUtil.trueThrowBusinessError(!check(qrCodeMaster, it.getCharg(), it.getSernrs())) +// .throwMessage("物料" + it.getMatnr() + "包含不符合批次号和序列号的扫码记录"); item.setNum(item.getNum().add(qrCodeMaster.getQuantity())); // qrCodeMaster.setFactoryCode(""); // qrCodeMaster.setStorageLocation(""); 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 b5934003..398bc6e5 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 @@ -172,8 +172,8 @@ public class PurchaseReturnController extends BaseController { User user = userService.getById(UserUtil.getUserId()); VUtil.trueThrowBusinessError(StrUtil.equals(user.getPurchasingGroup(), returnRequest.getPurchaseGroup())) .throwMessage("无权限审核此单"); - VUtil.trueThrowBusinessError(returnRequest.getApprovalStatus() == 1) - .throwMessage("此单已审核通过,不可以再此审核"); +// VUtil.trueThrowBusinessError(returnRequest.getApprovalStatus() == 1) +// .throwMessage("此单已审核通过,不可以再此审核"); if (request.getApprovalStatus().equals(2)) { VUtil.trueThrowBusinessError(returnRequest.getApprovalStatus() == 2) 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 031b3862..c510a136 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 @@ -258,6 +258,7 @@ public class TransferCompanyController extends BaseController { .in(WmsQrCodeMaster::getBarcodeCode, request.getItems().stream() .map(OutProduceSubmitItemQO::getQrCodes) .flatMap(Collection::stream) + .map(QRCodeQO::getContent) .toList() ) .list(); @@ -310,7 +311,7 @@ public class TransferCompanyController extends BaseController { .throwMessage("物料" + item.getMatnr() + "的领取数量超出申请限制"); }); } - if (qitem.isUseChildren()) { + if (!qitem.isQiTao() || qitem.isUseChildren()) { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes())) .throwMessage("需要提供扫码信息"); qitem.getQrCodes().forEach(qrCode -> { 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 06f97837..aa37ddd6 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 @@ -322,7 +322,7 @@ public class TransferFactoryController extends BaseController { .throwMessage("物料" + materialNo + "的领取数量超出申请限制"); }); } - if (qitem.isUseChildren()) { + if (!qitem.isQiTao() || qitem.isUseChildren()) { VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(qitem.getQrCodes())) .throwMessage("需要提供扫码信息"); qitem.getQrCodes().forEach(qrCode -> { diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java index 2c694f4e..90440f5e 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/NormalPGIControllerService.java @@ -9,6 +9,7 @@ import com.nflg.wms.admin.pojo.dto.QCMaterialSyncDTO; import com.nflg.wms.admin.pojo.dto.ZWM3A17DTO; import com.nflg.wms.admin.repository.SrmMaterialReceiptNoScanCodesRepository; import com.nflg.wms.admin.repository.SrmMaterialReceiptScanCodesRepository; +import com.nflg.wms.common.constant.BarCodeProcessStage; import com.nflg.wms.common.pojo.document.SrmMaterialReceiptNoScanCodes; import com.nflg.wms.common.pojo.document.SrmMaterialReceiptScanCodes; import com.nflg.wms.common.pojo.dto.*; @@ -117,7 +118,6 @@ public class NormalPGIControllerService { * 该方法首先根据订单编号查询订单主表信息,若不存在则返回 null; * 若存在,则进一步查询订单行项目列表,并结合 SAP 系统同步物料相关信息, * 最终组装成 PDAOrderVO 对象返回。 - * * @param orderNo 订单编号,用于查询订单主表和子表数据 * @return PDAOrderVO 包含订单头信息和行项目信息的视图对象;若未找到对应订单则返回 null * @throws Exception 查询或业务处理过程中可能抛出的异常 @@ -479,7 +479,6 @@ public class NormalPGIControllerService { /** * 将检验物料信息推送到SRM系统 - * * @param request SRM检验输入数据传输对象,包含需要推送的检验物料信息 */ private void pushInspectionMaterialsToSRM(SRMInspectionInputDTO request) { @@ -516,7 +515,6 @@ public class NormalPGIControllerService { *

* 该方法首先尝试从Redis缓存中获取SRM Token,如果缓存中不存在或为空, * 则通过OAuth认证接口重新获取Token并存入Redis缓存50分钟。 - * * @return SRM系统认证Token字符串 */ private String GetSRMToken() { @@ -621,6 +619,33 @@ public class NormalPGIControllerService { //编码管理 if (CollectionUtil.isNotEmpty(dto.getQrCodes())) { + //同步箱码信息到物料码中 + List parents = dto.getQrCodes() + .stream() + .filter(qrCode -> qrCode.getPackagingType() == 1) + .toList(); + List children = qrCodeMasterService.lambdaQuery() + .in(WmsQrCodeMaster::getParentBarcodeId, parents + .stream() + .map(WmsQrCodeMaster::getId) + .toList() + ) + .list(); + parents.forEach(p -> { + children.stream() + .filter(c -> c.getParentBarcodeId().equals(p.getId())) + .forEach(c -> { + c.setProcessStage(p.getProcessStage()); + c.setLastScanBy(UserUtil.getUserId()); + c.setLastScanByname(UserUtil.getUserName()); + c.setLastScanTime(LocalDateTime.now()); + c.setFactoryCode(p.getFactoryCode()); + c.setStorageLocation(p.getStorageLocation()); + c.setBinLocation(p.getBinLocation()); + c.setReceiptItemId(p.getReceiptItemId()); + }); + }); + dto.getQrCodes().addAll(children); qrCodeMasterService.updateBarCode(dto.getQrCodes()); } } diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java index 93cee496..9e4390e8 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/service/SapService.java @@ -200,45 +200,45 @@ public class SapService { return JCoUtil.toBean(pl, Zwm00Mb107DTO.class); } - /** - * 查询采购单退库信息 - */ - public ZWM3A05VO zwm3A05(zwm3A05QO qo) { - Map parameters = new HashMap<>(); - parameters.put("I_EBELN", qo.getEbeln()); - parameters.put("I_LIFNR", qo.getLifnr()); - parameters.put("I_MATNR", qo.getMatnr()); - - JCoFunction function = exec("ZWM3A05", parameters, null); - - JCoStructure structure = function.getExportParameterList().getStructure("E_RETURN"); - VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S")) - .throwMessage("SAP:" + structure.getString("MSG")); - - JCoTable ot1 = function.getTableParameterList().getTable("OUTPUT1"); - VUtil.trueThrowBusinessError(ot1.getNumRows() == 0).throwMessage("没有订单数据"); - ot1.setRow(0); - ZWM3A05VO vo = new ZWM3A05VO() - .setEbeln(ot1.getString("EBELN")) - .setLifnr(ot1.getString("LIFNR")) - .setWerks(ot1.getString("WERKS")); - vo.setItems(JCoUtil.toBeanList(ot1, ZWM3A05ItemVO.class)); - - JCoTable ot2 = function.getTableParameterList().getTable("OUTPUT2"); - while (ot2.nextRow()) { - ZWM3A05ItemVO item = vo.getItems().stream() - .filter(it -> StrUtil.equals(it.getEbelp(), ot2.getString("EBELP")) && StrUtil.equals(it.getLfpos(), ot2.getString("LFPOS"))) - .findFirst() - .get(); - item.getSernrs().add(ot2.getString("SERNR")); - } - if (StrUtil.isNotBlank(qo.getEbelp())) { - vo.getItems().removeIf(it -> !StrUtil.equals(it.getEbelp(), qo.getEbelp())); - } - - log.debug("数据:{}", JSONUtil.toJsonStr(vo)); - return vo; - } +// /** +// * 查询采购单退库信息 +// */ +// public ZWM3A05VO zwm3A05(zwm3A05QO qo) { +// Map parameters = new HashMap<>(); +// parameters.put("I_EBELN", qo.getEbeln()); +// parameters.put("I_LIFNR", qo.getLifnr()); +// parameters.put("I_MATNR", qo.getMatnr()); +// +// JCoFunction function = exec("ZWM3A05", parameters, null); +// +// JCoStructure structure = function.getExportParameterList().getStructure("E_RETURN"); +// VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S")) +// .throwMessage("SAP:" + structure.getString("MSG")); +// +// JCoTable ot1 = function.getTableParameterList().getTable("OUTPUT1"); +// VUtil.trueThrowBusinessError(ot1.getNumRows() == 0).throwMessage("没有订单数据"); +// ot1.setRow(0); +// ZWM3A05VO vo = new ZWM3A05VO() +// .setEbeln(ot1.getString("EBELN")) +// .setLifnr(ot1.getString("LIFNR")) +// .setWerks(ot1.getString("WERKS")); +// vo.setItems(JCoUtil.toBeanList(ot1, ZWM3A05ItemVO.class)); +// +// JCoTable ot2 = function.getTableParameterList().getTable("OUTPUT2"); +// while (ot2.nextRow()) { +// ZWM3A05ItemVO item = vo.getItems().stream() +// .filter(it -> StrUtil.equals(it.getEbelp(), ot2.getString("EBELP")) && StrUtil.equals(it.getLfpos(), ot2.getString("LFPOS"))) +// .findFirst() +// .get(); +// item.getSernrs().add(ot2.getString("SERNR")); +// } +// if (StrUtil.isNotBlank(qo.getEbelp())) { +// vo.getItems().removeIf(it -> !StrUtil.equals(it.getEbelp(), qo.getEbelp())); +// } +// +// log.debug("数据:{}", JSONUtil.toJsonStr(vo)); +// return vo; +// } public Pair zwm3A06(String ebeln, List input1, List input2) { Map parameters = new HashMap<>(); @@ -1337,7 +1337,7 @@ public class SapService { Map>> tables = new HashMap<>(); if (CollectionUtil.isNotEmpty(itemList)) { - tables.put("ITEM", JCoUtil.toMapList(itemList)); + tables.put("ITEM_NEW", JCoUtil.toMapList(itemList)); } JCoFunction function = exec("ZWM3A25", "HEAD", parameters, tables); JCoStructure structure = function.getExportParameterList().getStructure("ET_RETURN"); diff --git a/nflg-wms-admin/src/main/resources/template/采购退货申请单.html b/nflg-wms-admin/src/main/resources/template/采购退货申请单.html index 1e4550e8..cc705d57 100644 --- a/nflg-wms-admin/src/main/resources/template/采购退货申请单.html +++ b/nflg-wms-admin/src/main/resources/template/采购退货申请单.html @@ -139,7 +139,7 @@

福建南方路面机械股份有限公司
-
采购入(退)库单
+
采购退库单
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 4b4d9d28..94886055 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 @@ -3,6 +3,7 @@ package com.nflg.wms.common.pojo.vo; import cn.hutool.core.util.StrUtil; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.nflg.wms.common.pojo.qo.QRCodeQO; +import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Positive; import lombok.Data; @@ -83,6 +84,13 @@ public class ZWM3A05ItemVO { * 基本计量单位 */ private String meins; + + /** + * 工厂 + */ + @NotBlank + private String werks; + /** * 库存地点 */ 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 62e56848..8e5f0165 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 @@ -24,12 +24,6 @@ public class ZWM3A05VO { */ private String lifnr; - /** - * 工厂 - */ - @NotBlank - private String werks; - /** * 申请单ID */ diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsQrCodeMasterMapper.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsQrCodeMasterMapper.java index 7e15eac1..7312b2e7 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsQrCodeMasterMapper.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/mapper/WmsQrCodeMasterMapper.java @@ -9,6 +9,8 @@ import com.nflg.wms.common.pojo.qo.QrCodeItemSearchQO; import com.nflg.wms.common.pojo.vo.QrCodeItemVO; import com.nflg.wms.repository.entity.WmsQrCodeMaster; +import java.util.List; + /** *

* Mapper 接口 @@ -22,4 +24,6 @@ public interface WmsQrCodeMasterMapper extends BaseMapper { IPage search(QrCodeItemSearchQO request, Page objectPage); IPage getChildrens(FilterIdSearchQO request, Page objectPage); + + List getChildrenWithParent(List qrCodes); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsQrCodeMasterService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsQrCodeMasterService.java index 21964f5d..911b8663 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsQrCodeMasterService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsQrCodeMasterService.java @@ -10,6 +10,7 @@ import com.nflg.wms.repository.entity.WmsQrCodeMaster; import com.baomidou.mybatisplus.extension.service.IService; import com.nflg.wms.repository.entity.WmsTransferOrders; import jakarta.validation.Valid; +import jakarta.validation.constraints.NotBlank; import java.util.List; @@ -40,11 +41,13 @@ public interface IWmsQrCodeMasterService extends IService { List getByExtendIds(List orderIds); - void updateBatchByCode(List qrCodeMasters); +// void updateBatchByCode(List qrCodeMasters); List getByCodes(List qrCodes); WmsQrCodeMaster getByCode(String qrCode); + List getChildrenWithParent(List qrCodes); + // void updateProcessStage(List qrCodes, short state); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsQrCodeMasterServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsQrCodeMasterServiceImpl.java index 92285244..f4adb7da 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsQrCodeMasterServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsQrCodeMasterServiceImpl.java @@ -149,25 +149,25 @@ public class WmsQrCodeMasterServiceImpl extends ServiceImpl qrCodeMasters) { - if (CollectionUtil.isNotEmpty(qrCodeMasters)) { - List dbQrCodeMasters = lambdaQuery() - .in(WmsQrCodeMaster::getBarcodeCode, qrCodeMasters.stream().map(WmsQrCodeMaster::getBarcodeCode).toList()) - .list(); - qrCodeMasters.forEach(qrCodeMaster -> { - qrCodeMaster.setId( - dbQrCodeMasters.stream() - .filter(q -> q.getBarcodeCode().equals(qrCodeMaster.getBarcodeCode())) - .findFirst() - .get() - .getId() - ); - }); - updateBatchById(qrCodeMasters); - } - } +// @Transactional +// @Override +// public void updateBatchByCode(List qrCodeMasters) { +// if (CollectionUtil.isNotEmpty(qrCodeMasters)) { +// List dbQrCodeMasters = lambdaQuery() +// .in(WmsQrCodeMaster::getBarcodeCode, qrCodeMasters.stream().map(WmsQrCodeMaster::getBarcodeCode).toList()) +// .list(); +// qrCodeMasters.forEach(qrCodeMaster -> { +// qrCodeMaster.setId( +// dbQrCodeMasters.stream() +// .filter(q -> q.getBarcodeCode().equals(qrCodeMaster.getBarcodeCode())) +// .findFirst() +// .get() +// .getId() +// ); +// }); +// updateBatchById(qrCodeMasters); +// } +// } @Override public List getByCodes(List qrCodes) { @@ -183,6 +183,11 @@ public class WmsQrCodeMasterServiceImpl extends ServiceImpl getChildrenWithParent(List qrCodes) { + return baseMapper.getChildrenWithParent(qrCodes); + } + // @Override // public void updateProcessStage(List qrCodes, short state) { // lambdaUpdate() diff --git a/nflg-wms-repository/src/main/resources/mapper/WmsQrCodeMasterMapper.xml b/nflg-wms-repository/src/main/resources/mapper/WmsQrCodeMasterMapper.xml index dd58a7e5..0bd50d0b 100644 --- a/nflg-wms-repository/src/main/resources/mapper/WmsQrCodeMasterMapper.xml +++ b/nflg-wms-repository/src/main/resources/mapper/WmsQrCodeMasterMapper.xml @@ -90,4 +90,20 @@ where a.parent_barcode_id = #{request.id} order by a.id desc + + diff --git a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java index 6b853698..3a57d422 100644 --- a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java +++ b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/controller/SRMController.java @@ -5,6 +5,7 @@ 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.common.constant.BarCodeProcessStage; import com.nflg.wms.common.pojo.dto.SRMOrderReceiveDTO; import com.nflg.wms.common.pojo.dto.SRMQualityInspectionResultDTO; import com.nflg.wms.common.pojo.qo.SRMOrderReceiveItemQO; @@ -53,6 +54,9 @@ public class SRMController extends BaseController { @Resource private IWmsQcReceiveService qcReceiveService; + @Resource + private IWmsQrCodeMasterService qrCodeMasterService; + /** * 接收SRM送货单 */ @@ -180,6 +184,11 @@ public class SRMController extends BaseController { .set(WmsQcReceive::getIsCheck, isCheck) .update(); qcReceiveItemService.updateCheckNum(inspect.getInspectionQty(), inspect.getNoteNum(), inspect.getLineNumber(), inspect.getItemCode(), inspect.getReceiveNum()); +// qrCodeMasterService.lambdaUpdate() +// .set(WmsQrCodeMaster::getPackagingType, BarCodeProcessStage.Checked.getState()) +// .eq(WmsQrCodeMaster::getReceiptItemId, receiveItem.getId()) +// .update(); + //TODO 是否需要修改对应二维码的状态 log.error("质检单生成上架任务成功"); return 0; } catch (Exception ex) { diff --git a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/service/SapService.java b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/service/SapService.java index 41548974..23051741 100644 --- a/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/service/SapService.java +++ b/nflg-wms-srm-receive/src/main/java/com/nflg/wms/srm/receive/service/SapService.java @@ -200,65 +200,65 @@ public class SapService { return JCoUtil.toBean(pl, Zwm00Mb107DTO.class); } - /** - * 查询采购单退库信息 - */ - public ZWM3A05VO zwm3A05(zwm3A05QO qo) { - Map parameters = new HashMap<>(); - parameters.put("I_EBELN", qo.getEbeln()); - parameters.put("I_LIFNR", qo.getLifnr()); - parameters.put("I_MATNR", qo.getMatnr()); +// /** +// * 查询采购单退库信息 +// */ +// public ZWM3A05VO zwm3A05(zwm3A05QO qo) { +// Map parameters = new HashMap<>(); +// parameters.put("I_EBELN", qo.getEbeln()); +// parameters.put("I_LIFNR", qo.getLifnr()); +// parameters.put("I_MATNR", qo.getMatnr()); +// +// JCoFunction function = exec("ZWM3A05", parameters, null); +// +// JCoStructure structure = function.getExportParameterList().getStructure("E_RETURN"); +// VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S")) +// .throwMessage("SAP:" + structure.getString("MSG")); +// +// JCoTable ot1 = function.getTableParameterList().getTable("OUTPUT1"); +// VUtil.trueThrowBusinessError(ot1.getNumRows() == 0).throwMessage("没有订单数据"); +// ot1.setRow(0); +// ZWM3A05VO vo = new ZWM3A05VO() +// .setEbeln(ot1.getString("EBELN")) +// .setLifnr(ot1.getString("LIFNR")) +// .setWerks(ot1.getString("WERKS")); +// vo.setItems(JCoUtil.toBeanList(ot1, ZWM3A05ItemVO.class)); +// +// JCoTable ot2 = function.getTableParameterList().getTable("OUTPUT2"); +// while (ot2.nextRow()) { +// ZWM3A05ItemVO item = vo.getItems().stream() +// .filter(it -> StrUtil.equals(it.getEbelp(), ot2.getString("EBELP")) && StrUtil.equals(it.getLfpos(), ot2.getString("LFPOS"))) +// .findFirst() +// .get(); +// item.getSernrs().add(ot2.getString("SERNR")); +// } +// if (StrUtil.isNotBlank(qo.getEbelp())) { +// vo.getItems().removeIf(it -> !StrUtil.equals(it.getEbelp(), qo.getEbelp())); +// } +// +// log.debug("数据:{}", JSONUtil.toJsonStr(vo)); +// return vo; +// } - JCoFunction function = exec("ZWM3A05", parameters, null); - - JCoStructure structure = function.getExportParameterList().getStructure("E_RETURN"); - VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S")) - .throwMessage("SAP:" + structure.getString("MSG")); - - JCoTable ot1 = function.getTableParameterList().getTable("OUTPUT1"); - VUtil.trueThrowBusinessError(ot1.getNumRows() == 0).throwMessage("没有订单数据"); - ot1.setRow(0); - ZWM3A05VO vo = new ZWM3A05VO() - .setEbeln(ot1.getString("EBELN")) - .setLifnr(ot1.getString("LIFNR")) - .setWerks(ot1.getString("WERKS")); - vo.setItems(JCoUtil.toBeanList(ot1, ZWM3A05ItemVO.class)); - - JCoTable ot2 = function.getTableParameterList().getTable("OUTPUT2"); - while (ot2.nextRow()) { - ZWM3A05ItemVO item = vo.getItems().stream() - .filter(it -> StrUtil.equals(it.getEbelp(), ot2.getString("EBELP")) && StrUtil.equals(it.getLfpos(), ot2.getString("LFPOS"))) - .findFirst() - .get(); - item.getSernrs().add(ot2.getString("SERNR")); - } - if (StrUtil.isNotBlank(qo.getEbelp())) { - vo.getItems().removeIf(it -> !StrUtil.equals(it.getEbelp(), qo.getEbelp())); - } - - log.debug("数据:{}", JSONUtil.toJsonStr(vo)); - return vo; - } - - public Pair zwm3A06(String ebeln, List input1, List input2) { - Map parameters = new HashMap<>(); - parameters.put("I_EBELN", ebeln); - - Map>> tables = new HashMap<>(); - if (CollectionUtil.isNotEmpty(input1)) { - tables.put("INPUT1", JCoUtil.toMapList(input1)); - } - if (CollectionUtil.isNotEmpty(input2)) { - tables.put("INPUT2", JCoUtil.toMapList(input2)); - } - - JCoParameterList jparameters = execReturnParameter("ZWM3A06", parameters, tables); - JCoStructure structure = jparameters.getStructure("OUTPUT"); - VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S")) - .throwMessage("SAP:" + structure.getString("MSG")); - - return Pair.of(structure.getString("MAT_DOC"), structure.getString("DOC_YEAR")); - } +// public Pair zwm3A06(String ebeln, List input1, List input2) { +// Map parameters = new HashMap<>(); +// parameters.put("I_EBELN", ebeln); +// +// Map>> tables = new HashMap<>(); +// if (CollectionUtil.isNotEmpty(input1)) { +// tables.put("INPUT1", JCoUtil.toMapList(input1)); +// } +// if (CollectionUtil.isNotEmpty(input2)) { +// tables.put("INPUT2", JCoUtil.toMapList(input2)); +// } +// +// JCoParameterList jparameters = execReturnParameter("ZWM3A06", parameters, tables); +// JCoStructure structure = jparameters.getStructure("OUTPUT"); +// VUtil.trueThrowBusinessError(!StrUtil.equals(structure.getString("TYPE"), "S")) +// .throwMessage("SAP:" + structure.getString("MSG")); +// +// return Pair.of(structure.getString("MAT_DOC"), structure.getString("DOC_YEAR")); +// } /** * 扫码质检入库