| | |
| | | import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.batchconfig.MesMdItemBatchConfigSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemBatchConfigService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService; |
| | | import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| | | import jakarta.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | * MES 物料产品 API 实现类 |
| | | * |
| | | * 供 MDM 等模块同步物料主数据到 MES 使用。 |
| | | * 单位、分类按 code 在 MES 侧解析为对应 id。 |
| | | * 单位按 code 在 MES 侧解析为对应 id。 |
| | | * |
| | | * @author 芋道源码 |
| | | * @author 超级管理员 |
| | | */ |
| | | @Service |
| | | @Validated |
| | |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesMdItemMapper itemMapper; |
| | | @Resource |
| | | private MesMdItemTypeService itemTypeService; |
| | | @Resource |
| | | private MesMdUnitMeasureService unitMeasureService; |
| | | @Resource |
| | |
| | | } |
| | | |
| | | /** |
| | | * 将同步 DTO 转换为 MES 物料产品 SaveReqVO,并按 code 解析单位/分类 id |
| | | * 将同步 DTO 转换为 MES 物料产品 SaveReqVO,并按 code 解析单位 id |
| | | * |
| | | * MDM 品种管理已去掉「品种分类」,同步不再设置物料分类(item_type_id 留空,可在 MES 侧手工补填) |
| | | */ |
| | | private MesMdItemSaveReqVO buildSaveReqVO(MesMdItemSyncReqDTO syncReqDTO) { |
| | | // 解析计量单位 code -> id |
| | |
| | | if (unitMeasure == null) { |
| | | throw exception(MD_UNIT_MEASURE_NOT_EXISTS); |
| | | } |
| | | // 解析物料分类 code -> id |
| | | MesMdItemTypeDO itemType = itemTypeService.getItemTypeByCode(syncReqDTO.getItemTypeCode()); |
| | | if (itemType == null) { |
| | | throw exception(MD_ITEM_TYPE_NOT_EXISTS); |
| | | } |
| | | // 组装(code/name/specification/safeStockFlag/minStock/maxStock/highValue/batchFlag/remark 同名拷贝) |
| | | MesMdItemSaveReqVO saveReqVO = BeanUtils.toBean(syncReqDTO, MesMdItemSaveReqVO.class); |
| | | saveReqVO.setUnitMeasureId(unitMeasure.getId()); |
| | | saveReqVO.setItemTypeId(itemType.getId()); |
| | | return saveReqVO; |
| | | } |
| | | |