shilin 5 лет назад
Родитель
Сommit
3d00dd81a5

+ 2 - 2
src/main/java/com/gyee/frame/common/spring/Constant.java

@@ -26,7 +26,7 @@ public class Constant {
 //			"AGC004", "AGC005", "AGC006", "AGC007", "AGC008", "AGC011",
 //			"AGC014", "AGC015", "AGC021", "AGC022", "AGC023", "AGC024",
 //			"AGC025", "AGC026", "AGC031" };
-
+// 自算功率,实时功率,出线有功,有功设定,AGC可调上限,可调下限,远方,投入,减闭锁,增闭锁
 	public static final String[] TPOINT_WP_AGC = { "ZZSGL","SSZGL","AGC001", "AGC002",
 			"AGC003", "AGC004", "AGC005", "AGC006", "AGC007", "AGC008"};
 
@@ -191,7 +191,7 @@ public class Constant {
 	public static final String RFDLD = "RFDLD"; // 日理论发电量
 	public static final String RFDLE = "RFDLE"; // 日应发发电量
 	public static final String FJZT = "FJZT"; // 风场状态
-
+	public static final String ZTMX = "ZTMX"; // 明细状态
 	public static final String ZBZGL = "ZBZGL";// 总保证功率
 	public static final String ZSGLZZSGL = "ZZSGL";// 应发功率
 

+ 2 - 2
src/main/java/com/gyee/frame/common/websocket/WebSocketConfig.java

@@ -189,8 +189,8 @@ public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
      */
     @Override
     public void configureClientOutboundChannel(ChannelRegistration registration) {
-        registration.taskExecutor().corePoolSize(30)
-                .maxPoolSize(100)
+        registration.taskExecutor().corePoolSize(100)
+                .maxPoolSize(1000)
                 .keepAliveSeconds(60);
         //registration.setInterceptors(new WebSocketChannelInterceptor());
     }

+ 118 - 0
src/main/java/com/gyee/frame/controller/monitor/MatrixPushController.java

@@ -0,0 +1,118 @@
+package com.gyee.frame.controller.monitor;
+
+import com.gyee.frame.common.conf.AjaxStatus;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.service.websocket.MatrixDetialGfPushService;
+import com.gyee.frame.service.websocket.MatrixDetialPushService;
+import com.gyee.frame.service.websocket.MatrixPushService;
+import com.gyee.frame.service.websocket.MatrixQfPushService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/matrix")
+@Api(value = "矩阵" ,tags =  "矩阵")
+public class MatrixPushController {
+
+    @Resource
+    private MatrixPushService matrixPushService;
+    @Resource
+    private MatrixDetialPushService matrixDetialPushService;
+    @Resource
+    private MatrixDetialGfPushService matrixDetialGfPushService;
+    @Resource
+    private MatrixQfPushService matrixQfPushService;
+
+    @PostMapping("/matrixPush")
+    @ResponseBody
+    @ApiOperation(value = "基础矩阵", notes = "基础矩阵")
+    @ApiImplicitParams({})
+    public AjaxResult matrixPush() throws Exception {
+
+
+        Map<String, Object> map=  new HashMap<>();
+
+
+        map=matrixPushService.genreSetMap();
+
+        if (null!=map) {
+            return AjaxResult.successData(AjaxStatus.success.code, map);
+        } else {
+            return AjaxResult.successData(AjaxStatus.error.code, map);
+        }
+
+    }
+
+    @PostMapping("/matrixDetialPush")
+    @ResponseBody
+    @ApiOperation(value = "明细矩阵", notes = "明细矩阵")
+    @ApiImplicitParams({})
+    public AjaxResult matrixDetialPush() throws Exception {
+
+
+        Map<String, Object> map=  new HashMap<>();
+
+
+        map=matrixDetialPushService.genreSetMap();
+
+        if (null!=map) {
+            return AjaxResult.successData(AjaxStatus.success.code, map);
+        } else {
+            return AjaxResult.successData(AjaxStatus.error.code, map);
+        }
+
+    }
+
+    @PostMapping("/matrixDetialGfPush")
+    @ResponseBody
+    @ApiOperation(value = "光伏矩阵", notes = "光伏矩阵")
+    @ApiImplicitParams({})
+    public AjaxResult matrixDetialGfPush() throws Exception {
+
+
+        Map<String, Object> map=  new HashMap<>();
+
+
+        map=matrixDetialGfPushService.genreSetMap();
+
+        if (null!=map) {
+            return AjaxResult.successData(AjaxStatus.success.code, map);
+        } else {
+            return AjaxResult.successData(AjaxStatus.error.code, map);
+        }
+
+    }
+
+    @PostMapping("/matrixQfPush")
+    @ResponseBody
+    @ApiOperation(value = "欠发矩阵", notes = "欠发矩阵")
+    @ApiImplicitParams({})
+    public AjaxResult matrixQfPush() throws Exception {
+
+
+        Map<String, Object> map=  new HashMap<>();
+
+
+        map=matrixQfPushService.genreSetMap();
+
+        if (null!=map) {
+            return AjaxResult.successData(AjaxStatus.success.code, map);
+        } else {
+            return AjaxResult.successData(AjaxStatus.error.code, map);
+        }
+
+    }
+
+
+
+
+}

+ 9 - 0
src/main/java/com/gyee/frame/model/custom/MatrixVo.java

@@ -9,6 +9,7 @@ public class MatrixVo {
 	private Double fjzt;
 	private Double fs;
     private Double gl;
+    private Double fdl;
 
 	public String getWpId() {
 		return wpId;
@@ -18,6 +19,14 @@ public class MatrixVo {
 		this.wpId = wpId;
 	}
 
+	public Double getFdl() {
+		return fdl;
+	}
+
+	public void setFdl(Double fdl) {
+		this.fdl = fdl;
+	}
+
 	/**
 	 *利用率=实时功率/装机容量
 	 */

+ 189 - 0
src/main/java/com/gyee/frame/model/custom/ZtjsVo.java

@@ -0,0 +1,189 @@
+package com.gyee.frame.model.custom;
+
+public class ZtjsVo {
+
+    private String wpId;
+    private String wpName;
+
+    private Double zjrl;
+    private Double fdl;
+    private Double swdl;
+    private Double lyxs;
+    private Double fs;
+    private Double gl;
+    private Double cxgl;
+    private Double llgl;
+    private Double bzgl;
+    private Double ycgl;
+    private Double AGCzl;
+
+
+
+    private Double llfdl;
+    private Double scadafdl;
+    private Double whss;
+    private Double gzss;
+    private Double slss;
+    private Double xdss;
+    private Double xnss;
+
+    public String getWpId() {
+        return wpId;
+    }
+
+    public void setWpId(String wpId) {
+        this.wpId = wpId;
+    }
+
+    public String getWpName() {
+        return wpName;
+    }
+
+    public void setWpName(String wpName) {
+        this.wpName = wpName;
+    }
+
+    public Double getZjrl() {
+        return zjrl;
+    }
+
+    public void setZjrl(Double zjrl) {
+        this.zjrl = zjrl;
+    }
+
+    public Double getFdl() {
+        return fdl;
+    }
+
+    public void setFdl(Double fdl) {
+        this.fdl = fdl;
+    }
+
+    public Double getSwdl() {
+        return swdl;
+    }
+
+    public void setSwdl(Double swdl) {
+        this.swdl = swdl;
+    }
+
+    public Double getLyxs() {
+        return lyxs;
+    }
+
+    public void setLyxs(Double lyxs) {
+        this.lyxs = lyxs;
+    }
+
+    public Double getFs() {
+        return fs;
+    }
+
+    public void setFs(Double fs) {
+        this.fs = fs;
+    }
+
+    public Double getGl() {
+        return gl;
+    }
+
+    public void setGl(Double gl) {
+        this.gl = gl;
+    }
+
+    public Double getCxgl() {
+        return cxgl;
+    }
+
+    public void setCxgl(Double cxgl) {
+        this.cxgl = cxgl;
+    }
+
+    public Double getLlgl() {
+        return llgl;
+    }
+
+    public void setLlgl(Double llgl) {
+        this.llgl = llgl;
+    }
+
+    public Double getBzgl() {
+        return bzgl;
+    }
+
+    public void setBzgl(Double bzgl) {
+        this.bzgl = bzgl;
+    }
+
+    public Double getYcgl() {
+        return ycgl;
+    }
+
+    public void setYcgl(Double ycgl) {
+        this.ycgl = ycgl;
+    }
+
+    public Double getAGCzl() {
+        return AGCzl;
+    }
+
+    public void setAGCzl(Double AGCzl) {
+        this.AGCzl = AGCzl;
+    }
+
+    public Double getLlfdl() {
+        return llfdl;
+    }
+
+    public void setLlfdl(Double llfdl) {
+        this.llfdl = llfdl;
+    }
+
+    public Double getScadafdl() {
+        return scadafdl;
+    }
+
+    public void setScadafdl(Double scadafdl) {
+        this.scadafdl = scadafdl;
+    }
+
+    public Double getWhss() {
+        return whss;
+    }
+
+    public void setWhss(Double whss) {
+        this.whss = whss;
+    }
+
+    public Double getGzss() {
+        return gzss;
+    }
+
+    public void setGzss(Double gzss) {
+        this.gzss = gzss;
+    }
+
+    public Double getSlss() {
+        return slss;
+    }
+
+    public void setSlss(Double slss) {
+        this.slss = slss;
+    }
+
+    public Double getXdss() {
+        return xdss;
+    }
+
+    public void setXdss(Double xdss) {
+        this.xdss = xdss;
+    }
+
+    public Double getXnss() {
+        return xnss;
+    }
+
+    public void setXnss(Double xnss) {
+        this.xnss = xnss;
+    }
+}

+ 114 - 35
src/main/java/com/gyee/frame/service/websocket/AgcService.java

@@ -5,7 +5,6 @@ import com.gyee.frame.common.spring.InitialRunner;
 import com.gyee.frame.model.agc.AgcVo;
 import com.gyee.frame.model.auto.WindPowerStationTestingPoint2;
 import com.gyee.frame.model.auto.Windpowerstation;
-import com.gyee.frame.model.custom.DataVo;
 import com.gyee.frame.model.custom.PointData;
 import com.gyee.frame.util.DateUtils;
 import com.gyee.frame.util.IRealTimeDataBaseUtil;
@@ -28,19 +27,84 @@ import java.util.*;
 public class AgcService {
     private IRealTimeDataBaseUtil ednaApiUtil = new EdosUtil();
 
+
+
+    public List<Map<String, Object>> getAgcValues() throws Exception {
+        List<Map<String, Object>> vos=new ArrayList<>();
+
+        Map<String, Object> objmap=getAgcVals();
+
+
+        Map<String, Object> linemap=getAgcLine();
+
+        for (Windpowerstation wp : InitialRunner.wpallls) {
+            if (wp.getId().equals("MCH_GDC")) {
+                continue;
+            }
+
+            Map<String, Object> map=new HashMap<>();
+
+            if(objmap.containsKey(wp.getId()))
+            {
+                map.put("jcxx",objmap.get(wp.getId()));
+            }
+
+            if(linemap.containsKey(wp.getId()))
+            {
+                map.put("tb",linemap.get(wp.getId()));
+            }
+
+            vos.add(map);
+            if(wp.getId().equals("QS_FDC"))
+            {
+
+                Map<String, Object> tempmap=new HashMap<>();
+                if(objmap.containsKey("QS_FDC02"))
+                {
+                    tempmap.put("jcxx",objmap.get(wp.getId()));
+                }
+
+                if(linemap.containsKey("QS_FDC02"))
+                {
+                    tempmap.put("tb",linemap.get(wp.getId()));
+                }
+
+                vos.add(tempmap);
+            }else if(wp.getId().equals("SBQ_FDC"))
+            {
+                Map<String, Object> tempmap=new HashMap<>();
+                if(objmap.containsKey("SBQ_FDC02"))
+                {
+                    tempmap.put("jcxx",objmap.get(wp.getId()));
+                }
+
+                if(linemap.containsKey("SBQ_FDC02"))
+                {
+                    tempmap.put("tb",linemap.get(wp.getId()));
+                }
+
+                vos.add(tempmap);
+            }
+
+        }
+        return vos;
+    }
+
     /**
      * 获取agc页面点实时数据
      * @return
      * @throws Exception
      */
-    public Map<String, Double> getAgcVals() throws Exception {
-        Map<String, Double> resultmap = new HashMap<String, Double>();
+    public Map<String, Object> getAgcVals() throws Exception {
+
+        Map<String, Object> objmap = new HashMap<String, Object>();
+
         List<Windpowerstation> wpList = InitialRunner.wpallls;
         for (Windpowerstation wp : wpList) {
             if (wp.getId().equals("MCH_GDC")) {
                 continue;
             }
-
+            Map<String, Double> resultmap = new HashMap<String, Double>();
             String[] agcPoints = Constant.TPOINT_WP_AGC;
 
             Map<String, WindPowerStationTestingPoint2> map = InitialRunner.wpPointmap.get(wp.getId());
@@ -67,7 +131,10 @@ public class AgcService {
 
             }
 
+            objmap.put(wp.getId(),resultmap);
             if (wp.getId().equals("SBQ_FDC")){
+
+                Map<String, Double> tempmap = new HashMap<String, Double>();
                 /*牛五*/
                 double nwllgl = ednaApiUtil.getRealData("SBQFCJSFW.NX_GD_SBQF_FJ_P2_XXX_XXX_CI0192").getPointValueInDouble()
                         +ednaApiUtil.getRealData("SBQFCJSFW.NX_GD_SBQF_FJ_P3_XXX_XXX_CI0192").getPointValueInDouble()
@@ -83,19 +150,25 @@ public class AgcService {
                 double nwzzttzt = ednaApiUtil.getRealData("SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_DI2253").getPointValueInDouble();
                 double xlllgl = ednaApiUtil.getRealData("SBQFCJSFW.NX_GD_SBQF_FJ_P1_XXX_XXX_CI0192").getPointValueInDouble();
 
-                resultmap.put("SBQ_FDC_LLGL", MathUtil.decimal(xlllgl/1000,2));
-                resultmap.put("SBQ_FDC02_LLGL", MathUtil.decimal(nwllgl,2));
-                resultmap.put("SBQ_FDC02_AGC001", MathUtil.decimal(nwcxgl,2));
-                resultmap.put("SBQ_FDC02_AGC002", MathUtil.decimal(nwxdzl,2));
-                resultmap.put("SBQ_FDC02_AGC003", MathUtil.decimal(nwygsx,2));
-                resultmap.put("SBQ_FDC02_AGC004", MathUtil.decimal(nwygxx,2));
-                resultmap.put("SBQ_FDC02_AGC005", MathUtil.decimal(nwyf,2));
-                resultmap.put("SBQ_FDC02_AGC006", MathUtil.decimal(nwtt,2));
-                resultmap.put("SBQ_FDC02_AGC007", MathUtil.decimal(nwjbs,2));
-                resultmap.put("SBQ_FDC02_AGC008", MathUtil.decimal(nwzbs,2));
-                resultmap.put("SBQ_FDC02_AVC005", MathUtil.decimal(nwzzttzt,2));
+                Map<String, Double> tempmap2=(Map<String, Double>)objmap.get(wp.getId());
+                tempmap2.put("SBQ_FDC_LLGL", MathUtil.decimal(xlllgl/1000,2));
+
+                tempmap.put("SBQ_FDC02_LLGL", MathUtil.decimal(nwllgl,2));
+                tempmap.put("SBQ_FDC02_AGC001", MathUtil.decimal(nwcxgl,2));
+                tempmap.put("SBQ_FDC02_AGC002", MathUtil.decimal(nwxdzl,2));
+                tempmap.put("SBQ_FDC02_AGC003", MathUtil.decimal(nwygsx,2));
+                tempmap.put("SBQ_FDC02_AGC004", MathUtil.decimal(nwygxx,2));
+                tempmap.put("SBQ_FDC02_AGC005", MathUtil.decimal(nwyf,2));
+                tempmap.put("SBQ_FDC02_AGC006", MathUtil.decimal(nwtt,2));
+                tempmap.put("SBQ_FDC02_AGC007", MathUtil.decimal(nwjbs,2));
+                tempmap.put("SBQ_FDC02_AGC008", MathUtil.decimal(nwzbs,2));
+                tempmap.put("SBQ_FDC02_AVC005", MathUtil.decimal(nwzzttzt,2));
+
+
+                objmap.put("SBQ_FDC02",tempmap);
             }else if(wp.getId().equals("QS_FDC")){
                 /*宋六*/
+                Map<String, Double> tempmap = new HashMap<String, Double>();
                 double slllgl = ednaApiUtil.getRealData("QSFCJSFW.NX_GD_QSF_FJ_P3_XXX_XXX_CI0192").getPointValueInDouble();
                 double slcxgl = ednaApiUtil.getRealData("SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0013").getPointValueInDouble()/1000;
                 double slxdzl = ednaApiUtil.getRealData("SLAGC.NX_GD_QSF_DQ_P1_L1_001_AI0052").getPointValueInDouble();
@@ -116,29 +189,35 @@ public class AgcService {
                 double zzyx = ednaApiUtil.getRealData("SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0171") .getPointValueInDouble();
                 double jwgbs = ednaApiUtil.getRealData("SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0133").getPointValueInDouble();
                 double zwgbs = ednaApiUtil.getRealData("SLAGC.NX_GD_QSF_DQ_P1_L1_001_DI0114").getPointValueInDouble();
-                resultmap.put("QS_FDC_LLGL", MathUtil.decimal(qsllgl / 1000, 2));
-                resultmap.put("QS_FDC02_LLGL", MathUtil.decimal(slllgl, 2));
-                resultmap.put("QS_FDC02_AGC001", MathUtil.decimal(slcxgl, 2));
-                resultmap.put("QS_FDC02_AGC002", MathUtil.decimal(slxdzl, 2));
-                resultmap.put("QS_FDC02_AGC003", MathUtil.decimal(slygsx, 2));
-                resultmap.put("QS_FDC02_AGC004", MathUtil.decimal(slygxx, 2));
-                resultmap.put("QS_FDC02_AGC005", MathUtil.decimal(slyf, 2));
-                resultmap.put("QS_FDC02_AGC006", MathUtil.decimal(sltt, 2));
-                resultmap.put("QS_FDC02_AGC007", MathUtil.decimal(sljbs, 2));
-                resultmap.put("QS_FDC02_AGC008", MathUtil.decimal(slzbs, 2));
-
-                resultmap.put("QS_FDC02_AVC001", MathUtil.decimal(mxdysj, 2));
-                resultmap.put("QS_FDC02_AVC002", MathUtil.decimal(mxdytk, 2));
-                resultmap.put("QS_FDC02_AVC003", MathUtil.decimal(mxkjwg, 2));
-                resultmap.put("QS_FDC02_AVC004", MathUtil.decimal(mxkzwg, 2));
-                resultmap.put("QS_FDC02_AVC005", MathUtil.decimal(zztt, 2));
-                resultmap.put("QS_FDC02_AVC006", MathUtil.decimal(zzyx, 2));
-                resultmap.put("QS_FDC02_AVC007", MathUtil.decimal(jwgbs, 2));
-                resultmap.put("QS_FDC02_AVC008", MathUtil.decimal(zwgbs, 2));
+
+                Map<String, Double> tempmap2=(Map<String, Double>)objmap.get(wp.getId());
+                tempmap2.put("QS_FDC_LLGL", MathUtil.decimal(qsllgl / 1000, 2));
+
+
+                tempmap.put("QS_FDC02_LLGL", MathUtil.decimal(slllgl, 2));
+                tempmap.put("QS_FDC02_AGC001", MathUtil.decimal(slcxgl, 2));
+                tempmap.put("QS_FDC02_AGC002", MathUtil.decimal(slxdzl, 2));
+                tempmap.put("QS_FDC02_AGC003", MathUtil.decimal(slygsx, 2));
+                tempmap.put("QS_FDC02_AGC004", MathUtil.decimal(slygxx, 2));
+                tempmap.put("QS_FDC02_AGC005", MathUtil.decimal(slyf, 2));
+                tempmap.put("QS_FDC02_AGC006", MathUtil.decimal(sltt, 2));
+                tempmap.put("QS_FDC02_AGC007", MathUtil.decimal(sljbs, 2));
+                tempmap.put("QS_FDC02_AGC008", MathUtil.decimal(slzbs, 2));
+
+                tempmap.put("QS_FDC02_AVC001", MathUtil.decimal(mxdysj, 2));
+                tempmap.put("QS_FDC02_AVC002", MathUtil.decimal(mxdytk, 2));
+                tempmap.put("QS_FDC02_AVC003", MathUtil.decimal(mxkjwg, 2));
+                tempmap.put("QS_FDC02_AVC004", MathUtil.decimal(mxkzwg, 2));
+                tempmap.put("QS_FDC02_AVC005", MathUtil.decimal(zztt, 2));
+                tempmap.put("QS_FDC02_AVC006", MathUtil.decimal(zzyx, 2));
+                tempmap.put("QS_FDC02_AVC007", MathUtil.decimal(jwgbs, 2));
+                tempmap.put("QS_FDC02_AVC008", MathUtil.decimal(zwgbs, 2));
+
+                objmap.put("QS_FDC02",tempmap);
 
             }
         }
-        return resultmap;
+        return objmap;
     }
 
     /**

+ 6 - 0
src/main/java/com/gyee/frame/service/websocket/GenreSetPushService.java

@@ -33,6 +33,8 @@ public class GenreSetPushService {
     private WindpowerinfodayService windpowerinfodayService;
     @Resource
     private ProjectPlanService projectPlanService;
+    @Resource
+    private RealPowerPushService realPowerPushService;
 
 
     private final String QS = "0";
@@ -558,7 +560,11 @@ public class GenreSetPushService {
             map.put("wxssmap", wxssmap);
 
 /****************************************************五项损失************************************************************/
+/****************************************************日功率曲线**********************************************************/
 
+            List<DataVo> glvos =realPowerPushService.findRealPower(id);
+            map.put("glvos", glvos);
+/*************************************************日功率曲线*************************************************************/
 
 /****************************************************日电量历史**********************************************************/
 

+ 91 - 187
src/main/java/com/gyee/frame/service/websocket/MatrixDetialGfPushService.java

@@ -59,33 +59,14 @@ public class MatrixDetialGfPushService {
 
 
 
-        int fcdjnum = 0;
-        int fcsdtjnum = 0;
-        int fczcfdnum = 0;
-        int fcqxjclnum = 0;
-        int fcxdjclnum = 0;
-        int fcxdtjnum = 0;
-        int fcgztjnum = 0;
-        int fccnsltjnum = 0;
-        int fcjxtjnum = 0;
-        int fccnsljxnum = 0;
-        int fcdwslnum = 0;
-        int fchjslnum = 0;
-        int fclxnum = 0;
-
-        int gfdjnum = 0;
-        int gfsdtjnum = 0;
-        int gfzcfdnum = 0;
-        int gfqxjclnum = 0;
-        int gfxdjclnum = 0;
-        int gfxdtjnum = 0;
-        int gfgztjnum = 0;
-        int gfcnsltjnum = 0;
-        int gfjxtjnum = 0;
-        int gfcnsljxnum = 0;
-        int gfdwslnum = 0;
-        int gfhjslnum = 0;
-        int gflxnum = 0;
+        double gfdjts=0.0;
+        double gfyxts=0.0;
+        double gfgzts=0.0;
+        double gflxts=0.0;
+        double gfwhts=0.0;
+        double gfxdts=0.0;
+        double gfslts=0.0;
+
         String[] ycPoints1 = Constant.TPOINT_WP_FGLYC.split(",");
 
 //        Map<String, List<MatrixVo>> fjmap = new HashMap<>();
@@ -119,32 +100,7 @@ public class MatrixDetialGfPushService {
             //AGC有功设定
             jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.AGC002).getCode());
 
-            //待机台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.DJNUM).getCode());
-            //手动停机台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.TJNUM).getCode());
-            //正常发电台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.FDNUM).getCode());
-            // 缺陷降出力台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.FDJCLNUM).getCode());
-            // 限电降出力台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.XDJCLNUM).getCode());
-            // 限电停机台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.XDTJNUM).getCode());
-            // 故障停机台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.GZNUM).getCode());
-            // 场内受累停机台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.CNGZNUM).getCode());
-            // 检修停机台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.JXNUM).getCode());
-            // 场内受累检修台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.CNJXNUM).getCode());
-            // 电网受累台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.DWSLNUM).getCode());
-            // 环境受累台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.HJSLNUM).getCode());
-            // 风机离线台数
-            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(wp.getId(), Constant.LXNUM).getCode());
+
 
 
             List<PointData> jczblist = realApiUtil.getRealData(jczbls);
@@ -167,78 +123,7 @@ public class MatrixDetialGfPushService {
                 jczbmap.put("agccxyg", MathUtil.twoBit(jczblist.get(5).getPointValueInDouble()));
                 //AGC有功设定
                 jczbmap.put("agcygsd", MathUtil.twoBit(jczblist.get(6).getPointValueInDouble()));
-                //待机台数
-                Double djnum = MathUtil.twoBit(jczblist.get(7).getPointValueInDouble());
-                jczbmap.put("djnum", djnum);
-                //手动停机台数
-                Double sdtjnum = MathUtil.twoBit(jczblist.get(8).getPointValueInDouble());
-                jczbmap.put("sdtjts", sdtjnum);
-                //正常发电台数
-                Double zcfdnum = MathUtil.twoBit(jczblist.get(9).getPointValueInDouble());
-                jczbmap.put("zcfdnum", zcfdnum);
-                //缺陷降出力台数
-                Double qxjclnum = MathUtil.twoBit(jczblist.get(10).getPointValueInDouble());
-                jczbmap.put("qxjclnum", qxjclnum);
-                // 限电降出力台数
-                Double xdjclnum = MathUtil.twoBit(jczblist.get(11).getPointValueInDouble());
-                jczbmap.put("xdjclnum", xdjclnum);
-                // 限电停机台数
-                Double xdtjnum = MathUtil.twoBit(jczblist.get(12).getPointValueInDouble());
-                jczbmap.put("xdtjnum", xdtjnum);
-                // 故障停机台数
-                Double gztjnum = MathUtil.twoBit(jczblist.get(13).getPointValueInDouble());
-                jczbmap.put("gztjnum", gztjnum);
-                // 场内受累停机台数
-                Double cnsltjnum = MathUtil.twoBit(jczblist.get(14).getPointValueInDouble());
-                jczbmap.put("cnsltjnum", cnsltjnum);
-                // 检修停机台数
-                Double jxtjnum = MathUtil.twoBit(jczblist.get(15).getPointValueInDouble());
-                jczbmap.put("jxtjnum", jxtjnum);
-                // 场内受累检修台数
-                Double cnsljxnum = MathUtil.twoBit(jczblist.get(16).getPointValueInDouble());
-                jczbmap.put("cnsljxnum", cnsljxnum);
-                // 电网受累台数
-                Double dwslnum = MathUtil.twoBit(jczblist.get(17).getPointValueInDouble());
-                jczbmap.put("dwslnum", dwslnum);
-                // 环境受累台数
-                Double hjslnum = MathUtil.twoBit(jczblist.get(18).getPointValueInDouble());
-                jczbmap.put("hjslnum", hjslnum);
-                // 风机离线台数
-                Double lxnum = MathUtil.twoBit(jczblist.get(19).getPointValueInDouble());
-                jczbmap.put("lxnum", lxnum);
-
-                if (wp.getId().endsWith("FDC")) {
-
-                    fcdjnum = fcdjnum + djnum.intValue();
-                    fcsdtjnum = fcsdtjnum + sdtjnum.intValue();
-                    fczcfdnum = fczcfdnum + zcfdnum.intValue();
-                    fcqxjclnum = fcqxjclnum + qxjclnum.intValue();
-                    fcxdjclnum = fcxdjclnum + xdjclnum.intValue();
-                    fcxdtjnum = fcxdtjnum + xdtjnum.intValue();
-                    fcgztjnum = fcgztjnum + gztjnum.intValue();
-                    fccnsltjnum = fccnsltjnum + cnsltjnum.intValue();
-                    fcjxtjnum = fcjxtjnum + jxtjnum.intValue();
-                    fccnsljxnum = fccnsljxnum + cnsljxnum.intValue();
-                    fcdwslnum = fcdwslnum + dwslnum.intValue();
-                    fchjslnum = fchjslnum + hjslnum.intValue();
-                    fclxnum = fclxnum + lxnum.intValue();
-
-                } else if (wp.getId().endsWith("GDC")) {
-
-                    gfdjnum = gfdjnum + djnum.intValue();
-                    gfsdtjnum = gfsdtjnum + sdtjnum.intValue();
-                    gfzcfdnum = gfzcfdnum + zcfdnum.intValue();
-                    gfqxjclnum = gfqxjclnum + qxjclnum.intValue();
-                    gfxdjclnum = gfxdjclnum + xdjclnum.intValue();
-                    gfxdtjnum = gfxdtjnum + xdtjnum.intValue();
-                    gfgztjnum = gfgztjnum + gztjnum.intValue();
-                    gfcnsltjnum = gfcnsltjnum + cnsltjnum.intValue();
-                    gfjxtjnum = gfjxtjnum + jxtjnum.intValue();
-                    gfcnsljxnum = gfcnsljxnum + cnsljxnum.intValue();
-                    gfdwslnum = gfdwslnum + dwslnum.intValue();
-                    gfhjslnum = gfhjslnum + hjslnum.intValue();
-                    gflxnum = gflxnum + lxnum.intValue();
-                }
+
 
             } else {
                 //实时风速
@@ -255,32 +140,7 @@ public class MatrixDetialGfPushService {
                 jczbmap.put("agccxyg", 0.0);
                 //AGC有功设定
                 jczbmap.put("agcygsd", 0.0);
-                //待机台数
-                jczbmap.put("djnum",  0.0);
-                //手动停机台数
-                jczbmap.put("sdtjts", 0.0);
-                //正常发电台数
-                jczbmap.put("zcfdnum", 0.0);
-                //缺陷降出力台数
-                jczbmap.put("qxjclnum", 0.0);
-                // 限电降出力台数
-                jczbmap.put("xdjclnum", 0.0);
-                // 限电停机台数
-                jczbmap.put("xdtjnum", 0.0);
-                // 故障停机台数
-                jczbmap.put("gztjnum", 0.0);
-                // 场内受累停机台数
-                jczbmap.put("cnsltjnum", 0.0);
-                // 检修停机台数
-                jczbmap.put("jxtjnum", 0.0);
-                // 场内受累检修台数
-                jczbmap.put("cnsljxnum", 0.0);
-                // 电网受累台数
-                jczbmap.put("dwslnum", 0.0);
-                // 环境受累台数
-                jczbmap.put("hjslnum", 0.0);
-                // 风机离线台数
-                jczbmap.put("lxnum", 0.0);
+
             }
 
             fczbmap.put(wp.getId(),jczbmap);
@@ -298,13 +158,14 @@ public class MatrixDetialGfPushService {
 
             for(Windturbine wt:wtls)
             {
-                //风机状态
+                //状态
                 fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.FJZT).getId());
-                //风速
-                fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.TPOINT_WT_FJSSFS).getId());
+                //交流电流
+                fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.TPOINT_WT_NBQJLDL).getId());
                 //功率
                 fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.TPOINT_WT_FJGL).getId());
-
+                //交流电压
+                fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.TPOINT_WT_NBQJLDY).getId());
             }
 
             List<PointData> fjzblist = realApiUtil.getRealData(fjzbls);
@@ -312,7 +173,16 @@ public class MatrixDetialGfPushService {
             if (!fjzblist.isEmpty() && fjzblist.size() == fjzbls.size()) {
 
 
-                int step=3;
+                int step=4;
+
+
+                double djts=0.0;
+                double yxts=0.0;
+                double gzts=0.0;
+                double lxts=0.0;
+                double whts=0.0;
+                double xdts=0.0;
+                double slts=0.0;
                 for(int i=0;i<wtls.size();i++)
                 {
                     Windturbine wt=wtls.get(i);
@@ -327,16 +197,72 @@ public class MatrixDetialGfPushService {
 
                     }
 
-                    vo.setFjzt(MathUtil.twoBit(fjzblist.get(i*step).getPointValueInDouble()));
+                    double fjzt = MathUtil.twoBit(MathUtil.twoBit(fjzblist.get(i*step).getPointValueInDouble()));
+
+                    switch (Double.valueOf(fjzt).intValue()) {
+                        case 0:
+                            djts++;
+                            break;
+                        case 1:
+                            yxts++;
+                            break;
+                        case 2:
+                            gzts++;
+                            break;
+                        case 3:
+                            lxts++;
+                            break;
+                        case 4:
+                            whts++;
+                            break;
+                        case 5:
+                            xdts++;
+                            break;
+//                        case 6:
+//                            slts++;
+//                            break;
+
+                        default:
+
+                            break;
+                    }
+                    vo.setFjzt(fjzt);
                     vo.setFs(MathUtil.twoBit(fjzblist.get(i*step+1).getPointValueInDouble()));
                     vo.setGl(MathUtil.twoBit(fjzblist.get(i*step+2).getPointValueInDouble()));
+                    vo.setFdl(MathUtil.twoBit(fjzblist.get(i*step+3).getPointValueInDouble()));
                     vo.setWtCode(wt.getCode());
                     vo.setWpId(wt.getWindpowerstationid());
                     vos.add(vo);
 
                 }
 
+
+
+
+
+                jczbmap.put("djts", djts);
+                jczbmap.put("yxts", yxts);
+                jczbmap.put("gzts", gzts);
+                jczbmap.put("lxts", lxts);
+                jczbmap.put("whts", whts);
+                jczbmap.put("xdts", xdts);
+                jczbmap.put("slts", slts);
+
+                jczbmap.put("jrts",djts+yxts+gzts+lxts+whts+xdts+slts);
+
+                fczbmap.put(wp.getId(),jczbmap);
+
+                gfdjts = gfdjts + Double.valueOf(djts).intValue();
+                gfyxts = gfyxts + Double.valueOf(yxts).intValue();
+                gfgzts = gfgzts + Double.valueOf(gzts).intValue();
+                gflxts = gflxts + Double.valueOf(lxts).intValue();
+                gfwhts = gfwhts + Double.valueOf(whts).intValue();
+                gfxdts = gfxdts + Double.valueOf(xdts).intValue();
+                gfslts = gfslts + Double.valueOf(slts).intValue();
+
+
             }
+
             fjvos.add(vos);
 
 /*************************************************风机指标统计*************************************************************/
@@ -350,37 +276,15 @@ public class MatrixDetialGfPushService {
 /*******************************************风场、光伏状态数量统计***********************************************************/
 
 
+        map.put("gfdjts", gfdjts);
+        map.put("gfyxts", gfyxts);
+        map.put("gfgzts", gfgzts);
+        map.put("gflxts", gflxts);
+        map.put("gfwhts", gfwhts);
+        map.put("gfxdts", gfxdts);
+        map.put("gfslts", gfslts);
 
-//        map.put("fcdjnum", fcdjnum);
-//        map.put("fcsdtjnum", fcsdtjnum);
-//        map.put("fczcfdnum", fczcfdnum);
-//        map.put("fcqxjclnum", fcqxjclnum);
-//        map.put("fcxdjclnum", fcxdjclnum);
-//        map.put("fcxdtjnum", fcxdtjnum);
-//        map.put("fcgztjnum", fcgztjnum);
-//        map.put("fccnsltjnum", fccnsltjnum);
-//        map.put("fcjxtjnum", fcjxtjnum);
-//        map.put("fccnsljxnum", fccnsljxnum);
-//        map.put("fcdwslnum", fcdwslnum);
-//        map.put("fchjslnum", fchjslnum);
-//        map.put("fclxnum", fclxnum);
-
-
-        map.put("gfdjnum", gfdjnum);
-        map.put("gfsdtjnum", gfsdtjnum);
-        map.put("gfzcfdnum", gfzcfdnum);
-        map.put("gfqxjclnum", gfqxjclnum);
-        map.put("gfxdjclnum", gfxdjclnum);
-        map.put("gfxdtjnum", gfxdtjnum);
-        map.put("gfgztjnum", gfgztjnum);
-        map.put("gfcnsltjnum", gfcnsltjnum);
-        map.put("gfjxtjnum", gfjxtjnum);
-        map.put("gfcnsljxnum", gfcnsljxnum);
-        map.put("gfdwslnum", gfdwslnum);
-        map.put("gfhjslnum", gfhjslnum);
-        map.put("gflxnum", gflxnum);
-
-        double gfjrnum = gfdjnum + gfsdtjnum + gfzcfdnum + gfqxjclnum + gfxdjclnum + gfxdtjnum+gfgztjnum+gfcnsltjnum+gfjxtjnum+gfcnsljxnum+gfdwslnum+gfhjslnum+gflxnum;
+        double gfjrnum = gfdjts + gfyxts + gfgzts + gflxts + gfwhts + gfxdts+gfslts;
 
         map.put("gfjrnum", gfjrnum);
 /*******************************************风场、光伏状态数量统计***********************************************************/

+ 23 - 1
src/main/java/com/gyee/frame/service/websocket/MatrixDetialPushService.java

@@ -163,6 +163,7 @@ public class MatrixDetialPushService {
                 jczbmap.put("agccxyg", MathUtil.twoBit(jczblist.get(5).getPointValueInDouble()));
                 //AGC有功设定
                 jczbmap.put("agcygsd", MathUtil.twoBit(jczblist.get(6).getPointValueInDouble()));
+
                 //待机台数
                 Double djnum = MathUtil.twoBit(jczblist.get(7).getPointValueInDouble());
                 jczbmap.put("djnum", djnum);
@@ -203,6 +204,25 @@ public class MatrixDetialPushService {
                 Double lxnum = MathUtil.twoBit(jczblist.get(19).getPointValueInDouble());
                 jczbmap.put("lxnum", lxnum);
 
+
+                double djts=djnum+sdtjnum;
+                double yxts=zcfdnum+qxjclnum;
+                double gzts=gztjnum+cnsltjnum;
+                double lxts=lxnum;
+                double whts=jxtjnum+cnsljxnum;
+                double xdts=xdjclnum+xdtjnum;
+                double slts=dwslnum+hjslnum;
+
+                jczbmap.put("djts", djts);
+                jczbmap.put("yxts", yxts);
+                jczbmap.put("gzts", gzts);
+                jczbmap.put("lxts", lxts);
+                jczbmap.put("whts", whts);
+                jczbmap.put("xdts", xdts);
+                jczbmap.put("slts", slts);
+
+                jczbmap.put("jrts",djnum+sdtjnum+zcfdnum+qxjclnum+xdjclnum+xdtjnum+gztjnum+cnsltjnum+jxtjnum+cnsljxnum+dwslnum+hjslnum+lxnum);
+
                 if (wp.getId().endsWith("FDC")) {
 
                     fcdjnum = fcdjnum + djnum.intValue();
@@ -295,7 +315,7 @@ public class MatrixDetialPushService {
             for(Windturbine wt:wtls)
             {
                 //风机状态
-                fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.FJZT).getId());
+                fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.ZTMX).getId());
                 //风速
                 fjzbls.add(windTurbineTestingPointAiService.getWindTurbineTestingPointAi2(wt.getId(), Constant.TPOINT_WT_FJSSFS).getId());
                 //功率
@@ -360,6 +380,8 @@ public class MatrixDetialPushService {
         map.put("fchjslnum", fchjslnum);
         map.put("fclxnum", fclxnum);
 
+
+
         double fcjrnum = fcdjnum + fcsdtjnum + fczcfdnum + fcqxjclnum + fcxdjclnum + fcxdtjnum+fcgztjnum+fccnsltjnum+fcjxtjnum+fccnsljxnum+fcdwslnum+fchjslnum+fclxnum;
 
         map.put("fcjrnum", fcjrnum);

+ 3 - 3
src/main/java/com/gyee/frame/service/websocket/MatrixPushService.java

@@ -243,9 +243,9 @@ public class MatrixPushService {
 
 
                     double fjzt = MathUtil.twoBit(fjzblist.get(i * step).getPointValueInDouble());
-                    if (fjzt == 6) {
-                        slts++;
-                    }
+//                    if (fjzt == 6) {
+//                        slts++;
+//                    }
                     vo.setFjzt(fjzt);
                     vo.setFs(MathUtil.twoBit(fjzblist.get(i * step + 1).getPointValueInDouble()));
                     vo.setGl(MathUtil.twoBit(fjzblist.get(i * step + 2).getPointValueInDouble()));

+ 20 - 3
src/main/java/com/gyee/frame/service/websocket/MatrixQfPushService.java

@@ -67,7 +67,7 @@ public class MatrixQfPushService {
         int fclxnum = 0;
         int fcwhnum = 0;
         int fcxdnum = 0;
-
+        int fcslnum = 0;
         int gfdjnum = 0;
         int gfyxnum = 0;
         int gfgznum = 0;
@@ -219,6 +219,7 @@ public class MatrixQfPushService {
 
 
                 int step = 3;
+                double slts=0;
                 for (int i = 0; i < wtls.size(); i++) {
                     Windturbine wt = wtls.get(i);
 
@@ -250,6 +251,11 @@ public class MatrixQfPushService {
                             vo.setLyl(0.0);
                         }
                     }
+
+//                    if(fjzt==6)
+//                    {
+//                        slts++;
+//                    }
                     if(StringUtils.notEmp(wt.getStatus()))
                     {
                         String num=wt.getStatus().substring(wt.getStatus().length()-3);
@@ -260,7 +266,16 @@ public class MatrixQfPushService {
                     vo.setWpId(wt.getWindpowerstationid());
                     vos.add(vo);
                 }
-
+                //限电台数
+                jczbmap.put("slts", slts);
+                double djts=(Double)jczbmap.get("djts");
+                double yxts=(Double)jczbmap.get("yxts");
+                double gzts=(Double)jczbmap.get("gzts");
+                double lxts=(Double)jczbmap.get("lxts");
+                double whts=(Double)jczbmap.get("whts");
+                double xdts=(Double)jczbmap.get("xdts");
+                jczbmap.put("jrts", Double.valueOf(slts)+djts+yxts+gzts+lxts+whts+xdts);
+                fcslnum=fcslnum+Double.valueOf(slts).intValue();
             }
            // fjmap.put(wp.getId(), vos);
             fjvos.add(vos);
@@ -286,8 +301,10 @@ public class MatrixQfPushService {
         map.put("fcwhnum", fcwhnum);
         //风场限电台数
         map.put("fcxdnum", fcxdnum);
+        //风场受累台数
+        map.put("fcslnum", fcslnum);
 
-
+        map.put("fcjrnum", fcdjnum+fcyxnum+fcgznum+fclxnum+fcwhnum+fcxdnum+fcslnum);
         List<String> qfzbls = new ArrayList<>();
         //日0欠发电量
         qfzbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(FD, Constant.R0QFZT).getCode());

+ 22 - 8
src/main/java/com/gyee/frame/service/websocket/RealPowerPushService.java

@@ -50,25 +50,39 @@ public class RealPowerPushService {
         map.put(QS, findRealPower(QS));
         map.put(FD, findRealPower(FD));
         map.put(GF, findRealPower(GF));
-        map.put("QS_FDC",findRealPower("QS_FDC"));
-        map.put("QSQ02_GC",findRealPower("QSQ02_GC"));
-        map.put("QSQ05_XL",findRealPower("QSQ05_XL"));
+//        map.put("QS_FDC",findRealPower("QS_FDC"));
+//        map.put("QSQ02_GC",findRealPower("QSQ02_GC"));
+//        map.put("QSQ05_XL",findRealPower("QSQ05_XL"));
 
         return map;
 
     }
 
-    public Map<String, Object> findRealPower(String id) throws Exception {
-        Map<String, Object> map = new HashMap<String, Object>();
+
+    public Map<String, Object> genreSetWpMap(String wpId) throws Exception {
+
+        Map<String, Object> map = new HashMap<>();
+
+        map.put(wpId, findRealPower(wpId));
+
+//        map.put("QS_FDC",findRealPower("QS_FDC"));
+//        map.put("QSQ02_GC",findRealPower("QSQ02_GC"));
+//        map.put("QSQ05_XL",findRealPower("QSQ05_XL"));
+
+        return map;
+
+    }
+
+    public List<DataVo> findRealPower(String id) throws Exception {
+        List<DataVo> glvos = new ArrayList<>();
         if (StringUtils.notEmp(id)) {
 
 
 /****************************************************曲线历史**********************************************************/
-            List<DataVo> glvos = findRealPowerChar(id, new Date());
-            map.put("glvos", glvos);
+             glvos = findRealPowerChar(id, new Date());
 /*************************************************曲线历史*************************************************************/
         }
-        return map;
+        return glvos;
     }
     public List<DataVo> findRealPowerChar(String id, Date currentDate) throws Exception {
 

+ 770 - 284
src/main/java/com/gyee/frame/service/websocket/WpInfoPushService.java

@@ -3,12 +3,13 @@ package com.gyee.frame.service.websocket;
 
 import com.gyee.frame.common.spring.Constant;
 import com.gyee.frame.common.spring.InitialRunner;
-import com.gyee.frame.model.auto.*;
+import com.gyee.frame.model.auto.WindPowerStationTestingPoint2;
+import com.gyee.frame.model.auto.Windpowerstation;
 import com.gyee.frame.model.custom.PointData;
+import com.gyee.frame.model.custom.ZtjsVo;
 import com.gyee.frame.service.ProjectPlanService;
 import com.gyee.frame.service.WindPowerstationTestingPointService;
 import com.gyee.frame.service.WindpowerinfodayService;
-import com.gyee.frame.util.DateUtils;
 import com.gyee.frame.util.IRealTimeDataBaseUtil;
 import com.gyee.frame.util.MathUtil;
 import com.gyee.frame.util.StringUtils;
@@ -18,7 +19,10 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @Service
 public class WpInfoPushService {
@@ -34,25 +38,30 @@ public class WpInfoPushService {
 
     IRealTimeDataBaseUtil realApiUtil = new EdosUtil();
 
-
+    String[] ycPoints1 = Constant.TPOINT_WP_FGLYC.split(",");
 
     public Map<String, Object> genreSetMap() throws Exception {
 
-        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> map = findWpInfo();
 
-        map.put("SBQ_FDC",findWpInfo("SBQ_FDC"));
-        map.put("SBQ02_GC",findWpInfo("SBQ02_GC"));
-        map.put("SBQ05_XL",findWpInfo("SBQ05_XL"));
+//        map.put("SBQ_FDC",findWpInfo("SBQ_FDC"));
+//        map.put("SBQ02_GC",findWpInfo("SBQ02_GC"));
+//        map.put("SBQ05_XL",findWpInfo("SBQ05_XL"));
 
-       return map;
+        return map;
 
     }
 
-    public Map<String, Object> findWpInfo(String id) throws Exception {
+    public Map<String, Object> findWpInfo() throws Exception {
         Map<String, Object> map = new HashMap<String, Object>();
-        if (StringUtils.notEmp(id)) {
 
+        List<ZtjsVo> vos = new ArrayList<>();
+        List<Map<String, Object>> maps = new ArrayList<>();
+        for (Windpowerstation wp : InitialRunner.wpallls) {
 
+            ZtjsVo vo = new ZtjsVo();
+            String id = wp.getId();
+            double scadafdl = 0.0;
             Double zjrl = 0.0;
             Double zjts = 0.0;
 
@@ -62,35 +71,17 @@ public class WpInfoPushService {
 
 /*************************************************基础指标*************************************************************/
 
-            if(InitialRunner.wpmap.containsKey(id))
-            {
-                Windpowerstation wp=InitialRunner.wpmap.get(id);
-
-                zjrl = wp.getCapacity();
-                zjts = Double.valueOf(wp.getQuantity());
-            }else  if(InitialRunner.pjmap.containsKey(id))
-            {
-                Project pj=InitialRunner.pjmap.get(id);
-
-                zjrl = pj.getCapacity();
-                zjts = Double.valueOf(pj.getQuantity());
-            }else  if(InitialRunner.lnmap.containsKey(id))
-            {
-                Line ln=InitialRunner.lnmap.get(id);
-
-                zjrl = ln.getCapacity();
-                zjts = Double.valueOf(ln.getQuantity());
-            }
-
-
+            zjrl = wp.getCapacity();
+            zjts = Double.valueOf(wp.getQuantity());
 
+            vo.setWpId(wp.getId());
+            vo.setWpName(wp.getName());
+            vo.setZjrl(zjrl);
+            Map<String, Object> jczbmap = new HashMap<>();
 
-
-            Map<String, Double> jczbmap = new HashMap<>();
-
-            jczbmap.put("zjrl", zjrl);
+//          jczbmap.put("zjrl", zjrl);
             jczbmap.put("zjts", zjts);
-
+            jczbmap.put("name", wp.getName());
             List<String> jczbls = new ArrayList<>();
 
             jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.TPOINT_WP_SJGL).getCode());
@@ -103,10 +94,9 @@ public class WpInfoPushService {
             jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.TPOINT_WP_ZZSGL).getCode());
             jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.FJZT).getCode());
             jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.TPOINT_WT_RFDL).getCode());
+            jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, ycPoints1[0]).getCode());
 
-
-            if(InitialRunner.wpmap.containsKey(id))
-            {
+            if (InitialRunner.wpmap.containsKey(id)) {
                 jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.AGC001).getCode());
                 jczbls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.AGC002).getCode());
             }
@@ -117,40 +107,62 @@ public class WpInfoPushService {
             if (!jczblist.isEmpty() && jczblist.size() == jczbls.size()) {
                 //实际功率
                 sjgl = MathUtil.twoBit(jczblist.get(0).getPointValueInDouble());
-                jczbmap.put("sjgl", sjgl);
+                vo.setGl(sjgl);
+                //jczbmap.put("sjgl", sjgl);
                 //日发电量
-                jczbmap.put("rfdl", MathUtil.twoBit(jczblist.get(1).getPointValueInDouble()));
-                //月发电量
-                jczbmap.put("yfdl", MathUtil.twoBit(jczblist.get(2).getPointValueInDouble()));
-                //年发电量
-                jczbmap.put("nfdl", MathUtil.twoBit(jczblist.get(3).getPointValueInDouble()));
+                double fdl = MathUtil.twoBit(jczblist.get(1).getPointValueInDouble());
+                vo.setFdl(fdl);
+                // jczbmap.put("rfdl", rfdl);
+
+//                //月发电量
+//                double yfdl=MathUtil.twoBit(jczblist.get(2).getPointValueInDouble());
+//                jczbmap.put("yfdl", yfdl);
+//                //年发电量
+//                double nfdl=MathUtil.twoBit(jczblist.get(3).getPointValueInDouble());
+//                jczbmap.put("nfdl", nfdl);
                 //月利用小时
-                jczbmap.put("ylyxs", (new BigDecimal(jczblist.get(2).getPointValueInDouble()).multiply(new BigDecimal(10))).divide(new BigDecimal(zjrl), 2, RoundingMode.HALF_EVEN).doubleValue());
-                //年利用小时
-                jczbmap.put("nlyxs", (new BigDecimal(jczblist.get(3).getPointValueInDouble()).multiply(new BigDecimal(10))).divide(new BigDecimal(zjrl), 2, RoundingMode.HALF_EVEN).doubleValue());
+                double ylyxs = (new BigDecimal(jczblist.get(2).getPointValueInDouble()).multiply(new BigDecimal(10))).divide(new BigDecimal(zjrl), 2, RoundingMode.HALF_EVEN).doubleValue();
+                //jczbmap.put("ylyxs",ylyxs );
+                vo.setLyxs(ylyxs);
+//                //年利用小时
+//                double nlyxs= (new BigDecimal(jczblist.get(3).getPointValueInDouble()).multiply(new BigDecimal(10))).divide(new BigDecimal(zjrl), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                jczbmap.put("nlyxs",nlyxs);
                 //实时风速
-                jczbmap.put("ssfs", MathUtil.twoBit(jczblist.get(4).getPointValueInDouble()));
+                double ssfs = MathUtil.twoBit(jczblist.get(4).getPointValueInDouble());
+                //        jczbmap.put("ssfs",ssfs );
+                vo.setFs(ssfs);
                 //上网电量
-                jczbmap.put("swdl", MathUtil.twoBit(jczblist.get(5).getPointValueInDouble()));
+                double swdl = MathUtil.twoBit(jczblist.get(5).getPointValueInDouble());
+                // jczbmap.put("swdl",swdl );
+                vo.setSwdl(swdl);
                 //保证功率
                 bzgl = new BigDecimal(jczblist.get(6).getPointValueInDouble()).divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                jczbmap.put("bzgl", bzgl);
+                //jczbmap.put("bzgl", bzgl);
+                vo.setBzgl(bzgl);
                 //应发功率
                 yfgl = new BigDecimal(jczblist.get(7).getPointValueInDouble()).divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                jczbmap.put("yfgl", yfgl);
+                // jczbmap.put("yfgl", yfgl);
+                vo.setLlgl(yfgl);
                 //目标状态
-                jczbmap.put("fczt", StringUtils.round(jczblist.get(8).getPointValueInDouble(),0));
-                //SCADA发电量
-                jczbmap.put("scadafdl", StringUtils.round(jczblist.get(9).getPointValueInDouble(),2));
-
-                if(InitialRunner.wpmap.containsKey(id))
-                {
-                    //AGC出线有功
-                    jczbmap.put("agccxyg", StringUtils.round(jczblist.get(10).getPointValueInDouble(),2));
-                    //AGC有功设定
-                    jczbmap.put("agcygsd", StringUtils.round(jczblist.get(11).getPointValueInDouble(),2));
-                }
+                double fczt = StringUtils.round(jczblist.get(8).getPointValueInDouble(), 0);
+                jczbmap.put("fczt", fczt);
 
+                //SCADA发电量
+                scadafdl = StringUtils.round(jczblist.get(9).getPointValueInDouble(), 2);
+                //jczbmap.put("scadafdl",scadafdl );
+                vo.setScadafdl(scadafdl);
+                //预测功率
+                double ycgl = StringUtils.round(jczblist.get(10).getPointValueInDouble(), 2);
+                // jczbmap.put("ycgl",ycgl );
+                vo.setYcgl(ycgl);
+                //AGC出线有功
+                double agccxyg = StringUtils.round(jczblist.get(11).getPointValueInDouble(), 2);
+                jczbmap.put("agccxyg", agccxyg);
+                vo.setCxgl(agccxyg);
+                //AGC有功设定
+                double agcygsd = StringUtils.round(jczblist.get(12).getPointValueInDouble(), 2);
+                jczbmap.put("agcygsd", agcygsd);
+                vo.setAGCzl(agcygsd);
 
             } else {
                 //实际功率
@@ -177,56 +189,271 @@ public class WpInfoPushService {
                 jczbmap.put("fczt", -1.0);
                 //SCADA发电量
                 jczbmap.put("scadafdl", 0.0);
-
-                if(InitialRunner.wpmap.containsKey(id))
-                {
-                    //AGC出线有功
-                    jczbmap.put("agccxyg", 0.0);
-                    //AGC有功设定
-                    jczbmap.put("agcygsd", 0.0);
-                }
+                //预测功率
+                jczbmap.put("ycgl", 0.0);
+                //AGC出线有功
+                jczbmap.put("agccxyg", 0.0);
+                //AGC有功设定
+                jczbmap.put("agcygsd", 0.0);
 
 
             }
 
-            if (bzgl == 0.0) {
-                bzgl = 1.0;
-            }
-            Double glbz = new BigDecimal(sjgl).divide(new BigDecimal(bzgl), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
-            if (bzgl == 1) {
-                bzgl = 0.0;
-            }
-            if (glbz > 100) {
-                glbz = 100.0;
-            }
-            jczbmap.put("glbz", StringUtils.round(glbz, 2));
+//            if (bzgl == 0.0) {
+//                bzgl = 1.0;
+//            }
+//            Double glbz = new BigDecimal(sjgl).divide(new BigDecimal(bzgl), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
+//            if (bzgl == 1) {
+//                bzgl = 0.0;
+//            }
+//            if (glbz > 100) {
+//                glbz = 100.0;
+//            }
+//            jczbmap.put("glbz", StringUtils.round(glbz, 2));
+
 
+/*************************************************基础指标*************************************************************/
 
-            map.put("jczbmap", jczbmap);
+/***********************************************************************************************************************/
+
+            List<String> zbls = new ArrayList<>();
+            switch (id) {
+                case "MHS_FDC":
+//            MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0037	电压
+//            MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0246	电压
+//            MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0009	电流
+                    zbls.add("MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0037");
+                    zbls.add("MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0246");
+                    zbls.add("MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0009");
+                    zbls.add("MHSDJL.NX_GD_MHSF_DD_P1_L1_001_ZXYG057");
+
+                    List<PointData> zblist = realApiUtil.getRealData(zbls);
+
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        double temp2 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1 + temp2));
+                        double temp3 = zblist.get(2).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp3));
+                        double temp4 = zblist.get(3).getPointValueInDouble();
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp4));
+                    }
+                    break;
+                case "NSS_FDC":
+//            NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0004	电压
+//            NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0085	电压
+//            NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0009	电流
+//            NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0014	电流
+                    zbls.add("NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0004");
+                    zbls.add("NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0085");
+                    zbls.add("NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0009");
+                    zbls.add("NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI0014");
+
+                    zbls.add("NSSDJL.NX_GD_NSSF_DD_P1_L1_001_ZXYG025");
+                    zbls.add("NSSDJL.NX_GD_NSSF_DD_P1_L1_001_ZXYG029");
+
+                    zblist = realApiUtil.getRealData(zbls);
+
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        double temp2 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1 + temp2));
+                        double temp3 = zblist.get(2).getPointValueInDouble();
+                        double temp4 = zblist.get(3).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp3 + temp4));
+                        double temp5 = zblist.get(4).getPointValueInDouble();
+                        double temp6 = zblist.get(5).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp5 + temp6));
+                    }
+                    break;
+                case "QS_FDC":
+//            QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI0007	电压
+//            QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI0324	电流
+//            SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0009	电压
+//            SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0004	电流
+                    zbls.add("NX_GD_QSF_DQ_P1_L1_001_AI0007");
+                    zbls.add("SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0009");
+                    zbls.add("QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI0324");
+                    zbls.add("SLDQ.NX_GD_QSF_DQ_P1_L1_001_AI0004");
+
+//            QSDJL.NX_GD_QSF_DD_P1_L1_001_ZXYG001
+//            SLDJL.NX_GD_QSF_DD_P1_L1_001_ZXYG001
+                    zbls.add("QSDJL.NX_GD_QSF_DD_P1_L1_001_ZXYG001");
+                    zbls.add("SLDJL.NX_GD_QSF_DD_P1_L1_001_ZXYG001");
+                    zblist = realApiUtil.getRealData(zbls);
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        double temp2 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1 + temp2));
+                        double temp3 = zblist.get(2).getPointValueInDouble();
+                        double temp4 = zblist.get(3).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp3 + temp4));
+                        double temp5 = zblist.get(4).getPointValueInDouble();
+                        double temp6 = zblist.get(5).getPointValueInDouble();
+
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp5 + temp6));
+                    }
+                    break;
+                case "SBQ_FDC":
+//            SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0133	电压
+//            SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0141	电压
+//            SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0009	电流
+//            SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0681	电流
+                    zbls.add("SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0133");
+                    zbls.add("SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0141");
+                    zbls.add("SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0009");
+                    zbls.add("SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0681");
+
+                    zbls.add("SBQDJL.NX_GD_SBQF_DD_P1_L1_001_ZXYG009");
+                    zbls.add("SBQDJL.NX_GD_SBQF_DD_P1_L1_001_ZXYG061");
+                    zbls.add("SBQDJL.NX_GD_SBQF_DD_P1_L1_001_ZXYG109");
+//            SBQDJL.NX_GD_SBQF_DD_P1_L1_001_ZXYG009
+//            SBQDJL.NX_GD_SBQF_DD_P1_L1_001_ZXYG061
+//            SBQDJL.NX_GD_SBQF_DD_P1_L1_001_ZXYG109
+                    zblist = realApiUtil.getRealData(zbls);
+
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        double temp2 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1 + temp2));
+                        double temp3 = zblist.get(2).getPointValueInDouble();
+                        double temp4 = zblist.get(3).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp3 + temp4));
+                        double temp5 = zblist.get(4).getPointValueInDouble();
+                        double temp6 = zblist.get(5).getPointValueInDouble();
+                        double temp7 = zblist.get(6).getPointValueInDouble();
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp5 + temp6 + temp7));
+                    }
+                    break;
+                case "XS_FDC":
+//            XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0007	电压
+//            XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0010	电流
+                    zbls.add("XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0007");
+                    zbls.add("XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0010");
+//            XSDJL.NX_GD_XSF_DD_P1_L1_001_ZXYG017
+                    zbls.add("XSDJL.NX_GD_XSF_DD_P1_L1_001_ZXYG017");
+                    zblist = realApiUtil.getRealData(zbls);
+
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1));
+                        double temp3 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp3));
+                        double temp2 = zblist.get(2).getPointValueInDouble();
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp2));
+                    }
+                    break;
+                case "DWK_GDC":
+//            DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0004	电压
+//            DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0001	电流
+                    zbls.add("DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0004");
+                    zbls.add("DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0001");
+                    zbls.add("DWKDJL.NX_GD_DWKG_DD_P1_L1_001_ZXYG001");
 
+                    zblist = realApiUtil.getRealData(zbls);
 
-/*************************************************基础指标*************************************************************/
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
 
+                        jczbmap.put("uab", MathUtil.twoBit(temp1));
+                        double temp3 = zblist.get(1).getPointValueInDouble();
 
-/*************************************************测风塔*************************************************************/
+                        jczbmap.put("ia", MathUtil.twoBit(temp3));
+                        double temp2 = zblist.get(2).getPointValueInDouble();
 
-            if(InitialRunner.wpmap.containsKey(id))
-            {
-                Map<String, Double> cftmap = new HashMap<>();
-                String[] cftstrs=Constant.TPOINT_WP_CFT;
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp2));
+                    }
+                    break;
+                case "PL_GDC":
+//            PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0001	电压
+//            PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0013	电压
+//            PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0047	电流
+//            PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0007	电流
+                    zbls.add("PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0001");
+                    zbls.add("PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0013");
+                    zbls.add("PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0047");
+                    zbls.add("PLSJ1.NX_GD_PLG_DQ_P1_L1_001_AI0007");
+
+                    zbls.add("PLSJ1.NX_GD_PLG_DQ_P1_L1_001_PI0963");
+//            PLSJ1.NX_GD_PLG_DQ_P1_L1_001_PI0963
+                    zblist = realApiUtil.getRealData(zbls);
+
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        double temp2 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1 + temp2));
+                        double temp3 = zblist.get(2).getPointValueInDouble();
+                        double temp4 = zblist.get(3).getPointValueInDouble();
+                        jczbmap.put("ia", MathUtil.twoBit(temp3 + temp4));
+                        double temp5 = zblist.get(4).getPointValueInDouble();
+
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp5));
+                    }
+                    break;
+                case "XH_GDC":
+
+//            XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0004	电压
+//            XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0001	电流
+                    zbls.add("XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0004");
+                    zbls.add("XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0001");
+                    zbls.add("XHDJL.NX_GD_XHG_DD_P1_L1_001_ZXYG001");
+//            XHDJL.NX_GD_XHG_DD_P1_L1_001_ZXYG001
+                    zblist = realApiUtil.getRealData(zbls);
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1));
+                        double temp3 = zblist.get(1).getPointValueInDouble();
+
+                        jczbmap.put("ia", MathUtil.twoBit(temp3));
+                        double temp5 = zblist.get(2).getPointValueInDouble();
+
+                        jczbmap.put("dnlb", MathUtil.twoBit(temp5));
+                    }
+
+                    break;
+                case "MCH_GDC":
+//            MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0212	电压
+//            MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0044	电压
+//            "MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0013	"	电流
+                    zbls.add("MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0212");
+                    zbls.add("MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0044");
+                    zbls.add("MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0013");
 
-                for(int i=0;i<cftstrs.length;i++)
-                {
-                    WindPowerStationTestingPoint2 point2 =windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.FCCFTFS10);
+                    zblist = realApiUtil.getRealData(zbls);
 
-                    if(StringUtils.notEmp(point2.getCode()))
-                    {
-                        PointData value = realApiUtil.getRealData(point2);
-                        cftmap.put(cftstrs[i],StringUtils.round(value.getPointValueInDouble(),2));
+                    if (!zblist.isEmpty() && zblist.size() == zbls.size()) {
+                        double temp1 = zblist.get(0).getPointValueInDouble();
+                        double temp2 = zblist.get(1).getPointValueInDouble();
+                        jczbmap.put("uab", MathUtil.twoBit(temp1 + temp2));
+                        double temp3 = zblist.get(2).getPointValueInDouble();
+
+                        jczbmap.put("ia", MathUtil.twoBit(temp3));
                     }
+                    break;
+                default:
+                    break;
+            }
+
+
+/*************************************************************************************************************************/
+/*************************************************测风塔*************************************************************/
+
+            if (InitialRunner.wpmap.containsKey(id)) {
+                WindPowerStationTestingPoint2 point2 = windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.FCCFTFX30);
+
+                if (StringUtils.notEmp(point2.getCode())) {
+                    PointData value = realApiUtil.getRealData(point2);
+                    jczbmap.put("cftfx", MathUtil.twoBit(value.getPointValueInDouble()));
+                }
+                point2 = windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.FCCFTFS30);
+
+                if (StringUtils.notEmp(point2.getCode())) {
+                    PointData value = realApiUtil.getRealData(point2);
+                    jczbmap.put("cftfs",MathUtil.twoBit(value.getPointValueInDouble()));
                 }
 
-                map.put("cftmap", cftmap);            }
+                //map.put(wp.getId() + "cftmap", cftmap);
+            }
 
 /*************************************************测风塔*************************************************************/
 
@@ -252,30 +479,260 @@ public class WpInfoPushService {
             List<PointData> ztlist = realApiUtil.getRealData(ztls);
 
             if (!ztlist.isEmpty() && ztlist.size() == ztls.size()) {
-                ztmap.put("djts", MathUtil.twoBit(ztlist.get(0).getPointValueInDouble()));
-                ztmap.put("yxts", MathUtil.twoBit(ztlist.get(1).getPointValueInDouble()));
-                ztmap.put("gzts", MathUtil.twoBit(ztlist.get(2).getPointValueInDouble()));
-                ztmap.put("lxts", MathUtil.twoBit(ztlist.get(3).getPointValueInDouble()));
-                ztmap.put("whts", MathUtil.twoBit(ztlist.get(4).getPointValueInDouble()));
-                ztmap.put("xdts", MathUtil.twoBit(ztlist.get(5).getPointValueInDouble()));
+                jczbmap.put("djts", MathUtil.twoBit(ztlist.get(0).getPointValueInDouble()));
+                jczbmap.put("yxts", MathUtil.twoBit(ztlist.get(1).getPointValueInDouble()));
+                jczbmap.put("gzts", MathUtil.twoBit(ztlist.get(2).getPointValueInDouble()));
+                jczbmap.put("lxts", MathUtil.twoBit(ztlist.get(3).getPointValueInDouble()));
+                jczbmap.put("whts", MathUtil.twoBit(ztlist.get(4).getPointValueInDouble()));
+                jczbmap.put("xdts", MathUtil.twoBit(ztlist.get(5).getPointValueInDouble()));
 
             } else {
 
-                ztmap.put("djts", 0.0);
-                ztmap.put("yxts", 0.0);
-                ztmap.put("gzts", 0.0);
-                ztmap.put("lxts", 0.0);
-                ztmap.put("whts", 0.0);
-                ztmap.put("xdts", 0.0);
+                jczbmap.put("djts", 0.0);
+                jczbmap.put("yxts", 0.0);
+                jczbmap.put("gzts", 0.0);
+                jczbmap.put("lxts", 0.0);
+                jczbmap.put("whts", 0.0);
+                jczbmap.put("xdts", 0.0);
 
             }
-            map.put("ztmap", ztmap);
+            map.put("maps", maps);
 //
 
 /*************************************************6种状态*************************************************************/
 
 /*************************************************五项损失**************************************************************/
 
+//            Map<String, Double> wxssmap = new HashMap<>();
+//            List<String> wxssls = new ArrayList<>();
+//
+//            // 日场内受累检修
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RLZSSDL).getCode());
+//            // 日场内受累故障
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RSZSSDL).getCode());
+//            // 月场内受累检修
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YLZSSDL).getCode());
+//            // 月场内受累故障
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSZSSDL).getCode());
+//            // 年场内受累检修
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NLZSSDL).getCode());
+//            // 年场内受累故障
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSZSSDL).getCode());
+//
+//            //日待机损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RSDJZSDL).getCode());
+//            //日手动停机损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RSSTZSDL).getCode());
+//            //日性能损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RXNZSDL).getCode());
+//            //日缺陷降出力损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RSQXZSDL).getCode());
+//            //日故障损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RGZSSDL).getCode());
+//            //日检修损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RJXSSDL).getCode());
+//
+//            //月待机损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSDJZSDL).getCode());
+//            //月手动停机损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSSTZSDL).getCode());
+//            //月性能损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YXNZSDL).getCode());
+//            //月缺陷降出力损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSQXZSDL).getCode());
+//            //月故障损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YGZSSDL).getCode());
+//            //月检修损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YJXSSDL).getCode());
+//
+//
+//            //年待机损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSDJZSDL).getCode());
+//            //年手动停机损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSSTZSDL).getCode());
+//            //年性能损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NXNZSDL).getCode());
+//            //年缺陷降出力损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSQXZSDL).getCode());
+//            //年故障损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NGZSSDL).getCode());
+//            //年检修损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NJXSSDL).getCode());
+//
+//
+//            //日限电损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RXDSSDL).getCode());
+//            //月限电损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YXDSSDL).getCode());
+//            //年限电损失
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NXDSSDL).getCode());
+//
+//
+//            //日场外受累电网
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RWZSSDL).getCode());
+//            // 日场外受累天气
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RTZSSDL).getCode());
+//            // 月场外受累电网
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YWZSSDL).getCode());
+//            // 月场外受累天气
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YTZSSDL).getCode());
+//            // 年场外受累电网
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NWZSSDL).getCode());
+//            // 年场外受累天气
+//            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NTZSSDL).getCode());
+//
+//
+//            List<PointData> wxsslist = realApiUtil.getRealData(wxssls);
+//
+//            if (!wxsslist.isEmpty() && wxsslist.size() == wxssls.size()) {
+//
+//                Double rjxsl = MathUtil.twoBit(wxsslist.get(0).getPointValueInDouble());
+//                // 日场内受累故障
+//                Double rgzzsl = MathUtil.twoBit(wxsslist.get(1).getPointValueInDouble());
+//                // 月场内受累检修
+//                Double yjxsl = MathUtil.twoBit(wxsslist.get(2).getPointValueInDouble());
+//                // 月场内受累故障
+//                Double ygzzsl = MathUtil.twoBit(wxsslist.get(3).getPointValueInDouble());
+//                // 年场内受累检修
+//                Double njxsl = MathUtil.twoBit(wxsslist.get(4).getPointValueInDouble());
+//                // 年场内受累故障
+//                Double ngzzsl = MathUtil.twoBit(wxsslist.get(5).getPointValueInDouble());
+//
+//                wxssmap.put("rjxsl", rjxsl);
+//                wxssmap.put("rgzzsl", rgzzsl);
+//                wxssmap.put("yjxsl", yjxsl);
+//                wxssmap.put("ygzzsl", ygzzsl);
+//                wxssmap.put("njxsl", njxsl);
+//                wxssmap.put("ngzzsl", ngzzsl);
+//
+//                //日待机损失
+//                Double rdjss = MathUtil.twoBit(wxsslist.get(6).getPointValueInDouble());
+//                //日手动停机损失
+//                Double rsdtjss = MathUtil.twoBit(wxsslist.get(7).getPointValueInDouble());
+//                //日性能损失
+//                Double rxnss = MathUtil.twoBit(wxsslist.get(8).getPointValueInDouble());
+//                //日缺陷降出力损失
+//                Double rqxjclss = MathUtil.twoBit(wxsslist.get(9).getPointValueInDouble());
+//
+//                //日欠发损失=日待机损失+日手动停机损失+日性能损失+日缺陷降出力损失
+//                Double rqfssdl = new BigDecimal(rdjss + rsdtjss + rxnss + rqxjclss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                Double rgzss = MathUtil.twoBit(wxsslist.get(10).getPointValueInDouble());
+//                //日故障损失电量=日故障损失+日故障受累
+//                Double rgzssdl = new BigDecimal(rgzss + rgzzsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                //日检修损失电量=日检修损失+日检修受累
+//                Double rjxss = MathUtil.twoBit(wxsslist.get(11).getPointValueInDouble());
+//                Double rjxssdl = new BigDecimal(rjxss + rjxsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//
+//                wxssmap.put("rqfssdl", rqfssdl);
+//                wxssmap.put("rgzssdl", rgzssdl);
+//                wxssmap.put("rjxssdl", rjxssdl);
+//
+//                // 月场内受累检修
+//                Double ydjss = MathUtil.twoBit(wxsslist.get(12).getPointValueInDouble());
+//                // 月场内受累检修
+//                Double ysdtjss = MathUtil.twoBit(wxsslist.get(13).getPointValueInDouble());
+//                // 月场内受累检修
+//                Double yxnss = MathUtil.twoBit(wxsslist.get(14).getPointValueInDouble());
+//                // 月场内受累检修
+//                Double yqxjclss = MathUtil.twoBit(wxsslist.get(15).getPointValueInDouble());
+//                //月欠发损失=月待机损失+月手动停机损失+月性能损失+月缺陷降出力损失
+//                Double yqfssdl = new BigDecimal(ydjss + ysdtjss + yxnss + yqxjclss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                Double ygzss = MathUtil.twoBit(wxsslist.get(16).getPointValueInDouble());
+//                //月故障损失电量=月故障损失+月故障受累
+//                Double ygzssdl = new BigDecimal(ygzss + ygzzsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                Double yjxss = MathUtil.twoBit(wxsslist.get(17).getPointValueInDouble());
+//                //月检修损失电量=月检修损失+月检修受累
+//                Double yjxssdl = new BigDecimal(yjxss + yjxsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                wxssmap.put("yqfssdl", yqfssdl);
+//                wxssmap.put("ygzssdl", ygzssdl);
+//                wxssmap.put("yjxssdl", yjxssdl);
+//
+//                // 年场内受累检修
+//                Double ndjss = MathUtil.twoBit(wxsslist.get(18).getPointValueInDouble());
+//                // 年场内受累检修
+//                Double nsdtjss = MathUtil.twoBit(wxsslist.get(19).getPointValueInDouble());
+//                // 年场内受累检修
+//                Double nxnss = MathUtil.twoBit(wxsslist.get(20).getPointValueInDouble());
+//                // 年场内受累检修
+//                Double nqxjclss = MathUtil.twoBit(wxsslist.get(21).getPointValueInDouble());
+//
+//                Double nqfssdl = new BigDecimal(ndjss + nsdtjss + nxnss + nqxjclss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                Double ngzss = MathUtil.twoBit(wxsslist.get(22).getPointValueInDouble());
+//                //年故障损失电量=年故障损失+年故障受累
+//                Double ngzssdl = new BigDecimal(ngzss + ngzzsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                Double njxss = MathUtil.twoBit(wxsslist.get(23).getPointValueInDouble());
+//                //年检修损失电量=年检修损失+年检修受累
+//                Double njxssdl = new BigDecimal(njxss + njxsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                wxssmap.put("nqfssdl", nqfssdl);
+//                wxssmap.put("ngzssdl", ngzssdl);
+//                wxssmap.put("njxssdl", njxssdl);
+//
+//                double temp = 0.0;
+//                temp = MathUtil.twoBit(wxsslist.get(24).getPointValueInDouble());
+//                Double rxdssdl = new BigDecimal(temp).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                temp = MathUtil.twoBit(wxsslist.get(25).getPointValueInDouble());
+//                Double yxdssdl = new BigDecimal(temp).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                temp = MathUtil.twoBit(wxsslist.get(26).getPointValueInDouble());
+//                Double nxdssdl = new BigDecimal(temp).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                wxssmap.put("rxdssdl", StringUtils.round(rxdssdl < 0.0 ? 0.0 : rxdssdl, 2));
+//                wxssmap.put("yxdssdl", StringUtils.round(yxdssdl < 0.0 ? 0.0 : yxdssdl, 2));
+//                wxssmap.put("nxdssdl", StringUtils.round(nxdssdl < 0.0 ? 0.0 : nxdssdl, 2));
+//
+//                Double rdwsl = MathUtil.twoBit(wxsslist.get(27).getPointValueInDouble());
+//                Double rtqsl = MathUtil.twoBit(wxsslist.get(28).getPointValueInDouble());
+//                Double rslssdl = new BigDecimal(rdwsl + rtqsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                Double ydwsl = MathUtil.twoBit(wxsslist.get(29).getPointValueInDouble());
+//                Double ytqsl = MathUtil.twoBit(wxsslist.get(30).getPointValueInDouble());
+//                Double yslssdl = new BigDecimal(ydwsl + ytqsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//                Double ndwsl = MathUtil.twoBit(wxsslist.get(31).getPointValueInDouble());
+//                Double ntqsl = MathUtil.twoBit(wxsslist.get(32).getPointValueInDouble());
+//                Double nslssdl = new BigDecimal(ndwsl + ntqsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
+//
+//                wxssmap.put("rslssdl", rslssdl);
+//                wxssmap.put("yslssdl", yslssdl);
+//                wxssmap.put("nslssdl", nslssdl);
+//
+//            } else {
+//
+//                wxssmap.put("rjxsl", 0.0);
+//                wxssmap.put("rgzzsl", 0.0);
+//                wxssmap.put("yjxsl", 0.0);
+//                wxssmap.put("ygzzsl", 0.0);
+//                wxssmap.put("njxsl", 0.0);
+//                wxssmap.put("ngzzsl", 0.0);
+//                wxssmap.put("rqfssdl", 0.0);
+//                wxssmap.put("rgzssdl", 0.0);
+//                wxssmap.put("rjxssdl", 0.0);
+//
+//                wxssmap.put("yqfssdl", 0.0);
+//                wxssmap.put("ygzssdl", 0.0);
+//                wxssmap.put("yjxssdl", 0.0);
+//
+//                wxssmap.put("nqfssdl", 0.0);
+//                wxssmap.put("ngzssdl", 0.0);
+//                wxssmap.put("njxssdl", 0.0);
+//
+//
+//                wxssmap.put("rxdssdl", 0.0);
+//                wxssmap.put("yxdssdl", 0.0);
+//                wxssmap.put("nxdssdl", 0.0);
+//
+//
+//                wxssmap.put("rslssdl", 0.0);
+//                wxssmap.put("yslssdl", 0.0);
+//                wxssmap.put("nslssdl", 0.0);
+//
+//            }
+//            map.put("wxssmap", wxssmap);
+
+
             Map<String, Double> wxssmap = new HashMap<>();
             List<String> wxssls = new ArrayList<>();
 
@@ -283,15 +740,6 @@ public class WpInfoPushService {
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RLZSSDL).getCode());
             // 日场内受累故障
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RSZSSDL).getCode());
-            // 月场内受累检修
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YLZSSDL).getCode());
-            // 月场内受累故障
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSZSSDL).getCode());
-            // 年场内受累检修
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NLZSSDL).getCode());
-            // 年场内受累故障
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSZSSDL).getCode());
-
             //日待机损失
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RSDJZSDL).getCode());
             //日手动停机损失
@@ -304,56 +752,13 @@ public class WpInfoPushService {
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RGZSSDL).getCode());
             //日检修损失
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RJXSSDL).getCode());
-
-            //月待机损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSDJZSDL).getCode());
-            //月手动停机损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSSTZSDL).getCode());
-            //月性能损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YXNZSDL).getCode());
-            //月缺陷降出力损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YSQXZSDL).getCode());
-            //月故障损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YGZSSDL).getCode());
-            //月检修损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YJXSSDL).getCode());
-
-
-            //年待机损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSDJZSDL).getCode());
-            //年手动停机损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSSTZSDL).getCode());
-            //年性能损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NXNZSDL).getCode());
-            //年缺陷降出力损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NSQXZSDL).getCode());
-            //年故障损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NGZSSDL).getCode());
-            //年检修损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NJXSSDL).getCode());
-
-
             //日限电损失
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RXDSSDL).getCode());
-            //月限电损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YXDSSDL).getCode());
-            //年限电损失
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NXDSSDL).getCode());
-
 
             //日场外受累电网
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RWZSSDL).getCode());
             // 日场外受累天气
             wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.RTZSSDL).getCode());
-            // 月场外受累电网
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YWZSSDL).getCode());
-            // 月场外受累天气
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.YTZSSDL).getCode());
-            // 年场外受累电网
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NWZSSDL).getCode());
-            // 年场外受累天气
-            wxssls.add(windPowerstationTestingPointService.getWindPowerStationTestingPoint2(id, Constant.NTZSSDL).getCode());
-
 
             List<PointData> wxsslist = realApiUtil.getRealData(wxssls);
 
@@ -362,182 +767,263 @@ public class WpInfoPushService {
                 Double rjxsl = MathUtil.twoBit(wxsslist.get(0).getPointValueInDouble());
                 // 日场内受累故障
                 Double rgzzsl = MathUtil.twoBit(wxsslist.get(1).getPointValueInDouble());
-                // 月场内受累检修
-                Double yjxsl = MathUtil.twoBit(wxsslist.get(2).getPointValueInDouble());
-                // 月场内受累故障
-                Double ygzzsl = MathUtil.twoBit(wxsslist.get(3).getPointValueInDouble());
-                // 年场内受累检修
-                Double njxsl = MathUtil.twoBit(wxsslist.get(4).getPointValueInDouble());
-                // 年场内受累故障
-                Double ngzzsl = MathUtil.twoBit(wxsslist.get(5).getPointValueInDouble());
+
 
                 wxssmap.put("rjxsl", rjxsl);
                 wxssmap.put("rgzzsl", rgzzsl);
-                wxssmap.put("yjxsl", yjxsl);
-                wxssmap.put("ygzzsl", ygzzsl);
-                wxssmap.put("njxsl", njxsl);
-                wxssmap.put("ngzzsl", ngzzsl);
+
 
                 //日待机损失
-                Double rdjss = MathUtil.twoBit(wxsslist.get(6).getPointValueInDouble());
+                Double rdjss = MathUtil.twoBit(wxsslist.get(2).getPointValueInDouble());
                 //日手动停机损失
-                Double rsdtjss = MathUtil.twoBit(wxsslist.get(7).getPointValueInDouble());
+                Double rsdtjss = MathUtil.twoBit(wxsslist.get(3).getPointValueInDouble());
                 //日性能损失
-                Double rxnss = MathUtil.twoBit(wxsslist.get(8).getPointValueInDouble());
+                Double rxnss = MathUtil.twoBit(wxsslist.get(4).getPointValueInDouble());
                 //日缺陷降出力损失
-                Double rqxjclss = MathUtil.twoBit(wxsslist.get(9).getPointValueInDouble());
+                Double rqxjclss = MathUtil.twoBit(wxsslist.get(5).getPointValueInDouble());
 
                 //日欠发损失=日待机损失+日手动停机损失+日性能损失+日缺陷降出力损失
                 Double rqfssdl = new BigDecimal(rdjss + rsdtjss + rxnss + rqxjclss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
 
-                Double rgzss = MathUtil.twoBit(wxsslist.get(10).getPointValueInDouble());
+                Double rgzss = MathUtil.twoBit(wxsslist.get(6).getPointValueInDouble());
                 //日故障损失电量=日故障损失+日故障受累
                 Double rgzssdl = new BigDecimal(rgzss + rgzzsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
                 //日检修损失电量=日检修损失+日检修受累
-                Double rjxss = MathUtil.twoBit(wxsslist.get(11).getPointValueInDouble());
+                Double rjxss = MathUtil.twoBit(wxsslist.get(7).getPointValueInDouble());
                 Double rjxssdl = new BigDecimal(rjxss + rjxsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
 
 
-                wxssmap.put("rqfssdl", rqfssdl);
-                wxssmap.put("rgzssdl", rgzssdl);
-                wxssmap.put("rjxssdl", rjxssdl);
-
-                // 月场内受累检修
-                Double ydjss = MathUtil.twoBit(wxsslist.get(12).getPointValueInDouble());
-                // 月场内受累检修
-                Double ysdtjss = MathUtil.twoBit(wxsslist.get(13).getPointValueInDouble());
-                // 月场内受累检修
-                Double yxnss = MathUtil.twoBit(wxsslist.get(14).getPointValueInDouble());
-                // 月场内受累检修
-                Double yqxjclss = MathUtil.twoBit(wxsslist.get(15).getPointValueInDouble());
-                //月欠发损失=月待机损失+月手动停机损失+月性能损失+月缺陷降出力损失
-                Double yqfssdl = new BigDecimal(ydjss + ysdtjss + yxnss + yqxjclss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-
-                Double ygzss = MathUtil.twoBit(wxsslist.get(16).getPointValueInDouble());
-                //月故障损失电量=月故障损失+月故障受累
-                Double ygzssdl = new BigDecimal(ygzss + ygzzsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                Double yjxss = MathUtil.twoBit(wxsslist.get(17).getPointValueInDouble());
-                //月检修损失电量=月检修损失+月检修受累
-                Double yjxssdl = new BigDecimal(yjxss + yjxsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-
-                wxssmap.put("yqfssdl", yqfssdl);
-                wxssmap.put("ygzssdl", ygzssdl);
-                wxssmap.put("yjxssdl", yjxssdl);
-
-                // 年场内受累检修
-                Double ndjss = MathUtil.twoBit(wxsslist.get(18).getPointValueInDouble());
-                // 年场内受累检修
-                Double nsdtjss = MathUtil.twoBit(wxsslist.get(19).getPointValueInDouble());
-                // 年场内受累检修
-                Double nxnss = MathUtil.twoBit(wxsslist.get(20).getPointValueInDouble());
-                // 年场内受累检修
-                Double nqxjclss = MathUtil.twoBit(wxsslist.get(21).getPointValueInDouble());
-
-                Double nqfssdl = new BigDecimal(ndjss + nsdtjss + nxnss + nqxjclss).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-
-                Double ngzss = MathUtil.twoBit(wxsslist.get(22).getPointValueInDouble());
-                //年故障损失电量=年故障损失+年故障受累
-                Double ngzssdl = new BigDecimal(ngzss + ngzzsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                Double njxss = MathUtil.twoBit(wxsslist.get(23).getPointValueInDouble());
-                //年检修损失电量=年检修损失+年检修受累
-                Double njxssdl = new BigDecimal(njxss + njxsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-
-                wxssmap.put("nqfssdl", nqfssdl);
-                wxssmap.put("ngzssdl", ngzssdl);
-                wxssmap.put("njxssdl", njxssdl);
+                vo.setWhss(rjxssdl);
+                vo.setGzss(rgzssdl);
+                vo.setXnss(rqfssdl);
+//                wxssmap.put("rqfssdl", rqfssdl);
+//                wxssmap.put("rgzssdl", rgzssdl);
+//                wxssmap.put("rjxssdl", rjxssdl);
+
 
                 double temp = 0.0;
-                temp = MathUtil.twoBit(wxsslist.get(24).getPointValueInDouble());
+                temp = MathUtil.twoBit(wxsslist.get(8).getPointValueInDouble());
                 Double rxdssdl = new BigDecimal(temp).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                temp = MathUtil.twoBit(wxsslist.get(25).getPointValueInDouble());
-                Double yxdssdl = new BigDecimal(temp).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                temp = MathUtil.twoBit(wxsslist.get(26).getPointValueInDouble());
-                Double nxdssdl = new BigDecimal(temp).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
 
-                wxssmap.put("rxdssdl", StringUtils.round(rxdssdl < 0.0 ? 0.0 : rxdssdl, 2));
-                wxssmap.put("yxdssdl", StringUtils.round(yxdssdl < 0.0 ? 0.0 : yxdssdl, 2));
-                wxssmap.put("nxdssdl", StringUtils.round(nxdssdl < 0.0 ? 0.0 : nxdssdl, 2));
-
-                Double rdwsl = MathUtil.twoBit(wxsslist.get(27).getPointValueInDouble());
-                Double rtqsl = MathUtil.twoBit(wxsslist.get(28).getPointValueInDouble());
+                // wxssmap.put("rxdssdl", StringUtils.round(rxdssdl < 0.0 ? 0.0 : rxdssdl, 2));
+                vo.setXdss(rxdssdl);
+                Double rdwsl = MathUtil.twoBit(wxsslist.get(9).getPointValueInDouble());
+                Double rtqsl = MathUtil.twoBit(wxsslist.get(10).getPointValueInDouble());
                 Double rslssdl = new BigDecimal(rdwsl + rtqsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                Double ydwsl = MathUtil.twoBit(wxsslist.get(29).getPointValueInDouble());
-                Double ytqsl = MathUtil.twoBit(wxsslist.get(30).getPointValueInDouble());
-                Double yslssdl = new BigDecimal(ydwsl + ytqsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
-                Double ndwsl = MathUtil.twoBit(wxsslist.get(31).getPointValueInDouble());
-                Double ntqsl = MathUtil.twoBit(wxsslist.get(32).getPointValueInDouble());
-                Double nslssdl = new BigDecimal(ndwsl + ntqsl).divide(new BigDecimal(10000), 2, RoundingMode.HALF_EVEN).doubleValue();
 
-                wxssmap.put("rslssdl", rslssdl);
-                wxssmap.put("yslssdl", yslssdl);
-                wxssmap.put("nslssdl", nslssdl);
+                //wxssmap.put("rslssdl", rslssdl);
+                vo.setSlss(rslssdl);
+                vo.setLlfdl(MathUtil.twoBit(scadafdl + rjxssdl + rgzssdl + rqfssdl + rxdssdl + rslssdl));
 
             } else {
 
                 wxssmap.put("rjxsl", 0.0);
                 wxssmap.put("rgzzsl", 0.0);
-                wxssmap.put("yjxsl", 0.0);
-                wxssmap.put("ygzzsl", 0.0);
-                wxssmap.put("njxsl", 0.0);
-                wxssmap.put("ngzzsl", 0.0);
                 wxssmap.put("rqfssdl", 0.0);
                 wxssmap.put("rgzssdl", 0.0);
                 wxssmap.put("rjxssdl", 0.0);
+                wxssmap.put("rxdssdl", 0.0);
+                wxssmap.put("rslssdl", 0.0);
+
 
-                wxssmap.put("yqfssdl", 0.0);
-                wxssmap.put("ygzssdl", 0.0);
-                wxssmap.put("yjxssdl", 0.0);
+            }
+            // map.put("wxssmap", wxssmap);
 
-                wxssmap.put("nqfssdl", 0.0);
-                wxssmap.put("ngzssdl", 0.0);
-                wxssmap.put("njxssdl", 0.0);
+/****************************************************五项损失************************************************************/
 
 
-                wxssmap.put("rxdssdl", 0.0);
-                wxssmap.put("yxdssdl", 0.0);
-                wxssmap.put("nxdssdl", 0.0);
+/*************************************************关系库指标**************************************************************/
+//
+//            Map<String, Double> gxkmap = new HashMap<>();
+//            List<Windpowerinfoday> wpdls = windpowerinfodayService.getWindpowerinfodayList(id, DateUtils.truncate(new Date()));
+//            if (!wpdls.isEmpty()) {
+//                Windpowerinfoday wd = wpdls.get(0);
+//                gxkmap.put("ndxkyss", wd.getYeardxkyxs());
+//                gxkmap.put("nsbklyl", wd.getYearsbklyl());
+//
+//                gxkmap.put("ydxkyss", wd.getMonthdxkyxs());
+//                gxkmap.put("ysbklyl", wd.getMonthsbklyl());
+//
+//            } else {
+//                gxkmap.put("ndxkyss", 0.0);
+//                gxkmap.put("nsbklyl", 0.0);
+//                gxkmap.put("ydxkyss", 0.0);
+//                gxkmap.put("ysbklyl", 0.0);
+//            }
+//            map.put("gxkmap", gxkmap);
 
+/*************************************************关系库指标**************************************************************/
+            vos.add(vo);
 
-                wxssmap.put("rslssdl", 0.0);
-                wxssmap.put("yslssdl", 0.0);
-                wxssmap.put("nslssdl", 0.0);
+            maps.add(jczbmap);
+        }
 
+        int gfsl = 0;
+        int fcsl = 0;
+        ZtjsVo gfvo = new ZtjsVo();
+        gfvo.setWpId("-2");
+        gfvo.setWpName("光伏合计");
+        initalVo(gfvo);
+        ZtjsVo fcvo = new ZtjsVo();
+        fcvo.setWpId("-1");
+        fcvo.setWpName("风电合计");
+        initalVo(fcvo);
+        ZtjsVo qsvo = new ZtjsVo();
+        qsvo.setWpId("0");
+        qsvo.setWpName("总计");
+        initalVo(qsvo);
+        for (ZtjsVo vo : vos) {
+            if (vo.getWpId().endsWith("FDC")) {
+
+                fcvo.setZjrl(fcvo.getZjrl() + vo.getZjrl());
+                fcvo.setFdl(fcvo.getFdl() + vo.getFdl());
+                fcvo.setSwdl(fcvo.getSwdl() + vo.getSwdl());
+                fcvo.setLyxs(fcvo.getLyxs() + vo.getLyxs());
+                fcvo.setFs(fcvo.getFs() + vo.getFs());
+                fcvo.setGl(fcvo.getGl() + vo.getGl());
+                fcvo.setCxgl(fcvo.getCxgl() + vo.getCxgl());
+                fcvo.setLlgl(fcvo.getLlgl() + vo.getLlgl());
+                fcvo.setBzgl(fcvo.getBzgl() + vo.getBzgl());
+                fcvo.setYcgl(fcvo.getYcgl() + vo.getYcgl());
+                fcvo.setAGCzl(fcvo.getAGCzl() + vo.getAGCzl());
+                fcvo.setLlfdl(fcvo.getLlfdl() + vo.getLlfdl());
+                fcvo.setScadafdl(fcvo.getScadafdl() + vo.getScadafdl());
+                fcvo.setWhss(fcvo.getWhss() + vo.getWhss());
+                fcvo.setGzss(fcvo.getGzss() + vo.getGzss());
+                fcvo.setSlss(fcvo.getSlss() + vo.getSlss());
+                fcvo.setXdss(fcvo.getXdss() + vo.getXdss());
+                fcvo.setXnss(fcvo.getXnss() + vo.getXnss());
+
+                fcsl++;
+            } else if (vo.getWpId().endsWith("GDC")) {
+                gfvo.setZjrl(gfvo.getZjrl() + vo.getZjrl());
+                gfvo.setFdl(gfvo.getFdl() + vo.getFdl());
+                gfvo.setSwdl(gfvo.getSwdl() + vo.getSwdl());
+                gfvo.setLyxs(gfvo.getLyxs() + vo.getLyxs());
+                gfvo.setFs(gfvo.getFs() + vo.getFs());
+                gfvo.setGl(gfvo.getGl() + vo.getGl());
+                gfvo.setCxgl(gfvo.getCxgl() + vo.getCxgl());
+                gfvo.setLlgl(gfvo.getLlgl() + vo.getLlgl());
+                gfvo.setBzgl(gfvo.getBzgl() + vo.getBzgl());
+                gfvo.setYcgl(gfvo.getYcgl() + vo.getYcgl());
+                gfvo.setAGCzl(gfvo.getAGCzl() + vo.getAGCzl());
+                gfvo.setLlfdl(gfvo.getLlfdl() + vo.getLlfdl());
+                gfvo.setScadafdl(gfvo.getScadafdl() + vo.getScadafdl());
+                gfvo.setWhss(gfvo.getWhss() + vo.getWhss());
+                gfvo.setGzss(gfvo.getGzss() + vo.getGzss());
+                gfvo.setSlss(gfvo.getSlss() + vo.getSlss());
+                gfvo.setXdss(gfvo.getXdss() + vo.getXdss());
+                gfvo.setXnss(gfvo.getXnss() + vo.getXnss());
+                gfsl++;
             }
-            map.put("wxssmap", wxssmap);
 
-/****************************************************五项损失************************************************************/
+            qsvo.setZjrl(qsvo.getZjrl() + vo.getZjrl());
+            qsvo.setFdl(qsvo.getFdl() + vo.getFdl());
+            qsvo.setSwdl(qsvo.getSwdl() + vo.getSwdl());
+            qsvo.setLyxs(qsvo.getLyxs() + vo.getLyxs());
+            qsvo.setFs(qsvo.getFs() + vo.getFs());
+            qsvo.setGl(qsvo.getGl() + vo.getGl());
+            qsvo.setCxgl(qsvo.getCxgl() + vo.getCxgl());
+            qsvo.setLlgl(qsvo.getLlgl() + vo.getLlgl());
+            qsvo.setBzgl(qsvo.getBzgl() + vo.getBzgl());
+            qsvo.setYcgl(qsvo.getYcgl() + vo.getYcgl());
+            qsvo.setAGCzl(qsvo.getAGCzl() + vo.getAGCzl());
+            qsvo.setLlfdl(qsvo.getLlfdl() + vo.getLlfdl());
+            qsvo.setScadafdl(qsvo.getScadafdl() + vo.getScadafdl());
+            qsvo.setWhss(qsvo.getWhss() + vo.getWhss());
+            qsvo.setGzss(qsvo.getGzss() + vo.getGzss());
+            qsvo.setSlss(qsvo.getSlss() + vo.getSlss());
+            qsvo.setXdss(qsvo.getXdss() + vo.getXdss());
+            qsvo.setXnss(qsvo.getXnss() + vo.getXnss());
+        }
 
+        if (fcsl != 0) {
+            Double fs = new BigDecimal(fcvo.getFs()).divide(new BigDecimal(fcsl), 2, RoundingMode.HALF_EVEN).doubleValue();
 
-/*************************************************关系库指标**************************************************************/
+            fcvo.setFs(fs);
+        }
 
-            Map<String, Double> gxkmap = new HashMap<>();
-            List<Windpowerinfoday> wpdls= windpowerinfodayService.getWindpowerinfodayList(id, DateUtils.truncate(new Date()));
-            if(!wpdls.isEmpty())
-            {
-                Windpowerinfoday wd = wpdls.get(0);
-                gxkmap.put("ndxkyss", wd.getYeardxkyxs());
-                gxkmap.put("nsbklyl", wd.getYearsbklyl());
+        if (gfsl != 0) {
+            Double fs = new BigDecimal(gfvo.getFs()).divide(new BigDecimal(gfsl), 2, RoundingMode.HALF_EVEN).doubleValue();
 
-                gxkmap.put("ydxkyss", wd.getMonthdxkyxs());
-                gxkmap.put("ysbklyl", wd.getMonthsbklyl());
+            gfvo.setFs(fs);
+        }
+        if (vos.size() != 0) {
+            Double fs = new BigDecimal(qsvo.getFs()).divide(new BigDecimal(vos.size()), 2, RoundingMode.HALF_EVEN).doubleValue();
+
+            qsvo.setFs(fs);
+        }
+
+        List<ZtjsVo> result = new ArrayList<>();
+
+        for (ZtjsVo vo : vos) {
+            if (vo.getWpId().endsWith("FDC")) {
+
+                result.add(vo);
 
-            } else {
-                gxkmap.put("ndxkyss", 0.0);
-                gxkmap.put("nsbklyl", 0.0);
-                gxkmap.put("ydxkyss", 0.0);
-                gxkmap.put("ysbklyl", 0.0);
             }
-            map.put("gxkmap", gxkmap);
         }
-/*************************************************关系库指标**************************************************************/
+        roundVo(fcvo);
+        result.add(fcvo);
+        for (ZtjsVo vo : vos) {
+            if (vo.getWpId().endsWith("GDC")) {
 
+                result.add(vo);
+            }
+        }
+        roundVo(gfvo);
+        result.add(gfvo);
+        roundVo(qsvo);
+        result.add(qsvo);
+        map.put("vos", result);
         return map;
     }
 
+    public void initalVo(ZtjsVo vo) {
+
+        vo.setZjrl(0.0);
+        vo.setFdl(0.0);
+        vo.setSwdl(0.0);
+        vo.setLyxs(0.0);
+        vo.setFs(0.0);
+        vo.setGl(0.0);
+        vo.setCxgl(0.0);
+        vo.setLlgl(0.0);
+        vo.setBzgl(0.0);
+        vo.setYcgl(0.0);
+        vo.setAGCzl(0.0);
+        vo.setLlfdl(0.0);
+        vo.setScadafdl(0.0);
+        vo.setWhss(0.0);
+        vo.setGzss(0.0);
+        vo.setSlss(0.0);
+        vo.setXdss(0.0);
+        vo.setXnss(0.0);
 
+    }
 
+    public void roundVo(ZtjsVo vo) {
+
+        vo.setZjrl(MathUtil.twoBit(vo.getZjrl()));
+        vo.setFdl(MathUtil.twoBit(vo.getFdl()));
+        vo.setSwdl(MathUtil.twoBit(vo.getSwdl()));
+        vo.setLyxs(MathUtil.twoBit(vo.getLyxs()));
+        vo.setFs(MathUtil.twoBit(vo.getFs()));
+        vo.setGl(MathUtil.twoBit(vo.getGl()));
+        vo.setCxgl(MathUtil.twoBit(vo.getCxgl()));
+        vo.setLlgl(MathUtil.twoBit(vo.getLlgl()));
+        vo.setBzgl(MathUtil.twoBit(vo.getBzgl()));
+        vo.setYcgl(MathUtil.twoBit(vo.getYcgl()));
+        vo.setAGCzl(MathUtil.twoBit(vo.getAGCzl()));
+        vo.setLlfdl(MathUtil.twoBit(vo.getLlfdl()));
+        vo.setScadafdl(MathUtil.twoBit(vo.getScadafdl()));
+        vo.setWhss(MathUtil.twoBit(vo.getWhss()));
+        vo.setGzss(MathUtil.twoBit(vo.getGzss()));
+        vo.setSlss(MathUtil.twoBit(vo.getSlss()));
+        vo.setXdss(MathUtil.twoBit(vo.getXdss()));
+        vo.setXnss(MathUtil.twoBit(vo.getXnss()));
 
-
+    }
 
 }
 

+ 29 - 0
src/main/java/com/gyee/frame/service/websocket/task/AgcPushTask.java

@@ -0,0 +1,29 @@
+package com.gyee.frame.service.websocket.task;
+
+import com.gyee.frame.common.websocket.WebsocketMessageService;
+import com.gyee.frame.service.websocket.AgcService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class AgcPushTask {
+    @Resource
+    private AgcService agcService;
+    @Resource
+    private WebsocketMessageService websocketMessageService;
+
+    public void agcPush(String destination) throws Exception {
+
+        Map<String, Object> map=new HashMap<>();
+
+        Map<String, Object> jcsjmap=agcService.getAgcVals();
+        Map<String, Object> tbmap=agcService.getAgcLine();
+
+        map.put("jcsj",jcsjmap);
+        map.put("tb",tbmap);
+        websocketMessageService.SendAlertToAll(destination,map);
+    }
+}

+ 16 - 3
src/main/java/com/gyee/frame/service/websocket/task/GenreSetPushTask.java

@@ -1,13 +1,17 @@
 package com.gyee.frame.service.websocket.task;
 
 
+import com.gyee.frame.common.websocket.WebSocketConfig;
 import com.gyee.frame.common.websocket.WebsocketMessageService;
 import com.gyee.frame.service.websocket.GenreSetPushService;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
 
 @Component
 public class GenreSetPushTask {
@@ -25,9 +29,18 @@ public class GenreSetPushTask {
         Map<String, Object> map = new HashMap<>();
 
 
-        map.put(QS, genreSetPushService.findBasicDataInfo(QS));
-        map.put(FD, genreSetPushService.findBasicDataInfo(FD));
-        map.put(GF, genreSetPushService.findBasicDataInfo(GF));
+        Set<Map.Entry<String, CopyOnWriteArraySet<String>>> set = WebSocketConfig.websocketparamcacheMap.entrySet();
+        for (Iterator<Map.Entry<String, CopyOnWriteArraySet<String>>> it = set.iterator(); it.hasNext();) {
+            Map.Entry<String, CopyOnWriteArraySet<String>> entry = (Map.Entry<String, CopyOnWriteArraySet<String>>) it.next();
+            // System.out.println(entry.getKey() + "--->" + entry.getValue());
+            if(entry.getKey().indexOf(destination)!=-1)
+            {
+                String id=entry.getKey().substring(entry.getKey().indexOf(WebSocketConfig.PARAM)+6);
+
+                map = genreSetPushService.findBasicDataInfo(id);
+                websocketMessageService.SendAlertToAll(entry.getKey(),map);
+            }
+        }
 
         websocketMessageService.SendAlertToAll(destination, map);
 

+ 23 - 0
src/main/java/com/gyee/frame/service/websocket/task/WpInfoPushTask.java

@@ -0,0 +1,23 @@
+package com.gyee.frame.service.websocket.task;
+
+import com.gyee.frame.common.websocket.WebsocketMessageService;
+import com.gyee.frame.service.websocket.WpInfoPushService;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+@Component
+public class WpInfoPushTask {
+    @Resource
+    private WpInfoPushService wpInfoPushService;
+    @Resource
+    private WebsocketMessageService websocketMessageService;
+
+    public void wpInfoPush(String destination) throws Exception {
+
+        Map<String, Object> map=wpInfoPushService.genreSetMap();
+
+        websocketMessageService.SendAlertToAll(destination,map);
+    }
+}

+ 66 - 0
src/test/java/test/AgcPushTest.java

@@ -0,0 +1,66 @@
+package test;
+
+import com.gyee.SpringbootStart;
+import com.gyee.frame.common.spring.SpringUtils;
+import com.gyee.frame.service.websocket.AgcService;
+import lombok.SneakyThrows;
+import org.springframework.boot.SpringApplication;
+
+import java.util.List;
+import java.util.Map;
+
+public class AgcPushTest {
+
+    @SneakyThrows
+    public static void main(String[] args) {
+
+        SpringApplication.run(SpringbootStart.class, args);
+
+
+
+        AgcService agcService= SpringUtils.getBean("agcService");
+
+
+
+        List<Map<String, Object>> vos =agcService.getAgcValues();
+
+
+         System.out.println(vos.size());
+
+
+
+//        AjaxResult ar = singleAnalysisController.singleanalysisSub(wtId,year,month);
+//
+//        Map<String,Object> map=( Map<String,Object>)ar.get("data");
+//        for(SingleAnalysisVo wtd:vos)
+//        {
+//            System.out.println(wtd.getXfqr()+"----------------"+wtd.getXfqrhgl());
+//        }
+//
+//        AjaxResult ar = singleAnalysisController.singleanalysisChart(wtId,year,month);
+//
+//        Map<String, List<SingleAnalysisVo>> map=( Map<String,List<SingleAnalysisVo>>)ar.get("data");
+//        List<SingleAnalysisVo> vos=map.get("ff");
+//        for(SingleAnalysisVo wtd:vos)
+//        {
+//            System.out.println(wtd.getFdl()+"----------------"+wtd.getFs());
+//        }
+//
+//        System.out.println("---------------------------------------------------------------------------------");
+//        vos=map.get("ws");
+//        for(SingleAnalysisVo wtd:vos)
+//        {
+//            System.out.println(wtd.getGzss()+"----------------"+wtd.getJxss()+"----------------"+wtd.getXdss()
+//                    +"----------------"+wtd.getXnss()+"----------------"+wtd.getSlss());
+//        }
+//        System.out.println("---------------------------------------------------------------------------------");
+//        vos=map.get("jd");
+//        for(SingleAnalysisVo wtd:vos)
+//        {
+//            System.out.println(wtd.getJfpl()+"----------------"+wtd.getTjxs());
+//        }
+//
+//
+//
+    }
+}

+ 10 - 6
src/test/java/test/GenreSetPushTest.java

@@ -6,6 +6,7 @@ import com.gyee.frame.service.websocket.GenreSetPushService;
 import lombok.SneakyThrows;
 import org.springframework.boot.SpringApplication;
 
+import java.util.HashMap;
 import java.util.Map;
 
 public class GenreSetPushTest {
@@ -15,7 +16,9 @@ public class GenreSetPushTest {
 
         SpringApplication.run(SpringbootStart.class, args);
 
-
+          String QS = "0";
+          String FD = "-1";
+          String GF = "-2";
 
         String wtId="MG01_03";
         String wpId="MHS_FDC";
@@ -26,16 +29,17 @@ public class GenreSetPushTest {
 
 
 
+        Map<String, Object> map = new HashMap<>();
+
 
+        map.put(QS, genreSetPushService.findBasicDataInfo(QS));
+        map.put(FD, genreSetPushService.findBasicDataInfo(FD));
+        map.put(GF, genreSetPushService.findBasicDataInfo(GF));
 
-        Map<String, Object> map = genreSetPushService.genreSetMap();
 
-        Map<String, Object> qsmap=(Map<String, Object>)map.get("0");
-        Map<String, Object> fdmap=(Map<String, Object>)map.get("-1");
-        Map<String, Object> gfmap=(Map<String, Object>)map.get("-2");
 
 
-         System.out.println(qsmap.size());
+         System.out.println(map.size());