feat(wms): 添加调拨订单项目调拨状态字段

- 在 WmsTransferOrderItem 实体中新增 isTransferred 字段用于标识是否已调拨
- 在 WmsTransferOrderItemBo 和 WmsTransferOrderItemVo 中同步添加调拨状态字段
- 在 MyBatis 映射文件中配置 isTransferred 字段映射关系
- 在查询条件中增加调拨状态过滤功能
- 添加调拨单审批状态校验逻辑确保只有审批通过才能调拨
- 在调拨操作完成后设置项目为已调拨状态(isTransferred=1)
This commit is contained in:
2026-04-10 10:25:04 +08:00
parent 1bbd3a6f4d
commit c323ef7a52
5 changed files with 29 additions and 0 deletions

View File

@@ -60,6 +60,10 @@ public class WmsTransferOrderItem extends BaseEntity {
* 备注
*/
private String remark;
/**
* 是否已经调拨 0-未调拨 1-已调拨
*/
private Integer isTransferred;
/**
* 删除标记(0正常 1删除)
*/

View File

@@ -74,4 +74,9 @@ public class WmsTransferOrderItemBo extends BaseEntity {
*/
private String remark;
/**
* 是否已经调拨 0-未调拨 1-已调拨
*/
private Integer isTransferred;
}

View File

@@ -79,6 +79,11 @@ public class WmsTransferOrderItemVo {
@ExcelProperty(value = "备注")
private String remark;
/**
* 是否已经调拨 0-未调拨 1-已调拨
*/
private Integer isTransferred;
// ========== 改之前物料信息 ==========
/**
* 改之前物料类型名称

View File

@@ -327,6 +327,7 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
lqw.eq(bo.getMaterialTypeAfter() != null, WmsTransferOrderItem::getMaterialTypeAfter, bo.getMaterialTypeAfter());
lqw.eq(bo.getWarehouseIdBefore() != null, WmsTransferOrderItem::getWarehouseIdBefore, bo.getWarehouseIdBefore());
lqw.eq(bo.getWarehouseIdAfter() != null, WmsTransferOrderItem::getWarehouseIdAfter, bo.getWarehouseIdAfter());
lqw.eq(bo.getIsTransferred() != null, WmsTransferOrderItem::getIsTransferred, bo.getIsTransferred());
return lqw;
}
@@ -533,6 +534,18 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
throw new IllegalArgumentException("调拨明细不存在");
}
// 校验调拨单审批状态
if (item.getTransferId() != null) {
WmsTransferOrder wmsTransferOrder = wmsTransferOrderMapper.selectById(item.getTransferId());
if (wmsTransferOrder == null) {
throw new IllegalArgumentException("调拨单不存在");
}
// 审批状态: 0-待审批 1-已通过 2-已驳回
if (wmsTransferOrder.getApproveStatus() == null || wmsTransferOrder.getApproveStatus() != 1) {
throw new IllegalArgumentException("审批未通过,不能调拨");
}
}
// 确定最终值:如果没传则使用改之前的值
Long finalItemId = itemId != null ? itemId : item.getItemIdBefore();
Long finalMaterialType = bo.getMaterialTypeAfter() != null ? bo.getMaterialTypeAfter() : item.getMaterialTypeBefore();
@@ -558,6 +571,7 @@ public class WmsTransferOrderItemServiceImpl implements IWmsTransferOrderItemSer
item.setItemIdAfter(finalItemId);
item.setMaterialTypeAfter(finalMaterialType);
item.setWarehouseIdAfter(finalWarehouseId);
item.setIsTransferred(1); // 标记为已调拨
baseMapper.updateById(item);
// 更新钢卷信息

View File

@@ -15,6 +15,7 @@
<result property="warehouseIdBefore" column="warehouse_id_before"/>
<result property="warehouseIdAfter" column="warehouse_id_after"/>
<result property="remark" column="remark"/>
<result property="isTransferred" column="is_transferred"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>