监测点统计接口优化

This commit is contained in:
zhuxinyu
2023-03-22 20:00:59 +08:00
parent 0711f76f60
commit 50107edbe9
3 changed files with 38 additions and 23 deletions

View File

@@ -416,4 +416,5 @@ public interface LineMapper extends BaseMapper<Line> {
List<LineFlowMealDetailVO> getDeviceRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); List<LineFlowMealDetailVO> getDeviceRunStatistics(@Param("list") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
Page<LineFlowMealDetailVO> getNewDeviceRunStatistics(Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime); Page<LineFlowMealDetailVO> getNewDeviceRunStatistics(Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
Page<LineFlowMealDetailVO> getNewDeviceFlowStatistics(Page<LineFlowMealDetailVO> page,@Param("devs") List<String> list, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
} }

View File

@@ -798,7 +798,7 @@
#{item} #{item}
</foreach> </foreach>
and and
m.Create_Time between #{startTime} and #{endTime} a.Create_Time between #{startTime} and #{endTime}
) t ) t
</select> </select>
@@ -836,10 +836,38 @@
#{item} #{item}
</foreach> </foreach>
and and
m.Create_Time between #{startTime} and #{endTime} a.Create_Time between #{startTime} and #{endTime}
) t ) t
</select> </select>
<select id="getNewDeviceFlowStatistics" resultType="LineFlowMealDetailVO">
select t.*,
(t.statisValue)/t.flowMeal flowProportion
from (SELECT
a.id,
a.Name name,
a.level,
a.update_Time updateTime,
b.run_flag runFlag,
b.com_flag comFlag,
b.id deviceId,
ifnull(d.flow, (select flow from cld_flow_meal where type = 0 and flag = 1)) + ifnull(d1.flow, 0) flowMeal,
ifnull(m.Actual_Value,0) statisValue
FROM pq_line a
INNER JOIN pq_device b ON a.id = b.id
LEFT JOIN pqs_month_flow m ON b.id = m.Dev_Id
LEFT JOIN cld_dev_meal c ON b.id = c.line_id
LEFT JOIN cld_flow_meal d ON c.Base_Meal_Id = d.id
LEFT JOIN cld_flow_meal d1 ON c.Ream_Meal_Id = d1.id
where a.id in
<foreach item="item" collection="devs" separator="," open="(" close=")">
#{item}
</foreach>
and
a.Create_Time between #{startTime} and #{endTime}
) t ORDER BY flowProportion DESC
</select>
<select id="getFlowLineInfoByTableList" resultType="LineFlowMealDetailVO"> <select id="getFlowLineInfoByTableList" resultType="LineFlowMealDetailVO">
SELECT SELECT
Id, Id,

View File

@@ -392,29 +392,15 @@ public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements Li
@Override @Override
public Page<LineFlowMealDetailVO> getNewDeviceRunStatistics( PqsParam deviceInfoParam) { public Page<LineFlowMealDetailVO> getNewDeviceRunStatistics( PqsParam deviceInfoParam) {
List<LineFlowMealDetailVO> deviceList = new ArrayList<>(); List<String> deviceIndexes = new ArrayList<>();
Page<LineFlowMealDetailVO> page = new Page(); Page<LineFlowMealDetailVO> page = new Page();
List<GeneralDeviceDTO> deviceInfoList = generalDeviceService.getDeviceInfo(deviceInfoParam, null, Stream.of(1).collect(Collectors.toList())); List<GeneralDeviceDTO> deviceInfoList = generalDeviceService.getDeviceInfo(deviceInfoParam, null, Stream.of(1).collect(Collectors.toList()));
for (GeneralDeviceDTO generalDeviceDTO : deviceInfoList) { deviceInfoList.stream().map(GeneralDeviceDTO::getDeviceIndexes).forEach(deviceIndexes::addAll);
List<String> lineIndexes = generalDeviceDTO.getLineIndexes(); page = lineMapper.getNewDeviceFlowStatistics(
List<String> deviceIndexes = generalDeviceDTO.getDeviceIndexes(); new Page(deviceInfoParam.getPageNum(), deviceInfoParam.getPageSize()),
if (CollectionUtils.isEmpty(deviceIndexes)) { deviceIndexes,
continue; DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())),
} DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())));
page = lineMapper.getNewDeviceRunStatistics(
new Page(deviceInfoParam.getPageNum(), deviceInfoParam.getPageSize()),
lineIndexes,
DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())),
DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())));
if (CollectionUtil.isNotEmpty(page.getRecords())){
for (LineFlowMealDetailVO device : page.getRecords()) {
BigDecimal b = new BigDecimal((device.getFlowMeal()-device.getStatisValue())/device.getFlowMeal()*100);
device.setFlowProportion(b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue());
}
}
}
return page; return page;
} }