瀏覽代碼

能耗供取水数据接口, 增加orcale数据源配置

1037015548@qq.com 1 年之前
父節點
當前提交
8e843466fb

+ 152 - 4
src/main/java/com/shkpr/service/aimodelpower/bizmgr/KprAimWaterCollecationBizFun.java

@@ -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;
+        }
+    }
 }

+ 1 - 0
src/main/java/com/shkpr/service/aimodelpower/configuration/OrcaleDataSourceConfig.java

@@ -30,6 +30,7 @@ public class OrcaleDataSourceConfig {
         config.setUsername(username);
         config.setPassword(password);
         config.setDriverClassName(driverClassName);
+        config.setInitializationFailTimeout(-1);
         return new HikariDataSource(config);
     }
 

+ 2 - 0
src/main/java/com/shkpr/service/aimodelpower/constants/ApiURI.java

@@ -118,4 +118,6 @@ public class ApiURI {
     public static final String URI_WATER_ZILAISHUI_H_XXX = URI_WATER_ZILAISHUI_H+"/**";
     public static final String URI_WATER_ZILAISHUI_DAY = "daydata";
     public static final String URI_WATER_ZILAISHUI_HOUR = "hourdata";
+    public static final String URI_WATER_ZILAISHUI_HOUR_PUMP_IN = "hourIndata";
+    public static final String URI_WATER_ZILAISHUI_HOUR_PUMP_OUT= "hourOutdata";
 }

+ 106 - 0
src/main/java/com/shkpr/service/aimodelpower/controllerapi/WaterCollecationController.java

@@ -15,6 +15,7 @@ import com.shkpr.service.aimodelpower.dto.ResponseRes;
 import com.shkpr.service.aimodelpower.exception.SelfException;
 import com.shkpr.service.aimodelpower.jsonbean.zilaishui.JPTbMHourWater;
 import com.shkpr.service.aimodelpower.jsonbean.zilaishui.JPTbMWater;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -126,4 +127,109 @@ public class WaterCollecationController {
                         ,resResult.getTimestamp()-llReqBefore));
         return resResult;
     }
+
+
+    //取水分组类型
+    @Value("${in.sub.type}")
+    private String inSubType;
+
+    //取水分组类型
+    @Value("${out.sub.type}")
+    private String outSubType;
+
+    /**
+     * @Author Lx
+     * @Description //TODO 小时泵房取水能耗
+     * @Date 17:02 2024/5/28
+     * @Param
+     * @return
+     **/
+    @PostMapping(value = ApiURI.URI_WATER_ZILAISHUI_HOUR_PUMP_IN)
+    public ResponseRes hourPumpInData(HttpServletRequest request
+            , @RequestHeader(value= ApiURI.HEADER_CLIENT_TYPE, required=false) String strClientType
+            , @RequestHeader(value= ApiURI.HEADER_USER_AGENT, required=false) String strUserAgent) throws Exception{
+        final String URI_PATH = request.getRequestURI();
+        final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
+        final String strUserId = (String)request.getAttribute(TokenAuthenticationService.HEADER_USERID);
+        JPTbMHourWater oJsonParam = FastJsonUtil.fromJSONByGson(HttpTool.getJsonBodyStr(request), JPTbMHourWater.class);
+        if (oJsonParam == null
+                || !oJsonParam.checkValid()){
+            throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode()
+                    , String.format(ApiURI.EXCEPTION_FORMAT
+                    , strPlatform
+                    , URI_PATH
+                    , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg()));
+        }
+        long llReqBefore = System.currentTimeMillis();
+        String strRunSeq = String.format("%d-%d", llReqBefore, mSeqNotify.incrementAndGet());
+
+        ResponseRes<String> resResult = new ResponseRes<String>();
+        resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
+        resResult.setResmsg(MSG_SUCCESS);
+        resResult.setResdata("");
+
+        ResponseRes oRes = KprAimWaterCollecationBizFun.selectTbMHourwaterWaterwithdrawals(oJsonParam,inSubType);
+        if(oRes!=null&&ResponseCode.RESULT_NORMAL.toStrCode().equals(oRes.getRescode())) {
+            resResult.setResdata(FastJsonUtil.toJSON(oRes.getResdata()));
+        }
+
+        resResult.setTimestamp(System.currentTimeMillis());
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, LogFlagBusiType.BUSI_INTERNAL.toStrValue(), mStrClassName, strUserId
+                ,String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
+                        ,strPlatform
+                        ,URI_PATH
+                        ,strRunSeq
+                        ,resResult.getRescode()
+                        ,resResult.getResmsg()
+                        ,resResult.getTimestamp()-llReqBefore));
+        return resResult;
+    }
+
+    /**
+     * @Author Lx
+     * @Description //TODO 小时泵房供水能耗
+     * @Date 17:02 2024/5/28
+     * @Param
+     * @return
+     **/
+    @PostMapping(value = ApiURI.URI_WATER_ZILAISHUI_HOUR_PUMP_OUT)
+    public ResponseRes hourPumpOutData(HttpServletRequest request
+            , @RequestHeader(value= ApiURI.HEADER_CLIENT_TYPE, required=false) String strClientType
+            , @RequestHeader(value= ApiURI.HEADER_USER_AGENT, required=false) String strUserAgent) throws Exception{
+        final String URI_PATH = request.getRequestURI();
+        final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
+        final String strUserId = (String)request.getAttribute(TokenAuthenticationService.HEADER_USERID);
+        JPTbMHourWater oJsonParam = FastJsonUtil.fromJSONByGson(HttpTool.getJsonBodyStr(request), JPTbMHourWater.class);
+        if (oJsonParam == null
+                || !oJsonParam.checkValid()){
+            throw new SelfException(ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrCode()
+                    , String.format(ApiURI.EXCEPTION_FORMAT
+                    , strPlatform
+                    , URI_PATH
+                    , ResponseCode.STATUS_ERROR_JSON_FORMAT.toStrMsg()));
+        }
+        long llReqBefore = System.currentTimeMillis();
+        String strRunSeq = String.format("%d-%d", llReqBefore, mSeqNotify.incrementAndGet());
+
+        ResponseRes<String> resResult = new ResponseRes<String>();
+        resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
+        resResult.setResmsg(MSG_SUCCESS);
+        resResult.setResdata("");
+
+        ResponseRes oRes = KprAimWaterCollecationBizFun.selectTbMHourwaterWatersupply(oJsonParam,outSubType);
+        if(oRes!=null&&ResponseCode.RESULT_NORMAL.toStrCode().equals(oRes.getRescode())) {
+            resResult.setResdata(FastJsonUtil.toJSON(oRes.getResdata()));
+        }
+
+        resResult.setTimestamp(System.currentTimeMillis());
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, LogFlagBusiType.BUSI_INTERNAL.toStrValue(), mStrClassName, strUserId
+                ,String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
+                        ,strPlatform
+                        ,URI_PATH
+                        ,strRunSeq
+                        ,resResult.getRescode()
+                        ,resResult.getResmsg()
+                        ,resResult.getTimestamp()-llReqBefore));
+        return resResult;
+    }
 }

+ 2 - 0
src/main/java/com/shkpr/service/aimodelpower/controllerfilter/third/ThirdJWTCurrencyFilter.java

@@ -22,6 +22,8 @@ public class ThirdJWTCurrencyFilter extends JWTAuthenticationFilter {
         msMapURI2Method = new HashMap<String, String>();
         msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_WATER_ZILAISHUI_H, ApiURI.URI_WATER_ZILAISHUI_DAY), "POST");
         msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_WATER_ZILAISHUI_H, ApiURI.URI_WATER_ZILAISHUI_HOUR), "POST");
+        msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_WATER_ZILAISHUI_H, ApiURI.URI_WATER_ZILAISHUI_HOUR_PUMP_IN), "POST");
+        msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_WATER_ZILAISHUI_H, ApiURI.URI_WATER_ZILAISHUI_HOUR_PUMP_OUT), "POST");
     }
 
     public ThirdJWTCurrencyFilter(AuthenticationManager authenticationManager) {

+ 90 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/shizilaishuiDataSource/WaterCollecationDao.java

@@ -60,4 +60,94 @@ public class WaterCollecationDao {
             return null;
         }
     }
+
+    //TODO 查询取水泵房电耗预测接口,支持是否分页
+    public List<Map<String,Object>> getTbMHourwaterWaterwithdrawals(boolean isPage,int limit,int offset,String extend){
+        try{
+            String sql = "SELECT * FROM tb_m_hourwater_waterwithdrawals WHERE 1=1 ";
+            if(!StringUtils.isEmpty(extend)){
+                sql+=extend;
+            }
+            if(isPage) {
+                sql += " LIMIT " + limit + " OFFSET " + offset;
+            }
+            JdbcTemplate pgJdbc = new JdbcTemplate(childDataSource);
+            List<Map<String, Object>> tableData = pgJdbc.queryForList(sql);
+            return tableData;
+        }catch(Exception ex){
+            return null;
+        }
+    }
+
+    //TODO 查询供水泵房电耗预测接口,支持是否分页
+    public List<Map<String,Object>> getTbMHourwaterWatersupply(boolean isPage,int limit,int offset,String extend){
+        try{
+            String sql = "SELECT * FROM tb_m_hourwater_watersupply WHERE 1=1 ";
+            if(!StringUtils.isEmpty(extend)){
+                sql+=extend;
+            }
+            if(isPage) {
+                sql += " LIMIT " + limit + " OFFSET " + offset;
+            }
+            JdbcTemplate pgJdbc = new JdbcTemplate(childDataSource);
+            List<Map<String, Object>> tableData = pgJdbc.queryForList(sql);
+            return tableData;
+        }catch(Exception ex){
+            return null;
+        }
+    }
+
+    //TODO 查询水厂id配置列表
+    public List<Map<String,Object>> getOrgConfig(boolean isPage,int limit,int offset,String extend){
+        try{
+            String sql = "SELECT * FROM water_org_config WHERE 1=1 ";
+            if(!StringUtils.isEmpty(extend)){
+                sql+=extend;
+            }
+            if(isPage) {
+                sql += " LIMIT " + limit + " OFFSET " + offset;
+            }
+            JdbcTemplate pgJdbc = new JdbcTemplate(childDataSource);
+            List<Map<String, Object>> tableData = pgJdbc.queryForList(sql);
+            return tableData;
+        }catch(Exception ex){
+            return null;
+        }
+    }
+
+    //TODO 查询取水泵房方案数据,支持是否分页
+    public List<Map<String,Object>> getTbMWaterwithdrawalspump(boolean isPage,int limit,int offset,String extend){
+        try{
+            String sql = "SELECT * FROM tb_m_waterwithdrawalspump WHERE 1=1 ";
+            if(!StringUtils.isEmpty(extend)){
+                sql+=extend;
+            }
+            if(isPage) {
+                sql += " LIMIT " + limit + " OFFSET " + offset;
+            }
+            JdbcTemplate pgJdbc = new JdbcTemplate(childDataSource);
+            List<Map<String, Object>> tableData = pgJdbc.queryForList(sql);
+            return tableData;
+        }catch(Exception ex){
+            return null;
+        }
+    }
+
+    //TODO 查询供水泵房方案数据,支持是否分页
+    public List<Map<String,Object>> getTbMWatersupplypump(boolean isPage,int limit,int offset,String extend){
+        try{
+            String sql = "SELECT * FROM tb_m_watersupplypump WHERE 1=1 ";
+            if(!StringUtils.isEmpty(extend)){
+                sql+=extend;
+            }
+            if(isPage) {
+                sql += " LIMIT " + limit + " OFFSET " + offset;
+            }
+            JdbcTemplate pgJdbc = new JdbcTemplate(childDataSource);
+            List<Map<String, Object>> tableData = pgJdbc.queryForList(sql);
+            return tableData;
+        }catch(Exception ex){
+            return null;
+        }
+    }
 }

+ 125 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/shizilaishuiDataSource/service/WaterCollecationServiceImpl.java

@@ -3,6 +3,7 @@ package com.shkpr.service.aimodelpower.dbdao.shizilaishuiDataSource.service;
 import com.global.base.log.LogLevelFlag;
 import com.global.base.log.LogPrintMgr;
 import com.shkpr.service.aimodelpower.constants.LogFlagBusiType;
+import com.shkpr.service.aimodelpower.dbdao.mapper.ZoonMapper;
 import com.shkpr.service.aimodelpower.dbdao.shizilaishuiDataSource.WaterCollecationDao;
 import com.shkpr.service.aimodelpower.dbdao.shizilaishuiDataSource.WaterZILAISHUIDao;
 import com.shkpr.service.aimodelpower.dbdao.shizilaishuiDataSource.service.intef.WaterCollecationService;
@@ -31,6 +32,10 @@ public class WaterCollecationServiceImpl implements WaterCollecationService{
     @Autowired
     private WaterCollecationDao waterCollecationDao;
 
+    @SuppressWarnings("all")
+    @Autowired
+    private ZoonMapper zoonMapper;
+
     @Override
     public List<Map<String, Object>> getTbMWater(Boolean isPage, int limit, int offset, String extend) {
         int nCode = 0;
@@ -70,4 +75,124 @@ public class WaterCollecationServiceImpl implements WaterCollecationService{
         }
         return arrRes;
     }
+
+    @Override
+    public List<Map<String, Object>> getTbMHourwaterWaterwithdrawals(boolean isPage, int limit, int offset, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = waterCollecationDao.getTbMHourwaterWaterwithdrawals(isPage,limit,offset,extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_CHILD_DB_TAP_WATER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query getTbMHourwaterWaterwithdrawals from database, code:{%d} msg:{%s} ..."
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public List<Map<String, Object>> getTbMHourwaterWatersupply(boolean isPage, int limit, int offset, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = waterCollecationDao.getTbMHourwaterWatersupply(isPage,limit,offset,extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_CHILD_DB_TAP_WATER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query getTbMHourwaterWatersupply from database, code:{%d} msg:{%s} ..."
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public List<Map<String, Object>> getTbMWaterwithdrawalspump(boolean isPage, int limit, int offset, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = waterCollecationDao.getTbMWaterwithdrawalspump(isPage,limit,offset,extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_CHILD_DB_TAP_WATER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query getTbMWaterwithdrawalspump from database, code:{%d} msg:{%s} ..."
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public List<Map<String, Object>> getTbMWatersupplypump(boolean isPage, int limit, int offset, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = waterCollecationDao.getTbMWatersupplypump(isPage,limit,offset,extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_CHILD_DB_TAP_WATER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query getTbMWatersupplypump from database, code:{%d} msg:{%s} ..."
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public List<Map<String, Object>> getOrgConfig(boolean isPage, int limit, int offset, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = waterCollecationDao.getOrgConfig(isPage,limit,offset,extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_CHILD_DB_TAP_WATER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query getOrgConfig from database, code:{%d} msg:{%s} ..."
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public List<Map<String, Object>> getZoonInfoList(String puid,String subType) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = zoonMapper.selectWpRoomListByPid(puid,subType);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_CHILD_DB_TAP_WATER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query getZoonInfoList from database, code:{%d} msg:{%s} ..."
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
 }

+ 17 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/shizilaishuiDataSource/service/intef/WaterCollecationService.java

@@ -17,4 +17,21 @@ public interface WaterCollecationService {
 
     //TODO 查询样本及预测水量表;支持是否分页
     public List<Map<String,Object>> getTbMHourwater(Boolean isPage, int limit, int offset, String extend);
+
+    //TODO 查询取水泵房电耗预测接口
+    public List<Map<String,Object>> getTbMHourwaterWaterwithdrawals(boolean isPage,int limit,int offset,String extend);
+    //TODO 查询取水泵房方案数据
+    public List<Map<String,Object>> getTbMWaterwithdrawalspump(boolean isPage,int limit,int offset,String extend);
+
+    //TODO 供水泵房电耗预测接口
+    public List<Map<String,Object>> getTbMHourwaterWatersupply(boolean isPage,int limit,int offset,String extend);
+    //TODO 查询供水泵房方案数据
+    public List<Map<String,Object>> getTbMWatersupplypump(boolean isPage,int limit,int offset,String extend);
+
+    //TODO 获取水厂配置
+    public List<Map<String,Object>> getOrgConfig(boolean isPage,int limit,int offset,String extend);
+
+    //TODO 主数据源相关
+    //TODO 获取指定水厂的供/取水泵房分区
+    public List<Map<String,Object>> getZoonInfoList(String puid,String subType);
 }

+ 31 - 0
src/main/java/com/shkpr/service/aimodelpower/dto/zilaishuiModel/InPumpModel.java

@@ -0,0 +1,31 @@
+package com.shkpr.service.aimodelpower.dto.zilaishuiModel;
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName InPumpModel
+ * @Description: TODO 取水小时开泵预测数据模型
+ * @Author LX
+ * @Date 2024/5/28
+ * @Version V1.0
+ **/
+@Data
+public class InPumpModel {
+    //TODO 水厂id(即dma分区数据uid)
+    private String orgId;
+
+    //TODO 泵组id(即dma分区数据uid)
+    private String pumpId;
+
+    //TODO 泵组类型 #取水wp_room_in_src #供水wp_room
+    private String subType;
+
+    //TODO 各个水泵的数据信息 key 为日期+时间 value 为能耗数据数组
+    private Map<String, List<Map<String, Object>>> dataList;
+
+    //TODO 水厂id对应的方案信息
+    private List<Map<String,Object>> drawalsList;
+}

+ 7 - 0
src/main/resources/application.properties

@@ -157,3 +157,10 @@ cron.refresh.timer.clock=0 0-5 0 * * ?
 #每天凌晨03:00:00执行
 cron.clear.local.cache=0 0 3 * * ?
 
+#自来水相关
+#查询分区类型配置:
+#取水
+in.sub.type=wp_room_in_src
+#供水
+out.sub.type=wp_room
+