feat(wms): 添加调拨单明细批量修改功能

- 在 IWmsTransferOrderItemService 接口中添加 batchUpdateItems 方法定义
- 在 WmsTransferOrderItemController 中添加 /batchUpdate 接口端点
- 实现 WmsTransferOrderItemServiceImpl 中的批量更新逻辑
- 支持仅更新有值字段的批量修改操作
- 集成 MyBatis-Plus 的 Db 工具类进行批量更新
- 添加事务注解确保数据一致性处理
This commit is contained in:
2026-05-18 14:19:31 +08:00
parent 84f5ec7521
commit a947987e82
3 changed files with 40 additions and 0 deletions

View File

@@ -116,6 +116,17 @@ public class WmsTransferOrderItemController extends BaseController {
return R.ok(iWmsTransferOrderItemService.matchOrCreateItemByCoilIds(pairs));
}
/**
* 批量修改调拨单明细
*/
@Log(title = "调拨单明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/batchUpdate")
public R<Void> batchUpdate(@RequestBody List<WmsTransferOrderItemBo> list) {
iWmsTransferOrderItemService.batchUpdateItems(list);
return R.ok();
}
/**
* 批量新增调拨单明细
*/

View File

@@ -73,4 +73,9 @@ public interface IWmsTransferOrderItemService {
* 根据钢卷列表匹配或创建物料
*/
Map<Long, Long> matchOrCreateItemByCoilIds(List<WmsTransferOrderItemBo> pairs);
/**
* 批量修改调拨单明细(仅修改有值的字段)
*/
void batchUpdateItems(List<WmsTransferOrderItemBo> list);
}

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.klp.common.utils.StringUtils;
import com.klp.domain.*;
import com.klp.domain.bo.WmsMaterialCoilBo;
@@ -651,6 +652,29 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
return true;
}
/**
* 批量修改调拨单明细(仅修改有值的字段)
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void batchUpdateItems(List<WmsTransferOrderItemBo> list) {
List<WmsTransferOrderItem> entityList = list.stream().map(bo -> {
WmsTransferOrderItem entity = new WmsTransferOrderItem();
entity.setOrderItemId(bo.getOrderItemId());
if (bo.getItemIdAfter() != null) {
entity.setItemIdAfter(bo.getItemIdAfter());
}
if (bo.getMaterialTypeAfter() != null) {
entity.setMaterialTypeAfter(bo.getMaterialTypeAfter());
}
if (bo.getWarehouseIdAfter() != null) {
entity.setWarehouseIdAfter(bo.getWarehouseIdAfter());
}
return entity;
}).collect(Collectors.toList());
baseMapper.updateBatchById(entityList, entityList.size());
}
/**
* 根据钢卷列表匹配或创建物料
*/