inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductDeviationWarningMapper.java
@@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> * 检验项偏差预警主表 Mapper 接口 @@ -20,8 +22,9 @@ /** * 查看预警列表 * * @param page * @return */ IPage<InsProductDeviationWarningDto> selectDeviationWarningPage(@Param("page") Page page, @Param("ew") QueryWrapper<InsProductDeviationWarningDto> ew); IPage<InsProductDeviationWarningDto> selectDeviationWarningPage(@Param("page") Page page, @Param("ew") QueryWrapper<InsProductDeviationWarningDto> ew, @Param("dictValues") List<String> dictValues); } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductDeviationWarningServiceImpl.java
@@ -1,14 +1,23 @@ package com.ruoyi.inspect.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.inspect.dto.InsProductDeviationWarningDto; import com.ruoyi.inspect.pojo.InsProductDeviationWarning; import com.ruoyi.inspect.mapper.InsProductDeviationWarningMapper; import com.ruoyi.inspect.service.InsProductDeviationWarningService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.inspect.dto.InsProductDeviationWarningDto; import com.ruoyi.inspect.mapper.InsProductDeviationWarningMapper; import com.ruoyi.inspect.pojo.InsProductDeviationWarning; import com.ruoyi.inspect.service.InsProductDeviationWarningService; import com.ruoyi.system.mapper.SysDictDataMapper; import com.ruoyi.system.service.ISysDictDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; /** * <p> @@ -21,14 +30,22 @@ @Service public class InsProductDeviationWarningServiceImpl extends ServiceImpl<InsProductDeviationWarningMapper, InsProductDeviationWarning> implements InsProductDeviationWarningService { @Autowired private SysDictDataMapper sysDictDataMapper; /** * 查看预警列表 * * @param page * @param deviationWarningDto * @return */ @Override public IPage<InsProductDeviationWarningDto> selectDeviationWarningPage(Page page, InsProductDeviationWarningDto deviationWarningDto) { return baseMapper.selectDeviationWarningPage(page, QueryWrappers.queryWrappers(deviationWarningDto)); List<SysDictData> sysDictDataList = sysDictDataMapper.selectDictDataByType("material_prop_type"); List<String> list = Arrays.asList("03Package", "04Dlan"); List<String> dictValues = sysDictDataList.stream().map(SysDictData::getDictValue).filter(dictValue -> !list.contains(dictValue)).collect(Collectors.toList()); return baseMapper.selectDeviationWarningPage(page, QueryWrappers.queryWrappers(deviationWarningDto), dictValues); } } inspect-server/src/main/resources/mapper/InsProductDeviationWarningMapper.xml
@@ -31,21 +31,27 @@ LEFT JOIN ins_product ip ON ip.id = ipdw.ins_product_id LEFT JOIN structure_item_parameter sip ON sip.id = ip.structure_item_parameter_id LEFT JOIN ins_order io ON io.id = isa.ins_order_id LEFT JOIN structure_test_object sto ON sip.sample LIKE CONCAT('%"', sto.specimen_name, '"%') LEFT JOIN structure_test_object sto ON sip.sample LIKE CONCAT('%"', sto.specimen_name, '"%') LEFT JOIN ifs_inventory_quantity ifs ON ifs.id = io.ifs_inventory_id LEFT JOIN sys_dict_data dict ON dict.dict_type = 'material_prop_type' AND dict.dict_value = ifs.material_prop AND dict.dict_value NOT IN ('04Dlan', '03Package') WHERE sto.object_type != 3 -- 过滤条件:排除 object_type 为 3 的记录 WHERE sto.object_type != 3 <if test="dictValues != null and dictValues.size() > 0"> AND ifs.material_prop IN <foreach collection="dictValues" item="value" open="(" separator="," close=")"> #{value} </foreach> </if> <if test="dictValues == null or dictValues.size() == 0"> AND 1 = 0 </if> <if test="ew.sqlFirst != null"> ${ew.sqlFirst} </if> <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> AND ${ew.customSqlSegment} </if> AND (ifs.material_prop IS NULL OR dict.dict_value IS NOT NULL) ) t ORDER BY t.detection_time DESC </select> </mapper> ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictDataMapper.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.mapper; import java.util.List; import org.apache.ibatis.annotations.Param; import com.ruoyi.common.core.domain.entity.SysDictData; @@ -9,8 +10,7 @@ * * @author ruoyi */ public interface SysDictDataMapper { public interface SysDictDataMapper { /** * 根据条件分页查询字典数据 *