feat(transfer): 新增调拨单明细确认功能

- 在IWmsTransferOrderItemService接口中添加confirmTransfer方法
- 在WmsTransferOrderItemBo中增加itemType字段用于物料类型标识
- 创建WmsTransferOrderItemController的confirm端点处理确认请求
- 实现WmsTransferOrderItemServiceImpl中的confirmTransfer业务逻辑
- 集成IWmsMaterialCoilService服务更新钢卷相关状态信息
- 完成调拨单明细数据同步更新确保数据一致性
This commit is contained in:
2026-03-27 16:59:20 +08:00
parent 5be8f2857e
commit b842f267cc
4 changed files with 58 additions and 0 deletions

View File

@@ -116,4 +116,14 @@ public class WmsTransferOrderItemController extends BaseController {
public R<Void> batchAdd(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) {
return toAjax(iWmsTransferOrderItemService.batchInsert(bo));
}
/**
* 确认调拨
*/
@Log(title = "调拨单明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PostMapping("/confirm")
public R<Void> confirm(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) {
return toAjax(iWmsTransferOrderItemService.confirmTransfer(bo));
}
}

View File

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

View File

@@ -57,4 +57,9 @@ public interface IWmsTransferOrderItemService {
* 批量新增调拨单明细
*/
Boolean batchInsert(WmsTransferOrderItemBo bo);
/**
* 确认调拨
*/
Boolean confirmTransfer(WmsTransferOrderItemBo bo);
}

View File

@@ -19,6 +19,7 @@ import com.klp.mapper.WmsRawMaterialMapper;
import com.klp.mapper.WmsProductMapper;
import com.klp.mapper.WmsMaterialCoilMapper;
import com.klp.service.IWmsTransferOrderItemService;
import com.klp.service.IWmsMaterialCoilService;
import java.util.List;
import java.util.Map;
@@ -44,6 +45,7 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
private final WmsRawMaterialMapper rawMaterialMapper;
private final WmsProductMapper productMapper;
private final WmsMaterialCoilMapper coilMapper;
private final IWmsMaterialCoilService coilService;
/**
* 查询调拨单明细
@@ -240,4 +242,41 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
return baseMapper.insertBatch(items);
}
/**
* 确认调拨
*/
@Override
public Boolean confirmTransfer(WmsTransferOrderItemBo bo) {
Long coilId = bo.getCoilId();
Long itemId = bo.getItemIdAfter();
String itemType = bo.getItemType();
Long warehouseId = bo.getWarehouseIdAfter();
if (coilId == null) {
throw new IllegalArgumentException("coilId不能为空");
}
WmsMaterialCoil coil = coilMapper.selectById(coilId);
if (coil == null) {
throw new IllegalArgumentException("钢卷不存在");
}
coil.setItemId(itemId);
coil.setItemType(itemType);
coil.setWarehouseId(warehouseId);
coilMapper.updateById(coil);
LambdaQueryWrapper<WmsTransferOrderItem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(WmsTransferOrderItem::getCoilId, coilId);
WmsTransferOrderItem item = baseMapper.selectOne(wrapper);
if (item != null) {
item.setItemIdAfter(itemId);
item.setMaterialTypeAfter(Objects.equals(itemType, "raw_material") ? 1L : 2L);
item.setWarehouseIdAfter(warehouseId);
baseMapper.updateById(item);
}
return true;
}
}