Browse Source

指标详情推送

wangjiawen 4 years ago
parent
commit
78f96794c1

+ 43 - 0
src/main/java/com/gyee/frame/common/quartz/task/Targetdetail_curve.java

@@ -0,0 +1,43 @@
+package com.gyee.frame.common.quartz.task;
+
+import com.gyee.frame.service.app.targetdetail.TargetdetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ *测试类
+ * @CLASSNAME   WeatherfdPushTask
+ * @Description 向页面预测今天气象推送数据
+ * @Auther Wang Jiawen
+ * @DATE 2020/1/2 15:33
+ */
+@Component("targetdetail_curve")
+public class Targetdetail_curve {
+    @Autowired
+    private TargetdetailService targetdetailService;
+    /**
+     * 无参的任务
+     */
+    public void targetdetail_curve() throws Exception {
+        targetdetailService.targetdetail_curve();//调用list方法完成对 key :"weatherProphet_1" ,路径"weather/weatherProphet_1"的推送
+        //System.out.println("我已执行");
+    }
+
+
+    /**
+     * 有参任务
+     * 目前仅执行常见的数据类型  Integer Long  带L  string  带 ''  bool Double 带 d
+     * @param a
+     * @param b
+     * 
+     */
+    public void runTask2(Integer a,Long b,String c,Boolean d,Double e)
+    {
+    	//List<TsysUser> list=  tsysUserMapper.selectByExample(new TsysUserExample());
+    	//System.err.println("用户查询num:"+list.size());
+        System.out.println("正在执行定时任务,带多个参数的方法"+a+"   "+b+" "+c+"  "+d+" "+e+"执行时间:"+new Date().toLocaleString());
+    }
+
+}

+ 43 - 0
src/main/java/com/gyee/frame/common/quartz/task/Targetdetail_histogram.java

@@ -0,0 +1,43 @@
+package com.gyee.frame.common.quartz.task;
+
+import com.gyee.frame.service.app.targetdetail.TargetdetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ *测试类
+ * @CLASSNAME   WeatherfdPushTask
+ * @Description 向页面预测今天气象推送数据
+ * @Auther Wang Jiawen
+ * @DATE 2020/1/2 15:33
+ */
+@Component("targetdetail_histogram")
+public class Targetdetail_histogram {
+    @Autowired
+    private TargetdetailService targetdetailService;
+    /**
+     * 无参的任务
+     */
+    public void targetdetail_histogram() throws Exception {
+        targetdetailService.targetdetail_histogram();//调用list方法完成对 key :"weatherProphet_1" ,路径"weather/weatherProphet_1"的推送
+        //System.out.println("我已执行");
+    }
+
+
+    /**
+     * 有参任务
+     * 目前仅执行常见的数据类型  Integer Long  带L  string  带 ''  bool Double 带 d
+     * @param a
+     * @param b
+     * 
+     */
+    public void runTask2(Integer a,Long b,String c,Boolean d,Double e)
+    {
+    	//List<TsysUser> list=  tsysUserMapper.selectByExample(new TsysUserExample());
+    	//System.err.println("用户查询num:"+list.size());
+        System.out.println("正在执行定时任务,带多个参数的方法"+a+"   "+b+" "+c+"  "+d+" "+e+"执行时间:"+new Date().toLocaleString());
+    }
+
+}

+ 46 - 0
src/main/java/com/gyee/frame/common/quartz/task/Targetdetail_target.java

@@ -0,0 +1,46 @@
+package com.gyee.frame.common.quartz.task;
+
+import com.gyee.frame.mapper.auto.TsysUserMapper;
+import com.gyee.frame.service.WeatherfdService;
+import com.gyee.frame.service.app.targetdetail.TargetdetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.Date;
+
+/**
+ *测试类
+ * @CLASSNAME   WeatherfdPushTask
+ * @Description 向页面预测今天气象推送数据
+ * @Auther Wang Jiawen
+ * @DATE 2020/1/2 15:33
+ */
+@Component("targetdetail_target")
+public class Targetdetail_target {
+    @Autowired
+    private TargetdetailService targetdetailService;
+    /**
+     * 无参的任务
+     */
+    public void targetdetail_target() throws Exception {
+        targetdetailService.targetdetail_target();//调用list方法完成对 key :"weatherProphet_1" ,路径"weather/weatherProphet_1"的推送
+        //System.out.println("我已执行");
+    }
+
+
+    /**
+     * 有参任务
+     * 目前仅执行常见的数据类型  Integer Long  带L  string  带 ''  bool Double 带 d
+     * @param a
+     * @param b
+     * 
+     */
+    public void runTask2(Integer a,Long b,String c,Boolean d,Double e)
+    {
+    	//List<TsysUser> list=  tsysUserMapper.selectByExample(new TsysUserExample());
+    	//System.err.println("用户查询num:"+list.size());
+        System.out.println("正在执行定时任务,带多个参数的方法"+a+"   "+b+" "+c+"  "+d+" "+e+"执行时间:"+new Date().toLocaleString());
+    }
+
+}

+ 1 - 1
src/main/java/com/gyee/frame/common/spring/InitialRunner.java

@@ -67,7 +67,7 @@ public class InitialRunner implements CommandLineRunner {
         ProjectExample projectExample=new ProjectExample();
         projectExample.setOrderByClause("ordernum ASC");
         projectExample.createCriteria().getAllCriteria();
-        pjls= projectService.selectByExample(projectExample);
+        //pjls= projectService.selectByExample(projectExample);
 
         LineExample lineExample=new LineExample();
         lineExample.setOrderByClause("ordernum ASC");

+ 7 - 1
src/main/java/com/gyee/frame/netty/websocket/config/ConfigDetail.txt

@@ -11,4 +11,10 @@ weatherConfigMap->weatherProphet_8_15->"pageNumber_4","functionNumber_1"
 5.气象预测模块推送,包括气象矩阵,卡片,未来40天数据,包括今天
 weatherConfigMap->weatherProphet_40->"pageNumber_5","functionNumber_1"
 6.气象预测模块推送,包括气象矩阵,卡片,未来16小时数据,包含当前小时
-weatherConfigMap->weatherProphet_7Day_17Hour->"pageNumber_3","functionNumber_2"
+weatherConfigMap->weatherProphet_7Day_17Hour->"pageNumber_3","functionNumber_2"
+20.指标详情指标模块推送,指标名称targetdetail_target,包括数值,记录指标当前的一个实时数据
+sisConfigMap->targetdetail_target->"pageNumber_8","functionNumber_1"
+21.24小时指标曲线图,指标名称targetdetail_curve,包括24小时指标数据,记录从今天0点到现在的数据情况
+sisConfigMap->targetdetail_curve>"pageNumber_8","functionNumber_2"
+22.过去7天指标柱状图,指标名称targetdetail_histogram,包括过去7天该指标的数据,记录指标过去7天的数值
+sisConfigMap->targetdetail_histogram->"pageNumber_8","functionNumber_3"

+ 24 - 0
src/main/java/com/gyee/frame/netty/websocket/config/SocketPageConfig.java

@@ -32,6 +32,8 @@ public class SocketPageConfig {
    private HashMap<String, String[]> socketConfigMap;//主模块名称 ,模板静态map,请不要修改模板map,新建需要重新定义map,并仿照如下的方式进行配置
 
    private HashMap<String, String[]> weatherConfigMap;//气象预测模块推送,包括气象矩阵,卡片
+
+   private HashMap<String, String[]> sisConfigMap;//sis配置
    public String[] getConfigMap(String mapKey){
          if(socketConfigMap==null){
             socketConfigMap = new HashMap<String, String[]>();
@@ -46,6 +48,15 @@ public class SocketPageConfig {
              weatherConfigMap.put("weatherProphet_40",Createweatherprophet_40Config());//气象预测未来40天数据,按天预测,包含今天
              weatherConfigMap.put("weatherProphet_7Day_17Hour",Createweatherprophet_7Day_17HourConfig());//气象预测未来16小时数据,按小时预测,包含当前小时
          }
+
+          if(sisConfigMap==null){
+              sisConfigMap = new HashMap<String, String[]>();
+               //socket 主页面,依次排序,添加功能布局,每个页面进行一次注释
+              sisConfigMap.put("targetdetail_target",Createsis_targetdetail_target());//在此处进行功能化布局,表示在socket主页面下的一个功能
+              sisConfigMap.put("targetdetail_curve",Createsis_targetdetail_curve());
+              sisConfigMap.put("targetdetail_histogram",Createsis_targetdetail_histogram());
+          }
+
          if (socketConfigMap.containsKey(mapKey)){
             return socketConfigMap.get(mapKey);
          }
@@ -79,5 +90,18 @@ public class SocketPageConfig {
     private String[] Createweatherprophet_7Day_17HourConfig() {
         return new String[]{"pageNumber_3","functionNumber_2"};//气象预测未来16小时数据,按小时预测,包含当前小时,pageNumber_3,功能编号functionNumber_2
     }
+
+    
+    private String[] Createsis_targetdetail_target() {
+        return new String[]{"pageNumber_8","functionNumber_1"};//气象预测未来16小时数据,按小时预测,包含当前小时,pageNumber_3,功能编号functionNumber_2
+    }
+
+    private String[] Createsis_targetdetail_curve() {
+        return new String[]{"pageNumber_8","functionNumber_2"};//气象预测未来16小时数据,按小时预测,包含当前小时,pageNumber_3,功能编号functionNumber_2
+    }
+
+    private String[] Createsis_targetdetail_histogram() {
+        return new String[]{"pageNumber_8","functionNumber_3"};//气象预测未来16小时数据,按小时预测,包含当前小时,pageNumber_3,功能编号functionNumber_2
+    }
  }
 

+ 81 - 0
src/main/java/com/gyee/frame/service/app/targetdetail/TargetdetailService.java

@@ -0,0 +1,81 @@
+package com.gyee.frame.service.app.targetdetail;
+
+import com.gyee.frame.model.auto.Weatherfh;
+import com.gyee.frame.model.auto.WeatherfhExample;
+import com.gyee.frame.model.custom.PointData;
+import com.gyee.frame.model.enumeration.Messagetype;
+import com.gyee.frame.netty.websocket.util.SocketToolService;
+import com.gyee.frame.util.DateUtils;
+import com.gyee.frame.util.mongodb.IMongodbUtil;
+import com.gyee.frame.util.mongodb.MongodbUtilImpl;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author Wang Jiawen
+ * @purpose
+ * @date 2020-05-14 09:58
+ */
+
+@Service
+public class TargetdetailService extends SocketToolService {
+
+    static String point = "";
+
+    public void targetdetail_target() throws Exception {
+        IMongodbUtil mongodb = new MongodbUtilImpl();
+//查看实时数据
+        PointData real=mongodb.getRealData("HB_GD_KBF_JS_P4_L19_220_CI0136");
+        double pointValueInDouble = real.getPointValueInDouble();
+        this.pushToWeb("pageNumber_8","functionNumber_1",pointValueInDouble, Messagetype.MESSAGE);
+    }
+
+    public void targetdetail_curve() throws Exception {
+        IMongodbUtil mongodb = new MongodbUtilImpl();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
+        Date nowTime = DateUtils.getNowDate();
+        Date endTime = sdf.parse(sdf.format(nowTime));
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+        Date beginTime = sdf1.parse(sdf1.format(nowTime));
+        Long count = (endTime.getTime()-beginTime.getTime())/1000L/3600L;
+        List<PointData> ls = mongodb.getHistoryDatasSnap("HB_GD_KBF_JS_P4_L19_220_CI0136",
+                beginTime.getTime() / 1000, endTime.getTime() / 1000,
+                (long) count, 3600L);
+        for(int i=0;i<ls.size();i++){
+            ls.get(i).setPointTime(ls.get(i).getPointTime()-3600);
+        }
+        ls.remove(0);
+
+/*        if (!ls.isEmpty()) {
+            ls.forEach(obj -> System.out.println(obj.getEdnaId() + "___" +obj.getPointTime() + "___" + obj.getPointValueInDouble()));
+        }
+        for(PointData obj:ls){
+            System.out.println(obj.getEdnaId() + "___" +obj.getPointTime() + "___" + obj.getPointValueInDouble());
+        }*/
+        this.pushToWeb("pageNumber_8","functionNumber_2",ls, Messagetype.MESSAGE);
+    }
+
+    public void targetdetail_histogram() throws Exception {
+        IMongodbUtil mongodb = new MongodbUtilImpl();
+        Date nowTime = DateUtils.getNowDate();
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+        Date endTime = sdf1.parse(sdf1.format(nowTime));
+        Date beginTime = DateUtils.addDays(endTime, -7);
+//查看历史快照数据
+        List<PointData> ls = mongodb.getHistoryDatasSnap("HB_GD_KBF_JS_P4_L19_220_CI0136",
+                beginTime.getTime() / 1000, endTime.getTime() / 1000,
+                7L, 3600*24L);
+        for (int i=0;i<ls.size();i++){
+            ls.get(i).setPointTime(ls.get(i).getPointTime()-24*3600);
+        }
+        ls.remove(0);
+        /*if (!ls.isEmpty()) {
+            ls.forEach(obj -> System.out.println(obj.getEdnaId() + "___" +obj.getPointTime() + "___" + obj.getPointValueInDouble()));
+        }*/
+        this.pushToWeb("pageNumber_8","functionNumber_3",ls, Messagetype.MESSAGE);
+    }
+}

+ 11 - 2
src/test/java/test/MongoDBTest.java

@@ -1,12 +1,16 @@
 package test;
 
 import com.gyee.SpringbootStart;
+import com.gyee.frame.common.conf.redis.CacheConfig;
+import com.gyee.frame.common.conf.redis.Constant;
 import com.gyee.frame.model.custom.PointData;
+import com.gyee.frame.util.DateUtils;
 import com.gyee.frame.util.mongodb.IMongodbUtil;
 import com.gyee.frame.util.mongodb.MongodbUtilImpl;
 import lombok.SneakyThrows;
 import org.springframework.boot.SpringApplication;
 
+import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -29,10 +33,15 @@ public class MongoDBTest {
         c.add(Calendar.DAY_OF_MONTH, 1);
         Date endDate = c.getTime();
 
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
+        Date nowTime = DateUtils.getNowDate();
+        Date endTime = sdf.parse(sdf.format(nowTime));
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+        Date beginTime = sdf1.parse(sdf1.format(nowTime));
 //查看历史快照数据
         List<PointData> ls = mongodb.getHistoryDatasSnap("HB_GD_KBF_JS_P4_L19_220_CI0136",
-                beginDate.getTime() / 1000, endDate.getTime() / 1000,
-                (long) 24, 3600L);
+                beginTime.getTime() / 1000, endTime.getTime() / 1000,
+                (long) 999, 3600L);
         if (!ls.isEmpty()) {
             ls.forEach(obj -> System.out.println(obj.getEdnaId() + "___" +obj.getPointTime() + "___" + obj.getPointValueInDouble()));
         }