Bladeren bron

支持MNF/ADF预警项

andyliu 2 weken geleden
bovenliggende
commit
c65f5c68c2

+ 18 - 0
src/main/java/com/shkpr/service/warncore/bizhandler/ZoneDataWarnHandler.java

@@ -829,6 +829,16 @@ public class ZoneDataWarnHandler {
                         , doTimeField);
             }
             break;
+            case WarnItemType.MNF_ADF:{
+                doTimeField = String.format("mnf.%s", doTimeField);
+                queryField = String.format("mnf.zone_id,'%s' as key,(mnf.%s/adf.%s)*100 AS value,%s as date"
+                        , backField
+                        , storeField
+                        , storeField
+                        , doTimeField);
+                filterExtend.append(String.format(" AND adf.%s <> 0.0 ", storeField));
+            }
+            break;
             default:
                 break;
         }
@@ -865,6 +875,14 @@ public class ZoneDataWarnHandler {
                                 , filterExtend.toString());
             }
             break;
+            case WarnItemType.MNF_ADF:{
+                arrDbs = getMixDataDBService().batchQueryMnfAdfData(desTable
+                        , queryField
+                        , objId
+                        , orderBy
+                        , filterExtend.toString());
+            }
+            break;
             default:{
                 arrDbs = getMixDataDBService().batchQueryL2L3Data(desTable
                         , queryField

+ 1 - 0
src/main/java/com/shkpr/service/warncore/constants/WarnItemType.java

@@ -3,4 +3,5 @@ package com.shkpr.service.warncore.constants;
 public interface WarnItemType {
     String ZONE_HWO = "analy@zwo@zhwo";//分区小时水量
     String LMNF = "analy@mnf@lmnf";
+    String MNF_ADF = "analy@mnf@mnf_adf";
 }

+ 12 - 0
src/main/java/com/shkpr/service/warncore/dbdao/mapper/MixDataBizMapper.java

@@ -41,4 +41,16 @@ public interface MixDataBizMapper {
             , @Param("zoneId") String zoneId
             , @Param("order") String order
             , @Param("extend") String extend);
+
+    @Results({
+            @Result(property = "date", column = "date", javaType = String.class ,jdbcType = JdbcType.DATE),
+            @Result(property = "stat_date", column = "stat_date", javaType = String.class ,jdbcType = JdbcType.DATE),
+            @Result(property = "stat_month", column = "stat_month", javaType = String.class ,jdbcType = JdbcType.DATE)
+    })
+    @SelectProvider(type = MixDataBizSqlProvider.class, method = "batchQueryMnfAdfData")
+    List<Map<String, Object>> batchQueryMnfAdfData(@Param("table") String table
+            , @Param("field") String field
+            , @Param("zoneId") String zoneId
+            , @Param("order") String order
+            , @Param("extend") String extend);
 }

+ 20 - 2
src/main/java/com/shkpr/service/warncore/dbdao/providers/MixDataBizSqlProvider.java

@@ -2,7 +2,6 @@ package com.shkpr.service.warncore.dbdao.providers;
 
 import org.springframework.util.StringUtils;
 
-import java.util.List;
 import java.util.Map;
 
 public class MixDataBizSqlProvider extends BaseSqlProvider{
@@ -70,7 +69,26 @@ public class MixDataBizSqlProvider extends BaseSqlProvider{
             sql.append(" " + extend);
         if (!StringUtils.isEmpty(orderBy))
             sql.append(" ORDER BY " + orderBy);
-        System.out.println("========"+sql.toString());
+        return sql.toString();
+    }
+
+    public String batchQueryMnfAdfData(Map<String, Object> mapParams){
+        String table = (String)mapParams.get("table");
+        String field = (String)mapParams.get("field");
+        String zoneId = (String)mapParams.get("zoneId");
+        String orderBy = safePickParam(mapParams, "order", "");
+        String extend = safePickParam(mapParams, "extend", "");
+
+        StringBuilder sql = new StringBuilder("");
+        sql.append("select "+field+" from "+table+" mnf ");
+        sql.append(" join "+table+" adf ON ");
+        sql.append(" mnf.metric_id = 'mnf' AND adf.metric_id = 'daily_avg_flow' ");
+        sql.append(" AND mnf.zone_id = adf.zone_id AND mnf.stat_date = adf.stat_date ");
+        sql.append(" AND mnf.zone_id = '"+zoneId+"' ");
+        if (!StringUtils.isEmpty(extend))
+            sql.append(" " + extend);
+        if (!StringUtils.isEmpty(orderBy))
+            sql.append(" ORDER BY " + orderBy);
         return sql.toString();
     }
 }

+ 23 - 0
src/main/java/com/shkpr/service/warncore/dbdao/services/MixDataBizDBServiceImpl.java

@@ -142,4 +142,27 @@ public class MixDataBizDBServiceImpl implements MixDataBizDBService {
         }
         return arrRes;
     }
+
+    @Override
+    public List<Map<String, Object>> batchQueryMnfAdfData(String table, String field, String zoneId, String orderBy, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = mixDataBizMapper.batchQueryMnfAdfData(table, field, zoneId, orderBy, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , mBusinessType
+                    , mStrClassName
+                    , String.format("Batch Query MNF/ADF Data Lines:{zoneId=%s, orderBy=%s, extend=%s, back.size=%d} from database, code:{%d} msg:{%s} ..."
+                            , zoneId
+                            , orderBy, extend
+                            , CommTool.listSize(arrRes)
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
 }

+ 5 - 0
src/main/java/com/shkpr/service/warncore/dbdao/services/intef/MixDataBizDBService.java

@@ -20,4 +20,9 @@ public interface MixDataBizDBService extends BaseDBService{
             , String zoneId
             , String orderBy
             , String extend);
+
+    List<Map<String, Object>> batchQueryMnfAdfData(String table, String field
+            , String zoneId
+            , String orderBy
+            , String extend);
 }