Quellcode durchsuchen

初始化部分逻辑代码文件

andyliu vor 3 Wochen
Ursprung
Commit
e33230a178
34 geänderte Dateien mit 3348 neuen und 36 gelöschten Zeilen
  1. 19 0
      src/main/java/com/shkpr/service/warncore/bizhandler/SiteRealDataHandler.java
  2. 7 0
      src/main/java/com/shkpr/service/warncore/bizhandler/TimeCheckWarnPlanMgr.java
  3. 7 0
      src/main/java/com/shkpr/service/warncore/bizhandler/ZoneAnalyDataHandler.java
  4. 7 0
      src/main/java/com/shkpr/service/warncore/bizhandler/ZoneRealDataHandler.java
  5. 4 2
      src/main/java/com/shkpr/service/warncore/configuration/DBMgrConfiguration.java
  6. 3 34
      src/main/java/com/shkpr/service/warncore/constants/LogFlagBusiType.java
  7. 50 0
      src/main/java/com/shkpr/service/warncore/dbdao/DBMgrProxy.java
  8. 14 0
      src/main/java/com/shkpr/service/warncore/dbdao/localDynamicMapper/LocalDynamicMapper.java
  9. 84 0
      src/main/java/com/shkpr/service/warncore/dbdao/mapper/OrdWarnPlanInfoMapper.java
  10. 83 0
      src/main/java/com/shkpr/service/warncore/dbdao/mapper/UserMapper.java
  11. 41 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/BoolTypeHandlerPg.java
  12. 54 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/DateTypeHandlerPg.java
  13. 53 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/JSONTypeHandlerPg.java
  14. 12 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListPThresholdTypeHandlerPg.java
  15. 41 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListPThresholdTypeHandlerPgEx.java
  16. 10 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListStrTypeHandlerPg.java
  17. 46 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListTTypeHandlerPg.java
  18. 53 0
      src/main/java/com/shkpr/service/warncore/dbdao/pgtype/Time2LongHandlerPg.java
  19. 46 0
      src/main/java/com/shkpr/service/warncore/dbdao/providers/BaseSqlCondition.java
  20. 1753 0
      src/main/java/com/shkpr/service/warncore/dbdao/providers/BaseSqlProvider.java
  21. 91 0
      src/main/java/com/shkpr/service/warncore/dbdao/providers/OrdWarnPlanInfoSqlProvider.java
  22. 87 0
      src/main/java/com/shkpr/service/warncore/dbdao/providers/UserSqlProvider.java
  23. 152 0
      src/main/java/com/shkpr/service/warncore/dbdao/services/OrdWarnPlanInfoDBServiceImpl.java
  24. 355 0
      src/main/java/com/shkpr/service/warncore/dbdao/services/UserDBServiceImpl.java
  25. 29 0
      src/main/java/com/shkpr/service/warncore/dbdao/services/intef/BaseDBService.java
  26. 44 0
      src/main/java/com/shkpr/service/warncore/dbdao/services/intef/OrdWarnPlanInfoDBService.java
  27. 23 0
      src/main/java/com/shkpr/service/warncore/dbdao/services/intef/UserDBService.java
  28. 38 0
      src/main/java/com/shkpr/service/warncore/dbdao/tables/OrdWarnPlanInfoTable.java
  29. 35 0
      src/main/java/com/shkpr/service/warncore/dbdao/tables/UserTable.java
  30. 14 0
      src/main/java/com/shkpr/service/warncore/dto/MMUnitBean.java
  31. 23 0
      src/main/java/com/shkpr/service/warncore/dto/PThresholdUnitBean.java
  32. 37 0
      src/main/java/com/shkpr/service/warncore/dto/PThresholdUnitBeanEx.java
  33. 27 0
      src/main/java/com/shkpr/service/warncore/globalmgr/ScheduleTaskMgr.java
  34. 6 0
      src/main/resources/application.properties

+ 19 - 0
src/main/java/com/shkpr/service/warncore/bizhandler/SiteRealDataHandler.java

@@ -0,0 +1,19 @@
+package com.shkpr.service.warncore.bizhandler;
+
+/**
+ * 站点实时采集数据处理
+ */
+public class SiteRealDataHandler {
+    public void handleData(String planId){
+
+    }
+    //处理时段样本数据
+    private void handleDataBySet(){
+
+    }
+
+    //处理时段差值数据
+    private void handleDataByDiff(){
+
+    }
+}

+ 7 - 0
src/main/java/com/shkpr/service/warncore/bizhandler/TimeCheckWarnPlanMgr.java

@@ -0,0 +1,7 @@
+package com.shkpr.service.warncore.bizhandler;
+
+public class TimeCheckWarnPlanMgr {
+    public static void checkWarnPlanByMinute(int curClock, int curMinute){
+
+    }
+}

+ 7 - 0
src/main/java/com/shkpr/service/warncore/bizhandler/ZoneAnalyDataHandler.java

@@ -0,0 +1,7 @@
+package com.shkpr.service.warncore.bizhandler;
+
+/**
+ * 分区分析统计数据处理
+ */
+public class ZoneAnalyDataHandler {
+}

+ 7 - 0
src/main/java/com/shkpr/service/warncore/bizhandler/ZoneRealDataHandler.java

@@ -0,0 +1,7 @@
+package com.shkpr.service.warncore.bizhandler;
+
+/**
+ * 分区实时采集数据处理
+ */
+public class ZoneRealDataHandler {
+}

+ 4 - 2
src/main/java/com/shkpr/service/warncore/configuration/DBMgrConfiguration.java

@@ -3,8 +3,10 @@ package com.shkpr.service.warncore.configuration;
 import com.global.base.log.LogLevelFlag;
 import com.global.base.log.LogPrintMgr;
 import com.shkpr.service.warncore.constants.LogFlagBusiType;
+import com.shkpr.service.warncore.dbdao.DBMgrProxy;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import javax.annotation.PostConstruct;
@@ -48,10 +50,10 @@ public class DBMgrConfiguration {
     }
 
     //使用时可用@Qualifier("startDBMgrProxy")进行识别
-    /*@Bean
+    @Bean
     public DBMgrProxy startDBMgrProxy(){
         DBMgrProxy.getInstance().init();
         return DBMgrProxy.getInstance();
-    }*/
+    }
 }
 

+ 3 - 34
src/main/java/com/shkpr/service/warncore/constants/LogFlagBusiType.java

@@ -13,46 +13,15 @@ public enum  LogFlagBusiType {
     BUSI_CALL_BASE_AS(9, "Call Base As Busi"),
     BUSI_CALL_SX_WARN_AS(10, "Call SX Warn As Biz"),
 
-    BUSI_ZONE_FOCUS_RULE_BIZ(85, "Zone Focus Rule Biz"),
-    BUSI_CUSTOMER_BIZ(86, "Customer Biz"),
-    BUSI_REPORT_FORM(87, "Report Form Biz"),
-    BUSI_GROUP_TRANS_DATA(88, "Group Trans Data Busi"),
-    BUSI_ZONE_SITE_DATA(89, "Zone Site Data Busi"),
-    BUSI_SITE_DEV_DATA(90, "Site Dev Data Busi"),
-    BUSI_ZONE_DATA(91, "Zone Data Busi"),
-    BUSI_ZONE_MNF_DATA(92, "Zone MNF Data Busi"),
-    BUSI_COMM_DATA(93, "Comm Data Busi"),
-    BUSI_SITE_DATA(94, "Site Data Busi"),
-    BUSI_DEV_DATA(95, "Dev Data Busi"),
-    BUSI_PARTITION(96, "Partition Info Busi"),
-    BUSI_DEV(97, "Device Info Busi"),
-    BUSI_ZONE_MONITOR_REAL_DATA(98, "Zone Monitor Reals Busi"),
+
     BUSI_INTERNAL(99,"Internal Busi"),
 
 
     BUSI_DB_USER(100,"DB User Busi"),
     BUSI_DB_PUSH_TASK(101,"DB Push Task Busi"),
     BUSI_DB_SMS(102,"DB SMS Busi"),
-    BUSI_DB_USER_OWN_ZONE(103,"DB User Own Zone Info"),
-    BUSI_DB_ROLE_POWER(104,"DB Role Power Info"),
-    BUSI_DB_PARTITION(105,"DB Partition Info"),
-    BUSI_DB_DEVICE_INFO(106,"DB Device Info"),
-    BUSI_DB_ZONE_MNF_DATA(107, "DB Zone MNF Data"),
-    BUSI_DB_ZONE_DAILY_ANLY_DATA(108, "DB Zone Daily Anly Data"),
-    BUSI_DB_SITE_DEV_DATA(109, "DB Site Dev Data Busi"),
-    BUSI_DB_ZONE_INFO(110, "DB Zone Info Busi"),
-    BUSI_DB_PRESS_DAILY_ANLY_INFO(111, "DB Press Daily Anly Busi"),
-    BUSI_DB_ZONE_WATER_BALANCE_INFO(112, "DB Zone Water Balance Busi"),
-    BUSI_DB_SITE_INFO(113, "DB Site Info Busi"),
-    BUSI_DB_ZONE_WATER_METER_READ_INFO(114, "DB Zone Water Meter Read Busi"),
-    BUSI_DB_ZONE_HOURLY_ANLY_DATA(115, "DB Zone Hourly Anly Data"),
-    BUSI_DB_WWS_DAILY_ANLY_DATA(116, "DB WWS Daily Anly Data"),
-    BUSI_DB_REPORT_FORM_TEMPLATE(117, "DB Data Report Template"),
-    BUSI_DB_REPORT_FORM_HISTORY(118, "DB Data Report History"),
-    BUSI_DB_AI_IOT_INPUT_DATA(119, "DB AI Iot Input Data"),
-    BUSI_DB_CUSTOMER_METER_READ(120, "DB Customer meter read"),
-    BUSI_DB_ZONE_FOCUS_RULE(121, "DB Zone Focus Rule Biz"),
-    BUSI_DB_LOCAL_DYNAMIC_BIZ(122, "DB Local Dynamic Biz"),
+    BUSI_DB_ORD_WARN_PLAN(103,"DB Ord Warn Plan"),
+
 
     BUSI_INFLUX_DB_DEV_RECORD(200,"Influx DB Dev Record"),
 

+ 50 - 0
src/main/java/com/shkpr/service/warncore/dbdao/DBMgrProxy.java

@@ -0,0 +1,50 @@
+package com.shkpr.service.warncore.dbdao;
+
+import com.shkpr.service.warncore.SpringContextUtil;
+import com.shkpr.service.warncore.dbdao.services.intef.*;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+
+public class DBMgrProxy {
+    final static Set<Class<?>> INIT_CLASS = new HashSet<Class<?>>(){{
+        add(UserDBService.class);
+        add(OrdWarnPlanInfoDBService.class);
+    }};
+    private Map<Class<?>, Object> mapClass2Instance = new ConcurrentHashMap<>();
+
+    private static volatile DBMgrProxy msInstance = null;
+    public static DBMgrProxy getInstance(){
+        if (msInstance == null){
+            synchronized (DBMgrProxy.class){
+                if (msInstance == null)
+                    msInstance = new DBMgrProxy();
+            }
+        }
+        return msInstance;
+    }
+
+    private DBMgrProxy() {
+    }
+
+    public void init(){
+        for (Class<?> item:INIT_CLASS)
+            mapClass2Instance.put(item, SpringContextUtil.getBean(item));
+    }
+
+    public UserDBService applyUserApi(){ return applyXXXApi(UserDBService.class); }
+
+    public <T> T applyXXXApi(Class<T> className){
+        T cls = (T)mapClass2Instance.get(className);
+        if (cls == null){
+            synchronized (this){
+                cls = (T)mapClass2Instance.get(className);
+                if (cls == null){
+                    cls = SpringContextUtil.getBean(className);
+                    mapClass2Instance.put(className, cls);
+                }
+            }
+        }
+        return cls;
+    }
+}

+ 14 - 0
src/main/java/com/shkpr/service/warncore/dbdao/localDynamicMapper/LocalDynamicMapper.java

@@ -0,0 +1,14 @@
+package com.shkpr.service.warncore.dbdao.localDynamicMapper;
+
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+public interface LocalDynamicMapper {
+    @Select("SELECT A.attname AS col_name,T.typname as col_type" +
+            " FROM pg_class AS C,pg_attribute AS A,pg_type as T" +
+            " WHERE C.relname = '${table}' AND A.attrelid = C.oid AND A.atttypid = T.oid AND A.attnum > 0 AND NOT A.attisdropped")
+    List<Map<String,Object>> listAllColumnForTable(@Param("table") String table);
+}

+ 84 - 0
src/main/java/com/shkpr/service/warncore/dbdao/mapper/OrdWarnPlanInfoMapper.java

@@ -0,0 +1,84 @@
+package com.shkpr.service.warncore.dbdao.mapper;
+
+import com.shkpr.service.warncore.dbdao.providers.OrdWarnPlanInfoSqlProvider;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+import java.util.Map;
+
+public interface OrdWarnPlanInfoMapper {
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "totalWillAnalysisCounts")
+    Map<String, Object> totalWillAnalysisCounts(@Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("order") String order
+            , @Param("extend") String extend);
+
+
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "totalCounts")
+    int totalCounts(@Param("table") String table
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "listAllWiths")
+    List<Map<String, Object>> listAllWiths(@Param("table") String table, @Param("filed") String file
+            , @Param("limit") int limit
+            , @Param("offset") int offset
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("order") String order
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "getByUniqueId")
+    Map<String, Object> getOne(@Param("table") String table, @Param("filed") String filed, @Param("id") Object id);
+
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "batchQueryIn")
+    List<Map<String, Object>> batchQueryIn(@Param("table") String table, @Param("filed") String file
+            , @Param("ids") List<? extends Object> ids
+            , @Param("order") String order
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "batchQueryWiths")
+    List<Map<String, Object>> batchQueryWiths(@Param("table") String table, @Param("filed") String filed
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("order") String order
+            , @Param("extend") String extend);
+
+    @InsertProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "inserts")
+    int inserts(@Param("inserts") Map<String, Object> inserts);
+
+    /**
+     * update和delete返回受影响条数需要配合useAffectedRows=true
+     * @param datas
+     * @param andWheres
+     * @return
+     */
+    @UpdateProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "updateWiths")
+    int updateWiths(@Param("datas") Map<String, Object> datas
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @UpdateProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "updateWiths")
+    int updateWithsEx(@Param("datas") Map<String, Object> datas
+            , @Param("datasEx") Map<String, Object> datasEx
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "existsLine")
+    boolean existLine(@Param("table") String table
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @DeleteProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "deleteWiths")
+    int deleteWithsEx(@Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @UpdateProvider(type = OrdWarnPlanInfoSqlProvider.class, method = "batchUpdateWiths")
+    int batchUpdateWiths( @Param("andWheres") List<Map<String, Object>> andWheres
+            , @Param("datas") List<Map<String, Object>> datas);
+}

+ 83 - 0
src/main/java/com/shkpr/service/warncore/dbdao/mapper/UserMapper.java

@@ -0,0 +1,83 @@
+package com.shkpr.service.warncore.dbdao.mapper;
+import com.shkpr.service.warncore.dbdao.providers.UserSqlProvider;
+import com.shkpr.service.warncore.dbdao.tables.UserTable;
+import org.apache.ibatis.annotations.*;
+import java.util.List;
+import java.util.Map;
+
+public interface UserMapper extends UserTable{
+    @SelectProvider(type = UserSqlProvider.class, method = "totalCounts")
+    int totalCounts(@Param("andWheres") Map<String, Object> andWheres, @Param("orWheres") Map<String, Object> orWheres, @Param("extend") String extend);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "getByUniqueId")
+    Map<String, Object> getOneByUniqueId(@Param("table") String table, @Param("filed") String filed, @Param("id") Object id);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "fastFindTheUser")
+    Map<String, Object> getOne(@Param("userid") String userId, @Param("account") String account);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "matchUserForLogin")
+    Map<String, Object> userLogin(@Param("account") String account, @Param("password") String password);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "listAllWiths")
+    List<Map<String, Object>> listAllWiths(@Param("limit") int limit
+            , @Param("offset") int offset
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("order") String order
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "batchQueryIn")
+    List<Map<String, Object>> batchQueryIn(@Param("ids") List<? extends Object> ids
+                                        , @Param("order") String order
+                                        , @Param("extend") String extend);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "batchQueryWiths")
+    List<Map<String, Object>> batchQueryWiths(@Param("table") String table
+            , @Param("filed") String filed
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("order") String order
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "listAllMemInSameDpt")
+    List<Map<String, Object>> listAllMemInSameDpt(@Param("userid") String userid, @Param("roleid") String roleid);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "existsLine")
+    boolean existLine(@Param("table") String table
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @InsertProvider(type = UserSqlProvider.class, method = "inserts")
+    int inserts(@Param("inserts") Map<String, Object> inserts);
+
+    /**
+     * update和delete返回受影响条数需要配合useAffectedRows=true
+     * @param datas
+     * @param andWheres
+     * @return
+     */
+    @UpdateProvider(type = UserSqlProvider.class, method = "updateWiths")
+    int updateWiths(@Param("datas") Map<String, Object> datas
+            , @Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @DeleteProvider(type = UserSqlProvider.class, method = "deleteInIds")
+    int batchDeleteIn(@Param("ids") List<? extends Object> ids, @Param("extend") String extend);
+
+    @UpdateProvider(type = UserSqlProvider.class, method = "batchUpdateWiths")
+    int batchUpdateWiths( @Param("andWheres") List<Map<String, Object>> andWheres
+            , @Param("datas") List<Map<String, Object>> datas);
+
+    @DeleteProvider(type = UserSqlProvider.class, method = "deleteWiths")
+    int deleteWiths(@Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("extend") String extend);
+
+    @SelectProvider(type = UserSqlProvider.class, method = "totalCounts")
+    int totalCountsPower(@Param("andWheres") Map<String, Object> andWheres
+            , @Param("orWheres") Map<String, Object> orWheres
+            , @Param("group2Power") Map<String, List<Map<String, Object>>> group2Power
+            , @Param("extend") String extend);
+}

+ 41 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/BoolTypeHandlerPg.java

@@ -0,0 +1,41 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+/**
+ * 读取时,将数据库中int值转换为boolean值并返回
+ *          使用:@Results({@Result(property = "字段", column = "字段", javaType = Boolean.class ,jdbcType = JdbcType.INTEGER, typeHandler = BoolTypeHandlerPg.class)})
+ * 写入时,将boolean值转换为int值并写入
+ *          使用:#{字段,javaType=Boolean,jdbcType=INTEGER,typeHandler=com.sqlmybatis.test.pgtype.BoolTypeHandlerPg}
+ */
+@MappedTypes({Boolean.class})
+@MappedJdbcTypes(JdbcType.INTEGER)
+public class BoolTypeHandlerPg extends BaseTypeHandler<Boolean>{
+    @Override
+    public void setNonNullParameter(PreparedStatement preparedStatement, int i, Boolean aBoolean, JdbcType jdbcType) throws SQLException {
+        preparedStatement.setInt(i, aBoolean?1:0);
+    }
+
+    @Override
+    public Boolean getNullableResult(ResultSet resultSet, String s) throws SQLException {
+        return resultSet.getInt(s)==0?false:true;
+    }
+
+    @Override
+    public Boolean getNullableResult(ResultSet resultSet, int i) throws SQLException {
+        return resultSet.getInt(i)==0?false:true;
+    }
+
+    @Override
+    public Boolean getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+        return callableStatement.getInt(i)==0?false:true;
+    }
+}

+ 54 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/DateTypeHandlerPg.java

@@ -0,0 +1,54 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.*;
+import java.util.Date;
+
+/**
+ * 读取时,将数据库中以varchar形式存储的毫秒转换为Date时间类型并返回
+ *          使用:@Results({@Result(property = "字段", column = "字段", javaType = Date.class ,jdbcType = JdbcType.VARCHAR, typeHandler = DateTypeHandlerPg.class)})
+ * 写入时,将Date时间转换为varchar毫秒并写入
+ *          使用:#{字段,javaType=Date,jdbcType=VARCHAR,typeHandler=com.sqlmybatis.test.pgtype.DateTypeHandlerPg}
+ */
+@MappedTypes({Date.class})
+@MappedJdbcTypes(JdbcType.VARCHAR)
+public class DateTypeHandlerPg extends BaseTypeHandler<Date> {
+    /**
+     * 将时间戳字符串存入数据库
+     */
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i, Date parameter, JdbcType jdbcType) throws SQLException {
+        if (parameter == null)
+            ps.setString(i, String.valueOf(System.currentTimeMillis()));
+        else
+            ps.setString(i, String.valueOf(parameter.getTime()));
+    }
+
+    /**
+     * 把时间戳类型的字符串取出转换为Date
+     */
+    @Override
+    public Date getNullableResult(ResultSet rs, String columnName) throws SQLException {
+        return new Date(rs.getLong(columnName));
+    }
+
+    /**
+     * 把时间戳类型的字符串取出转换为Date
+     */
+    @Override
+    public Date getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+        return new Date(rs.getLong(columnIndex));
+    }
+
+    /**
+     * 把时间戳类型的字符串取出转换为Date
+     */
+    @Override
+    public Date getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+        return cs.getDate(columnIndex);
+    }
+}

+ 53 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/JSONTypeHandlerPg.java

@@ -0,0 +1,53 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+import com.global.base.tools.FastJsonUtil;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import org.postgresql.util.*;
+
+/**
+ * 读取时,将数据库中的jsonb转换为json object并返回
+ *         使用:@Results({@Result(property = "字段", column = "字段", javaType = Object.class ,jdbcType = JdbcType.OTHER, typeHandler = JSONTypeHandlerPg.class)})
+ * 写入时,将json object转换为jsonb并写入
+ *         使用:#{字段,javaType=Object,jdbcType=OTHER,typeHandler=com.sqlmybatis.test.pgtype.JSONTypeHandlerPg}
+ *
+ *  1.@MappedJdbcTypes定义的是JdbcType类型,这里的类型不可自己随意定义,
+ *      必须要是枚举类org.apache.ibatis.type.JdbcType所枚举的数据类型。
+ *  2.@MappedTypes定义的是JavaType的数据类型,描述了哪些Java类型可被拦截
+ */
+@MappedJdbcTypes(JdbcType.OTHER)
+@MappedTypes(Object.class)
+public class JSONTypeHandlerPg extends BaseTypeHandler<Object> {
+    @Override
+    public void setNonNullParameter(PreparedStatement preparedStatement, int i, Object o, JdbcType jdbcType) throws SQLException {
+        if (o == null){
+            preparedStatement.setString(i, "");
+            return;
+        }
+        PGobject jsonObject = new PGobject();
+        jsonObject.setType("jsonb");
+        jsonObject.setValue(FastJsonUtil.toJSON(o));
+        preparedStatement.setObject(i, jsonObject);
+    }
+
+    @Override
+    public Object getNullableResult(ResultSet resultSet, String s) throws SQLException {
+        return FastJsonUtil.fromJSON(resultSet.getString(s), Object.class);
+    }
+
+    @Override
+    public Object getNullableResult(ResultSet resultSet, int i) throws SQLException {
+        return FastJsonUtil.fromJSON(resultSet.getString(i), Object.class);
+    }
+
+    @Override
+    public Object getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+        return FastJsonUtil.fromJSON(callableStatement.getString(i), Object.class);
+    }
+}

+ 12 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListPThresholdTypeHandlerPg.java

@@ -0,0 +1,12 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+import com.shkpr.service.warncore.dto.PThresholdUnitBean;
+
+/**
+ * 读取时,将数据库中以varchar形式存储的值转换为List<PThresholdUnitBean>类型并返回
+ *          使用:@Results({@Result(property = "字段", column = "字段", javaType = List.class ,jdbcType = JdbcType.VARCHAR, typeHandler = ListPThresholdTypeHandlerPg.class)})
+ * 写入时,将List<PThresholdUnitBean>值转换为varchar并写入
+ *          使用:#{字段,javaType=List,jdbcType=VARCHAR,typeHandler=com.sqlmybatis.test.pgtype.ListPThresholdTypeHandlerPg}
+ */
+public class ListPThresholdTypeHandlerPg extends ListTTypeHandlerPg<PThresholdUnitBean> {
+}

+ 41 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListPThresholdTypeHandlerPgEx.java

@@ -0,0 +1,41 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+import com.shkpr.service.warncore.dto.PThresholdUnitBeanEx;
+
+import java.sql.CallableStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+public class ListPThresholdTypeHandlerPgEx extends ListTTypeHandlerPg<PThresholdUnitBeanEx> {
+
+    @Override
+    public List getNullableResult(ResultSet resultSet, String s) throws SQLException {
+        List res = super.getNullableResult(resultSet, s);
+        if (res != null && res.size() > 0){
+            for (PThresholdUnitBeanEx item:(List<PThresholdUnitBeanEx>)res)
+                item.checkRes();
+        }
+        return res;
+    }
+
+    @Override
+    public List getNullableResult(ResultSet resultSet, int i) throws SQLException {
+        List res = super.getNullableResult(resultSet, i);
+        if (res != null && res.size() > 0){
+            for (PThresholdUnitBeanEx item:(List<PThresholdUnitBeanEx>)res)
+                item.checkRes();
+        }
+        return res;
+    }
+
+    @Override
+    public List getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+        List res = super.getNullableResult(callableStatement, i);
+        if (res != null && res.size() > 0){
+            for (PThresholdUnitBeanEx item:(List<PThresholdUnitBeanEx>)res)
+                item.checkRes();
+        }
+        return res;
+    }
+}

+ 10 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListStrTypeHandlerPg.java

@@ -0,0 +1,10 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+/**
+ * 读取时,将数据库中以varchar形式存储的值转换为List<String>时间类型并返回
+ *          使用:@Results({@Result(property = "字段", column = "字段", javaType = List.class ,jdbcType = JdbcType.VARCHAR, typeHandler = ListStrTypeHandlerPg.class)})
+ * 写入时,将List<String>值转换为varchar并写入
+ *          使用:#{字段,javaType=List,jdbcType=VARCHAR,typeHandler=com.sqlmybatis.test.pgtype.ListStrTypeHandlerPg}
+ */
+public class ListStrTypeHandlerPg extends ListTTypeHandlerPg<String> {
+}

+ 46 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/ListTTypeHandlerPg.java

@@ -0,0 +1,46 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+import com.global.base.tools.FastJsonUtil;
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+
+import java.lang.reflect.ParameterizedType;
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+@MappedTypes({List.class})
+@MappedJdbcTypes(JdbcType.VARCHAR)
+public class ListTTypeHandlerPg<T> extends BaseTypeHandler<List> {
+
+    private Class<T> getTClass() {//获取T类型的Class<T>
+        return (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
+    }
+
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i, List parameter, JdbcType jdbcType) throws SQLException {
+        if (parameter == null)
+            ps.setString(i, "");
+        else
+            ps.setString(i, FastJsonUtil.toJSON(parameter));
+    }
+
+    @Override
+    public List getNullableResult(ResultSet resultSet, String s) throws SQLException {
+        return FastJsonUtil.fromJSON2List(resultSet.getString(s), getTClass());
+    }
+
+    @Override
+    public List getNullableResult(ResultSet resultSet, int i) throws SQLException {
+        return FastJsonUtil.fromJSON2List(resultSet.getString(i), getTClass());
+    }
+
+    @Override
+    public List getNullableResult(CallableStatement callableStatement, int i) throws SQLException {
+        return FastJsonUtil.fromJSON2List(callableStatement.getString(i), getTClass());
+    }
+}

+ 53 - 0
src/main/java/com/shkpr/service/warncore/dbdao/pgtype/Time2LongHandlerPg.java

@@ -0,0 +1,53 @@
+package com.shkpr.service.warncore.dbdao.pgtype;
+
+import org.apache.ibatis.type.BaseTypeHandler;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+import java.sql.*;
+
+/**
+ * 读取时,将数据库中以Timestamp形式存储的毫秒转换为Long时间类型并返回
+ *          使用:@Results({@Result(property = "字段", column = "字段", javaType = Long.class ,jdbcType = JdbcType.TIMESTAMP, typeHandler = Time2LongHandlerPg.class)})
+ * 写入时,将Long时间转换为Timestamp毫秒并写入
+ *          使用:#{字段,javaType=Long,jdbcType=TIMESTAMP,typeHandler=com.shkpr.service.warncore.dbdao.pgtype.Time2LongHandlerPg}
+ */
+@MappedTypes({Long.class})
+@MappedJdbcTypes(JdbcType.TIMESTAMP)
+public class Time2LongHandlerPg extends BaseTypeHandler<Long> {
+    /**
+     * 将时间戳字符串存入数据库
+     */
+    @Override
+    public void setNonNullParameter(PreparedStatement ps, int i, Long parameter, JdbcType jdbcType) throws SQLException {
+        if (parameter == null)
+            ps.setTimestamp(i, new Timestamp(System.currentTimeMillis()));
+        else
+            ps.setTimestamp(i, new Timestamp(parameter));
+    }
+
+    /**
+     * 把时间戳类型的字符串取出转换为Long
+     */
+    @Override
+    public Long getNullableResult(ResultSet rs, String columnName) throws SQLException {
+        return rs.getTimestamp(columnName).getTime();
+    }
+
+    /**
+     * 把时间戳类型的字符串取出转换为Long
+     */
+    @Override
+    public Long getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
+        return rs.getTimestamp(columnIndex).getTime();
+    }
+
+    /**
+     * 把时间戳类型的字符串取出转换为Long
+     */
+    @Override
+    public Long getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
+        return cs.getTimestamp(columnIndex).getTime();
+    }
+}
+

+ 46 - 0
src/main/java/com/shkpr/service/warncore/dbdao/providers/BaseSqlCondition.java

@@ -0,0 +1,46 @@
+package com.shkpr.service.warncore.dbdao.providers;
+
+
+import org.springframework.util.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class BaseSqlCondition {
+    public static class LINK_DEFINE{
+        public static String AND = "AND";
+        public static String OR = "OR";
+    }
+    public static class METHOD_DEFINE{
+        public static String IN = "IN";
+        public static String NOT_IN = "NOT IN";
+        public static String LIKE = "LIKE";
+        public static String ILIKE = "ILIKE";//忽略大小写
+        public static String NO_LIKE = "NOT LIKE";
+        public static String BETWEEN = "BETWEEN";
+        public static String NE = "<>";
+        public static String EQ = "=";
+        public static String GT = ">";
+        public static String GTE = ">=";
+        public static String LT = "<";
+        public static String LTE = "<=";
+    }
+    public static class SQL_ITEM{
+        public static String KEY = "key";
+        public static String METHOD = "method";
+        public static String LINK = "link";
+        public static String DATA = "data";
+    }
+    public static Map<String, Object> genSQLItem(String fieldKey, String method, String link, Object data){
+        if (StringUtils.isEmpty(fieldKey)
+                || StringUtils.isEmpty(method)
+                || data == null)
+            return null;
+        return new HashMap<String, Object>(){{
+            put(SQL_ITEM.KEY, fieldKey);
+            put(SQL_ITEM.METHOD, method);
+            put(SQL_ITEM.LINK, link);
+            put(SQL_ITEM.DATA, data);
+        }};
+    }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 1753 - 0
src/main/java/com/shkpr/service/warncore/dbdao/providers/BaseSqlProvider.java


+ 91 - 0
src/main/java/com/shkpr/service/warncore/dbdao/providers/OrdWarnPlanInfoSqlProvider.java

@@ -0,0 +1,91 @@
+package com.shkpr.service.warncore.dbdao.providers;
+
+import com.shkpr.service.warncore.dbdao.tables.OrdWarnPlanInfoTable;
+import org.springframework.util.StringUtils;
+
+import java.util.Map;
+
+public class OrdWarnPlanInfoSqlProvider extends BaseSqlProvider implements OrdWarnPlanInfoTable {
+    @Override
+    public String getRTableName() {
+        return R_INFO.TABLE;
+    }
+
+    @Override
+    public String getWTableName() {
+        return W_INFO.TABLE;
+    }
+
+    @Override
+    public String getRUniqueId() {
+        return R_INFO.UNIQUE_ID;
+    }
+
+    @Override
+    public String getWUniqueId() {
+        return W_INFO.UNIQUE_ID;
+    }
+
+    @Override
+    public String getSAllFiled() {
+        return R_INFO.ALL_FILED;
+    }
+
+    @Override
+    public String getRPrimaryKey() {
+        return R_INFO.PRIMARY_KEY;
+    }
+
+    @Override
+    public String getWPrimaryKey() {
+        return W_INFO.PRIMARY_KEY;
+    }
+
+    @Override
+    public boolean isWJsonForFiled(String filedName) {
+        return false;
+    }
+
+    @Override
+    protected boolean isWTimeForFiled(String filedName) {
+        String LAST_ANALY_TIME = "last_analy_time";
+        String LAST_COMPARE_SAMPLE_TIME = "last_compare_sample_time";
+        String FIRST_MATCH_SAMPLE_TIME = "first_match_sample_time";
+        String LAST_EVENT_TIME = "last_event_time";
+        String CREATE_TIME = "create_time";
+        if (W_INFO.LAST_ANALY_TIME.equalsIgnoreCase(filedName)
+                || W_INFO.LAST_COMPARE_SAMPLE_TIME.equalsIgnoreCase(filedName)
+                || W_INFO.FIRST_MATCH_SAMPLE_TIME.equalsIgnoreCase(filedName)
+                || W_INFO.LAST_EVENT_TIME.equalsIgnoreCase(filedName)
+                || W_INFO.CREATE_TIME.equalsIgnoreCase(filedName))
+            return false;
+        return (filedName.endsWith("time"));
+    }
+
+    public String totalWillAnalysisCounts(Map<String, Object> mapParams){
+        Map<String, Object> andWheres = (Map<String, Object>)mapParams.get("andWheres");
+        Map<String, Object> orWheres = (Map<String, Object>)mapParams.get("orWheres");
+        String orderBy = (String)mapParams.get("order");
+        String extend = (String)mapParams.get("extend");
+
+        StringBuilder sql = new StringBuilder("");
+        sql.append("select count(*) AS total, min("+W_INFO.ID+") AS min_index, max("+R_INFO.ID+") AS max_index from " + getRTableName() + " where 1=1 ");
+
+        String strAndWheres = genWheres(andWheres, "andWheres", "and");
+        String strOrWheres = genWheres(orWheres, "orWheres", "or");
+        if (StringUtils.isEmpty(strAndWheres) && StringUtils.isEmpty(strOrWheres)){
+        }else{
+            if (!StringUtils.isEmpty(strAndWheres))
+                sql.append(" and " + strAndWheres);
+            if (!StringUtils.isEmpty(strOrWheres))
+                sql.append(" or " + strOrWheres);
+        }
+
+        if (!StringUtils.isEmpty(extend))
+            sql.append(" " + extend);
+        if (!StringUtils.isEmpty(orderBy))
+            sql.append(" ORDER BY " + orderBy);
+
+        return sql.toString();
+    }
+}

+ 87 - 0
src/main/java/com/shkpr/service/warncore/dbdao/providers/UserSqlProvider.java

@@ -0,0 +1,87 @@
+package com.shkpr.service.warncore.dbdao.providers;
+
+import com.global.base.tools.StringUtil;
+import com.shkpr.service.warncore.dbdao.tables.UserTable;
+import com.shkpr.service.warncore.dto.LoginUserRoleType;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.jdbc.SQL;
+
+public class UserSqlProvider extends BaseSqlProvider implements UserTable{
+
+    /**
+     * 该接口被调用时要求原始入口为:void Fun(@Param("userid") String userId, @Param("account") String account)
+     * @param userId
+     * @param account
+     * @return
+     */
+    public String fastFindTheUser(@Param("userid") String userId, @Param("account") String account) {
+        return new SQL(){{
+            SELECT(getSAllFiled());
+            FROM(getRTableName());
+            if (!StringUtil.isEmpty(userId)){
+                WHERE(getRUniqueId()+" = #{userid}");
+            }else if (!StringUtil.isEmpty(account)){
+                WHERE(R_INFO.ACCOUNT+" = #{account}");
+            }else {
+                WHERE("1 = 2");
+            }
+        }}.toString();
+    }
+
+    /**
+     * 该接口被调用时要求原始入口为:void Fun(@Param("account") String account, @Param("password") String password)
+     * @param account
+     * @param password
+     * @return
+     */
+    public String matchUserForLogin(@Param("account") String account, @Param("password") String password){
+        return new SQL(){{
+            SELECT(getSAllFiled());
+            FROM(getRTableName());
+            if (!StringUtil.isEmpty(account)){
+                if (!StringUtil.isEmpty(password))
+                    WHERE(R_INFO.ACCOUNT+" = #{account} and "+R_INFO.PASSWORD+" = #{password}");
+                else
+                    WHERE(R_INFO.ACCOUNT+" = #{account}");
+            }else {
+                WHERE("1 = 2");
+            }
+        }}.toString();
+    }
+
+    public String listAllMemInSameDpt(@Param("userid") String userid
+                                      ,@Param("roleid") String roleid){
+        if ((LoginUserRoleType.ROOT_ADMIN.toIntValue()+"").equals(roleid)){
+            return "select * from "+getRTableName();
+        }else{
+            return String.format("select U1.* from %s U1 INNER JOIN %s U2 ON U1.%s = U2.%s AND U2.%s = #{userid}"
+                    , getRTableName(), getRTableName(), R_INFO.DPT_ID, R_INFO.DPT_ID, R_INFO.UNIQUE_ID);
+        }
+    }
+
+    @Override
+    public String getRTableName() { return R_INFO.TABLE; }
+
+    @Override
+    public String getWTableName() { return W_INFO.TABLE; }
+
+    @Override
+    public String getRUniqueId() { return R_INFO.UNIQUE_ID; }
+
+    @Override
+    public String getWUniqueId() { return W_INFO.UNIQUE_ID; }
+
+    @Override
+    public String getSAllFiled() { return R_INFO.ALL_FILED; }
+
+    @Override
+    public String getRPrimaryKey() { return R_INFO.PRIMARY_KEY; }
+
+    @Override
+    public String getWPrimaryKey() { return W_INFO.PRIMARY_KEY; }
+
+    @Override
+    public boolean isWJsonForFiled(String filedName) {
+        return false;
+    }
+}

+ 152 - 0
src/main/java/com/shkpr/service/warncore/dbdao/services/OrdWarnPlanInfoDBServiceImpl.java

@@ -0,0 +1,152 @@
+package com.shkpr.service.warncore.dbdao.services;
+
+import com.global.base.log.LogLevelFlag;
+import com.global.base.log.LogPrintMgr;
+import com.shkpr.service.warncore.constants.LogFlagBusiType;
+import com.shkpr.service.warncore.dbdao.mapper.OrdWarnPlanInfoMapper;
+import com.shkpr.service.warncore.dbdao.services.intef.OrdWarnPlanInfoDBService;
+import com.shkpr.service.warncore.dbdao.tables.OrdWarnPlanInfoTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class OrdWarnPlanInfoDBServiceImpl implements OrdWarnPlanInfoDBService, OrdWarnPlanInfoTable {
+    private String mStrClassName = "";
+    private String mBusinessType = "";
+    private String logTag = "";
+    public OrdWarnPlanInfoDBServiceImpl() {
+        mStrClassName = this.getClass().getSimpleName();
+        mBusinessType = LogFlagBusiType.BUSI_DB_ORD_WARN_PLAN.toStrValue();
+        logTag = "Ord Warn Plan";
+    }
+
+    @SuppressWarnings("all")
+    @Autowired
+    OrdWarnPlanInfoMapper ordWarnPlanInfoMapper;
+
+    @Override
+    public List<Map<String, Object>> listAllWiths(int limit, int offset, Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        return null;
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryIn(List<?> ids, String orderBy, String extend) {
+        return null;
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryWiths(Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        return null;
+    }
+
+    @Override
+    public int totalCounts(Map<String, Object> andWheres, Map<String, Object> orWheres) {
+        return 0;
+    }
+
+    @Override
+    public Map<String, Object> getOne(Object id) {
+        return null;
+    }
+
+    @Override
+    public int insertByMap(Map<String, Object> maps) {
+        return 0;
+    }
+
+    @Override
+    public int updateWiths(Map<String, Object> datas, Map<String, Object> andWheres) {
+        return 0;
+    }
+
+    @Override
+    public int delete(Object id) {
+        return 0;
+    }
+
+    @Override
+    public int batchDeleteIn(List<?> ids, String extend) {
+        return 0;
+    }
+
+    @Override
+    public int existsLineEx(String table, Map<String, Object> andWheres, Map<String, Object> orWheres, String extend) {
+        return 0;
+    }
+
+    @Override
+    public Map<String, Object> fastGetFiled(String table, String filed, Object id) {
+        return null;
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryWithsEx(String table, String filed, Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        return null;
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryInEx(boolean onlyBase, String table, List<?> ids, String orderBy, String extend) {
+        return null;
+    }
+
+    @Override
+    public int deleteWithsEx(Map<String, Object> andWheres, Map<String, Object> orWheres, String extend) {
+        return 0;
+    }
+
+    @Override
+    public int totalCountsEx(String table, Map<String, Object> andWheres, Map<String, Object> orWheres, String extend) {
+        return 0;
+    }
+
+    @Override
+    public int batchUpdateWith(List<Map<String, Object>> andWheres, List<Map<String, Object>> datas) {
+        return 0;
+    }
+
+    @Override
+    public int insertEx(String planId, Map<String, Object> mapPlan, List<Map<String, Object>> arrPoint, List<Map<String, Object>> arrSuggestion) {
+        return 0;
+    }
+
+    @Override
+    public List<Map<String, Object>> listAllWithsEx(String table, String filed, int limit, int offset, Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        return null;
+    }
+
+    @Override
+    public Map<String, Object> totalWillAnalysisCounts(Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            Map<String, Object> mapRes = ordWarnPlanInfoMapper.totalWillAnalysisCounts(andWheres, orWheres, orderBy, extend);//查询不到时也会返回null
+            if (mapRes == null)
+                return new HashMap<>();
+            else
+                return mapRes;
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return null;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , mBusinessType
+                    , mStrClassName
+                    , String.format("Total Will Analysis Counts from database, code:{%d} msg:{%s} ...", nCode, strMsg));
+        }
+    }
+
+    @Override
+    public int updateForNoTrigger(String planId, Map<String, Object> updatePlan, List<Map<String, Object>> pointsWhere, List<Map<String, Object>> pointsData) {
+        return 0;
+    }
+
+    @Override
+    public int triggerEvent(String eventId, String planId, Map<String, Object> updatePlan, List<Map<String, Object>> pointsWhere, List<Map<String, Object>> pointsData, Map<String, Object> eventInfo, List<Map<String, Object>> eventTriggers) {
+        return 0;
+    }
+}

+ 355 - 0
src/main/java/com/shkpr/service/warncore/dbdao/services/UserDBServiceImpl.java

@@ -0,0 +1,355 @@
+package com.shkpr.service.warncore.dbdao.services;
+
+import com.global.base.log.LogLevelFlag;
+import com.global.base.log.LogPrintMgr;
+import com.shkpr.service.warncore.commtools.CommTool;
+import com.shkpr.service.warncore.constants.LogFlagBusiType;
+import com.shkpr.service.warncore.dbdao.mapper.UserMapper;
+import com.shkpr.service.warncore.dbdao.services.intef.UserDBService;
+import com.shkpr.service.warncore.dbdao.tables.UserTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class UserDBServiceImpl implements UserDBService, UserTable {
+    private String mStrClassName = "";
+    public UserDBServiceImpl() {
+        mStrClassName = this.getClass().getSimpleName();
+    }
+
+    @SuppressWarnings("all")
+    @Autowired
+    UserMapper userMapper;
+
+    @Override
+    public List<Map<String, Object>> listAllWiths(int limit
+            , int offset
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = userMapper.listAllWiths(limit, offset, andWheres, orWheres, orderBy, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("List All User(limit=%d, offset=%d, orderBy=%s, extend=%s, back.size=%d) from database, code:{%d} msg:{%s} ..."
+                            , limit, offset
+                            , orderBy ,extend
+                            , CommTool.listSize(arrRes)
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public Map<String, Object> getOne(Object id) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.getOne((String)id, "");
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return null;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Get User:{%s} from database, code:{%d} msg:{%s} ...", String.valueOf(id), nCode, strMsg));
+        }
+    }
+
+    @Override
+    public int delete(Object id) {
+        return -1;
+    }
+
+    @Override
+    public Map<String, Object> userLogin(String account, String password) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.userLogin(account, password);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return null;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Get User:{%s} from database for Login, code:{%d} msg:{%s} ...", account, nCode, strMsg));
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryIn(List<? extends Object> ids, String orderBy, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = userMapper.batchQueryIn(ids, orderBy, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query Users:{ids.size=%d, orderBy=%s, extend=%s, back.size=%d} from database, code:{%d} msg:{%s} ..."
+                            , CommTool.listSize(ids)
+                            , orderBy, extend
+                            , CommTool.listSize(arrRes)
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryWiths(Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend) {
+        return batchQueryWithsEx("", "", andWheres, orWheres, orderBy, extend);
+    }
+
+    @Override
+    public int totalCountsEx(Map<String, Object> andWheres, Map<String, Object> orWheres, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.totalCounts(andWheres, orWheres, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return 0;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Total Users lines from database, code:{%d} msg:{%s} ...", nCode, strMsg));
+        }
+    }
+
+    @Override
+    public int totalCounts(Map<String, Object> andWheres, Map<String, Object> orWheres) {
+        return totalCountsEx(andWheres, orWheres, "");
+    }
+
+    @Override
+    public int insertByMap(Map<String, Object> maps) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.inserts(maps);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return -1;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Insert New User to database, code:{%d} msg:{%s} ...", nCode, strMsg));
+        }
+    }
+
+    /**
+     *
+     * @param datas
+     * @param andWheres
+     * @return 注:针对mysql配合连接参数useAffectedRows=false,使得返回匹配到的行数
+     */
+    @Override
+    public int updateWiths(Map<String, Object> datas, Map<String, Object> andWheres) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.updateWiths(datas, andWheres, null, "");
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            //e.printStackTrace();
+            return -1;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Update User to database, code:{%d} msg:{%s} ...", nCode, strMsg));
+        }
+    }
+
+    @Override
+    public int batchDeleteIn(List<? extends Object> ids, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.batchDeleteIn(ids, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            //e.printStackTrace();
+            return -1;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Delete Users:{lines=%d} from database, code:{%d} msg:{%s} ...", CommTool.listSize(ids), nCode, strMsg));
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> listAllMemInSameDpt(String userId, String roleId) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = userMapper.listAllMemInSameDpt(userId, roleId);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("List All Users In Some Department:{userId=%s, roleId=%s} from database, code:{%d} msg:{%s} ..."
+                            , userId
+                            , roleId
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public int existsLine(Map<String, Object> andWheres, Map<String, Object> orWheres, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return (userMapper.existLine(UserTable.W_INFO.TABLE, andWheres, orWheres, extend)?1:0);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return -1;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Exists The User Line from database, code:{%d} msg:{%s} ...", nCode, strMsg));
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> batchQueryWithsEx(String table, String field, Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        try {
+            arrRes = userMapper.batchQueryWiths(table, field, andWheres, orWheres, orderBy, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Query Users:{andWhere.size=%d, orWhere.size=%d, orderBy=%s, extend=%s, back.size=%d} from database, code:{%d} msg:{%s} ..."
+                            , CommTool.mapSize(andWheres)
+                            , CommTool.mapSize(orWheres)
+                            , orderBy, extend
+                            , CommTool.listSize(arrRes)
+                            , nCode, strMsg));
+        }
+        return arrRes;
+    }
+
+    @Override
+    public int batchUpdateWith(List<Map<String, Object>> andWheres, List<Map<String, Object>> datas) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.batchUpdateWiths(andWheres, datas);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            //e.printStackTrace();
+            return -1;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Batch Update User Info Lines:{lines=%d} to database, code:{%d} msg:{%s} ...", CommTool.listSize(datas), nCode, strMsg));
+        }
+    }
+
+    /**
+     final List<Map<String, Object>> powerGroup1 = new ArrayList<Map<String, Object>>(){{
+        add(new HashMap<String, Object>(){{
+                put(BaseSqlCondition.SQL_ITEM.KEY, "status");
+                put(BaseSqlCondition.SQL_ITEM.LINK, "");
+                put(BaseSqlCondition.SQL_ITEM.METHOD, "in");
+                put(BaseSqlCondition.SQL_ITEM.DATA, new ArrayList<Integer>(){{add(1);add(0);}});
+        }});
+        add(new HashMap<String, Object>(){{
+                put(BaseSqlCondition.SQL_ITEM.KEY, "org");
+                put(BaseSqlCondition.SQL_ITEM.LINK, "and");
+                put(BaseSqlCondition.SQL_ITEM.METHOD, "=");
+                put(BaseSqlCondition.SQL_ITEM.DATA, "group");
+        }});
+     }};
+
+     final List<Map<String, Object>> powerGroup2 = new ArrayList<Map<String, Object>>(){{
+        add(new HashMap<String, Object>(){{
+                put(BaseSqlCondition.SQL_ITEM.KEY, "real_name");
+                put(BaseSqlCondition.SQL_ITEM.LINK, "");
+                put(BaseSqlCondition.SQL_ITEM.METHOD, "like");
+                put(BaseSqlCondition.SQL_ITEM.DATA, "%测试%");
+        }});
+        add(new HashMap<String, Object>(){{
+                put(BaseSqlCondition.SQL_ITEM.KEY, "account");
+                put(BaseSqlCondition.SQL_ITEM.LINK, "or");
+                put(BaseSqlCondition.SQL_ITEM.METHOD, "like");
+                put(BaseSqlCondition.SQL_ITEM.DATA, "%test%");
+        }});
+     }};
+     //等同于:select count(*) from k2_user_info where 1=1
+              and (status in (0,1) and org = 'group')
+              and (real_name like '%测试%' or account like '%test%');
+     int line = DBMgrProxy.getInstance().applyUserApi().totalCountsPower(null, null,
+                    new HashMap<String, List<Map<String, Object>>>(){{
+                            put("g1", powerGroup1);
+                            put("g2", powerGroup2);}}, "");
+     * @param andWheres
+     * @param orWheres
+     * @param group2Power
+     * @param extend
+     * @return
+     */
+    @Override
+    public int totalCountsPower(Map<String, Object> andWheres, Map<String, Object> orWheres, Map<String, List<Map<String, Object>>> group2Power, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        try {
+            return userMapper.totalCountsPower(andWheres, orWheres, group2Power, extend);
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+            return 0;
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , LogFlagBusiType.BUSI_DB_USER.toStrValue()
+                    , mStrClassName
+                    , String.format("Total Users lines By Power from database, code:{%d} msg:{%s} ...", nCode, strMsg));
+        }
+    }
+}

+ 29 - 0
src/main/java/com/shkpr/service/warncore/dbdao/services/intef/BaseDBService.java

@@ -0,0 +1,29 @@
+package com.shkpr.service.warncore.dbdao.services.intef;
+
+import java.util.List;
+import java.util.Map;
+
+public interface BaseDBService {
+    List<Map<String, Object>> listAllWiths(int limit
+                                            , int offset
+                                            , Map<String, Object> andWheres
+                                            , Map<String, Object> orWheres
+                                            , String orderBy
+                                            , String extend);
+
+    List<Map<String, Object>> batchQueryIn(List<? extends Object> ids
+                                            , String orderBy
+                                            , String extend);
+
+    List<Map<String, Object>> batchQueryWiths(Map<String, Object> andWheres
+                                            , Map<String, Object> orWheres
+                                            , String orderBy
+                                            , String extend);
+
+    int totalCounts(Map<String, Object> andWheres, Map<String, Object> orWheres);
+    Map<String, Object> getOne(Object id);
+    int insertByMap(Map<String, Object> maps);
+    int updateWiths(Map<String, Object> datas, Map<String, Object> andWheres);
+    int delete(Object id);
+    int batchDeleteIn(List<? extends Object> ids, String extend);
+}

+ 44 - 0
src/main/java/com/shkpr/service/warncore/dbdao/services/intef/OrdWarnPlanInfoDBService.java

@@ -0,0 +1,44 @@
+package com.shkpr.service.warncore.dbdao.services.intef;
+
+import java.util.List;
+import java.util.Map;
+
+public interface OrdWarnPlanInfoDBService extends BaseDBService {
+    int existsLineEx(String table
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String extend);
+
+    Map<String, Object> fastGetFiled(String table, String filed, Object id);
+    List<Map<String, Object>> batchQueryWithsEx(String table, String filed
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend);
+    List<Map<String, Object>> batchQueryInEx(boolean onlyBase, String table, List<? extends Object> ids
+            , String orderBy
+            , String extend);
+    int deleteWithsEx(Map<String, Object> andWheres, Map<String, Object> orWheres, String extend);
+    int totalCountsEx(String table, Map<String, Object> andWheres, Map<String, Object> orWheres, String extend);
+    int batchUpdateWith(List<Map<String, Object>> andWheres, List<Map<String, Object>> datas);
+    int insertEx(String planId, Map<String, Object> mapPlan, List<Map<String, Object>> arrPoint, List<Map<String, Object>> arrSuggestion);
+    List<Map<String, Object>> listAllWithsEx(String table, String filed
+            , int limit
+            , int offset
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend);
+    Map<String, Object> totalWillAnalysisCounts(Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend);
+    int updateForNoTrigger(String planId, Map<String, Object> updatePlan, List<Map<String, Object>> pointsWhere, List<Map<String, Object>> pointsData);
+    int triggerEvent(String eventId, String planId, Map<String, Object> updatePlan
+            , List<Map<String, Object>> pointsWhere
+            , List<Map<String, Object>> pointsData
+            , Map<String, Object> eventInfo
+            , List<Map<String, Object>> eventTriggers);
+}
+
+

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

@@ -0,0 +1,23 @@
+package com.shkpr.service.warncore.dbdao.services.intef;
+import java.util.List;
+import java.util.Map;
+
+public interface UserDBService extends BaseDBService {
+    int existsLine(Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String extend);
+    Map<String, Object> userLogin(String account, String password);
+    List<Map<String, Object>> listAllMemInSameDpt(String userId, String roleId);
+    int totalCountsEx(Map<String, Object> andWheres, Map<String, Object> orWheres, String extend);
+    List<Map<String, Object>> batchQueryWithsEx(String table
+            , String field
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend);
+    int batchUpdateWith(List<Map<String, Object>> andWheres, List<Map<String, Object>> datas);
+    int totalCountsPower(Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , Map<String, List<Map<String, Object>>> group2Power
+            , String extend);
+}

+ 38 - 0
src/main/java/com/shkpr/service/warncore/dbdao/tables/OrdWarnPlanInfoTable.java

@@ -0,0 +1,38 @@
+package com.shkpr.service.warncore.dbdao.tables;
+
+public interface OrdWarnPlanInfoTable {
+    interface R_INFO{
+        String TABLE = "v_k4_ord_warn_plan_info";
+        String PRIMARY_KEY = "uid";
+        String UNIQUE_ID = "uid";
+        String ALL_FILED = "*";
+        String DEFAULT_ORDER = "create_time DESC,id DESC";
+        String DEFAULT_EXTEND = "";
+        String ID = "id";
+        String VERSION = "version";
+
+        String TOTAL_ANALYSIS_FILED = new StringBuilder("id")
+                .append(",").append("uid")
+                .append(",").append("status")
+                .append(",").append("frequency")
+                .append(",").append("day_trigger_times")
+                .append(",").append("day_trigger_upper_times")
+                .append(",").append("last_analy_time")
+                .append(",").append("last_event_time")
+                .append(",").append("owner_src")
+                .append(",").append("obj_src").toString();
+        String TOTAL_ANALYSIS_ORDER = "create_time ASC,id ASC";
+    }
+
+    interface W_INFO{
+        String ID = "id";
+        String TABLE = "k4_ord_warn_plan_info";
+        String PRIMARY_KEY = "uid";
+        String UNIQUE_ID = "uid";
+        String LAST_ANALY_TIME = "last_analy_time";
+        String LAST_COMPARE_SAMPLE_TIME = "last_compare_sample_time";
+        String FIRST_MATCH_SAMPLE_TIME = "first_match_sample_time";
+        String LAST_EVENT_TIME = "last_event_time";
+        String CREATE_TIME = "create_time";
+    }
+}

+ 35 - 0
src/main/java/com/shkpr/service/warncore/dbdao/tables/UserTable.java

@@ -0,0 +1,35 @@
+package com.shkpr.service.warncore.dbdao.tables;
+
+public interface UserTable {
+    public interface R_INFO{
+        String TABLE = "v_k2_personnel_info";
+        String PRIMARY_KEY = "userid";
+        String ALL_FILED = "*";
+        String UNIQUE_ID = "userid";
+        String ACCOUNT = "account";
+        String PASSWORD = "password";
+        String REAL_NAME = "real_name";
+        String PHONE = "phone";
+        String DEFAULT_ORDER = "create_time DESC, userid DESC";
+        String DEFAULT_EXTEND = "";
+        String ROLE_ID = "roleid";
+        String DPT_ID = "dept_id";
+        String ORG = "org";
+        String STATUS = "status";
+    }
+
+    public interface W_INFO{
+        String TABLE = "k2_personnel_info";
+        String PRIMARY_KEY = "uid";
+        String ACCOUNT = "account";
+        String REAL_NAME = "real_name";
+        String PHONE = "phone";
+        String PASSWORD = "password";
+        String UNIQUE_ID = "uid";
+        String UPDATE_TIME = "update_time";
+        String ROLE_ID = "role_id";
+        String STATUS = "status";
+        String ORG = "org";
+        String ROLE_USED_FIELD = "role_id as uid,count(*) as counts";
+    }
+}

+ 14 - 0
src/main/java/com/shkpr/service/warncore/dto/MMUnitBean.java

@@ -0,0 +1,14 @@
+package com.shkpr.service.warncore.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class MMUnitBean {
+    private double min = -0.0;
+    private double max = 0.0;
+
+    public MMUnitBean() {
+    }
+}

+ 23 - 0
src/main/java/com/shkpr/service/warncore/dto/PThresholdUnitBean.java

@@ -0,0 +1,23 @@
+package com.shkpr.service.warncore.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class PThresholdUnitBean {
+    protected String property = "";
+    protected MMUnitBean range = null;
+
+    public PThresholdUnitBean() {
+    }
+
+    public PThresholdUnitBean(String property) {
+        this.property = property;
+    }
+
+    public PThresholdUnitBean(String property, MMUnitBean range) {
+        this.property = property;
+        this.range = range;
+    }
+}

+ 37 - 0
src/main/java/com/shkpr/service/warncore/dto/PThresholdUnitBeanEx.java

@@ -0,0 +1,37 @@
+package com.shkpr.service.warncore.dto;
+
+import com.shkpr.service.warncore.commtools.CommTool;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Getter
+@Setter
+public class PThresholdUnitBeanEx extends PThresholdUnitBean {
+    private String uid = "";
+    private List<String> followers = null;//关注人的userID
+
+    public PThresholdUnitBeanEx() {
+        super();
+    }
+
+    public PThresholdUnitBeanEx(String property) {
+        super(property);
+    }
+
+    public PThresholdUnitBeanEx(String property, MMUnitBean range) {
+        super(property, range);
+    }
+
+    public PThresholdUnitBeanEx(String uid, String property, MMUnitBean range, ArrayList<String> followers) {
+        super(property, range);
+        this.uid = uid;
+        this.followers = followers;
+    }
+
+    public void checkRes(){
+        followers = CommTool.safeList(followers);
+    }
+}

+ 27 - 0
src/main/java/com/shkpr/service/warncore/globalmgr/ScheduleTaskMgr.java

@@ -2,6 +2,7 @@ package com.shkpr.service.warncore.globalmgr;
 
 import com.global.base.log.LogLevelFlag;
 import com.global.base.log.LogPrintMgr;
+import com.shkpr.service.warncore.commtools.TimeTool;
 import com.shkpr.service.warncore.components.LocalDynamicDataSource;
 import com.shkpr.service.warncore.constants.LogFlagBusiType;
 import com.zaxxer.hikari.HikariDataSource;
@@ -41,10 +42,36 @@ public class ScheduleTaskMgr {
     public void destroy() throws Exception{
     }
 
+    @Scheduled(cron = "${cron.refresh.timer.clock}")
+    public void taskRefreshTimeRes() {
+        TimeTool.refreshUTCTimeRes();
+    }
+
     /*@Scheduled(initialDelay = 30000, fixedRate = 600000) //延迟30秒后第一次调用该方法,此后每隔10分钟再执行一次
     public void reCheckPushTask(){
     }*/
 
+    @Scheduled(cron = "${cron.check.minute.warn}")
+    public void checkWarnPlanByMinute(){
+        final long curTm = System.currentTimeMillis();
+        final int curMinute = (int)(curTm/1000/60%60);//获取当前分钟数
+        final int curClock = (int)((curTm/1000/60/60%24+8)%24);//获取当前小时数
+    }
+
+    @Scheduled(cron = "${cron.check.hour.warn}")
+    public void checkWarnPlanByHour(){
+        final long curTm = System.currentTimeMillis();
+        final int curMinute = (int)(curTm/1000/60%60);//获取当前分钟数
+        final int curClock = (int)((curTm/1000/60/60%24+8)%24);//获取当前小时数
+    }
+
+    @Scheduled(cron = "${cron.check.day.warn}")
+    public void checkWarnPlanByDay(){
+        final long curTm = System.currentTimeMillis();
+        final int curMinute = (int)(curTm/1000/60%60);//获取当前分钟数
+        final int curClock = (int)((curTm/1000/60/60%24+8)%24);//获取当前小时数
+    }
+
     @Scheduled(cron = "0 0/10 * * * ?")
     public void keepDBConnectAlive(){
         if (mainDataSource != null){

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

@@ -118,6 +118,12 @@ cloud.kpr.proxy.address=https://119.96.165.176:9090/
 cron.refresh.timer.clock=0 0-5 0 * * ?
 #\u6BCF\u5929\u51CC\u666800:15:00\u6267\u884C
 cron.clear.local.cache=0 15 0 * * ?
+#\u6BCF\u5206\u949F\u7684\u7B2C20\u79D2\u6267\u884C\u4E00\u6B21
+cron.check.minute.warn=20 0/1 * * * ?
+#\u6BCF\u4E2A\u6574\u70B9\u7684\u7B2C30\u5206\u949F\u6267\u884C\u4E00\u6B21
+cron.check.hour.warn=0 30 * * * ?
+#\u6BCF\u592900:30:00\u6267\u884C\u4E00\u6B21
+cron.check.day.warn=0 30 0 * * ?
 
 #\u4E07\u7EF4\u7F51\u8BBF\u95EE\u7684\u4EE3\u7406\u5730\u5740(\u4E3A\u7A7A\u65F6\uFF0C\u8BBF\u95EE\u4E07\u7EF4\u7F51\u4E0D\u4F7F\u7528\u4EE3\u7406)
 global.www.proxy.address=