refactor(transfer): 优化转库订单项目确认逻辑
- 移除 WmsTransferOrderItemBo 中的 itemType 字段 - 将 itemType 替换为 materialTypeAfter 的转换逻辑 - 添加对 itemId、itemType 和 warehouseId 的空值检查 - 实现字段选择性更新机制 - 修复查询条件添加 transferId 筛选 - 完善默认值回退逻辑
This commit is contained in:
@@ -74,9 +74,4 @@ public class WmsTransferOrderItemBo extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 物料类型
|
||||
*/
|
||||
private String itemType;
|
||||
|
||||
}
|
||||
|
||||
@@ -375,9 +375,10 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean confirmTransfer(WmsTransferOrderItemBo bo) {
|
||||
Long transferId = bo.getTransferId();
|
||||
Long coilId = bo.getCoilId();
|
||||
Long itemId = bo.getItemIdAfter();
|
||||
String itemType = bo.getItemType();
|
||||
String itemType = bo.getMaterialTypeAfter() != null ? (bo.getMaterialTypeAfter() == 1 ? "raw_material" : "product") : null;
|
||||
Long warehouseId = bo.getWarehouseIdAfter();
|
||||
|
||||
if (coilId == null) {
|
||||
@@ -389,18 +390,33 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
|
||||
throw new IllegalArgumentException("钢卷不存在");
|
||||
}
|
||||
|
||||
coil.setItemId(itemId);
|
||||
coil.setItemType(itemType);
|
||||
coil.setWarehouseId(warehouseId);
|
||||
// 如果传了才修改钢卷
|
||||
if (itemId != null) {
|
||||
coil.setItemId(itemId);
|
||||
}
|
||||
if (itemType != null) {
|
||||
coil.setItemType(itemType);
|
||||
}
|
||||
if (warehouseId != null) {
|
||||
coil.setWarehouseId(warehouseId);
|
||||
}
|
||||
coilMapper.updateById(coil);
|
||||
|
||||
LambdaQueryWrapper<WmsTransferOrderItem> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(WmsTransferOrderItem::getCoilId, coilId);
|
||||
wrapper.eq(WmsTransferOrderItem::getTransferId, transferId);
|
||||
WmsTransferOrderItem item = baseMapper.selectOne(wrapper);
|
||||
if (item != null) {
|
||||
item.setItemIdAfter(itemId);
|
||||
item.setMaterialTypeAfter(Objects.equals(itemType, "raw_material") ? 1L : 2L);
|
||||
item.setWarehouseIdAfter(warehouseId);
|
||||
// 如果没传itemIdAfter则用itemIdBefore的值
|
||||
item.setItemIdAfter(itemId != null ? itemId : item.getItemIdBefore());
|
||||
// 如果没传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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user