Procházet zdrojové kódy

首页新增指标修改

shilin před 2 roky
rodič
revize
45f156f502

+ 285 - 53
web/monitor-web-sxjn/src/main/java/com/gyee/frame/service/websocket/GenreSetPushService.java

@@ -60,6 +60,8 @@ public class GenreSetPushService {
     private final String GF = "-2";
     private final String DEFAULT_FDC = "MHS_FDC";
     private final double YCFDLXS = 1.08;
+    private final double NYCFDLXS = 1.02;
+    private final double RYCFDLXS = 1.03;
     IRealTimeDataBaseUtil realApiUtil = RealTimeDataBaseFactory.createRealTimeDataBase();
 
 
@@ -1804,13 +1806,29 @@ public class GenreSetPushService {
 
                 double fd_r_ycdl=0;
                 double fd_y_ycdl=0;
+                double fd_n_ycdl=0;
                 double gf_r_ycdl=0;
                 double gf_y_ycdl=0;
+                double gf_n_ycdl=0;
 
                 double fd_r_fdl=0;
                 double fd_y_fdl=0;
+                double fd_n_fdl=0;
                 double gf_r_fdl=0;
                 double gf_y_fdl=0;
+                double gf_n_fdl=0;
+
+
+
+                double fd_y_jhfdl=0;
+                double fd_n_jhfdl=0;
+                double gf_y_jhfdl=0;
+                double gf_n_jhfdl=0;
+
+                double jr_fd_sjgl=0;
+                double jr_gf_sjgl=0;
+                double jr_fd_zygl=0;
+                double jr_gf_zygl=0;
 
 
                 List<CompanysPG> compgls= companysPGService.findCompanysPG();
@@ -1819,33 +1837,33 @@ public class GenreSetPushService {
                     CompanysPG pg=compgls.get(0);
 
                     //清洁能源风电装机容量
-                     qjny_fd_zjrl=null!=pg.getWindcapacity()?pg.getWindcapacity():0.0;
+                    qjny_fd_zjrl=null!=pg.getWindcapacity()?pg.getWindcapacity():0.0;
                     //清洁能源光伏装机容量
-                     qjny_gf_zjrl=null!=pg.getCapacity()?pg.getCapacity():0.0;
+                    qjny_gf_zjrl=null!=pg.getCapacity()?pg.getCapacity():0.0;
                     //接入风电装机容量
-                     jr_fd_zjrl=null!=pg.getJrwindcapacity()?pg.getJrwindcapacity():0.0;
+                    jr_fd_zjrl=null!=pg.getJrwindcapacity()?pg.getJrwindcapacity():0.0;
                     //接入光伏装机容量
-                     jr_gf_zjrl=null!=pg.getJrcapacity()?pg.getJrcapacity():0.0;
+                    jr_gf_zjrl=null!=pg.getJrcapacity()?pg.getJrcapacity():0.0;
                     //清洁能源风场数量
-                     qjny_fcts=null!=pg.getWindnumber()?pg.getWindnumber():0.0;
+                    qjny_fcts=null!=pg.getWindnumber()?pg.getWindnumber():0.0;
                     //清洁能源光伏电站数量
-                     qjny_gfts=null!=pg.getNumber()?pg.getNumber():0.0;
+                    qjny_gfts=null!=pg.getNumber()?pg.getNumber():0.0;
                     //接入风场数量
-                     jr_fcts=null!=pg.getJrwindnumber()?pg.getJrwindnumber():0.0;
+                    jr_fcts=null!=pg.getJrwindnumber()?pg.getJrwindnumber():0.0;
                     //接入光伏电站数量
-                     jr_gfts=null!=pg.getJrnumber()?pg.getJrnumber():0.0;
+                    jr_gfts=null!=pg.getJrnumber()?pg.getJrnumber():0.0;
                     //清洁能源风机数量
-                     qjny_fj_ts=null!=pg.getWindquantity()?pg.getWindquantity():0.0;
+                    qjny_fj_ts=null!=pg.getWindquantity()?pg.getWindquantity():0.0;
                     //清洁能源光伏组串数量
-                     qjny_gf_zcts=null!=pg.getQuantityzc()?pg.getQuantityzc():0.0;
+                    qjny_gf_zcts=null!=pg.getQuantityzc()?pg.getQuantityzc():0.0;
                     //清洁能源光伏集中数量
-                     qjny_gf_jzts=null!=pg.getQuantityjz()?pg.getQuantityjz():0.0;
+                    qjny_gf_jzts=null!=pg.getQuantityjz()?pg.getQuantityjz():0.0;
                     //接入风机数量
-                     jr_fj_ts=null!=pg.getJrwindquantity()?pg.getJrwindquantity():0.0;
+                    jr_fj_ts=null!=pg.getJrwindquantity()?pg.getJrwindquantity():0.0;
                     //接入光伏组串数量
-                     jr_gf_zcts=null!=pg.getJrquantityzc()?pg.getJrquantityzc():0.0;
+                    jr_gf_zcts=null!=pg.getJrquantityzc()?pg.getJrquantityzc():0.0;
                     //接入光伏集中数量
-                     jr_gf_jzts=null!=pg.getJrquantityjz()?pg.getJrquantityjz():0.0;
+                    jr_gf_jzts=null!=pg.getJrquantityjz()?pg.getJrquantityjz():0.0;
                 }
 
                 Calendar c = Calendar.getInstance();
@@ -1853,39 +1871,137 @@ public class GenreSetPushService {
                 c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
                 int daynum = c.get(Calendar.DAY_OF_MONTH);
 
+/**********************************************首页电量统计**********************************************************/
+                Calendar cal = Calendar.getInstance();
+                cal.setTime(new Date());
+                int year = cal.get(Calendar.YEAR);
+
+                List<ProjectPlan> pjls = projectPlanService.getProjectPlanList(String.valueOf(year));
+
+                // 获取计划发电量信息
+                Map<String, Map<String, Double>> planmap=new HashMap<>();
+
+                setPlanInfoByType(planmap, pjls, id);
+
+
                 Map<String, Double> sftjmap = new HashMap<>();//省份装机容量和台数统计
                 for (Windpowerstation wp : wplist) {
-                    String rfdlpoint=windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_RFDL).getCode();
 
-                    String yfdlpoint=windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_YFDL).getCode();
 
+                    if(InitialRunner.wpPointmap.containsKey(wp.getId()))
+                    {
+                        List<String> jczbls = new ArrayList<>();
 
-                    PointData rfdldata = realApiUtil.getRealData(rfdlpoint);
-                    PointData yfdldata = realApiUtil.getRealData(yfdlpoint);
+                        jczbls.add(windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_SJGL).getCode());
+                        jczbls.add(windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_RFDL).getCode());
+                        jczbls.add(windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_YFDL).getCode());
+                        jczbls.add(windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_NFDL).getCode());
+                        jczbls.add(windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(wp.getId(), Constant.TPOINT_WP_ZZYGL).getCode());
 
-                    double rfdl=MathUtil.twoBit(rfdldata.getPointValueInDouble()/10000);
-                    double yfdl=MathUtil.twoBit(yfdldata.getPointValueInDouble()/10000);
 
-                    if(wp.getId().endsWith("FDC"))
-                    {
-                        fd_r_ycdl =fd_r_ycdl+(rfdl * YCFDLXS) ;
-                        fd_r_fdl =fd_r_fdl+rfdl;
-                        c = Calendar.getInstance();
-                        double yycfdl = (yfdl + fd_r_ycdl * (daynum - c.get(Calendar.DAY_OF_MONTH))) * YCFDLXS;
-                        fd_y_ycdl=fd_y_ycdl+yycfdl;
-                        fd_y_fdl=fd_y_fdl+yfdl;
-                    }else
-                    {
-                        gf_r_ycdl =gf_r_ycdl+(rfdl * YCFDLXS) ;
-                        gf_r_fdl =gf_r_fdl+rfdl ;
-                        c = Calendar.getInstance();
-                        double yycfdl = (yfdl + gf_r_ycdl * (daynum - c.get(Calendar.DAY_OF_MONTH))) * YCFDLXS;
-                        gf_y_ycdl=gf_y_ycdl+yycfdl;
-                        gf_y_fdl=gf_y_fdl+yfdl;
+
+                        double rfdl = 0.0;
+                        double yfdl = 0.0;
+                        double nfdl = 0.0;
+                        double zygl = 0.0;
+                        List<PointData> jczblist = realApiUtil.getRealData(jczbls);
+
+                        if (!jczblist.isEmpty() && jczblist.size() == jczbls.size()) {
+                            //实际功率
+                            sjgl = MathUtil.twoBit(jczblist.get(0).getPointValueInDouble()/1000);
+                            //日发电量
+                            rfdl = MathUtil.twoBit(jczblist.get(1).getPointValueInDouble()/10000);
+                            //月发电量
+                            yfdl = MathUtil.twoBit(jczblist.get(2).getPointValueInDouble()/10000);
+                            //年发电量
+                            nfdl = MathUtil.twoBit(jczblist.get(3).getPointValueInDouble()/10000);
+                            //最优功率
+                            zygl = MathUtil.twoBit(jczblist.get(4).getPointValueInDouble()/1000);
+
+
+                            if(wp.getId().endsWith("FDC"))
+                            {
+
+                                fd_r_fdl =fd_r_fdl+rfdl;
+                                fd_y_fdl=fd_y_fdl+yfdl;
+                                fd_n_fdl=fd_n_fdl+nfdl;
+
+
+
+                                jr_fd_sjgl=jr_fd_sjgl+sjgl;
+                                jr_fd_zygl=jr_fd_zygl+zygl;
+                            }else
+                            {
+
+                                gf_r_fdl =gf_r_fdl+rfdl ;
+                                gf_y_fdl=gf_y_fdl+yfdl;
+                                gf_n_fdl=gf_n_fdl+nfdl;
+
+                                jr_gf_sjgl=jr_gf_sjgl+sjgl;
+                                jr_gf_zygl=jr_gf_zygl+zygl;
+                            }
+                            if(planmap.containsKey(wp.getId()))
+                            {
+                                Map<String, Double> valuemap=planmap.get(wp.getId());
+
+                                double yfdljh=0.0;
+                                double nfdljh=0.0;
+                                if(valuemap.containsKey("yfdljh"))
+                                {
+                                    yfdljh=valuemap.get("yfdljh");
+                                }
+                                if(valuemap.containsKey("nfdljh"))
+                                {
+                                    nfdljh=valuemap.get("nfdljh");
+                                }
+
+                                if(wp.getId().endsWith("FDC"))
+                                {
+                                    fd_r_ycdl =fd_r_ycdl+(rfdl * RYCFDLXS) ;
+//                                    fd_r_fdl =fd_r_fdl+rfdl;
+
+                                    double yycfdl = yfdljh * YCFDLXS;
+                                    fd_y_ycdl=fd_y_ycdl+yycfdl;
+//                                    fd_y_fdl=fd_y_fdl+yfdl;
+                                    double nycfdl = nfdljh * NYCFDLXS;
+                                    fd_n_ycdl=fd_n_ycdl+nycfdl;
+//                                    fd_n_fdl=fd_n_fdl+nfdl;
+
+                                    fd_y_jhfdl=fd_y_jhfdl+yfdljh;
+                                    fd_n_jhfdl=fd_n_jhfdl+nfdljh;
+
+
+//                                    jr_fd_sjgl=jr_fd_sjgl+sjgl;
+//                                    jr_fd_zygl=jr_fd_zygl+zygl;
+                                }else
+                                {
+                                    gf_r_ycdl =gf_r_ycdl+(rfdl * RYCFDLXS) ;
+//                                    gf_r_fdl =gf_r_fdl+rfdl ;
+
+                                    double yycfdl = yfdljh * YCFDLXS;
+                                    gf_y_ycdl=gf_y_ycdl+yycfdl;
+//                                    gf_y_fdl=gf_y_fdl+yfdl;
+                                    double nycfdl = nfdljh * NYCFDLXS;
+                                    gf_n_ycdl=gf_n_ycdl+nycfdl;
+//                                    gf_n_fdl=gf_n_fdl+nfdl;
+
+                                    gf_y_jhfdl=fd_y_jhfdl+yfdljh;
+                                    gf_n_jhfdl=fd_n_jhfdl+nfdljh;
+
+
+//                                    jr_gf_sjgl=jr_gf_sjgl+sjgl;
+//                                    jr_gf_zygl=jr_gf_zygl+zygl;
+                                }
+                            }
+
+                        }
                     }
 
 
 
+
+
+
                     if (StringUtils.notEmp(wp.getCompanyid()) && sftjmap.containsKey(wp.getCompanyid() + "_zjrl")) {
 
                         double temp = sftjmap.get(wp.getCompanyid() + "_zjrl");
@@ -1997,13 +2113,19 @@ public class GenreSetPushService {
 
                 Map<String,Double> newpointmap=new HashMap<>();
 
+
                 newpointmap.put("jr_fd_zjrl",StringUtils.round(jr_fd_zjrl,2));
+
                 newpointmap.put("jr_fcts",StringUtils.round(jr_fcts,2));
+
                 newpointmap.put("qjny_fcts",StringUtils.round(qjny_fcts,2));
+
                 newpointmap.put("qjny_fd_zjrl",StringUtils.round(qjny_fd_zjrl,2));
 
                 newpointmap.put("jr_gf_zjrl",StringUtils.round(jr_gf_zjrl,2));
+
                 newpointmap.put("jr_gfts",StringUtils.round(jr_gfts,2));
+
                 newpointmap.put("qjny_gfts",StringUtils.round(qjny_gfts,2));
                 newpointmap.put("qjny_gf_zjrl",StringUtils.round(qjny_gf_zjrl,2));
 
@@ -2014,16 +2136,70 @@ public class GenreSetPushService {
                 newpointmap.put("jr_fj_ts",StringUtils.round(jr_fj_ts,2));
                 newpointmap.put("jr_gf_zcts",StringUtils.round(jr_gf_zcts,2));
                 newpointmap.put("jr_gf_jzts",StringUtils.round(jr_gf_jzts,2));
+
+                //风场日预测发电量
                 newpointmap.put("fd_r_ycdl",StringUtils.round(fd_r_ycdl,2));
+                //风场月预测发电量
                 newpointmap.put("fd_y_ycdl",StringUtils.round(fd_y_ycdl,2));
+                //风场年预测发电量
+                newpointmap.put("fd_n_ycdl",StringUtils.round(fd_n_ycdl,2));
+                //光伏日预测发电量
                 newpointmap.put("gf_r_ycdl",StringUtils.round(gf_r_ycdl,2));
+                //光伏月预测发电量
                 newpointmap.put("gf_y_ycdl",StringUtils.round(gf_y_ycdl,2));
+                //光伏年预测发电量
+                newpointmap.put("gf_n_ycdl",StringUtils.round(gf_n_ycdl,2));
 
-
+                //风场日发电量
                 newpointmap.put("fd_r_fdl",StringUtils.round(fd_r_fdl,2));
+                //风场月发电量
                 newpointmap.put("fd_y_fdl",StringUtils.round(fd_y_fdl,2));
+                //风场年发电量
+                newpointmap.put("fd_n_fdl",StringUtils.round(fd_n_fdl,2));
+                //光伏日发电量
                 newpointmap.put("gf_r_fdl",StringUtils.round(gf_r_fdl,2));
+                //光伏月发电量
                 newpointmap.put("gf_y_fdl",StringUtils.round(gf_y_fdl,2));
+                //光伏年发电量
+                newpointmap.put("gf_n_fdl",StringUtils.round(gf_n_fdl,2));
+
+                //风场月计划发电量
+                newpointmap.put("fd_y_jhfdl",StringUtils.round(fd_y_jhfdl,2));
+                //风场年计划发电量
+                newpointmap.put("fd_n_jhfdl",StringUtils.round(fd_n_jhfdl,2));
+                //光伏月计划发电量
+                newpointmap.put("gf_y_jhfdl",StringUtils.round(gf_y_jhfdl,2));
+                //光伏年计划发电量
+                newpointmap.put("gf_n_jhfdl",StringUtils.round(gf_n_jhfdl,2));
+
+                if(jr_gf_zjrl!=0)
+                {
+                    double gffhl= new BigDecimal(jr_gf_sjgl).divide(new BigDecimal(jr_gf_zjrl), 2, RoundingMode.HALF_EVEN).doubleValue();
+                    //光伏功率负荷率
+                    newpointmap.put("gf_fhl",StringUtils.round(gffhl*100,2));
+                }else
+                {
+                    newpointmap.put("gf_fhl",0.0);
+                }
+                if(jr_fd_zjrl!=0)
+                {
+                    double fdfhl= new BigDecimal(jr_fd_sjgl).divide(new BigDecimal(jr_fd_zjrl), 2, RoundingMode.HALF_EVEN).doubleValue();
+                    //风电功率负荷率
+                    newpointmap.put("fd_fhl",StringUtils.round(fdfhl*100,2));
+                }else
+                {
+                    newpointmap.put("fd_fhl",0.0);
+                }
+
+                if((jr_gf_zjrl+jr_fd_zjrl)!=0)
+                {
+                    double fdfhl= new BigDecimal(jr_gf_sjgl+jr_fd_sjgl).divide(new BigDecimal(jr_gf_zjrl+jr_fd_zjrl), 2, RoundingMode.HALF_EVEN).doubleValue();
+                    //清洁能源功率负荷率
+                    newpointmap.put("qjny_fhl",StringUtils.round(fdfhl*100,2));
+                }else
+                {
+                    newpointmap.put("qjny_fhl",0.0);
+                }
 
                 map.put("newpointmap",newpointmap);
 //                for (Windpowerstation wp : wplist) {
@@ -2497,28 +2673,28 @@ public class GenreSetPushService {
 
 
 //            if (id.equals(QY+QS)) {
-                // 减排二氧化碳
-                Windpowerstationpointnew temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JPEYHT);
-                int jpeyht = (int) (realApiUtil.getRealData(temppoint).getPointValueInDouble() * 10000);
-                // 节约标煤
-                temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JYBM);
-                int jybm = (int) (realApiUtil.getRealData(temppoint).getPointValueInDouble() * 10000);
-                // 减排二氧化硫
-                temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JPEYHL);
-                int jpeyhl = (int) (realApiUtil.getRealData(temppoint).getPointValueInDouble() * 10000);
-                // 节约水
-                temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JYS);
-                int jys = (int) (realApiUtil.getRealData(temppoint).getPointValueInDouble() * 10000);
+            // 减排二氧化碳
+            Windpowerstationpointnew temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JPEYHT);
+            double jpeyht =  (realApiUtil.getRealData(temppoint).getPointValueInDouble() );
+            // 节约标煤
+            temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JYBM);
+            double jybm =  (realApiUtil.getRealData(temppoint).getPointValueInDouble() );
+            // 减排二氧化硫
+            temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JPEYHL);
+            double jpeyhl = (realApiUtil.getRealData(temppoint).getPointValueInDouble() );
+            // 节约水
+            temppoint = windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(id, Constant.TPOINT_JYS);
+            double jys =  (realApiUtil.getRealData(temppoint).getPointValueInDouble() );
 
 //                Double gfsjgl = realApiUtil.getRealData(windPowerstationTestingPoint2Service.getWindPowerStationTestingPoint2(GF, Constant.TPOINT_WP_SJGL)).getPointValueInDouble();
 //
 //                bzgl = bzgl + gfsjgl;
 //                yfgl = yfgl + gfsjgl;
 
-                jczbmap.put("jpeyht", StringUtils.round(jpeyht, 2));
-                jczbmap.put("jybm", StringUtils.round(jybm, 2));
-                jczbmap.put("jpeyhl", StringUtils.round(jpeyhl, 2));
-                jczbmap.put("jys", StringUtils.round(jys, 2));
+            jczbmap.put("jpeyht", StringUtils.round(jpeyht, 2));
+            jczbmap.put("jybm", StringUtils.round(jybm, 2));
+            jczbmap.put("jpeyhl", StringUtils.round(jpeyhl, 2));
+            jczbmap.put("jys", StringUtils.round(jys, 2));
 
 //            }
 
@@ -4025,6 +4201,62 @@ public class GenreSetPushService {
     }
 
 
+    private void setPlanInfoByType(Map<String, Map<String, Double>> gxkmap, List<ProjectPlan> planls, String id) {
+
+        double yfdljh = 0.0;
+        double nfdljh = 0.0;
+
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        int month = cal.get(Calendar.MONTH) + 1;
+        int num = 1;
+
+
+        for (ProjectPlan plan : planls) {
+
+            double fdl = null != plan.getGeneratingcapacity() ? Double.valueOf(plan.getGeneratingcapacity()) : 0.0;
+
+
+            if(gxkmap.containsKey(plan.getWindpower()))
+            {
+
+                Map<String, Double> map=gxkmap.get(plan.getWindpower());
+                if (StringUtils.notEmp(plan.getMonth())) {
+                    int planmonth = Integer.valueOf(plan.getMonth());
+                    if (planmonth == month) {
+
+                        yfdljh=map.get("yfdljh");
+                        yfdljh = yfdljh + fdl;
+                        map.put("yfdljh",yfdljh);
+                    }
+
+                    nfdljh=map.get("nfdljh");
+                    nfdljh = nfdljh + fdl;
+                    map.put("nfdljh",nfdljh);
+
+                }
+            }else {
+                Map<String, Double> map=new HashMap<>();
+
+                if (StringUtils.notEmp(plan.getMonth())) {
+                    int planmonth = Integer.valueOf(plan.getMonth());
+                    if (planmonth == month) {
+
+                        map.put("yfdljh",fdl);
+                    }
+
+                    map.put("nfdljh",fdl);
+
+                }
+                gxkmap.put(plan.getWindpower(),map);
+            }
+
+        }
+
+
+    }
+
+
     public Map<String, Object> tooltipAjax() throws Exception {
 
         Map<String, Object> resultmap = new HashMap<String, Object>();