Browse Source

fix:1.点位管理-设备树中,名称后面括号中的数字显示该层级下对应的点位数量 2.增加点位迁移

master
wangguangyuan 3 weeks ago
parent
commit
0b670a94c1
14 changed files with 657 additions and 9 deletions
  1. +5
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/area/mapper/BaseDataAreaMapper.java
  2. +5
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/area/service/IBaseDataAreaService.java
  3. +16
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/area/service/impl/BaseDataAreaServiceImpl.java
  4. +8
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/mapper/BasedataPatrolPointMapper.java
  5. +4
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/IBasedataPatrolPointService.java
  6. +10
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/patrolpointmnt/service/impl/BasedataPatrolPointServiceImpl.java
  7. +96
    -5
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java
  8. +34
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/domain/vo/AreaDeviceTreeSelect.java
  9. +5
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/mapper/BasedataDeviceMapper.java
  10. +6
    -0
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/IBasedataDeviceService.java
  11. +176
    -1
      inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/service/impl/BasedataDeviceServiceImpl.java
  12. +59
    -0
      inspect-metadata/src/main/resources/mapper/area/BaseDataAreaMapper.xml
  13. +59
    -0
      inspect-metadata/src/main/resources/mapper/patrolpointmnt/BasedataPatrolPointMapper.xml
  14. +174
    -2
      inspect-metadata/src/main/resources/mapper/prodevmnt/BasedataDeviceMapper.xml

+ 5
- 0
inspect-metadata/src/main/java/com/inspect/metadata/area/mapper/BaseDataAreaMapper.java View File

@ -10,11 +10,16 @@ import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
public interface BaseDataAreaMapper { public interface BaseDataAreaMapper {
List<BaseDataArea> selectAreaList(BaseDataArea area); List<BaseDataArea> selectAreaList(BaseDataArea area);
List<BaseDataArea> selectAreaRelationList(BaseDataArea area);
List<Long> selectAreaListByRoleId(@Param("roleId") Long roleId, @Param("areaCheckStrictly") boolean areaCheckStrictly); List<Long> selectAreaListByRoleId(@Param("roleId") Long roleId, @Param("areaCheckStrictly") boolean areaCheckStrictly);
BaseDataArea selectAreaById(Long id); BaseDataArea selectAreaById(Long id);
BaseDataArea selectAreaRelationById(Long id);
void updateAreaRelationById(@Param("areaId") Long areaId, @Param("toAreaId") Long toAreaId, @Param("ancestors") String ancestors);
List<BaseDataArea> selectChildrenAreaById(Long id); List<BaseDataArea> selectChildrenAreaById(Long id);
int selectNormalChildrenAreaById(Long id); int selectNormalChildrenAreaById(Long id);


+ 5
- 0
inspect-metadata/src/main/java/com/inspect/metadata/area/service/IBaseDataAreaService.java View File

@ -9,6 +9,7 @@ import java.util.Map;
public interface IBaseDataAreaService { public interface IBaseDataAreaService {
List<BaseDataArea> selectAreaList(BaseDataArea area); List<BaseDataArea> selectAreaList(BaseDataArea area);
List<BaseDataArea> selectAreaRelationList(BaseDataArea area);
List<BaseDataArea> buildAreaTree(List<BaseDataArea> areas); List<BaseDataArea> buildAreaTree(List<BaseDataArea> areas);
@ -20,6 +21,10 @@ public interface IBaseDataAreaService {
BaseDataArea selectAreaById(Long id); BaseDataArea selectAreaById(Long id);
BaseDataArea selectAreaRelationById(Long id);
void updateAreaRelationById(Long areaId, Long toAreaId, String ancestors);
int selectNormalChildrenAreaById(Long id); int selectNormalChildrenAreaById(Long id);
boolean hasChildByAreaId(Long areaId); boolean hasChildByAreaId(Long areaId);


+ 16
- 0
inspect-metadata/src/main/java/com/inspect/metadata/area/service/impl/BaseDataAreaServiceImpl.java View File

@ -37,6 +37,13 @@ public class BaseDataAreaServiceImpl implements IBaseDataAreaService {
return this.baseDataAreaMapper.selectAreaList(area); return this.baseDataAreaMapper.selectAreaList(area);
} }
@DataScope(
deptAlias = "d"
)
public List<BaseDataArea> selectAreaRelationList(BaseDataArea area) {
return this.baseDataAreaMapper.selectAreaRelationList(area);
}
public List buildAreaTree(List<BaseDataArea> areas) { public List buildAreaTree(List<BaseDataArea> areas) {
List<BaseDataArea> returnList = new ArrayList<>(); List<BaseDataArea> returnList = new ArrayList<>();
List<Long> tempList = new ArrayList<>(); List<Long> tempList = new ArrayList<>();
@ -82,6 +89,15 @@ public class BaseDataAreaServiceImpl implements IBaseDataAreaService {
return this.baseDataAreaMapper.selectAreaById(areaId); return this.baseDataAreaMapper.selectAreaById(areaId);
} }
public BaseDataArea selectAreaRelationById(Long areaId) {
return this.baseDataAreaMapper.selectAreaRelationById(areaId);
}
@Override
public void updateAreaRelationById(Long areaId, Long toAreaId, String ancestors) {
this.baseDataAreaMapper.updateAreaRelationById(areaId, toAreaId, ancestors);
}
public int selectNormalChildrenAreaById(Long areaId) { public int selectNormalChildrenAreaById(Long areaId) {
return this.baseDataAreaMapper.selectNormalChildrenAreaById(areaId); return this.baseDataAreaMapper.selectNormalChildrenAreaById(areaId);
} }


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

@ -6,6 +6,7 @@ import com.inspect.metadata.patrolpointmnt.domain.vo.PointStatsVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Mapper @Mapper
@ -39,4 +40,11 @@ public interface BasedataPatrolPointMapper {
List<PointLatestResultVo> pointLatestResult(PointLatestResultVo pointLatestResultVo); List<PointLatestResultVo> pointLatestResult(PointLatestResultVo pointLatestResultVo);
int deleteBySendCode(@Param("sendCode") String sendCode); int deleteBySendCode(@Param("sendCode") String sendCode);
List<BasedataPatrolPoint> selectBasedataPatrolPointListByDeviceIds(@Param("deviceIds") List<Long> deviceIds);
List<BasedataPatrolPoint> selectBasedataPatrolPointRelationListByDeviceIds(@Param("deviceIds") List<Long> deviceIds);
void updateBasedataPatrolPointRelation(@Param("toAreaId") Long toAreaId, @Param("deviceId") Long deviceId);
void batchUpdateBasedataPatrolPointRelation(@Param("toAreaId") Long toAreaId,@Param("toParentId") Long toParentId,@Param("toDeviceId") Long toDeviceId,@Param("patrolPointIds") List<Long> patrolPointIds);
} }

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

@ -33,4 +33,8 @@ public interface IBasedataPatrolPointService {
PointStatsVo getInspectPointStats(PointStatsVo pointStatsVo); PointStatsVo getInspectPointStats(PointStatsVo pointStatsVo);
List<PointLatestResultVo> pointLatestResult(PointLatestResultVo pointLatestResultVo); List<PointLatestResultVo> pointLatestResult(PointLatestResultVo pointLatestResultVo);
void updateBasedataPatrolPointRelation(Long toAreaId, Long deviceId);
void batchUpdateBasedataPatrolPointRelation(Long toAreaId, Long toParentId, Long toDeviceId, List<Long> patrolPointIds);
} }

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

@ -639,4 +639,14 @@ public class BasedataPatrolPointServiceImpl implements IBasedataPatrolPointServi
// inspectPointStats.setInspectionPointTotal(basedataPatrolPoints.size()); // inspectPointStats.setInspectionPointTotal(basedataPatrolPoints.size());
return result; return result;
} }
@Override
public void updateBasedataPatrolPointRelation(Long toAreaId, Long deviceId) {
basedataPatrolpointMapper.updateBasedataPatrolPointRelation(toAreaId, deviceId);
}
@Override
public void batchUpdateBasedataPatrolPointRelation(Long toAreaId, Long toParentId, Long toDeviceId, List<Long> patrolPointIds) {
basedataPatrolpointMapper.batchUpdateBasedataPatrolPointRelation(toAreaId, toParentId, toDeviceId, patrolPointIds);
}
} }

+ 96
- 5
inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/controller/BasedataDeviceController.java View File

@ -9,6 +9,7 @@ import com.inspect.metadata.eqpbook.domain.BasedataEqpBook;
import com.inspect.metadata.eqpbook.service.IBasedataEqpBookService; import com.inspect.metadata.eqpbook.service.IBasedataEqpBookService;
import com.inspect.metadata.mqutil.FeignMsgClient; import com.inspect.metadata.mqutil.FeignMsgClient;
import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPoint; 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.patrolpointmnt.service.IBasedataPatrolPointService;
import com.inspect.metadata.prodevmnt.domain.BasedataDevice; import com.inspect.metadata.prodevmnt.domain.BasedataDevice;
import com.inspect.metadata.prodevmnt.domain.BasedataDeviceType; import com.inspect.metadata.prodevmnt.domain.BasedataDeviceType;
@ -31,11 +32,7 @@ import com.inspect.system.base.openDomain.PatrolTaskDomain;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@ -48,6 +45,7 @@ import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
@ -199,6 +197,99 @@ public class BasedataDeviceController extends BaseController {
: AjaxResult.success(new JSONArray()); : AjaxResult.success(new JSONArray());
} }
/**
* 新的树形关系
* @param baseDataArea
* @return
*/
@GetMapping({"/treeAreaDeviceSelectFilterByPreset/relation"})
public AjaxResult treeAreaDeviceSelectFilterByPresetRelation(BaseDataArea baseDataArea) {
log.info("treeAreaDeviceSelectFilterByPreset param: {}", baseDataArea);
List<BaseDataArea> areaList = baseDataAreaService.selectAreaRelationList(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.buildAreaDeviceTreeSelectByAreasFilterByPresetRelation(areaList, filterNameList))
: AjaxResult.success(new JSONArray());
}
@PostMapping({"/updateTreeAreaRelation"})
@Transactional(rollbackFor = Exception.class)
public AjaxResult updateTreeAreaRelation (@RequestBody JSONObject jsonObject) {
log.info("updateTreeAreaRelation param: {}", jsonObject);
Long toAreaId = jsonObject.getLong("toAreaId");// 迁移到的区域
Long toDeviceId = jsonObject.getLong("toDeviceId");// 迁移到的设备id/部件id
String areaIdStr = jsonObject.getString("areaId");// 需要迁移的区域
String deviceIdStr = jsonObject.getString("deviceId");// 需要迁移的设备id
String patrolPointIdStr = jsonObject.getString("patrolPointId");// 需要迁移的点位id
if (StringUtils.isNotEmpty(areaIdStr) && toAreaId != null) {
// 区域迁移
List<Long> areaIds = Arrays.stream(areaIdStr.split(","))
.map(Long::valueOf)
.collect(Collectors.toList());
if (toDeviceId != null) {
return AjaxResult.error("迁移失败,不支持区域迁移到设备部件");
}
// 1.查出要迁移到哪个区域下的area的信息
BaseDataArea baseDataArea = baseDataAreaService.selectAreaRelationById(toAreaId);
log.info("updateTreeAreaRelation baseDataArea: {}", baseDataArea);
if (baseDataArea == null) {
return AjaxResult.error("迁移失败,找不到目标区域");
}
// 2.update parent_id = 迁移到的area_id and ancestors = 迁移到的ancestors+",迁移到的area_id" where area_id = fromAreaId
String ancestors = baseDataArea.getAncestors();
for (Long areaId : areaIds) {
baseDataAreaService.updateAreaRelationById(areaId, toAreaId, ancestors);
}
log.info("----updateTreeAreaRelation成功迁移{}个区域", areaIds.size());
}
else if (StringUtils.isNotEmpty(deviceIdStr) && toAreaId != null) {
if (toDeviceId != null) {
return AjaxResult.error("迁移失败,只允许设备部件迁移到区域");
}
// 设备部件迁移
List<Long> deviceIds = Arrays.stream(deviceIdStr.split(","))
.map(Long::valueOf)
.collect(Collectors.toList());
for (Long deviceId : deviceIds) {
// 更新设备及其部件区域
basedataDeviceService.updateBasedataDeviceRelation(toAreaId, deviceId);
// 更新设备及部件下点位所属区域
basedataPatrolPointService.updateBasedataPatrolPointRelation(toAreaId, deviceId);
}
}
else if (StringUtils.isNotEmpty(patrolPointIdStr) && toDeviceId != null) {
if (toAreaId != null) {
return AjaxResult.error("迁移失败,只允许点位迁移到设备部件");
}
//点位迁移
List<Long> patrolPointIds = Arrays.stream(patrolPointIdStr.split(","))
.map(Long::valueOf)
.collect(Collectors.toList());
// 查询迁移到哪个设备下的设备信息
BasedataDevice basedataDevice = basedataDeviceService.selectBasedataDeviceRelationByDeviceId(toDeviceId);
toAreaId = basedataDevice.getAreaId();
basedataDevice.setParentId(basedataDevice.getParentId() == 0 ? toDeviceId : basedataDevice.getParentId());
Long toParentId = basedataDevice.getParentId();
// 更新点位所属区域及设备id等信息
basedataPatrolPointService.batchUpdateBasedataPatrolPointRelation(toAreaId, toParentId, toDeviceId, patrolPointIds);
}
return AjaxResult.success("迁移成功");
}
@GetMapping({"/treeAreaDeviceSelectFilterByMeter"}) @GetMapping({"/treeAreaDeviceSelectFilterByMeter"})
public AjaxResult treeAreaDeviceSelectFilterByMeter(BaseDataArea baseDataArea) { public AjaxResult treeAreaDeviceSelectFilterByMeter(BaseDataArea baseDataArea) {
log.info("treeAreaDeviceSelectFilterByMeter param: {}", baseDataArea); log.info("treeAreaDeviceSelectFilterByMeter param: {}", baseDataArea);


+ 34
- 1
inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/domain/vo/AreaDeviceTreeSelect.java View File

@ -3,6 +3,7 @@ package com.inspect.metadata.prodevmnt.domain.vo;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPoint;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
@ -30,6 +31,21 @@ public class AreaDeviceTreeSelect implements Serializable {
private String deviceLength; private String deviceLength;
private String deviceWidth; private String deviceWidth;
private String deviceHigh; private String deviceHigh;
private Long pointNum;
private List<String> patrolPointNames;
private List<BasedataPatrolPoint> basedataPatrolPoints;
public List<String> getPatrolPointNames() {
return patrolPointNames;
}
public void setPatrolPointNames(List<String> patrolPointNames) {
this.patrolPointNames = patrolPointNames;
}
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
private String patrolPointId; private String patrolPointId;
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
@ -220,7 +236,24 @@ public class AreaDeviceTreeSelect implements Serializable {
public void setPatrolPointName(String patrolPointName) { public void setPatrolPointName(String patrolPointName) {
this.patrolPointName = patrolPointName; this.patrolPointName = patrolPointName;
} }
// public List<AreaDeviceTreeSelect> cleanEmptyPatrolPoints() {
public Long getPointNum() {
return pointNum;
}
public void setPointNum(Long pointNum) {
this.pointNum = pointNum;
}
public List<BasedataPatrolPoint> getBasedataPatrolPoints() {
return basedataPatrolPoints;
}
public void setBasedataPatrolPoints(List<BasedataPatrolPoint> basedataPatrolPoints) {
this.basedataPatrolPoints = basedataPatrolPoints;
}
// public List<AreaDeviceTreeSelect> cleanEmptyPatrolPoints() {
// // 递归清理 // // 递归清理
// if (children != null) { // if (children != null) {
// // 清理子节点 // // 清理子节点


+ 5
- 0
inspect-metadata/src/main/java/com/inspect/metadata/prodevmnt/mapper/BasedataDeviceMapper.java View File

@ -14,6 +14,7 @@ public interface BasedataDeviceMapper {
BasedataDevice selectBasedataDeviceByDeviceId(Long deviceId); BasedataDevice selectBasedataDeviceByDeviceId(Long deviceId);
List<BasedataDevice> selectBasedataDeviceList(BasedataDevice device); List<BasedataDevice> selectBasedataDeviceList(BasedataDevice device);
List<BasedataDevice> selectBasedataDeviceRelationList(BasedataDevice device);
List<BasedataDevice> selectBasedataDeviceListFilterByMeter(BasedataDevice device); List<BasedataDevice> selectBasedataDeviceListFilterByMeter(BasedataDevice device);
@ -48,4 +49,8 @@ public interface BasedataDeviceMapper {
List<BasedataDevice> selectPatrolPointList(Long[] ids); List<BasedataDevice> selectPatrolPointList(Long[] ids);
int deleteBySendCode(@Param("sendCode") String sendCode); int deleteBySendCode(@Param("sendCode") String sendCode);
int updateBasedataDeviceRelation(@Param("toAreaId") Long toAreaId, @Param("deviceId") Long deviceId);
BasedataDevice selectBasedataDeviceRelationByDeviceId(Long toDeviceId);
} }

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

@ -51,7 +51,13 @@ public interface IBasedataDeviceService {
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPreset(List<BaseDataArea> areas, List<String> filterNameList); List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPreset(List<BaseDataArea> areas, List<String> filterNameList);
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPresetRelation(List<BaseDataArea> areas, List<String> filterNameList);
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByMeter(List<BaseDataArea> areas); List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByMeter(List<BaseDataArea> areas);
List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByFault(List<BaseDataArea> areas); List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByFault(List<BaseDataArea> areas);
Boolean updateBasedataDeviceRelation(Long toAreaId, Long deviceId);
BasedataDevice selectBasedataDeviceRelationByDeviceId(Long toDeviceId);
} }

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

@ -7,6 +7,7 @@ import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPoint;
import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPointPreset; import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPointPreset;
import com.inspect.metadata.patrolpointmnt.mapper.BasedataPatrolPointMapper; import com.inspect.metadata.patrolpointmnt.mapper.BasedataPatrolPointMapper;
import com.inspect.metadata.patrolpointmnt.mapper.BasedataPatrolPointPresetMapper; import com.inspect.metadata.patrolpointmnt.mapper.BasedataPatrolPointPresetMapper;
import com.inspect.metadata.patrolpointmnt.service.IBasedataPatrolPointService;
import com.inspect.metadata.prodevmnt.domain.BasedataDevice; import com.inspect.metadata.prodevmnt.domain.BasedataDevice;
import com.inspect.metadata.prodevmnt.domain.BasedataDeviceType; import com.inspect.metadata.prodevmnt.domain.BasedataDeviceType;
import com.inspect.metadata.prodevmnt.domain.BasedataModelDevice; import com.inspect.metadata.prodevmnt.domain.BasedataModelDevice;
@ -63,10 +64,20 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService {
return this.basedataDeviceMapper.selectBasedataDeviceByDeviceId(deviceId); return this.basedataDeviceMapper.selectBasedataDeviceByDeviceId(deviceId);
} }
@Override
public BasedataDevice selectBasedataDeviceRelationByDeviceId(Long toDeviceId) {
return this.basedataDeviceMapper.selectBasedataDeviceRelationByDeviceId(toDeviceId);
}
public List<BasedataDevice> selectBasedataDeviceList(BasedataDevice basedataDevice) { public List<BasedataDevice> selectBasedataDeviceList(BasedataDevice basedataDevice) {
return this.basedataDeviceMapper.selectBasedataDeviceList(basedataDevice); return this.basedataDeviceMapper.selectBasedataDeviceList(basedataDevice);
} }
@Override
public Boolean updateBasedataDeviceRelation(Long toAreaId, Long deviceId) {
return basedataDeviceMapper.updateBasedataDeviceRelation(toAreaId, deviceId) > 0;
}
public List<TreeModule> selectAreaAndDeviceTree(BasedataDevice basedataDevice) { public List<TreeModule> selectAreaAndDeviceTree(BasedataDevice basedataDevice) {
return this.basedataDeviceMapper.selectAreaAndDeviceTree(basedataDevice); return this.basedataDeviceMapper.selectAreaAndDeviceTree(basedataDevice);
} }
@ -241,9 +252,173 @@ public class BasedataDeviceServiceImpl implements IBasedataDeviceService {
areaVOS.add(deviceVO); areaVOS.add(deviceVO);
} }
return AreaDeviceTreeSelectUtil.buildDeviceTreeFilterByAreaName(areaVOS, filterNamelist);
List<AreaDeviceTreeSelect> treeList = AreaDeviceTreeSelectUtil.buildDeviceTreeFilterByAreaName(areaVOS, filterNamelist);
// 新增填充点位统计
fillPointNumAndPatrolPoints(areaVOS, treeList);
return treeList;
}
/**
* 填充 pointNum basedataPatrolPoints
* @param allNodes 平面节点列表包含所有区域和设备节点
* @param treeList 构建后的树根节点列表
*/
private void fillPointNumAndPatrolPoints(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));
// 递归设置统计值
setPointNumAndPatrolPoints(treeList, devicePatrolMap);
}
/**
* 递归设置 pointNum basedataPatrolPoints信息
*/
private void setPointNumAndPatrolPoints(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()) {
List<BasedataPatrolPoint> basedataPatrolPoints = devicePatrolMap.get(node.getDeviceId());
List<AreaDeviceTreeSelect> patrolPoints = new ArrayList<>();
for (BasedataPatrolPoint basedataPatrolPoint : basedataPatrolPoints) {
AreaDeviceTreeSelect patrolVO = new AreaDeviceTreeSelect();
patrolVO.setPatrolPointName(basedataPatrolPoint.getPatrolPointName());
patrolVO.setDeviceName(basedataPatrolPoint.getPatrolPointName());
patrolVO.setPatrolPointId(String.valueOf(basedataPatrolPoint.getPatrolPointId()));
patrolPoints.add(patrolVO);
}
// 设置点位列表到节点上
node.setChildren(patrolPoints);
}
}
}
// 递归处理子节点
if (node.getChildren() != null && !node.getChildren().isEmpty()) {
setPointNumAndPatrolPoints(node.getChildren(), devicePatrolMap);
// 累加子节点 pointNum
for (AreaDeviceTreeSelect child : node.getChildren()) {
pointNum += child.getPointNum() != null ? child.getPointNum() : 0L;
}
}
node.setPointNum(pointNum);
}
}
/**
* 与fillPointNumAndPatrolPoints区别在于查询的表不一样 此处用的是basedata_patrolpoint_relation表用于迁移数据使用
*/
private void fillPointNumAndPatrolPointsRelation(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.selectBasedataPatrolPointRelationListByDeviceIds(new ArrayList<>(deviceIds));
// 按设备ID分组
Map<Long, List<BasedataPatrolPoint>> devicePatrolMap = patrolPoints.stream()
.collect(Collectors.groupingBy(BasedataPatrolPoint::getDeviceId));
// 递归设置统计值
setPointNumAndPatrolPoints(treeList, devicePatrolMap);
} }
public List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByPresetRelation(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.selectBasedataDeviceRelationList(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);
// 新增填充点位统计
fillPointNumAndPatrolPointsRelation(areaVOS, treeList);
return treeList;
}
public List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByMeter(List<BaseDataArea> areas) { public List<AreaDeviceTreeSelect> buildAreaDeviceTreeSelectByAreasFilterByMeter(List<BaseDataArea> areas) {
ArrayList<Long> areaIdList = new ArrayList<>(); ArrayList<Long> areaIdList = new ArrayList<>();
HashMap<Long, BaseDataArea> areaMap = new HashMap<>(); HashMap<Long, BaseDataArea> areaMap = new HashMap<>();


+ 59
- 0
inspect-metadata/src/main/resources/mapper/area/BaseDataAreaMapper.xml View File

@ -71,6 +71,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
order by d.parent_id, d.order_num order by d.parent_id, d.order_num
</select> </select>
<select id="selectAreaRelationList" parameterType="com.inspect.metadata.area.domain.BaseDataArea" resultMap="BaseDataAreaResult">
select d.area_id, d.parent_id, d.ancestors, d.area_name, d.area_type, d.order_num, d.status, d.del_flag, d.create_by, d.create_time,d.device_type_code,d.area_addr,d.remark,d.area_code
,d.old_area_id, d.old_parent_id
from basedata_area_relation d
where d.del_flag = '0'
<if test="areaId != null and areaId != 0">
AND area_id = #{areaId}
</if>
<if test="parentId != null and parentId != 0">
AND parent_id = #{parentId}
</if>
<if test="areaType != null and areaType != ''">
AND area_type = #{areaType}
</if>
<if test="areaName != null and areaName != ''">
AND area_name like concat('%', #{areaName}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="areaCode != null and areaCode != ''">
AND area_code = #{areaCode}
</if>
<if test="oldAreaId != null and oldAreaId != ''">
AND old_area_id = #{oldAreaId}
</if>
<if test="oldParentId != null and oldParentId != ''">
AND old_parent_id = #{oldParentId}
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
<!-- 区域数组查询 -->
<if test="params != null">
<if test="params.areaIdList != null">
and area_id in
<foreach item="item" collection="params.areaIdList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</if>
order by d.parent_id, d.order_num
</select>
<select id="selectAreaListByRoleId" resultType="java.lang.Long"> <select id="selectAreaListByRoleId" resultType="java.lang.Long">
select d.area_id select d.area_id
@ -88,6 +132,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where area_id = #{areaId} where area_id = #{areaId}
</select> </select>
<select id="selectAreaRelationById" parameterType="Long" resultMap="BaseDataAreaResult">
select d.area_id, d.parent_id, d.ancestors, d.area_name, d.area_type, d.order_num, d.status, d.del_flag, d.create_by, d.create_time,d.device_type_code,d.area_addr,d.remark,d.area_code
,d.old_area_id, d.old_parent_id
from basedata_area_relation d
where area_id = #{areaId}
</select>
<update id="updateAreaRelationById">
update
basedata_area_relation
set
parent_id = #{toAreaId} , ancestors = concat(#{ancestors}, ',', #{toAreaId})
where area_id = #{areaId}
</update>
<select id="checkAreaExistBook" parameterType="Long" resultType="int"> <select id="checkAreaExistBook" parameterType="Long" resultType="int">
select count(1) from basedata_eqpbook where area_id = #{areaId} select count(1) from basedata_eqpbook where area_id = #{areaId}
</select> </select>


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

@ -129,6 +129,53 @@
</foreach> </foreach>
</select> </select>
<select id="selectBasedataPatrolPointListByDeviceIds" parameterType="java.util.List"
resultMap="BasedataPatrolPointResult">
<include refid="selectBasedataPatrolPointVo"/>
WHERE device_id IN
<foreach item="item" collection="deviceIds" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="selectBasedataPatrolPointRelationListByDeviceIds" parameterType="java.util.List"
resultMap="BasedataPatrolPointResult">
select patrol_point_id,
patrol_point_code,
patrol_point_name,
device_type_id,
main_device_id,
device_id,
area_id,
patrol_content,
purpose,
create_by,
create_time,
update_by,
update_time,
delete_flag,
std_parol_point_id,
point_impt_level,
patrol_type_id,
lower_value,
upper_value,
position_x,
position_y,
position_z,
alg_subtype_ids,
original_alg_subtype_ids,
original_device_id,
dis_ref_picture_path,
original_main_device_id,
alarm_threshold,
meter_type
from basedata_patrolpoint_relation
WHERE device_id IN
<foreach item="item" collection="deviceIds" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="selectBasedataMonitorList" parameterType="BasedataPatrolPoint" resultMap="BasedataPatrolPointResult"> <select id="selectBasedataMonitorList" 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, -- 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 -- left join basedata_stdpatrol_point b on a.std_parol_point_id = b.std_patrol_point_id
@ -334,6 +381,18 @@
where patrol_point_id = #{patrolPointId} where patrol_point_id = #{patrolPointId}
</update> </update>
<update id="updateBasedataPatrolPointRelation">
update basedata_patrolpoint_relation set area_id = #{toAreaId} where device_id in (select device_id from basedata_device where device_id = #{deviceId} or parent_id = #{deviceId})
</update>
<update id="batchUpdateBasedataPatrolPointRelation">
update basedata_patrolpoint_relation set area_id = #{toAreaId},device_id = #{toDeviceId},main_device_id = #{toParentId}
where patrol_point_id in
<foreach item="patrolPointId" collection="patrolPointIds" open="(" separator="," close=")">
#{patrolPointId}
</foreach>
</update>
<delete id="deleteBasedataPatrolPointByPatrolPointId" parameterType="Long"> <delete id="deleteBasedataPatrolPointByPatrolPointId" parameterType="Long">
delete delete
from basedata_patrolpoint from basedata_patrolpoint


+ 174
- 2
inspect-metadata/src/main/resources/mapper/prodevmnt/BasedataDeviceMapper.xml View File

@ -74,8 +74,8 @@
create_time, create_time,
update_by, update_by,
update_time, update_time,
order_num
old_device_id,
order_num,
old_device_id,
old_parent_id, old_parent_id,
old_area_id, old_area_id,
old_area_name old_area_name
@ -136,6 +136,134 @@
</where> </where>
</select> </select>
<select id="selectBasedataDeviceRelationList" parameterType="BasedataDevice" resultMap="BasedataDeviceResult">
select device_id,
device_code,
device_name,
manufacturer,
parent_id,
ancestors,
area_id,
area_name,
device_type_id,
device_type_name,
power_main_equ_flag,
device_model,
phy_asset_id,
station_no,
monitor_index_no,
phase_num,
phase,
status,
position_x,
position_y,
position_z,
device_length,
device_width,
device_height,
del_flag,
create_by,
create_time,
update_by,
update_time,
order_num,
old_device_id,
old_parent_id,
old_area_id,
old_area_name
from basedata_device_relation
<where>
<if test="deviceId != null and deviceId != ''">and device_id = #{deviceId}</if>
<if test="deviceCode != null and deviceCode != ''">and device_code = #{deviceCode}</if>
<if test="deviceName != null and deviceName != ''">and device_name like concat('%', #{deviceName}, '%')
</if>
<if test="manufacturer != null and manufacturer != ''">and manufacturer = #{manufacturer}</if>
<if test="parentId != null ">and parent_id = #{parentId}</if>
<if test="ancestors != null and ancestors != ''">and ancestors = #{ancestors}</if>
<if test="areaId != null and areaId != ''">and area_id = #{areaId}</if>
<if test="areaName != null and areaName != ''">and area_name like concat('%', #{areaName}, '%')</if>
<if test="deviceTypeId != null and deviceTypeId != ''">and device_type_id = #{deviceTypeId}</if>
<if test="deviceTypeName != null and deviceTypeName != ''">and device_type_name like concat('%',
#{deviceTypeName}, '%')
</if>
<if test="powerMainEquFlag != null and powerMainEquFlag != ''">and power_main_equ_flag =
#{powerMainEquFlag}
</if>
<if test="deviceModel != null and deviceModel != ''">and device_model = #{deviceModel}</if>
<if test="phyAssetId != null and phyAssetId != ''">and phy_asset_id = #{phyAssetId}</if>
<if test="stationNo != null and stationNo != ''">and station_no = #{stationNo}</if>
<if test="monitorIndexNo != null and monitorIndexNo != ''">and monitor_index_no = #{monitorIndexNo}</if>
<if test="phaseNum != null and phaseNum != ''">and phase_num = #{phaseNum}</if>
<if test="phase != null and phase != ''">and phase = #{phase}</if>
<if test="status != null and status != ''">and status = #{status}</if>
<if test="positionX != null and positionX != ''">and position_x = #{positionX}</if>
<if test="positionY != null and positionY != ''">and position_y = #{positionY}</if>
<if test="positionZ != null and positionZ != ''">and position_z = #{positionZ}</if>
<if test="deviceLength != null and deviceLength != ''">and device_length = #{deviceLength}</if>
<if test="deviceWidth != null and deviceWidth != ''">and device_width = #{deviceWidth}</if>
<if test="deviceHeight != null and deviceHeight != ''">and device_height = #{deviceHeight}</if>
<if test="installPosition != null and installPosition != ''">and install_position = #{installPosition}</if>
<if test="orderNum != null and orderNum != ''">and order_num = #{orderNum}</if>
<if test="oldDeviceId != null and oldDeviceId != ''">and old_device_id = #{oldDeviceId}</if>
<if test="deviceIdAll != null and deviceIdAll != ''">
and device_id in
<foreach item="algId" collection="deviceIdListAll" open="(" separator="," close=")">
#{algId}
</foreach>
</if>
<!-- 区域数组查询 -->
<if test="params != null">
<if test="params.areaIdList != null">
and area_id in
<foreach item="item" collection="params.areaIdList" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</if>
</where>
</select>
<select id="selectBasedataDeviceByConditionList" parameterType="BasedataDevice" resultMap="BasedataDeviceResult">
select device_id,
device_code,
device_name,
manufacturer,
parent_id,
ancestors,
area_id,
area_name,
device_type_id,
device_type_name,
power_main_equ_flag,
device_model,
phy_asset_id,
station_no,
monitor_index_no,
phase_num,
phase,
status,
position_x,
position_y,
position_z,
device_length,
device_width,
device_height,
del_flag,
create_by,
create_time,
update_by,
update_time,
order_num
old_device_id,
old_parent_id,
old_area_id,
old_area_name
from basedata_device
where
device_id = #{deviceId} or parent_id = #{parentId}
</select>
<select id="selectBasedataDeviceListFilterByMeter" parameterType="BasedataDevice" resultMap="BasedataDeviceResult"> <select id="selectBasedataDeviceListFilterByMeter" parameterType="BasedataDevice" resultMap="BasedataDeviceResult">
select a.*,b.patrol_point_id as patrol_point_id,b.patrol_point_name as patrol_point_name select a.*,b.patrol_point_id as patrol_point_id,b.patrol_point_name as patrol_point_name
from basedata_device a from basedata_device a
@ -335,6 +463,45 @@
where device_id = #{deviceId} where device_id = #{deviceId}
</select> </select>
<select id="selectBasedataDeviceRelationByDeviceId" parameterType="Long" resultMap="BasedataDeviceResult">
select device_id,
device_code,
device_name,
manufacturer,
parent_id,
ancestors,
area_id,
area_name,
device_type_id,
device_type_name,
power_main_equ_flag,
device_model,
phy_asset_id,
station_no,
monitor_index_no,
phase_num,
phase,
status,
position_x,
position_y,
position_z,
device_length,
device_width,
device_height,
del_flag,
create_by,
create_time,
update_by,
update_time,
order_num
old_device_id,
old_parent_id,
old_area_id,
old_area_name
from basedata_device_relation
where device_id = #{deviceId}
</select>
<insert id="insertBasedataDevice" parameterType="BasedataDevice" useGeneratedKeys="true" keyProperty="deviceId"> <insert id="insertBasedataDevice" parameterType="BasedataDevice" useGeneratedKeys="true" keyProperty="deviceId">
insert into basedata_device insert into basedata_device
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
@ -448,6 +615,11 @@
where device_id = #{deviceId} where device_id = #{deviceId}
</update> </update>
<update id="updateBasedataDeviceRelation">
update basedata_device_relation set area_id = #{toAreaId} where device_id = #{deviceId} or parent_id = #{deviceId}
</update>
<delete id="deleteBasedataDeviceByDeviceId" parameterType="Long"> <delete id="deleteBasedataDeviceByDeviceId" parameterType="Long">
delete delete
from basedata_device from basedata_device


Loading…
Cancel
Save