From 62eb5aedfb2770bfebcb4238df8819d7e1c8ffd9 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Fri, 27 Mar 2026 16:43:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=B7=BB=E5=8A=A0=E8=B0=83?= =?UTF-8?q?=E6=8B=A8=E5=8D=95=E6=98=8E=E7=BB=86=E6=89=B9=E9=87=8F=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 IWmsTransferOrderItemService 中添加 batchInsert 方法 - 在 WmsTransferOrderItemBo 中新增 coilIds 字段用于接收钢卷id列表 - 在 WmsTransferOrderItemController 中添加 /batch 接口支持批量新增 - 在 WmsTransferOrderItemServiceImpl 中实现批量插入业务逻辑 - 新增 WmsMaterialCoil 相关依赖注入和数据查询操作 - 实现根据 itemType 自动设置 materialType 的转换逻辑 --- .../WmsTransferOrderItemController.java | 10 +++++ .../klp/domain/bo/WmsTransferOrderItemBo.java | 7 ++++ .../service/IWmsTransferOrderItemService.java | 5 +++ .../impl/WmsTransferOrderItemServiceImpl.java | 39 +++++++++++++++++++ 4 files changed, 61 insertions(+) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java b/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java index 332b8efb..735a7caf 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsTransferOrderItemController.java @@ -106,4 +106,14 @@ public class WmsTransferOrderItemController extends BaseController { @NotNull(message = "itemType不能为空") String itemType) { return R.ok(iWmsTransferOrderItemService.matchOrCreateMaterial(itemId, itemType)); } + + /** + * 批量新增调拨单明细 + */ + @Log(title = "调拨单明细", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/batch") + public R batchAdd(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) { + return toAjax(iWmsTransferOrderItemService.batchInsert(bo)); + } } diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsTransferOrderItemBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsTransferOrderItemBo.java index 00d45d8a..05bbbfb8 100644 --- a/klp-wms/src/main/java/com/klp/domain/bo/WmsTransferOrderItemBo.java +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsTransferOrderItemBo.java @@ -3,6 +3,8 @@ package com.klp.domain.bo; import com.klp.common.core.domain.BaseEntity; import lombok.Data; import lombok.EqualsAndHashCode; + +import java.util.List; import javax.validation.constraints.*; @@ -32,6 +34,11 @@ public class WmsTransferOrderItemBo extends BaseEntity { */ private Long coilId; + /** + * 钢卷id列表(批量新增用) + */ + private List coilIds; + /** * 调拨前itemId */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsTransferOrderItemService.java b/klp-wms/src/main/java/com/klp/service/IWmsTransferOrderItemService.java index 6fdff47e..929eaccb 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsTransferOrderItemService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsTransferOrderItemService.java @@ -52,4 +52,9 @@ public interface IWmsTransferOrderItemService { * itemType: "raw_material"-原料, "product"-成品 */ Long matchOrCreateMaterial(Long itemId, String itemType); + + /** + * 批量新增调拨单明细 + */ + Boolean batchInsert(WmsTransferOrderItemBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java index fd6d7fd2..a111991c 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsTransferOrderItemServiceImpl.java @@ -13,15 +13,18 @@ import com.klp.domain.vo.WmsTransferOrderItemVo; import com.klp.domain.WmsTransferOrderItem; import com.klp.domain.WmsRawMaterial; import com.klp.domain.WmsProduct; +import com.klp.domain.WmsMaterialCoil; import com.klp.mapper.WmsTransferOrderItemMapper; import com.klp.mapper.WmsRawMaterialMapper; import com.klp.mapper.WmsProductMapper; +import com.klp.mapper.WmsMaterialCoilMapper; import com.klp.service.IWmsTransferOrderItemService; import java.util.List; import java.util.Map; import java.util.Collection; import java.util.Objects; +import java.util.ArrayList; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -40,6 +43,7 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer private final WmsTransferOrderItemMapper baseMapper; private final WmsRawMaterialMapper rawMaterialMapper; private final WmsProductMapper productMapper; + private final WmsMaterialCoilMapper coilMapper; /** * 查询调拨单明细 @@ -201,4 +205,39 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer rawMaterialMapper.insert(newRawMaterial); return newRawMaterial.getRawMaterialId(); } + + /** + * 批量新增调拨单明细 + */ + @Override + public Boolean batchInsert(WmsTransferOrderItemBo bo) { + Long transferId = bo.getTransferId(); + List coilIds = bo.getCoilIds(); + if (transferId == null || coilIds == null || coilIds.isEmpty()) { + throw new IllegalArgumentException("transferId和coilIds不能为空"); + } + + List coils = coilMapper.selectBatchIds(coilIds); + if (coils.isEmpty()) { + throw new IllegalArgumentException("钢卷不存在"); + } + + List items = new ArrayList<>(); + for (WmsMaterialCoil coil : coils) { + WmsTransferOrderItem item = new WmsTransferOrderItem(); + item.setTransferId(transferId); + item.setCoilId(coil.getCoilId()); + item.setItemIdBefore(coil.getItemId()); + // 根据 itemType 设置 materialType: raw_material -> 1, product -> 2 + if ("raw_material".equals(coil.getItemType())) { + item.setMaterialTypeBefore(1L); + } else if ("product".equals(coil.getItemType())) { + item.setMaterialTypeBefore(2L); + } + item.setWarehouseIdBefore(coil.getWarehouseId()); + items.add(item); + } + + return baseMapper.insertBatch(items); + } }