From 4396b1bdb478c628cb8a3015d4ec78e3a5987f27 Mon Sep 17 00:00:00 2001 From: wangguangyuan Date: Wed, 22 Apr 2026 09:08:23 +0800 Subject: [PATCH] =?UTF-8?q?fix:1.=E9=98=88=E5=80=BC=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=89=B9=E9=87=8F=EF=BC=8C2.=E5=B7=A1?= =?UTF-8?q?=E8=A7=86=E6=96=B9=E6=A1=88=E5=89=94=E9=99=A4=E6=9C=AA=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E9=A2=84=E7=BD=AE=E4=BD=8D=E7=9A=84=E7=82=B9=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../metadata/area/domain/BaseDataArea.java | 10 ++ .../controller/BasedataEqpBookController.java | 110 ++++++++++++++---- .../domain/BasedataPatrolPoint.java | 5 + .../mapper/BasedataPatrolPointMapper.java | 2 + .../impl/BasedataDeviceServiceImpl.java | 11 +- .../mapper/eqpbook/BasedataEqpBookMapper.xml | 10 +- .../BasedataPatrolPointMapper.xml | 45 +++++++ 7 files changed, 165 insertions(+), 28 deletions(-) diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java b/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java index 407470a..469f902 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/area/domain/BaseDataArea.java @@ -66,6 +66,16 @@ public class BaseDataArea extends BaseEntity { // 算法类型 字典编码 private List algTypeCodeList; + // 是否过滤未配置预置位的点位 + private Boolean filterByPreset; + + public Boolean getFilterByPreset() { + return filterByPreset; + } + + public void setFilterByPreset(Boolean filterByPreset) { + this.filterByPreset = filterByPreset; + } public String getOldAreaId() { return this.oldAreaId; } diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java index 0a779b6..30e6f13 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/eqpbook/controller/BasedataEqpBookController.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject; import com.inspect.base.core.utils.ServletUtils; import com.inspect.metadata.alg.domain.BasedataAlgSubtype; import com.inspect.metadata.alg.service.IBasedataAlgSubtypeService; +import com.inspect.metadata.area.controller.BaseDataAreaController; import com.inspect.metadata.area.domain.BaseDataArea; import com.inspect.metadata.eqpbook.domain.BasedataEqpBook; import com.inspect.metadata.eqpbook.domain.BasedataEqpBookChannel; @@ -23,6 +24,7 @@ import com.inspect.metadata.eqpbook.task.FeignTaskClient; import com.inspect.metadata.montdata.domain.BasedataMontPatDevStaData; import com.inspect.metadata.mqutil.FeignMsgClient; import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPoint; +import com.inspect.metadata.patrolpointmnt.mapper.BasedataPatrolPointMapper; import com.inspect.metadata.patrolpointmnt.service.IBasedataPatrolPointService; import com.inspect.metadata.station.service.IBasedataStationService; import com.inspect.metadata.threshold.domain.BasedataThresholdModification; @@ -89,6 +91,11 @@ public class BasedataEqpBookController extends BaseController { private IBasedataThresholdModificationService basedataThresholdModificationService; @Autowired private FeignTaskClient feignTaskClient; + @Autowired + private BaseDataAreaController baseDataAreaController; + + @Resource + private BasedataPatrolPointMapper basedataPatrolpointMapper; @GetMapping({"/list"}) public TableDataInfo list(BasedataEqpBook basedataEqpbook) { @@ -853,10 +860,44 @@ public class BasedataEqpBookController extends BaseController { @GetMapping({"/subtypeData"}) public TableDataInfo subtypeData(BasedataPatrolPoint basedataPatrolpoint) { +// List errors = new ArrayList<>(); +// this.startPage(); +// List subtypeList = this.basedataEqpBookService.getSubtypeData(basedataPatrolpoint); + List stdList = new ArrayList<>(); + // 前端传的算法编码 + List algTypeCodeList = basedataPatrolpoint.getAlgTypeCodeList(); + // 获取算法分类字典(dictCode=字典编码,dictValue=逗号分隔的子类型ID) + List algCategoryDict = getSysDictDataList("threshold_alg_type"); + // 构建字典编码(所有可配阈值的算法) -> 子类型ID集合的映射 (例如,"886" -> {"1", "2"}) + Map> labelToSubtypeIds = algCategoryDict.stream() + .collect(Collectors.toMap( + SysDictData::getDictCode, + item -> Arrays.stream(item.getDictValue().split(",")) + .filter(StringUtils::isNotBlank) + .collect(Collectors.toSet()) + )); + logger.info("[META] labelToSubtypeIds : {}", labelToSubtypeIds); + if (algTypeCodeList == null || algTypeCodeList.size() == 0) { + algTypeCodeList = new ArrayList<>(labelToSubtypeIds.keySet()); + } + + // 合并所有允许的子类型ID + Set allowedSubtypeIds = algTypeCodeList.stream() + .filter(Objects::nonNull) + .flatMap(dictCode -> labelToSubtypeIds.getOrDefault(dictCode, Collections.emptySet()).stream()) + .collect(Collectors.toSet()); + +// subtypeList = subtypeList.stream().filter(point -> { +// String algSubtypeIds = point.getAlgSubtypeIds(); +// if (StringUtils.isBlank(algSubtypeIds)) { +// return false; +// } +// return Arrays.stream(algSubtypeIds.split(",")).anyMatch(allowedSubtypeIds::contains); +// }).collect(Collectors.toList()); this.startPage(); + basedataPatrolpoint.setAlgSubtypeIds(StringUtils.join(allowedSubtypeIds, ",")); List subtypeList = this.basedataEqpBookService.getSubtypeData(basedataPatrolpoint); - List stdList = new ArrayList<>(); - + // 查询区域信息 for (BasedataPatrolPoint bp : subtypeList) { List subTypeDOList = new ArrayList<>(); List jsonArray = JSONArray.parseArray(bp.getAlarmThreshold(), JSONObject.class); @@ -866,22 +907,35 @@ public class BasedataEqpBookController extends BaseController { } else { subs = new String[]{bp.getAlgSubtypeIds()}; } - + Long relationAreaId = bp.getRelationAreaId(); + if (relationAreaId != null) { + BaseDataArea areaQuery = new BaseDataArea(); + areaQuery.setAreaIdS(String.valueOf(relationAreaId)); + AjaxResult ajaxResult = baseDataAreaController.selectAreaNameSForTaskByAreaIdSRelation(areaQuery); + if (ajaxResult.get("code").equals(200)) { + bp.setAreaName(ajaxResult.get("data").toString()); + } + } + if(jsonArray == null || subs.length != jsonArray.size()) { + logger.info("问题巡检点位id,{}", bp.getPatrolPointId()); +// errors.add(bp.getPatrolPointId()+""); + continue; + } + List algSubtypeNames = new ArrayList<>(); for (int k = 0; k < subs.length; ++k) { - if ("52".equals(subs[k]) || "53".equals(subs[k])) { - BasedataAlgSubtype basedataAlgSubtype = this.basedataAlgSubtypeService.selectBasedataAlgSubtypeByAlgSubtypeId(Long.valueOf(subs[k])); - if (null != basedataAlgSubtype && (basedataPatrolpoint.getAlgSubtypeName() == null || "".equals(basedataPatrolpoint.getAlgSubtypeName()) || basedataAlgSubtype.getAlgSubtypeName().contains(basedataPatrolpoint.getAlgSubtypeName()))) { - BasedataThresholdModification std = new BasedataThresholdModification(); - std.setPatrolPointId(bp.getPatrolPointId()); - std.setAlgSubtypeId(subs[k]); - std.setAlgSubtypeName(basedataAlgSubtype.getAlgSubtypeName()); - std.setUpperValue(jsonArray.get(k).getString("upperValue")); - std.setLowerValue(jsonArray.get(k).getString("lowerValue")); - subTypeDOList.add(std); - } + BasedataAlgSubtype basedataAlgSubtype = this.basedataAlgSubtypeService.selectBasedataAlgSubtypeByAlgSubtypeId(Long.valueOf(subs[k])); + if (null != basedataAlgSubtype) { + BasedataThresholdModification std = new BasedataThresholdModification(); + std.setPatrolPointId(bp.getPatrolPointId()); + std.setAlgSubtypeId(subs[k]); + std.setAlgSubtypeName(basedataAlgSubtype.getAlgSubtypeName()); + std.setUpperValue(jsonArray.get(k).getString("upperValue")); + std.setLowerValue(jsonArray.get(k).getString("lowerValue")); + subTypeDOList.add(std); + algSubtypeNames.add(basedataAlgSubtype.getAlgSubtypeName()); } } - + bp.setAlgSubtypeName(StringUtils.join(algSubtypeNames, ",")); if (!subTypeDOList.isEmpty()) { bp.setSubTypeDOList(subTypeDOList); stdList.add(bp); @@ -900,18 +954,26 @@ public class BasedataEqpBookController extends BaseController { return rspData; } + private List getSysDictDataList(String dictType) { + return basedataPatrolpointMapper.selectDictDataByType(dictType); + } + @PostMapping({"/subtypeUpdate"}) - public AjaxResult subtypeUpdate(@RequestBody BasedataPatrolPoint bp) { - List jsonArray = JSONArray.parseArray(bp.getAlarmThreshold(), JSONObject.class); + public AjaxResult subtypeUpdate(@RequestBody List jsonObjects) { + for (JSONObject jsonObject : jsonObjects) { + BasedataPatrolPoint bp = jsonObject.toJavaObject(BasedataPatrolPoint.class); + List jsonArray = JSONArray.parseArray(bp.getAlarmThreshold(), JSONObject.class); - for (int i = 0; i < bp.getSubTypeDOList().size(); ++i) { - jsonArray.get(i).put("upperValue", bp.getSubTypeDOList().get(i).getUpperValue()); - jsonArray.get(i).put("lowerValue", bp.getSubTypeDOList().get(i).getLowerValue()); - this.basedataThresholdModificationService.insertBasedataThresholdModification(bp.getSubTypeDOList().get(i)); - } + for (int i = 0; i < bp.getSubTypeDOList().size(); ++i) { + jsonArray.get(i).put("upperValue", bp.getSubTypeDOList().get(i).getUpperValue()); + jsonArray.get(i).put("lowerValue", bp.getSubTypeDOList().get(i).getLowerValue()); + this.basedataThresholdModificationService.insertBasedataThresholdModification(bp.getSubTypeDOList().get(i)); + } - bp.setAlarmThreshold(jsonArray.toString().replaceFirst(",$", StringUtils.EMPTY)); - return this.toAjax(this.basedataPatrolPointService.updateBasedataPatrolPoint(bp)); + bp.setAlarmThreshold(jsonArray.toString().replaceFirst(",$", StringUtils.EMPTY)); + int i = this.basedataPatrolPointService.updateBasedataPatrolPoint(bp); + } + return this.toAjax(true); } @GetMapping({"/subtypeUpdateRecord"}) diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java index 5e62c68..53657fd 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/domain/BasedataPatrolPoint.java @@ -70,6 +70,7 @@ public class BasedataPatrolPoint extends BaseEntity { @JsonProperty("stdparolPointId") private Long stdParolPointId; private Long areaId; + private String areaName; private Long relationAreaId; private String patrolTypeId; private String pointImptLevel; @@ -122,6 +123,10 @@ public class BasedataPatrolPoint extends BaseEntity { private String parentName; + List algTypeCodeList; + + private String allowedSubtypeIds; + public void setPatrolpointName(String patrolpointName) { this.patrolpointName = patrolpointName; this.patrolPointName = patrolpointName; diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java index 62bc0e2..3d90484 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java @@ -45,6 +45,8 @@ public interface BasedataPatrolPointMapper { List selectBasedataPatrolPointListByDeviceIds(@Param("deviceIds") List deviceIds); List selectBasedataPatrolPointRelationListByDeviceIds(@Param("deviceIds") List deviceIds); + List selectBasedataPatrolPointWithPresetRelationListByDeviceIds(@Param("deviceIds") List deviceIds); + void updateBasedataPatrolPointRelation(@Param("toAreaId") Long toAreaId, @Param("deviceId") Long deviceId); diff --git a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java index 38e4c51..8cc7269 100644 --- a/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java +++ b/inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java @@ -524,9 +524,16 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService { if (deviceIds.isEmpty()) { return; } - + List patrolPoints = null; // 批量查询点位 - List patrolPoints = basedataPatrolPointMapper.selectBasedataPatrolPointRelationListByDeviceIds(new ArrayList<>(deviceIds)); + if (baseDataArea != null && baseDataArea.getFilterByPreset() != null && baseDataArea.getFilterByPreset()) { + // 剔除掉未配置预置位的点位 + patrolPoints = basedataPatrolPointMapper.selectBasedataPatrolPointWithPresetRelationListByDeviceIds(new ArrayList<>(deviceIds)); + } else { + // 全部点位 + patrolPoints = basedataPatrolPointMapper.selectBasedataPatrolPointRelationListByDeviceIds(new ArrayList<>(deviceIds)); + + } List basedataAlgSubtypes = basedataAlgSubtypeMapper.selectBasedataAlgSubtypeList(new BasedataAlgSubtype()); logger.info("[META] basedataAlgSubtypes cnt: {}", basedataAlgSubtypes.size()); diff --git a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml index 28be318..095471c 100644 --- a/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/eqpbook/BasedataEqpBookMapper.xml @@ -731,6 +731,7 @@ + @@ -744,6 +745,7 @@ diff --git a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml index 9042b29..c7a1cc4 100644 --- a/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml +++ b/inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml @@ -198,6 +198,51 @@ + +