gaoluyang
2026-11-03 8e4eee5ad4d74e1a4e6ab4de3a9c28000700dce0
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stockwarning/MesWmStockWarningServiceImpl.java
@@ -8,10 +8,12 @@
import cn.iocoder.yudao.module.mes.controller.admin.wm.stockwarning.vo.MesWmStockWarningRulePageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stockwarning.vo.MesWmStockWarningRuleRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.wm.stockwarning.vo.MesWmStockWarningRuleSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.mdm.MesMdmItemDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stockwarning.MesWmStockWarningRuleDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.warehouse.MesWmWarehouseDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.stockwarning.MesWmStockWarningRuleMapper;
import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseService;
import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
@@ -50,6 +52,8 @@
    private MesWmStockWarningRuleMapper ruleMapper;
    @Resource
    private MesMdmItemService mdmItemService;
    @Resource
    private MesMdUnitMeasureService unitMeasureService;
    @Resource
    private MesWmWarehouseService warehouseService;
    @Resource
@@ -144,6 +148,9 @@
        // 3. 逐条规则判断是否预警
        Map<Long, MesMdmItemDO> itemMap = mdmItemService.getItemMap(
                convertSet(rules, MesWmStockWarningRuleDO::getItemId));
        // 物料单位来自计量单位表,缺失时前端会显示「--」,这里补齐便于仓管直接判断缺口大小
        Map<Long, MesMdUnitMeasureDO> unitMap = unitMeasureService.getUnitMeasureMap(
                convertSet(itemMap.values(), MesMdmItemDO::getUnitMeasureId));
        Map<Long, MesWmWarehouseDO> warehouseMap = warehouseService.getWarehouseMap(
                convertSet(rules, MesWmStockWarningRuleDO::getWarehouseId));
        List<MesWmStockWarningAlertRespVO> alertList = new ArrayList<>();
@@ -168,6 +175,10 @@
            if (item != null) {
                alert.setItemCode(item.getCode());
                alert.setItemName(item.getName());
                MesMdUnitMeasureDO unit = unitMap.get(item.getUnitMeasureId());
                if (unit != null) {
                    alert.setUnitName(unit.getName());
                }
            }
            MesWmWarehouseDO warehouse = warehouseMap.get(rule.getWarehouseId());
            if (warehouse != null) {