From 69e1178fee1a9a8b0bc66d8d6322fa995bb4695d Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Sat, 19 Jul 2025 09:49:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=EF=BC=8C?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E9=87=87=E8=B4=AD=E8=AE=A1=E5=88=92=EF=BC=88?= =?UTF-8?q?=E5=90=AB=E6=98=8E=E7=BB=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsPurchasePlanController.java | 7 ++++ .../klp/service/IWmsPurchasePlanService.java | 6 ++++ .../impl/WmsPurchasePlanServiceImpl.java | 33 ++++++++++++++++--- 3 files changed, 41 insertions(+), 5 deletions(-) diff --git a/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java b/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java index 565e5df2..15b9ebe5 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsPurchasePlanController.java @@ -36,6 +36,13 @@ public class WmsPurchasePlanController extends BaseController { private final IWmsPurchasePlanService iWmsPurchasePlanService; + /** + * 新增采购计划(含明细) + */ + @PostMapping("/addWithDetails") + public R addPurchasePlan(@RequestBody WmsPurchasePlanVo planVo) { + return toAjax(iWmsPurchasePlanService.insertWithDetails(planVo)); + } /** * 根据订单ID生成推荐采购计划(只返回,不落库) */ diff --git a/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java b/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java index 886f0f8b..36a46652 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsPurchasePlanService.java @@ -17,6 +17,11 @@ import java.util.List; */ public interface IWmsPurchasePlanService { + /** + * 新增采购计划(含明细) + */ + Boolean insertWithDetails(WmsPurchasePlanVo planVo); + /** * 根据订单ID生成推荐采购计划(只返回,不落库) */ @@ -51,4 +56,5 @@ public interface IWmsPurchasePlanService { * 校验并批量删除采购计划主信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java index ac973913..832f2d12 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsPurchasePlanServiceImpl.java @@ -7,21 +7,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.klp.common.utils.StringUtils; -import com.klp.domain.WmsOrderDetail; import com.klp.domain.WmsProductBom; +import com.klp.domain.WmsPurchasePlanDetail; import com.klp.domain.vo.WmsOrderDetailVo; import com.klp.domain.vo.WmsPurchasePlanDetailVo; -import com.klp.service.IWmsOrderDetailService; -import com.klp.service.IWmsProductBomService; -import com.klp.service.IWmsStockService; +import com.klp.mapper.WmsPurchasePlanDetailMapper; +import com.klp.service.*; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import com.klp.domain.bo.WmsPurchasePlanBo; import com.klp.domain.vo.WmsPurchasePlanVo; import com.klp.domain.WmsPurchasePlan; import com.klp.mapper.WmsPurchasePlanMapper; -import com.klp.service.IWmsPurchasePlanService; +import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; @@ -43,6 +44,28 @@ public class WmsPurchasePlanServiceImpl implements IWmsPurchasePlanService { private final IWmsStockService wmsStockService; + @Resource + private WmsPurchasePlanDetailMapper wmsPurchasePlanDetailMapper; + + @Transactional + @Override + public Boolean insertWithDetails(WmsPurchasePlanVo planVo) { + // 1. 保存主表 + WmsPurchasePlan plan = new WmsPurchasePlan(); + BeanUtils.copyProperties(planVo, plan); + int flag = 0; + flag += baseMapper.insert(plan); + + // 2. 保存明细表 + for (WmsPurchasePlanDetailVo detailVo : planVo.getDetailList()) { + WmsPurchasePlanDetail detail = new WmsPurchasePlanDetail(); + BeanUtils.copyProperties(detailVo, detail); + detail.setPlanId(plan.getPlanId()); // 关联主表ID + flag += wmsPurchasePlanDetailMapper.insert(detail); + } + return flag > 0; + } + @Override public WmsPurchasePlanVo recommendPurchasePlanByOrder(Long orderId) { // 1. 查询订单明细