监测点统计接口优化
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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();
|
|
||||||
if (CollectionUtils.isEmpty(deviceIndexes)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
page = lineMapper.getNewDeviceRunStatistics(
|
|
||||||
new Page(deviceInfoParam.getPageNum(), deviceInfoParam.getPageSize()),
|
new Page(deviceInfoParam.getPageNum(), deviceInfoParam.getPageSize()),
|
||||||
lineIndexes,
|
deviceIndexes,
|
||||||
DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())),
|
DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchBeginTime())),
|
||||||
DateUtil.beginOfDay(DateUtil.parse(deviceInfoParam.getSearchEndTime())));
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user