新增接口同时插入主表和详情表数据

This commit is contained in:
2025-07-19 15:35:31 +08:00
parent 8b527ff02f
commit 85c721d3af
4 changed files with 94 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -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);
}
}
}
/**
* 审核出入库/移库单,变更库存,含库存校验
*/