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. 查询订单明细