Commit b886ad6f8f3081f4e47742a500bba9d19c3ad6d6
1 parent
b69aad26
✨ feat(mes): 添加物料产品状态更新功能,优化物料分类选择器
Showing
2 changed files
with
13 additions
and
3 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/ErrorCodeConstants.java
| @@ -34,6 +34,7 @@ public interface ErrorCodeConstants { | @@ -34,6 +34,7 @@ public interface ErrorCodeConstants { | ||
| 34 | // ========== MES 基础数据-物料批次属性配置(1-040-102-100) ========== | 34 | // ========== MES 基础数据-物料批次属性配置(1-040-102-100) ========== |
| 35 | ErrorCode MD_ITEM_BATCH_CONFIG_NOT_EXISTS = new ErrorCode(1_040_102_100, "物料批次属性配置不存在"); | 35 | ErrorCode MD_ITEM_BATCH_CONFIG_NOT_EXISTS = new ErrorCode(1_040_102_100, "物料批次属性配置不存在"); |
| 36 | ErrorCode MD_ITEM_BATCH_CONFIG_AT_LEAST_ONE_FLAG = new ErrorCode(1_040_102_101, "批次管理已启用,至少需要配置一个批次属性"); | 36 | ErrorCode MD_ITEM_BATCH_CONFIG_AT_LEAST_ONE_FLAG = new ErrorCode(1_040_102_101, "批次管理已启用,至少需要配置一个批次属性"); |
| 37 | + ErrorCode MD_ITEM_PRODUCT_BOM_REQUIRED = new ErrorCode(1_040_102_102, "产品类物料启用前,必须配置至少一个 BOM 组成"); | ||
| 37 | 38 | ||
| 38 | // ========== MES 仓库管理-批次管理(1-040-717-000) ========== | 39 | // ========== MES 仓库管理-批次管理(1-040-717-000) ========== |
| 39 | ErrorCode WM_BATCH_PRODUCE_DATE_REQUIRED = new ErrorCode(1_040_717_000, "批次配置要求生产日期不能为空"); | 40 | ErrorCode WM_BATCH_PRODUCE_DATE_REQUIRED = new ErrorCode(1_040_717_000, "批次配置要求生产日期不能为空"); |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/item/MesMdItemServiceImpl.java
| @@ -105,9 +105,18 @@ public class MesMdItemServiceImpl implements MesMdItemService { | @@ -105,9 +105,18 @@ public class MesMdItemServiceImpl implements MesMdItemService { | ||
| 105 | public void updateItemStatus(Long id, Integer status) { | 105 | public void updateItemStatus(Long id, Integer status) { |
| 106 | // 校验存在 | 106 | // 校验存在 |
| 107 | MesMdItemDO item = validateItemExists(id); | 107 | MesMdItemDO item = validateItemExists(id); |
| 108 | - // 如果启用,校验批次属性配置 | ||
| 109 | - if (CommonStatusEnum.isEnable(status) && Boolean.TRUE.equals(item.getBatchFlag())) { | ||
| 110 | - validateBatchConfigExists(id); | 108 | + if (CommonStatusEnum.isEnable(status)) { |
| 109 | + // 如果启用了批次管理,校验批次属性配置 | ||
| 110 | + if (Boolean.TRUE.equals(item.getBatchFlag())) { | ||
| 111 | + validateBatchConfigExists(id); | ||
| 112 | + } | ||
| 113 | + // 如果是产品类型,校验必须配置 BOM | ||
| 114 | + MesMdItemTypeDO itemType = itemTypeService.getItemType(item.getItemTypeId()); | ||
| 115 | + if (itemType != null && "PRODUCT".equals(itemType.getItemOrProduct())) { | ||
| 116 | + if (CollUtil.isEmpty(productBomService.getProductBomListByItemId(id))) { | ||
| 117 | + throw exception(MD_ITEM_PRODUCT_BOM_REQUIRED); | ||
| 118 | + } | ||
| 119 | + } | ||
| 111 | } | 120 | } |
| 112 | 121 | ||
| 113 | // 更新状态 | 122 | // 更新状态 |