冀北污染值算法上传

This commit is contained in:
2025-03-12 13:41:15 +08:00
parent 7f6aa6f683
commit 295fddb935
23 changed files with 1242 additions and 5 deletions

View File

@@ -6,6 +6,7 @@ import com.njcn.device.biz.commApi.fallback.CommLineClientFallbackFactory;
import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -36,6 +37,14 @@ public interface CommLineClient {
@GetMapping("/getLineDetail")
HttpResult<LineDTO> getLineDetail(@RequestParam("id") String id);
/**
* 获取污区值监测点相关信息
*
* @author hongawen
*/
@GetMapping("/getPollutionLineInfo")
HttpResult<List<PollutionLineInfoDTO>> getPollutionLineInfo(@RequestParam("id") List<String> id);
/***
* 批量获取监测点信息
* @author hongawen

View File

@@ -7,6 +7,7 @@ import com.njcn.device.biz.commApi.CommLineClient;
import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO;
import com.njcn.device.biz.utils.DeviceEnumUtil;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
@@ -39,6 +40,12 @@ public class CommLineClientFallbackFactory implements FallbackFactory<CommLineCl
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<PollutionLineInfoDTO>> getPollutionLineInfo(List<String> id) {
log.error("{}异常,降级处理,异常为:{}", "获取污区值监测点相关信息", throwable.toString());
throw new BusinessException(finalExceptionEnum);
}
@Override
public HttpResult<List<LineDTO>> getLineDetailBatch(List<String> ids) {
log.error("{}异常,降级处理,异常为:{}", "批量获取监测点信息", throwable.toString());

View File

@@ -0,0 +1,88 @@
package com.njcn.device.biz.pojo.dto;
import lombok.Data;
@Data
public class PollutionLineInfoDTO {
/**
* 供电公司名称
*/
private String gdName;
/**
* 所属变电站
*/
private String subStationName;
/**
* 终端名称
*/
private String devName;
/**
* 终端厂家
*/
private String manufacturer;
/**
* 终端型号
*/
private String devType;
/**
* 通讯状态
*/
private Integer comFlag;
/**
* 终端投运时间
*/
private String loginTime;
/**
* 位置,电网侧&非电网侧
*/
private String powerFlag;
/**
* 行业类型
*/
private String businessType;
/**
* 干扰源类型
*/
private String loadType;
/**
* 监测id
*/
private String lineId;
/**
* 监测对象
*/
private String objName;
/**
* 变电站
*/
private String powerSubstationName;
/**
* 电压等级
*/
private String lineVoltage;
/**
* 装置id
*/
private String deviceId;
/**
* 上送国网编号
*/
private String monitorId;
}

View File

@@ -7,6 +7,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO;
import com.njcn.device.pq.service.LineService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
@@ -41,6 +42,15 @@ public class CommLineController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getPollutionLineInfo")
@ApiOperation("获取污区值监测点相关信息")
public HttpResult<List<PollutionLineInfoDTO>> getPollutionLineInfo(@RequestParam("id") List<String> id) {
String methodDescribe = getMethodDescribe("getPollutionLineInfo");
List<PollutionLineInfoDTO> result = lineService.getPollutionLineInfo(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getLineAllDetail")
@ApiOperation("获取监测点id取超标监测点信息")

View File

@@ -3,6 +3,7 @@ package com.njcn.device.pq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO;
import com.njcn.device.pq.pojo.po.Device;
import com.njcn.device.pq.pojo.vo.DevDetail;
import com.njcn.device.pq.pojo.vo.LineInfluxDbOnlineVO;
@@ -85,4 +86,6 @@ public interface DeviceMapper extends BaseMapper<Device> {
List<DevDetail> selectDevByIds(@Param("ids") List<String> ids);
void updateDeviceRunFlag(@Param("id")String deviceId, @Param("runFlag")Integer status);
List<PollutionLineInfoDTO> getPollutionDeviceInfo(@Param("id")List<String> devId);
}

View File

@@ -340,4 +340,45 @@
bdName,
devName
</select>
<select id="getPollutionDeviceInfo" resultType="com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO">
SELECT
line.id lineId,
gdinfo.NAME AS gdName,
substation.NAME AS subStationName,
device.NAME AS devName,
deviceDetail.Com_Flag AS comFlag,
lineDetail.power_Flag AS powerFlag,
lineDetail.business_type AS businessType,
lineDetail.load_type AS loadtype,
lineDetail.obj_name AS objName,
lineDetail.power_substation_name AS powerSubstationName,
deviceDetail.manufacturer AS manufacturer,
deviceDetail.dev_Type AS devType,
deviceDetail.login_Time AS loginTime,
deviceDetail.id deviceId,
pv.scale lineVoltage,
lineDetail.monitor_id monitorId
FROM
pq_line line,
pq_line_detail lineDetail,
pq_line subv,
pq_line device,
pq_device deviceDetail,
pq_line substation,
pq_line gdinfo,
pq_voltage pv
WHERE line.id in
<foreach collection="id" close=")" item="item" open="(" separator=",">
#{item}
</foreach>
AND line.id = lineDetail.id
AND line.pid = subv.id
AND subv.pid = device.id
AND device.id = deviceDetail.id
AND device.pid = substation.id
AND substation.pid = gdinfo.id
AND subv.id = pv.id
</select>
</mapper>

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO;
import com.njcn.device.pq.pojo.dto.PollutionParamDTO;
import com.njcn.device.pq.pojo.dto.PollutionSubstationDTO;
import com.njcn.device.pq.pojo.param.*;
@@ -234,4 +235,10 @@ public interface LineService extends IService<Line> {
List<String> getLevelMonitorByDept(@RequestParam("level") String level, @RequestParam("deptId")String deptId);
/**
* 获取污区值监测点相关信息
* @author hongawen
*/
List<PollutionLineInfoDTO> getPollutionLineInfo(List<String> id);
}

View File

@@ -19,6 +19,7 @@ import com.njcn.common.utils.PubUtils;
import com.njcn.device.biz.enums.DeviceResponseEnum;
import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.PollutionLineInfoDTO;
import com.njcn.device.biz.pojo.po.Overlimit;
import com.njcn.device.pq.enums.LineBaseEnum;
import com.njcn.device.pq.mapper.*;
@@ -738,6 +739,39 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
return result;
}
@Override
public List<PollutionLineInfoDTO> getPollutionLineInfo(List<String> lineId) {
List<PollutionLineInfoDTO> pollutionLineInfoDTOList;
// 获取终端信息
pollutionLineInfoDTOList = deviceMapper.getPollutionDeviceInfo(lineId);
List<DictData> manufacturerList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_MANUFACTURER.getCode()).getData();
List<DictData> devTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_TYPE.getCode()).getData();
List<DictData> businessTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.BUSINESS_TYPE.getCode()).getData();
List<DictData> loadTypeList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INTERFERENCE_SOURCE_TYPE.getCode()).getData();
List<DictData> voltageList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
for (PollutionLineInfoDTO pollutionLineInfoDTO : pollutionLineInfoDTOList) {
// 制造厂商
Optional<DictData> temp = manufacturerList.stream().filter(item -> item.getId().equals(pollutionLineInfoDTO.getManufacturer())).findAny();
pollutionLineInfoDTO.setManufacturer(temp.map(DictData::getName).orElse(null));
// 终端类型
Optional<DictData> temp1 = devTypeList.stream().filter(item -> item.getId().equals(pollutionLineInfoDTO.getDevType())).findAny();
pollutionLineInfoDTO.setDevType(temp1.map(DictData::getName).orElse(null));
// 行业类型
Optional<DictData> temp2 = businessTypeList.stream().filter(item -> item.getId().equals(pollutionLineInfoDTO.getBusinessType())).findAny();
pollutionLineInfoDTO.setBusinessType(temp2.map(DictData::getName).orElse(null));
// 干扰源类型
Optional<DictData> temp3 = loadTypeList.stream().filter(item -> item.getId().equals(pollutionLineInfoDTO.getLoadType())).findAny();
pollutionLineInfoDTO.setLoadType(temp3.map(DictData::getName).orElse(null));
// 电压等级
Optional<DictData> temp4 = voltageList.stream().filter(item -> item.getId().equals(pollutionLineInfoDTO.getLineVoltage())).findAny();
pollutionLineInfoDTO.setLineVoltage(temp4.map(DictData::getName).orElse(null));
// 电网侧
pollutionLineInfoDTO.setPowerFlag(pollutionLineInfoDTO.getPowerFlag().equals("0") ? "电网侧" : "非电网侧");
}
return pollutionLineInfoDTOList;
}
@Override
public List<Overlimit> getOverLimitByList(PollutionParamDTO pollutionParamDTO) {
return overlimitMapper.selectBatchIds(pollutionParamDTO.getLineList());