Commit ff3abd7b authored by zhangsen's avatar zhangsen

任务23711 关键数据消防水池可用时间功能开发

parent 2f4001fc
......@@ -3,14 +3,17 @@ package com.yeejoin.equipmanage.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.FormInstanceEquip;
import com.yeejoin.equipmanage.common.enums.IndexStatusEnum;
import com.yeejoin.equipmanage.common.utils.*;
import com.yeejoin.equipmanage.config.PersonIdentify;
import com.yeejoin.equipmanage.fegin.IotFeign;
import com.yeejoin.equipmanage.mapper.FireFightingSystemMapper;
import com.yeejoin.equipmanage.mapper.FormInstanceEquipMapper;
import com.yeejoin.equipmanage.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -66,6 +69,9 @@ public class SupervisionConfigureController extends AbstractBaseController {
@Value("${equipment.pressurepump.start}")
private String pressurePumpStart;
@Autowired
private FormInstanceEquipMapper formInstanceEquipMapper;
@PersonIdentify
@TycloudOperation(ApiLevel = UserType.AGENCY)
......@@ -106,17 +112,56 @@ public class SupervisionConfigureController extends AbstractBaseController {
} else {
m.put("levelAbs", transResult.get("abs"));
}
if (m.containsKey("pumpDeviceId") && !ObjectUtils.isEmpty(m.get("pumpDeviceId"))) {
List<String> pumpDeviceIds = Arrays.asList(m.get("pumpDeviceId").toString().split(","));
LambdaQueryWrapper<FormInstanceEquip> wrapper = new LambdaQueryWrapper<>();
wrapper.in(FormInstanceEquip::getInstanceId, pumpDeviceIds);
wrapper.eq(FormInstanceEquip::getFieldName, "outputFlowRate");
List<FormInstanceEquip> formInstanceEquips = formInstanceEquipMapper.selectList(wrapper);
Map<Long, String> collect = formInstanceEquips.stream().collect(Collectors.toMap(FormInstanceEquip::getInstanceId, FormInstanceEquip::getFieldValue));
List<String> dataInfo = new ArrayList<>();
int i = 1;
double addFlowRate = 0.0;
List<Map<String, Object>> info = new ArrayList<>();
for (String pumpDeviceId : pumpDeviceIds) {
HashMap<String, Object> map = new HashMap<>();
map.put("pumpDeviceId", pumpDeviceId);
map.put("outputFlowRate", collect.getOrDefault(Long.valueOf(pumpDeviceId), "0"));
info.add(map);
}
// 计算可使用时间:储水量(L) / 出口流量(L/s), 单位为小时
float outputFlowRate = Float.parseFloat(m.getOrDefault("outputFlowRate", "0").toString());
if (levelAbsLiter.compareTo(new BigDecimal(0)) != 0 && outputFlowRate != 0) {
double availableSeconds = levelAbsLiter.divide(new BigDecimal(outputFlowRate), 0, RoundingMode.HALF_UP).doubleValue();
double availableHours = availableSeconds / 3600.0;
m.put("availableTime", String.format("%.1fh", availableHours)); // 启动一台时
m.put("availableTimeOnStartTwo", String.format("%.1fh", availableHours / 2)); // 启动两台时
} else {
m.put("availableTime", "--");
m.put("availableTimeOnStartTwo", "--");
// 按流量排序
Collections.sort(info, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
Float bl1 = Float.valueOf(o1.get("outputFlowRate").toString());
Float bl2 = Float.valueOf(o2.get("outputFlowRate").toString());
return bl2.compareTo(bl1);
}
});
for (Map<String, Object> map : info) {
String message = "启动%s台消防泵可使用时间≈%s";
String availableTimeFirst = "0.0";
// 计算可使用时间:储水量(L) / 出口流量(L/s), 单位为小时
float outputFlowRate = Float.parseFloat(map.getOrDefault("outputFlowRate", "0").toString());
addFlowRate = outputFlowRate + addFlowRate;
if (levelAbsLiter.compareTo(new BigDecimal(0)) != 0 && addFlowRate != 0) {
double availableSeconds = levelAbsLiter.divide(BigDecimal.valueOf(addFlowRate), 0, RoundingMode.HALF_UP).doubleValue();
double availableHours = availableSeconds / 3600.0;
message = String.format(message, i, String.format("%.1fh", availableHours)); // 启动一台时
availableTimeFirst = String.format("%.1fh", availableHours);
} else {
message = String.format(message, i, "--");
availableTimeFirst = "--";
}
dataInfo.add(message);
if (i == 1) {
m.put("availableTime", availableTimeFirst);
}
i++;
}
m.put("availableTimeInfo", dataInfo);
}
}
}
......
......@@ -52,7 +52,7 @@ public class FormInstanceEquipServiceImpl extends ServiceImpl<FormInstanceEquipM
@Autowired
private Sequence sequence;
final static String[] list = {"92031900", "92011000", "92010700", "92032000"};
final static String[] list = {"92031900", "92011000", "92010700", "92032000", "92010600"};
private final String CODE = "code";
......
......@@ -4923,7 +4923,8 @@
ec.image,
r.resource_type,
r.sequence_nbr,
wes.code
wes.code,
ifnull(rp.pump_device_id, '') as pumpDeviceId
FROM
cb_water_resource r
LEFT JOIN cb_water_resource_pool rp ON rp.resource_id = r.sequence_nbr
......@@ -4953,7 +4954,8 @@
a.image,
a.resource_type,
a.sequence_nbr,
a.code
a.code,
a.pumpDeviceId
FROM
(
SELECT
......@@ -4982,7 +4984,8 @@
r.resource_type,
r.sequence_nbr,
rp.level_device_id,
wes.code
wes.code,
ifnull(rp.pump_device_id, '') as pumpDeviceId
FROM
cb_water_resource r
LEFT JOIN cb_water_resource_pool rp ON rp.resource_id = r.sequence_nbr
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment