Explorar o código

支持总分表差率的预警分析

andyliu hai 1 semana
pai
achega
f2b0da7653

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

@@ -5,4 +5,5 @@ public interface WarnItemType {
     String LMNF = "analy@mnf@lmnf";
     String MNF_ADF = "analy@mnf@mnf_adf";
     String RBI = "analy@rbi@rbi";
+    String METER_DIFF = "analy@meter_diff@meter_diff";
 }

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

@@ -64,4 +64,16 @@ public interface MixDataBizMapper {
             , @Param("zoneId") String zoneId
             , @Param("rankRate") String rankRate
             , @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 = "batchQueryMeterDiffData")
+    List<Map<String, Object>> batchQueryMeterDiffData(@Param("table") String table
+            , @Param("field") String field
+            , @Param("zoneId") String zoneId
+            , @Param("order") String order
+            , @Param("extend") String extend);
 }

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

@@ -52,6 +52,26 @@ public class MixDataBizSqlProvider extends BaseSqlProvider{
         return super.isWTimeForFiled(filedName);
     }
 
+    public String batchQueryMeterDiffData(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+" mdf ");
+        sql.append(" join "+table+" swo ON ");
+        sql.append(" mdf.metric_id = 'daily_supply_usage_diff' AND swo.metric_id = 'daily_supply' ");
+        sql.append(" AND mdf.zone_id = swo.zone_id AND mdf.stat_date = swo.stat_date ");
+        sql.append(" AND mdf.zone_id = '"+zoneId+"' ");
+        if (!StringUtils.isEmpty(extend))
+            sql.append(" " + extend);
+        if (!StringUtils.isEmpty(orderBy))
+            sql.append(" ORDER BY " + orderBy);
+        return sql.toString();
+    }
+
     public String batchQueryLMNFData(Map<String, Object> mapParams){
         String table = (String)mapParams.get("table");
         String field = (String)mapParams.get("field");

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

@@ -188,4 +188,27 @@ public class MixDataBizDBServiceImpl implements MixDataBizDBService {
         }
         return arrRes;
     }
+
+    @Override
+    public List<Map<String, Object>> batchQueryMeterDiffData(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.batchQueryMeterDiffData(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 Meter Diff 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

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