1.调整终端管理下,终端和监测点模糊搜索

2.技术监督全景展示接口调整
This commit is contained in:
wr
2024-06-19 18:20:55 +08:00
parent 55b4501694
commit 1f3ea231ad
11 changed files with 178 additions and 48 deletions

View File

@@ -4,6 +4,7 @@ import com.njcn.common.pojo.constant.ServerInfo;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pq.api.fallback.LineFeignClientFallbackFactory;
import com.njcn.device.pq.pojo.dto.*;
import com.njcn.device.pq.pojo.param.DataParam;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.Line;
@@ -339,4 +340,7 @@ public interface LineFeignClient {
@PostMapping("/updateLineRunFlag")
void updateLineRunFlag(@RequestParam("lineId")String lineId, @RequestParam("status")Integer status);
@PostMapping("/getDeptDeviceDetailData")
HttpResult<List<LineDetailVO.Detail>> getDeptDeviceDetailData(@RequestBody DataParam param);
}

View File

@@ -5,6 +5,7 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.dto.*;
import com.njcn.device.pq.pojo.param.DataParam;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.Line;
@@ -262,6 +263,12 @@ public class LineFeignClientFallbackFactory implements FallbackFactory<LineFeign
log.error("{}异常,降级处理,异常为:{}", "更新监测点运行状态: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<LineDetailVO.Detail>> getDeptDeviceDetailData(DataParam param) {
log.error("{}异常,降级处理,异常为:{}", "更新监测点运行状态: ", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
};
}
}

View File

@@ -1,19 +0,0 @@
package com.njcn.device.pq.pojo.param;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* 区域点数据完整性接收前端类
*
* @author yzh
* @date 2022/9/22
*/
@Data
@ApiModel
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AreaIntegrityDataParam extends DeviceInfoParam.BusinessParam {
}

View File

@@ -0,0 +1,21 @@
package com.njcn.device.pq.pojo.param;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 区域点数据完整性接收前端类
*
* @author yzh
* @date 2022/9/22
*/
@Data
public class DataParam extends BaseParam {
@ApiModelProperty(name = "orgId",value = "单位id")
private String orgId;
@ApiModelProperty(name = "type",value = "设备类型 1:装置2:监测点")
private Integer type;
}

View File

@@ -15,16 +15,14 @@ import com.njcn.device.pq.mapper.LineDetailMapper;
import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.mapper.RStatIntegrityDMapper;
import com.njcn.device.pq.pojo.dto.*;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.LineBaseQueryParam;
import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
import com.njcn.device.pq.pojo.param.*;
import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.pq.pojo.po.LineDetail;
import com.njcn.device.pq.pojo.vo.*;
import com.njcn.device.pq.service.LineService;
import com.njcn.web.controller.BaseController;
import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -508,4 +506,14 @@ public class LineController extends BaseController {
List<LineDetailVO.Detail> line = lineService.getLineDetailByIds(ids);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,line,methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("根据装置部门和模糊搜索获取装置详情")
@ApiImplicitParam(name = "id", value = "装置id", required = true)
@PostMapping("/getDeptDeviceDetailData")
HttpResult<List<LineDetailVO.Detail>> getDeptDeviceDetailData(@RequestBody DataParam param){
String methodDescribe = getMethodDescribe("getDeptDeviceDetailData");
List<LineDetailVO.Detail> deptDeviceDetailData = lineService.getDeptDeviceDetailData(param);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, deptDeviceDetailData, methodDescribe);
}
}

View File

@@ -546,5 +546,9 @@ public interface LineMapper extends BaseMapper<Line> {
DeviceVO getDeviceDetailData(@Param("id")String id);
List<LineDetailVO.Detail> getDeptDeviceDetailData(@Param("ids")List<String> ids,
@Param("searchValue")String searchValue,
@Param("type")Integer type);
LineDetailVO getLineInfoVO(@Param("id")String id);
}

View File

@@ -1515,7 +1515,8 @@
deviceDetail.Update_Time AS timeID,
deviceDetail.ip ip,
deviceDetail.Com_Flag as comFlag,
vg.Scale as voltageLevel
vg.Scale as voltageLevel,
voltage.name as volName
FROM
pq_line line,
pq_line voltage,
@@ -1605,5 +1606,66 @@
AND substation.pid = gd.id
AND pq_line.id = #{id}
</select>
<select id="getDeptDeviceDetailData" resultType="com.njcn.device.pq.pojo.vo.LineDetailVO$Detail">
SELECT DISTINCT
line.id as lineId,
area.name as areaId,
gd.NAME gdName,
substation.NAME subName,
device.id devId,
device.NAME devName,
line.NAME lineName,
lineDetail.Time_Interval as timeInterval,
lineDetail.PT_Type as ptType,
lineDetail.Line_Grade,
lineDetail.PT1 as PT1,
lineDetail.PT2 as PT2,
lineDetail.CT1 as CT1,
lineDetail.CT2 as CT2,
deviceDetail.Update_Time AS timeID,
deviceDetail.ip ip,
deviceDetail.Com_Flag as comFlag,
vg.Scale as voltageLevel,
voltage.name as volName
FROM
pq_line line,
pq_line voltage,
pq_line device,
pq_line substation,
pq_line gd,
pq_line area,
pq_device deviceDetail,
pq_line_detail lineDetail,
pq_voltage vg
<where>
line.pid = voltage.id
AND voltage.pid = device.id
AND device.pid = substation.id
AND substation.pid = gd.id
AND gd.pid = area.id
AND device.id = deviceDetail.id
AND line.id = lineDetail.id
AND vg.Id = voltage.id
<if test="ids!=null and ids.size() > 0">
AND line.id IN
<foreach collection="ids" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="searchValue!=null and searchValue!='' and type==2">
and (
lineName like CONCAT('%', #{searchValue}, '%')
or subName like CONCAT('%', #{searchValue}, '%')
)
</if>
<if test="searchValue!=null and searchValue!='' and type==1">
and (
devName like CONCAT('%', #{searchValue}, '%')
or subName like CONCAT('%', #{searchValue}, '%')
)
</if>
</where>
</select>
</mapper>

View File

@@ -7,6 +7,7 @@ import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
import com.njcn.device.pq.pojo.param.DataParam;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.PqsParam;
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
@@ -14,6 +15,8 @@ import com.njcn.device.pq.pojo.po.Line;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.pojo.po.TopMsgPO;
import com.njcn.device.pq.pojo.vo.*;
import com.njcn.web.pojo.param.BaseParam;
import java.util.List;
import java.util.Map;
@@ -215,4 +218,6 @@ public interface LineService extends IService<Line> {
List<Line> getSubIndexLineDetail(String id);
List<LineALLInfoDTO> getLineAllDetailList(List<String> ids);
List<LineDetailVO.Detail> getDeptDeviceDetailData(DataParam param);
}

View File

@@ -24,12 +24,14 @@ import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.dto.PollutionLineDTO;
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
import com.njcn.device.pq.pojo.param.DataParam;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.param.PqsParam;
import com.njcn.device.pq.pojo.param.TerminalMainQueryParam;
import com.njcn.device.pq.pojo.po.*;
import com.njcn.device.pq.pojo.vo.*;
import com.njcn.device.pq.mapper.*;
import com.njcn.device.pq.service.DeptLineService;
import com.njcn.device.pq.service.LineService;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.imapper.PqsCommunicateMapper;
@@ -42,6 +44,7 @@ import com.njcn.system.pojo.po.Area;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.pojo.param.BaseParam;
import com.njcn.web.pojo.vo.LineDataVO;
import com.njcn.web.utils.GeneralUtil;
import com.njcn.web.utils.RequestUtil;
@@ -94,7 +97,7 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
private final TerminalMaintainMapper terminalMaintainMapper;
private final DeptFeignClient deptFeignClient;
private final DeptLineService deptLineService;
@Override
public LineDetailDataVO getLineDetailData(String id) {
//根据id查询当前信息的pids
@@ -662,6 +665,17 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
return collect;
}
@Override
public List<LineDetailVO.Detail> getDeptDeviceDetailData(DataParam param) {
List<String> ids = deptFeignClient.getDepSonIdtByDeptId(param.getOrgId()).getData();
List<DeptLine> deptLines = deptLineService.selectDeptBindLines(ids);
List<String> lineIDs = deptLines.stream().map(DeptLine::getLineId).collect(Collectors.toList());
if(CollUtil.isNotEmpty(lineIDs)){
return this.baseMapper.getDeptDeviceDetailData(lineIDs, param.getSearchValue(),param.getType());
}
return new ArrayList<>();
}
@Override
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());

View File

@@ -1,5 +1,6 @@
package com.njcn.supervision.service.device.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.StrPool;
@@ -18,8 +19,10 @@ import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.enums.RunFlagEnum;
import com.njcn.device.pq.pojo.param.DataParam;
import com.njcn.device.pq.pojo.po.line.LineInfoVO;
import com.njcn.device.pq.pojo.vo.DeviceVO;
import com.njcn.device.pq.pojo.vo.LineDetailVO;
import com.njcn.supervision.enums.SupervisionKeyEnum;
import com.njcn.supervision.enums.SupervisionUserStatusEnum;
import com.njcn.supervision.mapper.device.QuitRunningDeviceMapper;
@@ -37,10 +40,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
@@ -138,6 +140,12 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
@Override
public Page<QuitRunningDeviceVO> getQuitRunningDevice(QuitRunningDeviceParam.QuitRunningDeviceQueryParam quitRunningDeviceQueryParam) {
DataParam param=new DataParam();
param.setOrgId(RequestUtil.getDeptIndex());
param.setType(quitRunningDeviceQueryParam.getDeviceType());
param.setSearchValue(quitRunningDeviceQueryParam.getSearchValue());
List<LineDetailVO.Detail> lineDetail = lineFeignClient.getDeptDeviceDetailData(param).getData();
Map<String, LineDetailVO.Detail> mapDetail=new HashMap<>();
QueryWrapper<QuitRunningDeviceVO> quitRunningDeviceVOQueryWrapper = new QueryWrapper<>();
if (Objects.nonNull(quitRunningDeviceQueryParam)) {
//判断监测点/设备的选择
@@ -151,10 +159,15 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
DateUtil.endOfDay(DateUtil.parse(quitRunningDeviceQueryParam.getSearchEndTime())));
//判断监测点/设备的选择
quitRunningDeviceVOQueryWrapper.eq("supervision_quit_running_device.device_type", quitRunningDeviceQueryParam.getDeviceType());
if(2==quitRunningDeviceQueryParam.getDeviceType()){
mapDetail.putAll(lineDetail.stream().collect(Collectors.toMap(LineDetailVO.Detail::getLineId, Function.identity())));
}else{
mapDetail.putAll(lineDetail.stream().collect(Collectors.toMap(LineDetailVO.Detail::getDevId,Function.identity(), (key1,key2)->key1)));
}
if (Objects.nonNull(quitRunningDeviceQueryParam.getStatus())) {
quitRunningDeviceVOQueryWrapper.eq("supervision_quit_running_device.status", quitRunningDeviceQueryParam.getStatus());
}
quitRunningDeviceVOQueryWrapper.in(CollUtil.isNotEmpty(mapDetail.keySet()),"supervision_quit_running_device.device_id", mapDetail.keySet());
}
//获取当前用户部门所有同事的id查看该部门下所有的数据
@@ -166,19 +179,23 @@ public class QuitRunningDeviceServiceImpl extends ServiceImpl<QuitRunningDeviceM
if (CollectionUtil.isNotEmpty(records)) {
for (QuitRunningDeviceVO record : records) {
if (record.getDeviceType() == 1) {
DeviceVO deviceVO = lineFeignClient.getDeviceDetailData(record.getDeviceId()).getData();
record.setDeviceName(deviceVO.getName());
record.setDeviceStatus(deviceVO.getRunFlag());
record.setGdName(deviceVO.getGdName());
record.setSubName(deviceVO.getSubName());
//获取装置详细信息
if(mapDetail.containsKey(record.getDeviceId())){
LineDetailVO.Detail detail = mapDetail.get(record.getDeviceId());
record.setDeviceName(detail.getDevName());
record.setDeviceStatus(detail.getRunFlag());
record.setGdName(detail.getGdName());
record.setSubName(detail.getSubName());
}
} else if (record.getDeviceType() == 2) {
//获取监测点详细信息
LineInfoVO lineInfoVO = lineFeignClient.getLineInfoVO(record.getDeviceId()).getData();
record.setDeviceStatus(lineInfoVO.getRunFlag());
record.setDeviceName(lineInfoVO.getVolName().concat("_").concat(lineInfoVO.getLineName()));
record.setGdName(lineInfoVO.getGdName());
record.setSubName(lineInfoVO.getSubName());
if(mapDetail.containsKey(record.getDeviceId())){
LineDetailVO.Detail detail = mapDetail.get(record.getDeviceId());
record.setDeviceName(detail.getVolName().concat("_").concat(detail.getLineName()));
record.setDeviceStatus(detail.getRunFlag());
record.setGdName(detail.getGdName());
record.setSubName(detail.getSubName());
}
}
}
}

View File

@@ -8,10 +8,12 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.param.StatisticsBizBaseParam;
import com.njcn.supervision.pojo.po.device.LineWarning;
import com.njcn.supervision.pojo.po.leaflet.WarningLeaflet;
import com.njcn.supervision.pojo.po.problem.SupervisionUserComplaintPO;
import com.njcn.supervision.pojo.po.survey.SurveyTest;
import com.njcn.supervision.pojo.vo.gridDiagram.GridDiagramVO;
import com.njcn.supervision.service.device.ILineWarningService;
import com.njcn.supervision.service.gridDiagram.GridDiagramService;
import com.njcn.supervision.service.leaflet.IWarningLeafletService;
import com.njcn.supervision.service.problem.SupervisionUserComplaintPOService;
@@ -40,11 +42,10 @@ public class GridDiagramServiceImpl implements GridDiagramService {
private final ISurveyTestService surveyTestService;
private final DeptFeignClient deptFeignClient;
private final IWarningLeafletService warningLeafletService;
private final ILineWarningService lineWarningService;
@Override
public GridDiagramVO.Info getSupervisionData(StatisticsBizBaseParam param) {
GridDiagramVO.Info info = new GridDiagramVO.Info();
List<String> deptIds = deptFeignClient.getDepSonIdByDeptId(param.getId()).getData();
return supervisionDetailsAdd(null, deptIds, param);
}
@@ -90,13 +91,17 @@ public class GridDiagramServiceImpl implements GridDiagramService {
*/
private GridDiagramVO.Info supervisionDetailsAdd(DeptDTO deptDTO, List<String> ids, StatisticsBizBaseParam baseParam) {
GridDiagramVO.Info gridDiagramVO = new GridDiagramVO.Info();
if(ObjectUtil.isNotNull(deptDTO)){
if (ObjectUtil.isNotNull(deptDTO)) {
gridDiagramVO.setOrgName(deptDTO.getName());
}
//todo 在线监测问题
int onLineNum = 0;
//在线监测问题
List<LineWarning> lineWarningList = lineWarningService.list(new LambdaQueryWrapper<LineWarning>()
.in(LineWarning::getDeptId, ids)
.ge(StrUtil.isNotBlank(baseParam.getStartTime()), LineWarning::getCreateTime, DateUtil.beginOfDay(DateUtil.parse(baseParam.getStartTime())))
.le(StrUtil.isNotBlank(baseParam.getEndTime()), LineWarning::getCreateTime, DateUtil.endOfDay(DateUtil.parse(baseParam.getEndTime())))
);
gridDiagramVO.setOnLineNum(onLineNum);
gridDiagramVO.setOnLineNum(lineWarningList.size());
//用户投诉问题(添加出来就是有问题的)
List<SupervisionUserComplaintPO> userComplaintList = userComplaintPOService.list(new LambdaQueryWrapper<SupervisionUserComplaintPO>()
.in(SupervisionUserComplaintPO::getDutyOrgId, ids)
@@ -115,11 +120,13 @@ public class GridDiagramServiceImpl implements GridDiagramService {
);
gridDiagramVO.setSurveyNum(surveyTestList.size());
gridDiagramVO.setAbnormalNum(userComplaintList.size() + surveyTestList.size());
gridDiagramVO.setAbnormalNum(lineWarningList.size() + userComplaintList.size() + surveyTestList.size());
//根据问题单id查询已关联工单
List<String> problemIds = userComplaintList.stream().map(SupervisionUserComplaintPO::getId).collect(Collectors.toList());
problemIds.addAll(surveyTestList.stream().map(SurveyTest::getId).collect(Collectors.toList()));
problemIds.addAll(lineWarningList.stream().map(LineWarning::getId).collect(Collectors.toList()));
if (CollUtil.isNotEmpty(problemIds)) {
List<WarningLeaflet> list = warningLeafletService.list(new LambdaQueryWrapper<WarningLeaflet>()
.in(WarningLeaflet::getProblemId, problemIds)