From ba696174ab62583e36615ad95b95d50c31406433 Mon Sep 17 00:00:00 2001 From: shusir <497819738@qq.com> Date: Wed, 11 Feb 2026 17:56:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=BA=93=E5=AD=98=E9=A2=84=E8=AD=A6?= =?UTF-8?q?=E7=BA=A7=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vo/MaterialProductPageReqVO.java | 5 ++++ .../controller/vo/MaterialProductRespVO.java | 6 ++++ .../dal/dataobject/MaterialProductDO.java | 5 ++++ .../dal/mapper/MaterialProductMapper.java | 1 + .../material/enums/MaterialAcceptStatus.java | 10 +++++++ .../enums/MaterialInventoryAlarmLevel.java | 20 +++++++++++++ .../service/MaterialProductServiceImpl.java | 30 +++++++++++++++++-- 7 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialInventoryAlarmLevel.java diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductPageReqVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductPageReqVO.java index a9299352..fa691806 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductPageReqVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductPageReqVO.java @@ -1,6 +1,8 @@ package com.zt.plat.module.qms.resource.material.controller.vo; +import com.alibaba.excel.annotation.ExcelProperty; import com.zt.plat.framework.common.pojo.PageParam; +import com.zt.plat.module.qms.core.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -91,6 +93,9 @@ public class MaterialProductPageReqVO extends PageParam { @Schema(description = "是否进行库存预警,1-是,0-否") private Integer InventoryAlarmFlag; + @Schema(description = "库存预警级别,safe-安全,warn-警告,danger") + private String InventoryAlarmLevel; + @Schema(description = "库存预警区间,json格式配置") private String InventoryAlarmRange; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java index b792c5e1..cf8d8a97 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/controller/vo/MaterialProductRespVO.java @@ -138,6 +138,12 @@ public class MaterialProductRespVO { @Dict(dicCode = "yes_or_no") private Integer InventoryAlarmFlag; + + @Schema(description = "库存预警级别,safe-安全,warn-警告,danger") + @ExcelProperty("库存预警级别,safe-安全,warn-警告,danger") + @Dict(dicCode = "alarm_level") + private String InventoryAlarmLevel; + @Schema(description = "库存预警区间,json格式配置") @ExcelProperty("库存预警区间,json格式配置") private String InventoryAlarmRange; diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java index dcf8177e..385ba14c 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/dataobject/MaterialProductDO.java @@ -172,6 +172,11 @@ public class MaterialProductDO extends BusinessBaseDO { */ @TableField("INVT_ALM_FLG") private Integer InventoryAlarmFlag; + /** + * 库存预警级别,safe-安全,warn-警告,danger + */ + @TableField("INVT_ALM_LVL") + private String InventoryAlarmLevel; /** * 库存预警区间,json格式配置 */ diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java index bf3a9a53..3256d451 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/dal/mapper/MaterialProductMapper.java @@ -25,6 +25,7 @@ public interface MaterialProductMapper extends BaseMapperX { return selectPage(reqVO, new LambdaQueryWrapperX() .eq(MaterialProductDO::getNodeType, DataTypeConstant.DATA_TYPE_DATA) .eqIfPresent(MaterialProductDO::getParentId, reqVO.getParentId()) + .eqIfPresent(MaterialProductDO::getInventoryAlarmLevel, reqVO.getInventoryAlarmLevel()) .likeIfPresent(MaterialProductDO::getIdPath, reqVO.getIdPath()) .likeIfPresent(MaterialProductDO::getName, reqVO.getName()) .likeIfPresent(MaterialProductDO::getCode, reqVO.getCode()) diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialAcceptStatus.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialAcceptStatus.java index 25610691..c6cc688a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialAcceptStatus.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialAcceptStatus.java @@ -2,9 +2,19 @@ package com.zt.plat.module.qms.resource.material.enums; /** * 物料验收状态 + * */ public enum MaterialAcceptStatus { + /** + * 已验收 + */ accepted, + /** + * 部分验收 + */ partAccepted, + /** + * 未验收 + */ notAccepted } diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialInventoryAlarmLevel.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialInventoryAlarmLevel.java new file mode 100644 index 00000000..d4668244 --- /dev/null +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/enums/MaterialInventoryAlarmLevel.java @@ -0,0 +1,20 @@ +package com.zt.plat.module.qms.resource.material.enums; + +/** + * 物料库存预警等级 + * + */ +public enum MaterialInventoryAlarmLevel { + /** + * 安全 + */ + safe, + /** + * 警告 + */ + warn, + /** + * 危险 + */ + danger +} diff --git a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java index d5318da7..c411739a 100644 --- a/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java +++ b/zt-module-qms/zt-module-qms-server/src/main/java/com/zt/plat/module/qms/resource/material/service/MaterialProductServiceImpl.java @@ -1,6 +1,9 @@ package com.zt.plat.module.qms.resource.material.service; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.zt.plat.framework.common.exception.ServiceException; import com.zt.plat.framework.common.pojo.PageResult; @@ -13,6 +16,7 @@ import com.zt.plat.module.qms.resource.material.controller.vo.MaterialProductSav import com.zt.plat.module.qms.resource.material.controller.vo.query.MaterialProductQueryVO; import com.zt.plat.module.qms.resource.material.dal.dataobject.MaterialProductDO; import com.zt.plat.module.qms.resource.material.dal.mapper.MaterialProductMapper; +import com.zt.plat.module.qms.resource.material.enums.MaterialInventoryAlarmLevel; import jakarta.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; @@ -41,9 +45,6 @@ public class MaterialProductServiceImpl implements MaterialProductService { @Resource private MaterialProductMapper materialProductMapper; -// @Autowired -// private MaterialBatchService materialBatchService; - @Autowired private MaterialInfomationService materialInfomationService; @@ -332,12 +333,35 @@ public class MaterialProductServiceImpl implements MaterialProductService { for (MaterialProductRespVO vo : voList) { Long val = stockQuantityMap.get(vo.getId()); vo.setInventoryQuantity(BigDecimal.valueOf(val == null ? 0L : val)); + vo.setInventoryAlarmLevel(getAlarmLevel(vo)); } } return new PageResult<>(voList, pageResult.getTotal()); } + private String getAlarmLevel(MaterialProductRespVO vo) { + String customConfig = vo.getCustomConfig(); + String alarmLevel = null; + if (StrUtil.isNotEmpty(customConfig) && vo.getInventoryAlarmFlag() == 1) { + JSONObject alarmRange = JSONUtil.parseObj(customConfig).getJSONObject("alarmRange"); + if (alarmRange != null) { + // BigDecimal[] safeRange = (BigDecimal[]) alarmRange.get(MaterialInventoryAlarmLevel.safe.name()); + List dangerRange = alarmRange.getJSONArray(MaterialInventoryAlarmLevel.danger.name()).toList(BigDecimal.class); + List warnRange = alarmRange.getJSONArray(MaterialInventoryAlarmLevel.warn.name()).toList(BigDecimal.class); + BigDecimal inventoryQuantity = vo.getInventoryQuantity(); + if (inventoryQuantity.compareTo(dangerRange.get(1)) <= 0) { + alarmLevel = MaterialInventoryAlarmLevel.danger.name(); + } else if (inventoryQuantity.compareTo(warnRange.get(1)) <= 0) { + alarmLevel = MaterialInventoryAlarmLevel.warn.name(); + } else { + alarmLevel = MaterialInventoryAlarmLevel.safe.name(); + } + } + } + return alarmLevel; + } + @Override public List getMaterialProductsByLikeIdPath(Long pdtId) {