新增接口同时插入主表和详情表数据
This commit is contained in:
@@ -23,6 +23,7 @@ import com.klp.domain.vo.WmsStockIoVo;
|
|||||||
import com.klp.domain.bo.WmsStockIoBo;
|
import com.klp.domain.bo.WmsStockIoBo;
|
||||||
import com.klp.service.IWmsStockIoService;
|
import com.klp.service.IWmsStockIoService;
|
||||||
import com.klp.common.core.page.TableDataInfo;
|
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));
|
return toAjax(iWmsStockIoService.insertByBo(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增主表和明细
|
||||||
|
*/
|
||||||
|
@PostMapping("/withDetail")
|
||||||
|
public R<Void> addWithDetail(@RequestBody WmsStockIoWithDetailBo bo) {
|
||||||
|
iWmsStockIoService.addWithDetail(bo);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改出入库单主
|
* 修改出入库单主
|
||||||
*/
|
*/
|
||||||
@@ -132,8 +142,9 @@ public class WmsStockIoController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@Log(title = "出入库单主", businessType = BusinessType.UPDATE)
|
@Log(title = "出入库单主", businessType = BusinessType.UPDATE)
|
||||||
@PostMapping("/updateStatus/{stockIoId}")
|
@PostMapping("/updateStatus/{stockIoId}")
|
||||||
public R<Void> updateStatus(@NotNull(message = "主键不能为空") @PathVariable Long stockIoId,
|
public R<Void> updateStatus(@NotNull(message = "主键不能为空") @PathVariable Long stockIoId,
|
||||||
@RequestParam Integer status) {
|
@RequestParam Integer status) {
|
||||||
return toAjax(iWmsStockIoService.updateStatus(stockIoId, status));
|
return toAjax(iWmsStockIoService.updateStatus(stockIoId, status));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<WmsStockIoDetailBo> details;
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import com.klp.domain.WmsStockIo;
|
|||||||
import com.klp.domain.vo.WmsStockIoDetailVo;
|
import com.klp.domain.vo.WmsStockIoDetailVo;
|
||||||
import com.klp.domain.vo.WmsStockIoVo;
|
import com.klp.domain.vo.WmsStockIoVo;
|
||||||
import com.klp.domain.bo.WmsStockIoBo;
|
import com.klp.domain.bo.WmsStockIoBo;
|
||||||
|
import com.klp.domain.bo.WmsStockIoWithDetailBo;
|
||||||
import com.klp.common.core.page.TableDataInfo;
|
import com.klp.common.core.page.TableDataInfo;
|
||||||
import com.klp.common.core.domain.PageQuery;
|
import com.klp.common.core.domain.PageQuery;
|
||||||
|
|
||||||
@@ -67,4 +68,9 @@ public interface IWmsStockIoService {
|
|||||||
* 更新出入库单状态
|
* 更新出入库单状态
|
||||||
*/
|
*/
|
||||||
Boolean updateStatus(Long stockIoId, Integer status);
|
Boolean updateStatus(Long stockIoId, Integer status);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量新增主表和明细
|
||||||
|
*/
|
||||||
|
void addWithDetail(WmsStockIoWithDetailBo bo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import com.klp.common.exception.ServiceException;
|
import com.klp.common.exception.ServiceException;
|
||||||
|
import com.klp.domain.bo.WmsStockIoWithDetailBo;
|
||||||
|
import com.klp.domain.bo.WmsStockIoDetailBo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 出入库单主Service业务层处理
|
* 出入库单主Service业务层处理
|
||||||
@@ -123,6 +125,25 @@ public class WmsStockIoServiceImpl implements IWmsStockIoService {
|
|||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核出入库/移库单,变更库存,含库存校验
|
* 审核出入库/移库单,变更库存,含库存校验
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user