diff --git a/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java b/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java index 1721550d..4a87fb5a 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsStockIoController.java @@ -23,6 +23,7 @@ import com.klp.domain.vo.WmsStockIoVo; import com.klp.domain.bo.WmsStockIoBo; import com.klp.service.IWmsStockIoService; import com.klp.common.core.page.TableDataInfo; +import com.klp.domain.bo.WmsStockIoWithDetailBo; /** * 出入库单主表 @@ -77,6 +78,15 @@ public class WmsStockIoController extends BaseController { return toAjax(iWmsStockIoService.insertByBo(bo)); } + /** + * 批量新增主表和明细 + */ + @PostMapping("/withDetail") + public R addWithDetail(@RequestBody WmsStockIoWithDetailBo bo) { + iWmsStockIoService.addWithDetail(bo); + return R.ok(); + } + /** * 修改出入库单主 */ @@ -132,8 +142,9 @@ public class WmsStockIoController extends BaseController { */ @Log(title = "出入库单主", businessType = BusinessType.UPDATE) @PostMapping("/updateStatus/{stockIoId}") - public R updateStatus(@NotNull(message = "主键不能为空") @PathVariable Long stockIoId, + public R updateStatus(@NotNull(message = "主键不能为空") @PathVariable Long stockIoId, @RequestParam Integer status) { return toAjax(iWmsStockIoService.updateStatus(stockIoId, status)); } + } diff --git a/klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoWithDetailBo.java b/klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoWithDetailBo.java new file mode 100644 index 00000000..c42b6611 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/bo/WmsStockIoWithDetailBo.java @@ -0,0 +1,55 @@ +package com.klp.domain.bo; + +import com.klp.common.core.validate.AddGroup; +import com.klp.common.core.validate.EditGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; +import java.math.BigDecimal; + +/** + * 出入库单主+明细批量插入业务对象 + */ +@Data +public class WmsStockIoWithDetailBo { + // 主表字段 + /** + * 出入库单ID + */ + private Long stockIoId; + + /** + * 出入库单号 + */ + @NotBlank(message = "出入库单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String stockIoCode; + + /** + * 类型(in=入库,out=出库) + */ + @NotBlank(message = "类型(in=入库,out=出库)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String ioType; + + /** + * 业务类型(采购、销售、退货、调拨等) + */ + @NotBlank(message = "业务类型(采购、销售、退货、调拨等)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String bizType; + + /** + * 单据状态(0=草稿,1=已提交,2=已审核,3=已完成) + */ + @NotNull(message = "单据状态(0=草稿,1=已提交,2=已审核,3=已完成)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer status; + + /** + * 备注 + */ + private String remark; + // ...如有其他主表字段可补充 + + // 明细列表 + private List details; +} diff --git a/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java b/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java index e1763339..bfb21a22 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsStockIoService.java @@ -4,6 +4,7 @@ import com.klp.domain.WmsStockIo; import com.klp.domain.vo.WmsStockIoDetailVo; import com.klp.domain.vo.WmsStockIoVo; import com.klp.domain.bo.WmsStockIoBo; +import com.klp.domain.bo.WmsStockIoWithDetailBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; @@ -67,4 +68,9 @@ public interface IWmsStockIoService { * 更新出入库单状态 */ Boolean updateStatus(Long stockIoId, Integer status); + + /** + * 批量新增主表和明细 + */ + void addWithDetail(WmsStockIoWithDetailBo bo); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java index c6f831ba..af46b1fc 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsStockIoServiceImpl.java @@ -29,6 +29,8 @@ import java.util.List; import java.util.Map; import java.util.Collection; import com.klp.common.exception.ServiceException; +import com.klp.domain.bo.WmsStockIoWithDetailBo; +import com.klp.domain.bo.WmsStockIoDetailBo; /** * 出入库单主Service业务层处理 @@ -123,6 +125,25 @@ public class WmsStockIoServiceImpl implements IWmsStockIoService { return baseMapper.deleteBatchIds(ids) > 0; } + /** + * 批量新增主表和明细 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void addWithDetail(WmsStockIoWithDetailBo bo) { + // 插入主表 + WmsStockIo stockIo = BeanUtil.toBean(bo, WmsStockIo.class); + baseMapper.insert(stockIo); + // 插入明细 + if (bo.getDetails() != null && !bo.getDetails().isEmpty()) { + for (WmsStockIoDetailBo detailBo : bo.getDetails()) { + WmsStockIoDetail detail = BeanUtil.toBean(detailBo, WmsStockIoDetail.class); + detail.setStockIoId(stockIo.getStockIoId()); + stockIoDetailMapper.insert(detail); + } + } + } + /** * 审核出入库/移库单,变更库存,含库存校验 */