|
@@ -5,15 +5,18 @@ import com.shkpr.service.aimodelpower.dbdao.shizilaishuiDataSource.service.intef
|
|
|
import com.shkpr.service.aimodelpower.dbdao.shizilaishuiDataSource.service.intef.WaterTapWaterService;
|
|
|
import com.shkpr.service.aimodelpower.dto.ResponseCode;
|
|
|
import com.shkpr.service.aimodelpower.dto.ResponseRes;
|
|
|
+import com.shkpr.service.aimodelpower.dto.zilaishuiModel.InPumpModel;
|
|
|
import com.shkpr.service.aimodelpower.jsonbean.zilaishui.JPTbMHourWater;
|
|
|
import com.shkpr.service.aimodelpower.jsonbean.zilaishui.JPTbMWater;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
+import java.io.FileNotFoundException;
|
|
|
+import java.io.InputStream;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @ClassName KprAimWaterCollecationBizFun
|
|
@@ -116,4 +119,149 @@ public class KprAimWaterCollecationBizFun {
|
|
|
return responseRes;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //TODO 小时取水泵房电耗预测接口
|
|
|
+ /**
|
|
|
+ * 传入水厂id及日期
|
|
|
+ */
|
|
|
+ public static ResponseRes selectTbMHourwaterWaterwithdrawals(JPTbMHourWater jpTbMHourWater,String subType){
|
|
|
+ ResponseRes responseRes = new ResponseRes();
|
|
|
+ //TODO 默认值
|
|
|
+ List<InPumpModel> defaultModels = new ArrayList<>();
|
|
|
+ InPumpModel entity = new InPumpModel();
|
|
|
+ entity.setOrgId(null);
|
|
|
+ entity.setPumpId(null);
|
|
|
+ entity.setSubType(subType);
|
|
|
+ List<Map<String, Object>> defaultRes = new ArrayList<>();
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("ID",null);
|
|
|
+ map.put("Date",null);
|
|
|
+ map.put("Hour",null);
|
|
|
+ map.put("PumpID",null);
|
|
|
+ map.put("PumpStatus",null);
|
|
|
+ map.put("HourForecastWaterWithdrawals",null);
|
|
|
+ map.put("PumpWater",null);
|
|
|
+ map.put("RealPumpStatus",null);
|
|
|
+ map.put("PumpEnergy",null);
|
|
|
+ map.put("RealPumpEnergy",null);
|
|
|
+ map.put("LastModifyTime",null);
|
|
|
+ map.put("orgId",null);
|
|
|
+ defaultRes.add(map);
|
|
|
+ defaultModels.add(entity);
|
|
|
+ responseRes.setResdata(defaultModels);
|
|
|
+ responseRes.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
|
|
|
+ responseRes.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
|
|
|
+ try {
|
|
|
+ List<Map<String, Object>> resList = getWaterTapWaterApi().getTbMHourwaterWaterwithdrawals(jpTbMHourWater.getIsPage(),
|
|
|
+ jpTbMHourWater.getLimit(), jpTbMHourWater.getOffset(), jpTbMHourWater.getForDateStr());
|
|
|
+ //TODO 按水厂分组
|
|
|
+ Map<Object, List<Map<String, Object>>> groupedData =
|
|
|
+ resList.stream().collect(Collectors.groupingBy(item -> item.get("orgId")));
|
|
|
+ //TODO 查询水厂的取水泵,然后将数据拼接
|
|
|
+ List<InPumpModel> inPumpModels = new ArrayList<>();
|
|
|
+ for (Object key:groupedData.keySet()) {
|
|
|
+ InPumpModel model = new InPumpModel();
|
|
|
+ List<Map<String,Object>> zoonList = getWaterTapWaterApi().getZoonInfoList(key.toString(),subType);
|
|
|
+ if(!CollectionUtils.isEmpty(zoonList)){
|
|
|
+ model.setPumpId(zoonList.get(0).get("uid").toString());
|
|
|
+ }
|
|
|
+ model.setOrgId(key.toString());
|
|
|
+ model.setSubType(subType);
|
|
|
+ List<Map<String, Object>> dataList = groupedData.get(key);
|
|
|
+ //TODO 将年月日时作为分组条件
|
|
|
+ Map<String, List<Map<String, Object>>> dataMap = dataList.stream()
|
|
|
+ .collect(Collectors.groupingBy(emp ->
|
|
|
+ emp.get("Date") + "_" + emp.get("Hour") // 创建复合键
|
|
|
+ ));
|
|
|
+ model.setDataList(dataMap);
|
|
|
+ //TODO 查询相应方案数据
|
|
|
+ List<Map<String,Object>> drawalsList = getWaterTapWaterApi().getTbMWaterwithdrawalspump(false,
|
|
|
+ 20,0," AND orgId = '"+key.toString()+"'");
|
|
|
+ model.setDrawalsList(drawalsList);
|
|
|
+ inPumpModels.add(model);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!CollectionUtils.isEmpty(inPumpModels)){
|
|
|
+ responseRes.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
|
|
|
+ responseRes.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
|
|
|
+ responseRes.setResdata(inPumpModels);
|
|
|
+ }
|
|
|
+ return responseRes;
|
|
|
+ }catch(Exception ex){
|
|
|
+ return responseRes;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //TODO 小时供水泵房电耗预测接口
|
|
|
+ /**
|
|
|
+ * 传入水厂id及日期
|
|
|
+ */
|
|
|
+ public static ResponseRes selectTbMHourwaterWatersupply(JPTbMHourWater jpTbMHourWater,String subType){
|
|
|
+ ResponseRes responseRes = new ResponseRes();
|
|
|
+ //TODO 默认值
|
|
|
+ List<InPumpModel> defaultModels = new ArrayList<>();
|
|
|
+ InPumpModel entity = new InPumpModel();
|
|
|
+ entity.setOrgId(null);
|
|
|
+ entity.setPumpId(null);
|
|
|
+ entity.setSubType(subType);
|
|
|
+ List<Map<String, Object>> defaultRes = new ArrayList<>();
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("ID",null);
|
|
|
+ map.put("Date",null);
|
|
|
+ map.put("Hour",null);
|
|
|
+ map.put("PumpID",null);
|
|
|
+ map.put("PumpStatus",null);
|
|
|
+ map.put("HourForecastActualWaterSupply",null);
|
|
|
+ map.put("PumpWater",null);
|
|
|
+ map.put("RealPumpStatus",null);
|
|
|
+ map.put("PumpEnergy",null);
|
|
|
+ map.put("RealPumpEnergy",null);
|
|
|
+ map.put("LastModifyTime",null);
|
|
|
+ map.put("orgId",null);
|
|
|
+ defaultRes.add(map);
|
|
|
+ defaultModels.add(entity);
|
|
|
+ responseRes.setResdata(defaultModels);
|
|
|
+ responseRes.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
|
|
|
+ responseRes.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
|
|
|
+ try {
|
|
|
+ //
|
|
|
+ List<Map<String, Object>> resList = getWaterTapWaterApi().getTbMHourwaterWatersupply(jpTbMHourWater.getIsPage(),
|
|
|
+ jpTbMHourWater.getLimit(), jpTbMHourWater.getOffset(), jpTbMHourWater.getForDateStr());
|
|
|
+ //TODO 按水厂分组
|
|
|
+ Map<Object, List<Map<String, Object>>> groupedData =
|
|
|
+ resList.stream().collect(Collectors.groupingBy(item -> item.get("orgId")));
|
|
|
+ //TODO 查询水厂的取水泵,然后将数据拼接
|
|
|
+ List<InPumpModel> inPumpModels = new ArrayList<>();
|
|
|
+ for (Object key:groupedData.keySet()) {
|
|
|
+ InPumpModel model = new InPumpModel();
|
|
|
+ List<Map<String,Object>> zoonList = getWaterTapWaterApi().getZoonInfoList(key.toString(),subType);
|
|
|
+ if(!CollectionUtils.isEmpty(zoonList)){
|
|
|
+ model.setPumpId(zoonList.get(0).get("uid").toString());
|
|
|
+ }
|
|
|
+ model.setOrgId(key.toString());
|
|
|
+ model.setSubType(subType);
|
|
|
+ List<Map<String, Object>> dataList = groupedData.get(key);
|
|
|
+ //TODO 将年月日时作为分组条件
|
|
|
+ Map<String, List<Map<String, Object>>> dataMap = dataList.stream()
|
|
|
+ .collect(Collectors.groupingBy(emp ->
|
|
|
+ emp.get("Date") + "_" + emp.get("Hour") // 创建复合键
|
|
|
+ ));
|
|
|
+ model.setDataList(dataMap);
|
|
|
+ //TODO 查询相应方案数据
|
|
|
+ List<Map<String,Object>> drawalsList = getWaterTapWaterApi().getTbMWatersupplypump(false,
|
|
|
+ 20,0," AND orgId = '"+key.toString()+"'");
|
|
|
+ model.setDrawalsList(drawalsList);
|
|
|
+ inPumpModels.add(model);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(!CollectionUtils.isEmpty(inPumpModels)){
|
|
|
+ responseRes.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
|
|
|
+ responseRes.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
|
|
|
+ responseRes.setResdata(inPumpModels);
|
|
|
+ }
|
|
|
+ return responseRes;
|
|
|
+ }catch(Exception ex){
|
|
|
+ return responseRes;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|