refactor(transfer): 优化转库订单项目确认逻辑

- 移除 WmsTransferOrderItemBo 中的 itemType 字段
- 将 itemType 替换为 materialTypeAfter 的转换逻辑
- 添加对 itemId、itemType 和 warehouseId 的空值检查
- 实现字段选择性更新机制
- 修复查询条件添加 transferId 筛选
- 完善默认值回退逻辑
This commit is contained in:
2026-03-28 11:47:33 +08:00
parent c554508000
commit 6e23e932da
2 changed files with 23 additions and 12 deletions

View File

@@ -74,9 +74,4 @@ public class WmsTransferOrderItemBo extends BaseEntity {
*/ */
private String remark; private String remark;
/**
* 物料类型
*/
private String itemType;
} }

View File

@@ -375,9 +375,10 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean confirmTransfer(WmsTransferOrderItemBo bo) { public Boolean confirmTransfer(WmsTransferOrderItemBo bo) {
Long transferId = bo.getTransferId();
Long coilId = bo.getCoilId(); Long coilId = bo.getCoilId();
Long itemId = bo.getItemIdAfter(); Long itemId = bo.getItemIdAfter();
String itemType = bo.getItemType(); String itemType = bo.getMaterialTypeAfter() != null ? (bo.getMaterialTypeAfter() == 1 ? "raw_material" : "product") : null;
Long warehouseId = bo.getWarehouseIdAfter(); Long warehouseId = bo.getWarehouseIdAfter();
if (coilId == null) { if (coilId == null) {
@@ -389,18 +390,33 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
throw new IllegalArgumentException("钢卷不存在"); throw new IllegalArgumentException("钢卷不存在");
} }
coil.setItemId(itemId); // 如果传了才修改钢卷
coil.setItemType(itemType); if (itemId != null) {
coil.setWarehouseId(warehouseId); coil.setItemId(itemId);
}
if (itemType != null) {
coil.setItemType(itemType);
}
if (warehouseId != null) {
coil.setWarehouseId(warehouseId);
}
coilMapper.updateById(coil); coilMapper.updateById(coil);
LambdaQueryWrapper<WmsTransferOrderItem> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<WmsTransferOrderItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WmsTransferOrderItem::getCoilId, coilId); wrapper.eq(WmsTransferOrderItem::getCoilId, coilId);
wrapper.eq(WmsTransferOrderItem::getTransferId, transferId);
WmsTransferOrderItem item = baseMapper.selectOne(wrapper); WmsTransferOrderItem item = baseMapper.selectOne(wrapper);
if (item != null) { if (item != null) {
item.setItemIdAfter(itemId); // 如果没传itemIdAfter则用itemIdBefore的值
item.setMaterialTypeAfter(Objects.equals(itemType, "raw_material") ? 1L : 2L); item.setItemIdAfter(itemId != null ? itemId : item.getItemIdBefore());
item.setWarehouseIdAfter(warehouseId); // 如果没传materialTypeAfter则用materialTypeBefore的值
if (bo.getMaterialTypeAfter() != null) {
item.setMaterialTypeAfter(bo.getMaterialTypeAfter());
} else {
item.setMaterialTypeAfter(item.getMaterialTypeBefore());
}
// 如果没传warehouseIdAfter则用warehouseIdBefore的值
item.setWarehouseIdAfter(warehouseId != null ? warehouseId : item.getWarehouseIdBefore());
baseMapper.updateById(item); baseMapper.updateById(item);
} }