From 1ea7db9ae3739ae6b4cc32bac2bbb8c589f5f7a7 Mon Sep 17 00:00:00 2001 From: zhangke Date: Fri, 1 Aug 2025 10:31:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E5=AE=9E=E7=8E=B0=E6=94=B6?= =?UTF-8?q?=E8=B4=A7=E5=8D=95=E6=8E=A8=E9=80=81SRM=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化了普通物料收货流程 --- .../service/NormalPGIControllerService.java | 340 ++++++++++-------- .../IWmsSrmMaterialReceiptService.java | 9 +- .../WmsSrmMaterialReceiptServiceImpl.java | 36 +- 3 files changed, 225 insertions(+), 160 deletions(-) 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 7af389fa..52e908e6 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 @@ -25,10 +25,9 @@ import org.springframework.web.client.RestTemplate; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import static cn.dev33.satoken.SaManager.log; @@ -74,139 +73,151 @@ public class NormalPGIControllerService { @Resource private StringRedisTemplate stringRedisTemplate; + /** + * 根据订单编号获取订单详情信息,包括订单头信息和订单行项目信息。 + *

+ * 该方法首先根据订单编号查询订单主表信息,若不存在则返回 null; + * 若存在,则进一步查询订单行项目列表,并结合 SAP 系统同步物料相关信息, + * 最终组装成 PDAOrderVO 对象返回。 + * + * @param orderNo 订单编号,用于查询订单主表和子表数据 + * @return PDAOrderVO 包含订单头信息和行项目信息的视图对象;若未找到对应订单则返回 null + * @throws Exception 查询或业务处理过程中可能抛出的异常 + */ public PDAOrderVO getOrderItemByOrderNo(@RequestParam String orderNo) throws Exception { - //return ApiResult.success(wmsSrmOrderItemService.getOrderItem(orderId)); - PDAOrderVO pdaOrderVO = new PDAOrderVO(); - + // 根据订单编号查询订单主表信息 WmsSrmOrder order = wmsSrmOrderService.lambdaQuery().eq(WmsSrmOrder::getNoteNum, orderNo).one(); if (Objects.isNull(order)) return null; + PDAOrderVO pdaOrderVO = new PDAOrderVO(); + // 设置订单头基本信息 pdaOrderVO.setNoteNum(order.getNoteNum()); pdaOrderVO.setSupplierNum(order.getSupplierNum()); pdaOrderVO.setSupplierName(order.getSupplierName()); - List orderItemList = wmsSrmOrderItemService.lambdaQuery().eq(WmsSrmOrderItem::getOrderId, order.getId()).list(); - if (CollectionUtil.isNotEmpty(orderItemList)) { - List orderItemVOList = new ArrayList<>(); + // 查询订单行项目列表 + List orderItemList = wmsSrmOrderItemService.lambdaQuery() + .eq(WmsSrmOrderItem::getOrderId, order.getId()) + .list(); - for (WmsSrmOrderItem item : orderItemList) { - PDAOrderItemVO itemVO = new PDAOrderItemVO(); - itemVO.setId(item.getId()); - itemVO.setPoLineNumber(item.getPoLineNumber()); - itemVO.setPoNum(item.getPoNum()); - itemVO.setItemCode(item.getItemCode()); - itemVO.setItemName(item.getItemName()); - itemVO.setIsQuality(item.getIsQuality()); - itemVO.setOrderQty(item.getOrderQty()); - itemVO.setUomCode(item.getUomCode()); - itemVO.setDeliveryQty(item.getDeliveryQty()); - - - SAPSyncParamsDTO syncParamsDTO = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), order.getSupplierNum(), item.getItemCode()); - if (Objects.nonNull(syncParamsDTO)) { - itemVO.setItemName(syncParamsDTO.getMaktx()); - itemVO.setUomCode(syncParamsDTO.getMeins()); - itemVO.setOrderQty(syncParamsDTO.getMenge()); - itemVO.setReceivedWarehouse(syncParamsDTO.getWarehouseNo()); - itemVO.setBinNos(syncParamsDTO.getBinNos()); - itemVO.setLbprt(syncParamsDTO.getLbprt()); - itemVO.setTransportNum(syncParamsDTO.getTransportNum()); - boolean isQuality ; - if (syncParamsDTO.getKzkri().equals("X")) - isQuality = true; - else - isQuality = false; - - itemVO.setIsQuality(isQuality); - - orderItemVOList.add(itemVO); - } - - } - - pdaOrderVO.setOrderItemVOList(orderItemVOList); + if (CollectionUtil.isEmpty(orderItemList)) { + return pdaOrderVO; } + // if (CollectionUtil.isNotEmpty(orderItemList)) { + List orderItemVOList = new ArrayList<>(); + // 遍历订单行项目,填充详细信息并从 SAP 获取补充数据 + for (WmsSrmOrderItem item : orderItemList) { + PDAOrderItemVO itemVO = new PDAOrderItemVO(); + itemVO.setId(item.getId()); + itemVO.setPoLineNumber(item.getPoLineNumber()); + itemVO.setPoNum(item.getPoNum()); + itemVO.setItemCode(item.getItemCode()); + itemVO.setItemName(item.getItemName()); + itemVO.setIsQuality(item.getIsQuality()); + itemVO.setOrderQty(item.getOrderQty()); + itemVO.setUomCode(item.getUomCode()); + itemVO.setDeliveryQty(item.getDeliveryQty()); + // 从 SAP 系统获取物料相关信息 + SAPSyncParamsDTO syncParamsDTO = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), order.getSupplierNum(), item.getItemCode()); + if (Objects.nonNull(syncParamsDTO)) { + itemVO.setItemName(syncParamsDTO.getMaktx()); + itemVO.setUomCode(syncParamsDTO.getMeins()); + itemVO.setOrderQty(syncParamsDTO.getMenge()); + itemVO.setReceivedWarehouse(syncParamsDTO.getWarehouseNo()); + itemVO.setBinNos(syncParamsDTO.getBinNos()); + itemVO.setLbprt(syncParamsDTO.getLbprt()); + itemVO.setTransportNum(syncParamsDTO.getTransportNum()); + // 判断是否质检 + boolean isQuality = "X".equals(syncParamsDTO.getKzkri()); + itemVO.setIsQuality(isQuality); + orderItemVOList.add(itemVO); + } + } + // 设置订单行项目列表到返回对象中 + pdaOrderVO.setOrderItemVOList(orderItemVOList); return pdaOrderVO; } - @Transactional - public void takeDelivery(List request) { - VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("收货参数为空"); - List receipts = new ArrayList<>(); - List receiptitems = new ArrayList<>(); - List tasks = new ArrayList<>(); - List srmLineVOListItems = new ArrayList<>(); - request.forEach(item -> { - SAPSyncParamsDTO materialInfoInOrder = null; - try { - materialInfoInOrder = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), item.getSupplierNum(), item.getItemCode()); - } catch (Exception e) { - log.error("获取物料信息失败", e); - throw new RuntimeException(e); - } - VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("无法获取到有效订单信息" + item.getPoNum()); - //判断收货数量是否大于了未收数量 - VUtil.trueThrowBusinessError(item.getReceiptNum().add(item.getCrossNumber()).compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("无法获取到有效订单信息" + item.getPoNum()); - //判断序列号、批次号是否规范 - // 1 - 批次号为空,序列号为空 - // 2 - 批次号必填,序列号为空 - // 3 - 批次号为空,序列号必填 - // 4 - 批次号必填,序列号必填 + private void validateScanCodes(SrmMaterialReceiptQO item, SAPSyncParamsDTO materialInfoInOrder) { + String lbprt = materialInfoInOrder.getLbprt(); + //判断序列号、批次号是否规范 + // 1 - 批次号为空,序列号为空 + // 2 - 批次号必填,序列号为空 + // 3 - 批次号为空,序列号必填 + // 4 - 批次号必填,序列号必填 + if ("2".equals(lbprt) || "4".equals(lbprt)) { + VUtil.trueThrowBusinessError( + CollectionUtil.isEmpty(item.getScanCodes()) || + item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getBatchNumber())) + ).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号,订单号:" + item.getPoNum()); + } - //批次號必填 - if (materialInfoInOrder.getLbprt().equals("2") || materialInfoInOrder.getLbprt().equals("4")) { - VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getScanCodes()) || item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getBatchNumber()))).throwMessage("此物料[" + item.getItemCode() + "]必须填写批次号" + item.getPoNum()); - } + if ("3".equals(lbprt) || "4".equals(lbprt)) { + VUtil.trueThrowBusinessError( + CollectionUtil.isEmpty(item.getScanCodes()) || + item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getSerialNumber())) + ).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号,订单号:" + item.getPoNum()); + } + } - //序列號必填 - if (materialInfoInOrder.getLbprt().equals("3") || materialInfoInOrder.getLbprt().equals("4")) { - VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(item.getScanCodes()) || item.getScanCodes().stream().anyMatch(code -> StrUtil.isBlank(code.getSerialNumber()))).throwMessage("此物料[" + item.getItemCode() + "]必须填写序列号" + item.getPoNum()); - } - List serialNumbers = new ArrayList<>(); - List batchNumbers = new ArrayList<>(); - boolean isQuality = materialInfoInOrder.getKzkri().equals("X") ? true : false; - if (!isQuality) { - // 保存收货信息 - WmsSrmMaterialReceipt receipt = new WmsSrmMaterialReceipt(); - Long receiptId = IdUtil.getSnowflakeNextId(); - receipt.setId(receiptId); - receipt.setOrderItemId(item.getOrderItemId()); - receipt.setReceiptNum(item.getReceiptNum()); - receipt.setCrossNumber(item.getCrossNumber()); - receipt.setIsQuality(isQuality); - receipt.setCreateTime(LocalDateTime.now()); - receipt.setCreateUserId(UserUtil.getUserId()); - receipt.setCreateUserName(UserUtil.getUserName()); + /** + * 推送质检物料到SRM + */ + private void pushInspectionMaterialsToSRM(SrmMaterialReceiptQO receiptQO, List srmLineVOListItems) { + SRMInspectionInputDTO pushDto = new SRMInspectionInputDTO(); + SRMInspectionContentDTO content = new SRMInspectionContentDTO(); + content.setLineVOList(srmLineVOListItems); + content.setSupplierName(receiptQO.getSupplierName()); + content.setSupplierNum(receiptQO.getSupplierNum()); + content.setReceiveNum("ZJ-" + receiptQO.getNoteNum()); + content.setReceiveType("BY_DELIVERY"); + pushDto.setContent(content); + pushDto.setCode("SCAN_RCV_RECEIVE_TO_SRM"); + pushInspectionMaterialsToSRM(pushDto); + } + /** + * 收货单、质检单、任务单组装 + */ + private void generyReceipt(SrmMaterialReceiptQO item, + boolean isQuality, + SAPSyncParamsDTO materialInfoInOrder, + List receipts, + List receiptItems, + List tasks, + List srmLineVOListItems + ) { + // 保存收货信息 + WmsSrmMaterialReceipt receipt = new WmsSrmMaterialReceipt(); + Long receiptId = IdUtil.getSnowflakeNextId(); + receipt.setId(receiptId); + receipt.setOrderItemId(item.getOrderItemId()); + receipt.setReceiptNum(item.getReceiptNum()); + receipt.setCrossNumber(item.getCrossNumber()); + receipt.setIsQuality(isQuality); + receipt.setCreateTime(LocalDateTime.now()); + receipt.setCreateUserId(UserUtil.getUserId()); + receipt.setCreateUserName(UserUtil.getUserName()); + //条码内容 + if (CollectionUtil.isNotEmpty(item.getScanCodes())) { + item.getScanCodes().forEach(scanCode -> { + WmsSrmMaterialReceiptItem receiptItem = new WmsSrmMaterialReceiptItem(); + receiptItem.setCodeId(scanCode.getCodeId()); + receiptItem.setCodeNum(scanCode.getCodeNum()); + receiptItem.setBatchNumber(scanCode.getBatchNumber()); + receiptItem.setSerialNumber(scanCode.getSerialNumber()); + receiptItem.setCodeContent(scanCode.getCodeContent()); + receiptItem.setOrderItemId(item.getOrderItemId()); + receiptItem.setCreateUserId(UserUtil.getUserId()); + receiptItem.setCreateUserName(UserUtil.getUserName()); + receiptItem.setCreateTime(LocalDateTime.now()); + receiptItem.setReceiptId(receiptId); + receiptItem.setId(IdUtil.getSnowflakeNextId()); + receiptItems.add(receiptItem); - //条码内容 - if (CollectionUtil.isNotEmpty(item.getScanCodes())) { - item.getScanCodes().forEach(scanCode -> { - WmsSrmMaterialReceiptItem receiptItem = new WmsSrmMaterialReceiptItem(); - receiptItem.setCodeId(scanCode.getCodeId()); - receiptItem.setCodeNum(scanCode.getCodeNum()); - receiptItem.setBatchNumber(scanCode.getBatchNumber()); - receiptItem.setSerialNumber(scanCode.getSerialNumber()); - receiptItem.setCodeContent(scanCode.getCodeContent()); - receiptItem.setOrderItemId(item.getOrderItemId()); - receiptItem.setCreateUserId(UserUtil.getUserId()); - receiptItem.setCreateUserName(UserUtil.getUserName()); - receiptItem.setCreateTime(LocalDateTime.now()); - receiptItem.setReceiptId(receiptId); - receiptItem.setId(IdUtil.getSnowflakeNextId()); - receiptitems.add(receiptItem); - if (!serialNumbers.contains(receiptItem.getSerialNumber())) { - serialNumbers.add(receiptItem.getSerialNumber()); - } - if (!batchNumbers.contains(receiptItem.getBatchNumber())) { - batchNumbers.add(receiptItem.getBatchNumber()); - } - }); - } - receipts.add(receipt); - //生成上架任务 + //上架任务 WmsInTaskItem taskItem = new WmsInTaskItem(); taskItem.setPoNum(item.getPoNum()) .setPoLineNumber(item.getPoLineNumber()) @@ -225,57 +236,72 @@ public class NormalPGIControllerService { .setFactory(materialInfoInOrder.getWerks()) .setDataStatus((short) 0) .setFailResult("") - .setSerialNumber(serialNumbers.isEmpty() ? "" : String.join(";", serialNumbers)) - .setBatchNumber(batchNumbers.isEmpty() ? "" : String.join(";", batchNumbers)) + .setSerialNumber(scanCode.getSerialNumber()) + .setBatchNumber(scanCode.getBatchNumber()) .setInspectionQty(new BigDecimal(0.00)) .setSupplierNum(item.getSupplierNum()) .setInspectionOrder(""); tasks.add(taskItem); - } else { - //质检物料发送到质检单 - SRMLineVOListItem srmItem = new SRMLineVOListItem(); - srmItem.setItemCode(item.getItemCode()); - srmItem.setItemName(materialInfoInOrder.getMaktx()); - srmItem.setUnit(materialInfoInOrder.getMeins()); - srmItem.setFactory(materialInfoInOrder.getWerks()); - srmItem.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo()); - srmItem.setReceiveBatchNum(batchNumbers.isEmpty() ? "" : String.join(";", batchNumbers)); - srmItem.setReceivedQty(item.getReceiptNum()); - srmItem.setSerialNum(serialNumbers.isEmpty() ? "" : String.join(";", serialNumbers)); - srmItem.setLineNumber(Integer.valueOf(item.getLineNumber())); - srmItem.setNoteNum(item.getNoteNum()); - srmItem.setReceivedDate(DateTime.now()); - srmItem.setInspectionFlag("Y"); - srmLineVOListItems.add(srmItem); - } + if (isQuality) { + //质检物料发送到质检单 + SRMLineVOListItem srmItem = new SRMLineVOListItem(); + srmItem.setItemCode(item.getItemCode()); + srmItem.setItemName(materialInfoInOrder.getMaktx()); + srmItem.setUnit(materialInfoInOrder.getMeins()); + srmItem.setFactory(materialInfoInOrder.getWerks()); + srmItem.setReceivedWarehouse(materialInfoInOrder.getWarehouseNo()); + srmItem.setReceiveBatchNum(scanCode.getBatchNumber()); + srmItem.setReceivedQty(item.getReceiptNum()); + srmItem.setSerialNum(scanCode.getSerialNumber()); + srmItem.setLineNumber(Integer.valueOf(item.getLineNumber())); + srmItem.setNoteNum(item.getNoteNum()); + srmItem.setReceivedDate(DateTime.now()); + srmItem.setInspectionFlag("Y"); + srmLineVOListItems.add(srmItem); + } + }); + } + receipts.add(receipt); + } + + /** + * 保存送货信息 + * */ + public void takeDelivery(List request) { + VUtil.trueThrowBusinessError(CollectionUtil.isEmpty(request)).throwMessage("收货参数为空"); + List receipts = new ArrayList<>(); + List receiptitems = new ArrayList<>(); + List tasks = new ArrayList<>(); + List srmLineVOListItems = new ArrayList<>(); + + request.forEach(item -> { + SAPSyncParamsDTO materialInfoInOrder = null; + try { + materialInfoInOrder = sapCommonService.getMaterialInfoInOrder(item.getPoNum(), item.getSupplierNum(), item.getItemCode()); + } catch (Exception e) { + log.error("获取物料信息失败", e); + throw new RuntimeException(e); + } + VUtil.trueThrowBusinessError(Objects.isNull(materialInfoInOrder)).throwMessage("无法获取到有效订单信息" + item.getPoNum()); + //数量验证(判断收货数量是否大于了未收数量) + VUtil.trueThrowBusinessError(item.getReceiptNum().add(item.getCrossNumber()).compareTo(materialInfoInOrder.getTransportNum()) > 0).throwMessage("无法获取到有效订单信息" + item.getPoNum()); + //序列号和批次号验证 + validateScanCodes(item, materialInfoInOrder); + boolean isQuality = materialInfoInOrder.getKzkri().equals("X") ? true : false; + // 生成相关单据 + generyReceipt(item, isQuality, materialInfoInOrder, receipts, receiptitems, tasks, srmLineVOListItems); }); + //推送质检单 if (Objects.nonNull(srmLineVOListItems) && !srmLineVOListItems.isEmpty()) { SrmMaterialReceiptQO receiptQO = request.get(0); - SRMInspectionInputDTO pushDto = new SRMInspectionInputDTO(); - SRMInspectionContentDTO content = new SRMInspectionContentDTO(); - content.setLineVOList(srmLineVOListItems); - content.setSupplierName(receiptQO.getSupplierName()); - content.setSupplierNum(receiptQO.getSupplierNum()); - content.setReceiveNum("ZJ-" + receiptQO.getNoteNum()); - content.setReceiveType("BY_DELIVERY"); - pushDto.setContent(content); - pushDto.setCode("SCAN_RCV_RECEIVE_TO_SRM"); - pushInspectionMaterialsToSRM(pushDto); - } - - if (Objects.nonNull(receipts) && !receipts.isEmpty()) { - wmsSrmMaterialReceiptService.saveBatch(receipts); - } - if (Objects.nonNull(receipts) && !receipts.isEmpty()) { - wmsSrmMaterialReceiptItemService.saveBatch(receiptitems); - } - if (Objects.nonNull(receipts) && !receipts.isEmpty()) { - if (!taskService.generateTask(tasks, (short) 1)) - log.error("收货单生成上架任务失败"); + pushInspectionMaterialsToSRM(receiptQO, srmLineVOListItems); } + //生成wms的单据 + wmsSrmMaterialReceiptService.generateReceiptInfo(receipts, receiptitems, tasks); } + /** * 将检验物料信息推送到SRM系统 * diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsSrmMaterialReceiptService.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsSrmMaterialReceiptService.java index a9d3d17d..7ad19a54 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsSrmMaterialReceiptService.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/IWmsSrmMaterialReceiptService.java @@ -1,11 +1,15 @@ package com.nflg.wms.repository.service; +import com.nflg.wms.repository.entity.WmsInTaskItem; import com.nflg.wms.repository.entity.WmsSrmMaterialReceipt; import com.baomidou.mybatisplus.extension.service.IService; +import com.nflg.wms.repository.entity.WmsSrmMaterialReceiptItem; + +import java.util.List; /** *

- * 服务类 + * 服务类 *

* * @author 代码生成器生成 @@ -13,4 +17,7 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IWmsSrmMaterialReceiptService extends IService { + void generateReceiptInfo(List receipts, + List receiptitems, + List tasks); } diff --git a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmMaterialReceiptServiceImpl.java b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmMaterialReceiptServiceImpl.java index b07eaede..b8914527 100644 --- a/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmMaterialReceiptServiceImpl.java +++ b/nflg-wms-repository/src/main/java/com/nflg/wms/repository/service/impl/WmsSrmMaterialReceiptServiceImpl.java @@ -1,14 +1,23 @@ package com.nflg.wms.repository.service.impl; +import com.nflg.wms.repository.entity.WmsInTaskItem; import com.nflg.wms.repository.entity.WmsSrmMaterialReceipt; +import com.nflg.wms.repository.entity.WmsSrmMaterialReceiptItem; import com.nflg.wms.repository.mapper.WmsSrmMaterialReceiptMapper; -import com.nflg.wms.repository.service.IWmsSrmMaterialReceiptService; +import com.nflg.wms.repository.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Objects; + +import static cn.dev33.satoken.SaManager.log; /** *

- * 服务实现类 + * 服务实现类 *

* * @author 代码生成器生成 @@ -17,4 +26,27 @@ import org.springframework.stereotype.Service; @Service public class WmsSrmMaterialReceiptServiceImpl extends ServiceImpl implements IWmsSrmMaterialReceiptService { + @Resource + private IWmsSrmMaterialReceiptItemService wmsSrmMaterialReceiptItemService; + + @Resource + private IWmsSrmMaterialReceiptService wmsSrmMaterialReceiptService; + + @Resource + private IWmsInTaskService taskService; + + @Override + @Transactional + public void generateReceiptInfo(List receipts, List receiptitems, List tasks) { + if (Objects.nonNull(receipts) && !receipts.isEmpty()) { + wmsSrmMaterialReceiptService.saveBatch(receipts); + } + if (Objects.nonNull(receipts) && !receipts.isEmpty()) { + wmsSrmMaterialReceiptItemService.saveBatch(receiptitems); + } + if (Objects.nonNull(receipts) && !receipts.isEmpty()) { + if (!taskService.generateTask(tasks, (short) 1)) + log.error("收货单生成上架任务失败"); + } + } }