Browse Source

fix:点位管理-点位详情列表

master
wangguangyuan 3 weeks ago
parent
commit
405bd0d693
8 changed files with 252 additions and 1 deletions
  1. +42
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/controller/BasedataPatrolPointController.java
  2. +1
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java
  3. +1
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/IBasedataPatrolPointService.java
  4. +35
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java
  5. +18
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java
  6. +1
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/IBasedataDeviceService.java
  7. +116
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java
  8. +38
    -0
      inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml

+ 42
- 0
inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/controller/BasedataPatrolPointController.java View File

@ -122,6 +122,48 @@ public class BasedataPatrolPointController extends BaseController {
}
}
/**
* 这个查询的是迁移过后的表basedata_patrolpoint_relationbasedata_device_relation
* @param basedataPatrolpoint
* @return
*/
@GetMapping({"/list/monitor/relation"})
public TableDataInfo monitorRelationList(BasedataPatrolPoint basedataPatrolpoint) {
startPage();
if (null == basedataPatrolpoint.getDeviceId()) {
return getDataTable(new ArrayList<>());
} else {
logger.info("[META] monitorList: basedataPatrolPoint: {}", basedataPatrolpoint);
List<BasedataPatrolPoint> list = basedataPatrolPointService.selectBasedataMonitorRelationList(basedataPatrolpoint);
logger.info("[META] deviceId: {}, size: {}", basedataPatrolpoint.getDeviceId(), list.size());
List<BasedataPatrolPoint> listEx = new ArrayList<>();
for(int i = 0; i < list.size(); i++) {
BasedataPatrolPoint basedataPatrolPoint = list.get(i);
logger.info(Color.GREEN + "[META] monitorList result: {}" + Color.END, basedataPatrolPoint);
BasedataPatrolPoint basedataPatrolPoint2 = new BasedataPatrolPoint();
basedataPatrolPoint2.setDeviceId(basedataPatrolpoint.getDeviceId());
basedataPatrolPoint2.setPatrolPointId(basedataPatrolPoint.getPatrolPointId());
basedataPatrolPoint2.setDeviceId(basedataPatrolPoint.getDeviceId());
basedataPatrolPoint2.setMainDeviceId(basedataPatrolPoint.getMainDeviceId());
basedataPatrolPoint2.setPatrolPointCode(basedataPatrolPoint.getPatrolPointCode());
basedataPatrolPoint2.setPatrolPointName(basedataPatrolPoint.getPatrolPointName());
basedataPatrolPoint2.setDeviceName(basedataPatrolPoint.getDeviceName());
basedataPatrolPoint2.setAlgSubtypeId(basedataPatrolPoint.getAlgSubtypeId());
basedataPatrolPoint2.setAlgSubtypeIds(basedataPatrolPoint.getAlgSubtypeIds());
basedataPatrolPoint2.setPatrolContent(basedataPatrolPoint.getPatrolContent());
basedataPatrolPoint2.setAreaId(basedataPatrolPoint.getAreaId());
basedataPatrolPoint2.setDeviceTypeId(basedataPatrolPoint.getDeviceTypeId());
basedataPatrolPoint2.setPatrolTypeId(basedataPatrolPoint.getPatrolTypeId());
basedataPatrolPoint2.setPointImptLevel(basedataPatrolPoint.getPointImptLevel());
basedataPatrolPoint2.setAlgSubtypeName(basedataPatrolPoint.getAlgSubtypeName());
basedataPatrolPoint2.setPurpose(basedataPatrolPoint.getPurpose());
listEx.add(basedataPatrolPoint2);
}
return getDataTable(listEx);
}
}
@RequiresPermissions({"basedata/patrolpointmnt:patrolpoint:export"})
@Log(
title = "巡检点位",


+ 1
- 0
inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java View File

@ -16,6 +16,7 @@ public interface BasedataPatrolPointMapper {
List<BasedataPatrolPoint> selectBasedataPatrolPointList(BasedataPatrolPoint patrolPoint);
List<BasedataPatrolPoint> selectBasedataMonitorList(BasedataPatrolPoint patrolPoint);
List<BasedataPatrolPoint> selectBasedataMonitorRelationList(BasedataPatrolPoint patrolPoint);
List<BasedataPatrolPoint> selectBasedataMonitorUnionList(BasedataPatrolPoint patrolPoint);


+ 1
- 0
inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/IBasedataPatrolPointService.java View File

@ -13,6 +13,7 @@ public interface IBasedataPatrolPointService {
List<BasedataPatrolPoint> selectBasedataPatrolPointList(BasedataPatrolPoint patrolPoint);
List<BasedataPatrolPoint> selectBasedataMonitorList(BasedataPatrolPoint patrolPoint);
List<BasedataPatrolPoint> selectBasedataMonitorRelationList(BasedataPatrolPoint patrolPoint);
BasedataPatrolPoint insertBasedataPatrolPoint(BasedataPatrolPoint patrolPoint);


+ 35
- 0
inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java View File

@ -119,6 +119,41 @@ public class BasedataPatrolPointServiceImpl implements IBasedataPatrolPointServi
return pointList;
}
public List<BasedataPatrolPoint> selectBasedataMonitorRelationList(BasedataPatrolPoint basedataPatrolpoint) {
List<BasedataPatrolPoint> pointList = basedataPatrolpointMapper.selectBasedataMonitorRelationList(basedataPatrolpoint);
logger.info("[META] pointList size: {},pointList: {}", pointList.size(), pointList);
if (null != basedataPatrolpoint.getDeviceId()) {
BasedataDevice basedataDevice = basedataDeviceMapper.selectBasedataDeviceRelationByDeviceId(basedataPatrolpoint.getDeviceId());
if(basedataDevice != null) {
basedataPatrolpoint.setDeviceTypeId(basedataDevice.getDeviceTypeId());
List<BasedataPatrolPoint> stdPointList = basedataPatrolpointMapper.selectBasedataMonitorUnionList(basedataPatrolpoint);
logger.info("[META] stdPointList cnt: {}", stdPointList.size());
for (BasedataPatrolPoint stdPoint : stdPointList) {
if (!pointList.isEmpty()) {
if (pointList.stream().filter((item) -> stdPoint.getStdParolPointId().equals(item.getStdParolPointId())).count() == 0) {
pointList.add(stdPoint);
}
} else {
pointList.add(stdPoint);
}
}
} else {
logger.warn(Color.RED + "[META] basedataDevice deviceId: {} not exist!" + Color.END, basedataPatrolpoint.getDeviceId());
}
}
List<BasedataAlgSubtype> basedataAlgSubtypes = basedataAlgSubtypeMapper.selectBasedataAlgSubtypeList(new BasedataAlgSubtype());
logger.info("[META] basedataAlgSubtypes cnt: {}", basedataAlgSubtypes.size());
Map<String, String> algSubtypeMap = new HashMap<>();
basedataAlgSubtypes.forEach((item) -> {
algSubtypeMap.put(item.getAlgSubtypeId() + "", item.getAlgSubtypeName());
});
logger.info("[META] algSubtypeMap: {}", algSubtypeMap);
pointList.forEach((item) -> item.loadAlgSubtypeName(algSubtypeMap));
logger.info("[META] pointList size: {},pointList: {}", pointList.size(), pointList);
return pointList;
}
public BasedataPatrolPoint insertBasedataPatrolPoint(BasedataPatrolPoint basedataPatrolpoint) {
basedataPatrolpoint.setCreateTime(DateUtils.getNowDate());
int resId = basedataPatrolpointMapper.insertBasedataPatrolPoint(basedataPatrolpoint);


+ 18
- 0
inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java View File

@ -197,6 +197,24 @@ public class BasedataDeviceController extends BaseController {
: AjaxResult.success(new JSONArray());
}
@GetMapping({"/treeAreaDeviceSelectFilterByPreset/relation/havePoint"})
public AjaxResult treeAreaDeviceSelectFilterByPresetHavePoint(BaseDataArea baseDataArea) {
log.info("treeAreaDeviceSelectFilterByPreset param: {}", baseDataArea);
List<BaseDataArea> areaList = baseDataAreaService.selectAreaList(baseDataArea);
List<String> filterNameList = baseDataArea.getFilterNameList();
if(filterNameList == null || filterNameList.isEmpty()) {
filterNameList = new ArrayList<>();
filterNameList.add("无人机");
filterNameList.add("机器人");
filterNameList.add("安防摄像头");
filterNameList.add("生活区域");
filterNameList.add("新增相机");
}
return !areaList.isEmpty()
? AjaxResult.success(basedataDeviceService.buildAreaDeviceTreeSelectByAreasFilterByPresetHavePoint(areaList, filterNameList))
: AjaxResult.success(new JSONArray());
}
/**
* 新的树形关系
* @param baseDataArea


+ 1
- 0
inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/IBasedataDeviceService.java View File

@ -50,6 +50,7 @@ public interface IBasedataDeviceService {
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreas(List<BaseDataArea> areas);
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPreset(List<BaseDataArea> areas, List<String> filterNameList);
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPresetHavePoint(List<BaseDataArea> areas, List<String> filterNameList);
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPresetRelation(List<BaseDataArea> areas, List<String> filterNameList);


+ 116
- 1
inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java View File

@ -195,7 +195,7 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService {
return AreaDeviceTreeSelectUtil.buildDeviceTree(areaVOS);
}
public List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPreset(List<BaseDataArea> areas, List<String> filterNamelist) {
public List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPresetHavePoint(List<BaseDataArea> areas, List<String> filterNamelist) {
ArrayList<Long> areaIdList = new ArrayList<>();
HashMap<Long, BaseDataArea> areaMap = new HashMap<>();
HashMap<Long, BasedataDevice> deviceHashMap = new HashMap<>();
@ -260,6 +260,71 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService {
return treeList;
}
public List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPreset(List<BaseDataArea> areas, List<String> filterNamelist) {
ArrayList<Long> areaIdList = new ArrayList<>();
HashMap<Long, BaseDataArea> areaMap = new HashMap<>();
HashMap<Long, BasedataDevice> deviceHashMap = new HashMap<>();
List<AreaDeviceTreeSelect> areaVOS = new ArrayList<>();
for (BaseDataArea area : areas) {
areaIdList.add(area.getAreaId());
areaMap.put(area.getAreaId(), area);
AreaDeviceTreeSelect areaVO = new AreaDeviceTreeSelect();
areaVO.setDataId(String.valueOf(area.getAreaId()));
areaVO.setParentId(String.valueOf(area.getParentId()));
areaVO.setAreaId(area.getAreaId());
areaVO.setAreaFlag("Yes");
areaVO.setAreaParentId(area.getParentId());
areaVO.setAreaName(area.getAreaName());
areaVO.setAreaType(area.getAreaType());
areaVOS.add(areaVO);
}
BasedataDevice basedataDeviceQuery = new BasedataDevice();
Map<String, Object> params = new HashMap<>();
params.put("areaIdList", areaIdList);
basedataDeviceQuery.setParams(params);
List<BasedataDevice> deviceList = this.basedataDeviceMapper.selectBasedataDeviceList(basedataDeviceQuery);
Iterator<BasedataDevice> iterator = deviceList.iterator();
BasedataDevice basedataDevice;
while (iterator.hasNext()) {
basedataDevice = iterator.next();
deviceHashMap.put(basedataDevice.getDeviceId(), basedataDevice);
}
iterator = deviceList.iterator();
while (iterator.hasNext()) {
basedataDevice = iterator.next();
AreaDeviceTreeSelect deviceVO = new AreaDeviceTreeSelect();
StringBuilder idBuilder = new StringBuilder();
StringBuilder pIdBuilder = new StringBuilder();
this.getAreaDeviceTreeDeviceCode(basedataDevice.getDeviceId(), areaMap, deviceHashMap, idBuilder, pIdBuilder);
deviceVO.setDataId(idBuilder.toString());
deviceVO.setParentId(pIdBuilder.toString());
deviceVO.setAreaId(basedataDevice.getAreaId());
deviceVO.setDeviceParentId(basedataDevice.getParentId());
deviceVO.setDeviceId(basedataDevice.getDeviceId());
deviceVO.setDeviceName(basedataDevice.getDeviceName());
deviceVO.setPowerMainEquFlag(basedataDevice.getPowerMainEquFlag());
deviceVO.setPositionX(basedataDevice.getPositionX());
deviceVO.setPositionY(basedataDevice.getPositionY());
deviceVO.setPositionZ(basedataDevice.getPositionZ());
deviceVO.setDeviceLength(basedataDevice.getDeviceLength());
deviceVO.setDeviceWidth(basedataDevice.getDeviceWidth());
deviceVO.setDeviceHigh(basedataDevice.getDeviceHeight());
areaVOS.add(deviceVO);
}
List<AreaDeviceTreeSelect> treeList = AreaDeviceTreeSelectUtil.buildDeviceTreeFilterByAreaName(areaVOS, filterNamelist);
// 新增填充点位统计
fillPointNum(areaVOS, treeList);
return treeList;
}
/**
* 填充 pointNum basedataPatrolPoints
* @param allNodes 平面节点列表包含所有区域和设备节点
@ -330,6 +395,56 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService {
}
private void fillPointNum(List<AreaDeviceTreeSelect> allNodes, List<AreaDeviceTreeSelect> treeList) {
// 收集所有设备ID
Set<Long> deviceIds = new HashSet<>();
for (AreaDeviceTreeSelect node : allNodes) {
if (node.getDeviceId() != null) {
deviceIds.add(node.getDeviceId());
}
}
if (deviceIds.isEmpty()) {
return;
}
// 批量查询点位
List<BasedataPatrolPoint> patrolPoints = basedataPatrolPointMapper.selectBasedataPatrolPointListByDeviceIds(new ArrayList<>(deviceIds));
// 按设备ID分组
Map<Long, List<BasedataPatrolPoint>> devicePatrolMap = patrolPoints.stream()
.collect(Collectors.groupingBy(BasedataPatrolPoint::getDeviceId));
// 递归设置统计值
setPointNum(treeList, devicePatrolMap);
}
/**
* 递归设置 pointNum 信息
*/
private void setPointNum(List<AreaDeviceTreeSelect> nodes, Map<Long, List<BasedataPatrolPoint>> devicePatrolMap) {
for (AreaDeviceTreeSelect node : nodes) {
long pointNum = 0L;
// 处理设备节点自身点位
if (node.getDeviceId() != null) {
List<BasedataPatrolPoint> patrols = devicePatrolMap.get(node.getDeviceId());
if (patrols != null) {
pointNum += patrols.size();
}
}
// 递归处理子节点
if (node.getChildren() != null && !node.getChildren().isEmpty()) {
setPointNum(node.getChildren(), devicePatrolMap);
// 累加子节点 pointNum
for (AreaDeviceTreeSelect child : node.getChildren()) {
pointNum += child.getPointNum() != null ? child.getPointNum() : 0L;
}
}
node.setPointNum(pointNum);
}
}
/**
* 与fillPointNumAndPatrolPoints区别在于查询的表不一样 此处用的是basedata_patrolpoint_relation表用于迁移数据使用
*/


+ 38
- 0
inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml View File

@ -212,6 +212,44 @@
<if test="patrolTypeId != null and patrolTypeId != ''">and a.patrol_type_id = #{patrolTypeId}</if>
</where>
</select>
<select id="selectBasedataMonitorRelationList" parameterType="BasedataPatrolPoint" resultMap="BasedataPatrolPointResult">
-- select a.patrol_point_id, a.patrol_point_code,a.area_id, a.patrol_point_name, a.main_device_id, a.device_id,
-- left join basedata_stdpatrol_point b on a.std_parol_point_id = b.std_patrol_point_id
SELECT
a.patrol_point_id,
a.patrol_point_code,
a.area_id,
a.patrol_point_name,
a.main_device_id,
a.device_id,
a.patrol_content,
a.purpose,
a.std_parol_point_id,
a.upper_value,
a.lower_value,
a.alg_subtype_ids,
a.point_impt_level,
a.patrol_type_id,
a.position_x,
a.position_y,
a.position_z,
a.dis_ref_picture_path,
a.alarm_threshold
FROM
basedata_patrolpoint_relation a
<where>
<if test="patrolPointName != null and patrolPointName != ''">and a.patrol_point_name like concat('%',
#{patrolPointName}, '%')
</if>
<if test="mainDeviceId != null ">and a.main_device_id = #{mainDeviceId}</if>
<if test="deviceId != null ">and a.device_id = #{deviceId}</if>
<if test="areaId != null ">and a.area_id = #{areaId}</if>
<if test="pointImptLevel != null and pointImptLevel != ''">and a.point_impt_level = #{pointImptLevel}</if>
<if test="patrolTypeId != null and patrolTypeId != ''">and a.patrol_type_id = #{patrolTypeId}</if>
</where>
</select>
<select id="selectBasedataMonitorUnionList" parameterType="BasedataPatrolPoint"
resultMap="BasedataPatrolPointResult">
select a.area_id,


Loading…
Cancel
Save