添加统计类型监测点性质

This commit is contained in:
wr
2024-04-26 10:36:16 +08:00
parent b6b32e0548
commit 20c95cab63
10 changed files with 114 additions and 6 deletions

View File

@@ -541,4 +541,6 @@ public interface LineMapper extends BaseMapper<Line> {
*/
List<LineDetailVO.Detail> selectByIds(@Param("ids") List<String> ids);
List<String> getDeviceIdByPowerFlag(@Param("lineIds")List<String> lineIds, @Param("powerFlag")Integer manufacturer);
}

View File

@@ -1272,6 +1272,7 @@
pd.Com_Flag AS comFlag,
pld.Line_Grade AS lineGrade,
pld.Business_Type AS businessType,
pld.Load_Type AS loadType,
pd.Login_Time AS loginTime,
pd.Update_Time AS updateTime,
ifnull( round(onlineRate,2), 0 ) AS onlineRate,
@@ -1484,5 +1485,21 @@
</if>
</where>
</select>
<select id="getDeviceIdByPowerFlag" resultType="String">
select
t1.id
from
pq_line t1 ,
pq_line_detail t2
where
t1.id = t2.id
and
t1.id in
<foreach collection="lineIds" separator="," open="(" close=")" item="item">
#{item}
</foreach>
AND
t2.Power_Flag = #{powerFlag}
</select>
</mapper>

View File

@@ -158,6 +158,14 @@ public interface TerminalBaseService {
* @param manufacturer 终端厂家
*/
List<String> getDeviceIdByManufacturer(List<String> deviceIds, String manufacturer);
/**
* 根据监测点性质获取监测信息
*
* @param lineIds 监测点id
* @param manufacturer 监测点性质
*/
List<String> getDeviceIdByPowerFlag(List<String> lineIds, Integer manufacturer);
/**
* 根据监测点集合查询基础信息

View File

@@ -9,6 +9,7 @@ import com.njcn.common.pojo.dto.SimpleDTO;
import com.njcn.common.pojo.enums.common.ServerEnum;
import com.njcn.common.utils.EnumUtils;
import com.njcn.device.pq.enums.LineBaseEnum;
import com.njcn.device.pq.enums.PowerFlagEnum;
import com.njcn.device.pq.mapper.DeviceMapper;
import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.mapper.TopMsgMapper;
@@ -368,6 +369,8 @@ public class GeneralDeviceService {
return filterDataByLoadType(deviceInfos, deviceInfoParam.getLoadType());
case MANUFACTURER:
return filterDataByManufacturer(deviceInfos, deviceInfoParam.getManufacturer());
case POWER_FLAG:
return filterDataByPowerFlag(deviceInfos, deviceInfoParam.getManufacturer());
default:
return deviceInfos;
}
@@ -548,7 +551,27 @@ public class GeneralDeviceService {
return generalDeviceDTOS;
}
private List<GeneralDeviceDTO> filterDataByPowerFlag(List<GeneralDeviceDTO> deviceInfos, List<SimpleDTO> manufacturer) {
List<GeneralDeviceDTO> generalDeviceDTOS = new ArrayList<>();
List<String> deviceIds = deviceInfos.stream().flatMap(x->x.getLineIndexes().stream()).collect(Collectors.toList());
List<String> lineIds = deviceInfos.stream().flatMap(x->x.getLineIndexes().stream()).collect(Collectors.toList());
//监测点为空,则返回空的分类数据
if (CollectionUtil.isEmpty(lineIds)) {
return assembleCommonData(manufacturer);
}
SimpleDTO dto;
List<Line> lines = terminalBaseService.getLineById(lineIds);
for (int i = 0; i < 6; i++) {
List<String> powerFlagIds = terminalBaseService.getDeviceIdByPowerFlag(deviceIds, i);
dto=new SimpleDTO();
PowerFlagEnum enumByCode = PowerFlagEnum.getPowerFlagEnumByCode(i);
dto.setId(enumByCode.getCode().toString());
dto.setName(enumByCode.getMessage());
generalDeviceDTOS.add(assembleDataByLine(dto, lines, powerFlagIds, LineBaseEnum.LINE_LEVEL.getCode()));
}
return generalDeviceDTOS;
}
/**
* 当该部门不存在监测点时,返回空的分类数据
*

View File

@@ -282,13 +282,16 @@ public class GridDiagramServiceImpl implements GridDiagramService {
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceService.getDeviceInfo(param.getDeviceInfoParam(), Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList()));
Map<String, Long> map = new LinkedHashMap<>();
DateField dateField;
DateTime parse;
if (1 == param.getType()) {
dateField = DateField.YEAR;
parse =DateUtil.offset(DateUtil.parse(param.getSearchBeginTime()),DateField.YEAR,-5);
} else {
dateField = DateField.MONTH;
parse = DateUtil.parse(param.getSearchBeginTime());
}
//根据步进单位获取起始日期时间和结束日期时间的时间区间集合
List<DateTime> dateTimes = DateUtil.rangeToList(DateUtil.parse(param.getSearchBeginTime()), DateUtil.parse(param.getSearchEndTime()), dateField);
List<DateTime> dateTimes = DateUtil.rangeToList(parse, DateUtil.parse(param.getSearchEndTime()), dateField);
List<Date> times;
if (4 == type) {
List<String> devIDs = generalDeviceDTOList.stream().flatMap(x -> x.getDeviceIndexes().stream()).distinct().collect(Collectors.toList());

View File

@@ -1504,6 +1504,11 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
return this.baseMapper.getDeviceIdByManufacturer(deviceIds, manufacturer);
}
@Override
public List<String> getDeviceIdByPowerFlag(List<String> lineIds, Integer manufacturer) {
return this.baseMapper.getDeviceIdByPowerFlag(lineIds, manufacturer);
}
@Override
public List<BaseLineInfo> getBaseLineInfo(List<String> lineIndex) {
return this.baseMapper.getBaseLineInfo(lineIndex);