diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkorderController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkorderController.java index 971eaf9..cbea09d 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkorderController.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkorderController.java @@ -165,21 +165,23 @@ public class MesProWorkOrderController { convertSet(list, MesProWorkOrderDO::getClientId)); Map vendorMap = vendorService.getVendorMap( convertSet(list, MesProWorkOrderDO::getVendorId)); + // 单位从产品关联的 item 获得 Map unitMeasureMap = unitMeasureService.getUnitMeasureMap( - convertSet(list, MesProWorkOrderDO::getUnitMeasureId)); + convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId)); Map parentMap = workOrderService.getWorkOrderMap( convertSet(list, MesProWorkOrderDO::getParentId)); - // 2. 拼接 VO + // 2. 拼接 VO(单位名称从产品关联的 item 获得) return BeanUtils.toBean(list, MesProWorkOrderRespVO.class, vo -> { - MapUtils.findAndThen(itemMap, vo.getProductId(), item -> - vo.setProductName(item.getName()).setProductCode(item.getCode()) - .setProductSpec(item.getSpecification())); + MapUtils.findAndThen(itemMap, vo.getProductId(), item -> { + vo.setProductName(item.getName()).setProductCode(item.getCode()) + .setProductSpec(item.getSpecification()); + MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(), + unitMeasure -> vo.setUnitMeasureName(unitMeasure.getName())); + }); MapUtils.findAndThen(clientMap, vo.getClientId(), client -> vo.setClientName(client.getName()).setClientCode(client.getCode())); MapUtils.findAndThen(vendorMap, vo.getVendorId(), vendor -> vo.setVendorName(vendor.getName()).setVendorCode(vendor.getCode())); - MapUtils.findAndThen(unitMeasureMap, vo.getUnitMeasureId(), - unitMeasure -> vo.setUnitMeasureName(unitMeasure.getName())); MapUtils.findAndThen(parentMap, vo.getParentId(), parent -> vo.setParentCode(parent.getCode())); }); diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderRespVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderRespVO.java index 4a5f114..a42d36b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderRespVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderRespVO.java @@ -57,9 +57,6 @@ public class MesProWorkOrderRespVO { @ExcelProperty("规格型号") private String productSpec; - @Schema(description = "单位编号", example = "200") - private Long unitMeasureId; - @Schema(description = "单位名称", example = "个") @ExcelProperty("单位") private String unitMeasureName; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderSaveReqVO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderSaveReqVO.java index aeb5f28..74de03b 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderSaveReqVO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/vo/MesProWorkorderSaveReqVO.java @@ -38,10 +38,6 @@ public class MesProWorkOrderSaveReqVO { @NotNull(message = "产品不能为空") private Long productId; - @Schema(description = "单位编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "200") - @NotNull(message = "单位不能为空") - private Long unitMeasureId; - @Schema(description = "生产数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "100.00") @NotNull(message = "生产数量不能为空") private BigDecimal quantity; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/workorder/MesProWorkorderDO.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/workorder/MesProWorkorderDO.java index dd6152a..6ff101a 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/workorder/MesProWorkorderDO.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/pro/workorder/MesProWorkorderDO.java @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; -import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO; import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderSourceTypeEnum; import cn.iocoder.yudao.module.mes.enums.pro.MesProWorkOrderStatusEnum; @@ -72,12 +71,6 @@ public class MesProWorkOrderDO extends BaseDO { */ private Long productId; /** - * 单位编号 - * - * 关联 {@link MesMdUnitMeasureDO#getId()} - */ - private Long unitMeasureId; - /** * 生产数量 */ private BigDecimal quantity; diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderBomServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderBomServiceImpl.java index aa1f1c6..6bef776 100644 --- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderBomServiceImpl.java +++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkorderBomServiceImpl.java @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.mes.service.pro.workorder; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderSaveReqVO; import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.bom.MesProWorkOrderBomPageReqVO; @@ -18,9 +17,13 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Set; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.MD_ITEM_NOT_EXISTS; import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.PRO_WORK_ORDER_BOM_NOT_EXISTS; @@ -113,7 +116,7 @@ public class MesProWorkOrderBomServiceImpl implements MesProWorkOrderBomService return; } // 2.2 批量获取并校验 BOM 物料 - Set bomItemIds = CollectionUtils.convertSet(productBomList, MesMdProductBomDO::getBomItemId); + Set bomItemIds = convertSet(productBomList, MesMdProductBomDO::getBomItemId); Map itemMap = itemService.getItemMap(bomItemIds); bomItemIds.forEach(itemId -> { if (itemMap.get(itemId) == null) {