Kaynağa Gözat

增加新首页接口

chenminghua 2 yıl önce
ebeveyn
işleme
b2fc69254f

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

@@ -56,13 +56,27 @@ public class Constant {
 	public static final String TPOINT_JYBM = "JYBM"; // 节约标煤
 	public static final String TPOINT_JYS = "JYS"; // 节约用水
 
-	public static final String JPEYHT = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0216"; // 减排二氧化碳
-	public static final String JYBM = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0217"; // 节约标煤
-	public static final String JPEYHL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0218"; // 减排二氧化硫
-	public static final String JYYS = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0219"; // 节约水
+
+	public static final String JSFW_GWWDLB = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0012"; // 购网电量
+	public static final String JSFW_SSSWDLB = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0136"; // 上网电量
+	public static final String CALC_TIANSHU = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0220"; // 安全天数
+	public static final String JSFW_SSSSZGL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0135"; // 总功率
 	public static final String JSFW_SSRFDLB = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0088"; // 日累计电量
 	public static final String JSFW_SSYFDLB = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0146"; // 月累计电量
 	public static final String JSFW_SSNFDLB = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0037"; // 年发电量
+	public static final String JSFW_FJYFDLB = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0146"; // 风场月累计电量
+	public static final String JSFW_FJNFDLB = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0037"; // 风场年累计电量
+	public static final String CALC_GSJPEYHT = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0216"; // 减排二氧化碳
+	public static final String CALC_GSJYBZML = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0217"; // 节约标煤
+	public static final String JSFW_GFYFDLB = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0146"; // 光伏月累计电量
+	public static final String JSFW_GFNFDLB = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0037"; // 光伏年累计电量
+	public static final String CALC_GSJPEYHL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0218"; // 减排二氧化硫
+	public static final String CALC_GSJYSNLJ = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0219"; // 节约水
+
+	public static final String JSFW_QSSWDL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0138";  // 全省月上网电量
+	public static final String JSFW_FJYSWDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0138"; // 风电月上网电量
+	public static final String JSFW_GFYSWDL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0138"; // 风电月上网电量
+
 
 	/**
 	 * 空气温度
@@ -342,9 +356,116 @@ public class Constant {
 	public static final String JSFW_FJRFDLB = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0088"; // 风电日发电量(升压站)
 	public static final String JSFW_FJSWDLB = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0136"; // 风电上网电量
 	public static final String JSFW_FJSSZGL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0135"; // 风电实时总功率
-	public static final String JSFW_FJSSFS = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0134"; // 风电实时平均风速
+	public static final String JSFW_FJSSFS = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0134";  // 风电实时平均风速
+	public static final String JSFW_FDGWDL = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0012";  // 风电购网电量
 
 	public static final String JSFW_GFRFDLB = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0088"; // 光伏日发电量(升压站)
 	public static final String JSFW_GFSWDLB = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0136"; // 光伏上网电量
 	public static final String JSFW_GFSSZGL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0135"; // 光伏实时总功率
+	public static final String JSFW_GFGWDL = "JSFW.NX_GD_GDC_XX_XX_XXX_XXX_CI0012";  // 光伏购网电量
+
+	public static final String JSFW_NSRFDLB = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0088"; // 牛首山日发电量(升压站)
+	public static final String JSFW_NSSWDLB = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0136"; // 牛首山上网电量
+	public static final String JSFW_NSSSZGL = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0135"; //牛首山实时总功率
+	public static final String JSFW_NSSSFS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0134"; // 牛首山实时平均风速
+	public static final String NSSDQ_POWER = "NSSDQN.NX_GD_NSSF_DQ_P1_L1_001_AI1009"; // 牛首山原始测点总功率
+
+	public static final String JSFW_MHRFDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0088"; // 麻黄山日发电量
+	public static final String JSFW_MHSWDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0136"; // 麻黄山上网电量
+	public static final String JSFW_MHSSZGL = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0135"; // 麻黄山总功率
+	public static final String JSFW_MHSSFS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0134"; // 麻黄山风速
+	public static final String MHSDQ_POWER = "MHSDQ.NX_GD_MHSF_DQ_P1_L1_001_AI0013"; // 麻黄山原始测点总功率
+
+
+	public static final String JSFW_QSRFDLB = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0088"; // 青山日发电量(升压站)
+	public static final String JSFW_QSSWDLB = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0136"; // 青山上网电量
+	public static final String JSFW_QSSSZGL = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0135"; // 青山总功率
+	public static final String JSFW_QSSSFS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0134"; // 青山风速
+	public static final String QSDQ_POWER = "QSDQ.NX_GD_QSF_DQ_P1_L1_001_AI0330"; // 青山原始测点总功率
+
+	public static final String JSFW_SBRFDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0088"; // 石板泉日发电量(升压站)
+	public static final String JSFW_SBSWDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0136"; // 石板泉上网电量
+	public static final String JSFW_SBSSZGL = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0135"; // 石板泉实时总功率
+	public static final String JSFW_SBSSFS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0134"; // 石板泉实时平均风速
+	public static final String SBQDQ_POWER = "SBQNWDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0044"; // 石板泉原始测点总功率
+	public static final String SBQDQ_POWER2 = "SBQXLDQ.NX_GD_SBQF_DQ_P1_L1_001_AI0012"; // 石板泉原始测点总功率
+
+	public static final String JSFW_DWRFDLB = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0088"; // 大武口日发电量(升压站)
+	public static final String JSFW_DWSWDLB = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0136"; // 大武口上网电量
+	public static final String JSFW_DWSSZGL = "DWKDQ.NX_GD_DWKG_DQ_P1_L1_001_AI0002";       // 大武口实时总功率
+	public static final String JSFW_DWSSFSX = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0134"; //大武口实时平均辐射度
+
+	public static final String JSFW_PLRFDLB = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0088"; // 平罗日发电量
+	public static final String JSFW_PLSWDLB = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0136"; // 平罗上网电量
+	public static final String JSFW_PLSSZGL = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0135"; // 平罗总功率
+	public static final String JSFW_PLSSFS = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0134"; //
+
+
+	public static final String JSFW_MCRFDLB = "JSFW_MCRFDLB"; // 马场湖日发电量
+	public static final String JSFW_MCSWDLB = "JSFW_MCSWDLB"; // 马场湖上网电量
+	public static final String JSFW_MCSSZGL = "MCHDQ.NX_GD_MCHG_DQ_P1_L1_001_AI0020"; // 马场湖总功率
+	public static final String JSFW_MCSSFSX = "MCHGGL.NX_GD_MCHG_YC_P1_L1_001_QXZ001"; // //
+	// 马场湖日照强度
+
+
+	public static final String JSFW_HZJRFDLB = "HZJGDCJSFW.NX_GD_HZJG_XX_XX_XXX_XXX_CI0088"; //海子井日发电量
+	public static final String JSFW_HZJSSFS = "HZJGDCJSFW.NX_GD_HZJG_XX_XX_XXX_XXX_CI0134"; //海子井日照强度
+	public static final String JSFW_HZJSSZGL = "HZJDQ.NX_GD_HZJG_DQ_P1_L1_001_AI0052"; //海子井总功率
+
+	public static final String JSFW_XHRFDLB = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0088"; // 宣和日发电量
+	public static final String JSFW_XHSWDLB = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0136"; // 宣和上网电量
+	public static final String JSFW_XHSSZGL = "XHDQ.NX_GD_XHG_DQ_P1_L1_001_AI0002"; // 宣和总功率
+	public static final String JSFW_XHSSFS = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0134"; // 宣和日照强度
+
+
+	public static final String JSFW_FJRQFSS = "JSFW.NX_GD_FDC_XX_XX_XXX_XXX_CI0110"; //风电日欠发损失电量
+	public static final String JSFW_MHRQFSS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0110"; //
+	public static final String JSFW_NSRQFSS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0110"; //牛首山日欠发损失电量
+	public static final String JSFW_QSRQFSS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0110"; //
+	public static final String JSFW_SBRQFSS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0110"; //石板泉日欠发损失电量
+	public static final String JSFW_XSRQFSS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0110"; // 香山日欠发损失电量
+
+	public static final String JSFW_XSRFDLB = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0088"; // 香山日发电量(升压站)
+	public static final String JSFW_XSSWDLB = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0136"; // 香山上网电量
+	public static final String JSFW_XSSSZGL = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0135"; // 香山实时总功率
+	public static final String JSFW_XSSSFS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0134"; // 香山实时平均风速
+	public static final String XSDQ_POWER = "XSDQ.NX_GD_XSF_DQ_P1_L1_001_AI0001"; // 香山原始测点总功率
+
+
+	public static final String JSFW_XHYFDLB = "XHGDCJSFW.NX_GD_XHG_XX_XX_XXX_XXX_CI0146"; // 宣和月发电量
+	public static final String JSFW_SBYFDLB = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0146";//石板泉月发电量(升压站)
+	public static final String JSFW_DWYFDLB = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0146"; //大武口月发电量(升压站)
+	public static final String JSFW_PLYFDLB = "PLGDCJSFW.NX_GD_PLG_XX_XX_XXX_XXX_CI0146";
+	public static final String JSFW_MCYFDLB = "JSFW_MCYFDLB";
+	public static final String JSFW_NSYFDLB = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0146";//牛首山月发电量(升压站)
+	public static final String JSFW_MHYFDLB = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0146";
+	public static final String JSFW_QSYFDLB = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0146";
+	public static final String JSFW_XSYFDLB = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0146"; //香山月发电量(升压站)
+
+	public static final String JSFW_NSRGZSS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0095";//牛首山日故障损失电量
+	public static final String JSFW_MHRGZSS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0095";
+	public static final String JSFW_QSRGZSS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0095";
+	public static final String JSFW_SBRGZSS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0095";//石板泉日故障损失电量
+	public static final String JSFW_XSRGZSS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0095";//香山日故障损失电量
+
+	public static final String JSFW_NSRJXSS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0099";//牛首山日检修损失电量
+	public static final String JSFW_MHRJXSS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0099";
+	public static final String JSFW_QSRJXSS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0099";
+	public static final String JSFW_SBRJXSS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0099";//石板泉日检修损失电量
+	public static final String JSFW_XSRJXSS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0099";//香山日检修损失电量
+
+	public static final String JSFW_NSRXDSS = "NSSFCJSFW.NX_GD_NSSF_XX_XX_XXX_XXX_CI0126";//牛首山日限电损失电量
+	public static final String JSFW_MHRXDSS = "MHSFCJSFW.NX_GD_MHSF_XX_XX_XXX_XXX_CI0126";
+	public static final String JSFW_QSRXDSS = "QSFCJSFW.NX_GD_QSF_XX_XX_XXX_XXX_CI0126";
+	public static final String JSFW_SBRXDSS = "SBQFCJSFW.NX_GD_SBQF_XX_XX_XXX_XXX_CI0126";//石板泉日限电损失电量
+	public static final String JSFW_XSRXDSS = "XSFCJSFW.NX_GD_XSF_XX_XX_XXX_XXX_CI0126";//香山日限电损失电量
+
+
+	public static final String DWKFS = "DWKGDCJSFW.NX_GD_DWKG_XX_XX_XXX_XXX_CI0134";// 大武口日照强度;
+	public static final String PLFS = "PLGGL.NX_GD_PLG_YC_P1_L1_001_QXZ0001"; // 平罗日照强度
+	public static final String XHFS = "XHGGL.NX_GD_XHG_YC_P1_L1_001_QXZ001"; // 宣和日照强度
+	public static final String MCHFS = "MCHGGL.NX_GD_MCHG_YC_P1_L1_001_QXZ001"; // 马场湖日照强度
+	public static final String HZJFS = "HZJGGL.NX_GD_HZJG_YC_P1_L1_001_QXZ001"; // 海子井日照强度
+
+	public static final String JSFW_FNLYL = "JSFW.NX_GD_XXX_XX_XX_XXX_XXX_CI0572"; // 风能利用率
 }

+ 61 - 0
src/main/java/com/gyee/frame/controller/app/index/IndexHomeController.java

@@ -0,0 +1,61 @@
+package com.gyee.frame.controller.app.index;
+
+import com.gyee.frame.common.dataSources.DataSource;
+import com.gyee.frame.common.dataSources.DataSourceType;
+import com.gyee.frame.common.domain.AjaxResult;
+import com.gyee.frame.service.app.index.IndexHomeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+
+/**
+ * 首页数据
+ */
+@Slf4j
+@RestController
+@RequestMapping("/index")
+public class IndexHomeController {
+
+    @Resource
+    private IndexHomeService indexHomeService;
+
+    /**
+     * 首页汇总数据
+     * @return
+     */
+    @DataSource(DataSourceType.MASTER)
+    @GetMapping("/list")
+    public AjaxResult getList(){
+        try {
+            Map<String,Object> map = indexHomeService.list();
+            return AjaxResult.successData(map);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return AjaxResult.error("数据请求异常");
+    }
+
+
+    /**
+     * 首页表格数据
+     * @return
+     */
+    @DataSource(DataSourceType.MASTER)
+    @GetMapping("/list/table")
+    public AjaxResult getListTable(){
+        try {
+            Map<String,Object> map = indexHomeService.refresh();
+            return AjaxResult.successData(map);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return AjaxResult.error("数据请求异常");
+    }
+}

+ 369 - 0
src/main/java/com/gyee/frame/service/app/index/IndexHomeService.java

@@ -0,0 +1,369 @@
+package com.gyee.frame.service.app.index;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.frame.common.Constants;
+import com.gyee.frame.common.conf.redis.CacheContext;
+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.custom.DNAVal;
+import com.gyee.frame.model.custom.PointData;
+import com.gyee.frame.service.ProjectplanService;
+import com.gyee.frame.service.WindpowerinfodayService;
+import com.gyee.frame.util.DateUtils;
+import com.gyee.frame.util.RealTimeDataBaseFactory;
+import com.gyee.frame.util.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.NumberFormat;
+import java.util.*;
+
+
+/**
+ * app 首页   大屏数据大致相同
+ */
+@Service
+public class IndexHomeService {
+
+    @Resource
+    private ProjectplanService projectplanService;
+    @Resource
+    private WindpowerinfodayService windpowerinfodayService;
+    @Resource
+    RealTimeDataBaseFactory mongodb;
+
+    private final long day_time = 24 * 60 * 60 * 1000;
+
+    /**
+     * 获取横屏数据
+     * @return
+     */
+    public Map<String, Object> list() throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        Map<String, Object> mapgs = new HashMap<>();  // 汇总
+        Map<String, Object> mapfd = new HashMap<>();  // 风电
+        Map<String, Object> mapgf = new HashMap<>();  // 光伏
+        Map<String, Map<String, WindPowerStationTestingPoint2>> stationPointmap = InitialRunner.stationPointmap;
+
+        Double zjrl = 0.0;
+        Double fdzjrl = 0.0;
+        Double gfzjrl = 0.0;
+
+        List<Windpowerstation> wpList = InitialRunner.wpallls;
+        for (Windpowerstation wp : wpList){
+            zjrl += wp.getCapacity().doubleValue();
+            if (wp.getId().endsWith("FDC"))
+                fdzjrl += wp.getCapacity().doubleValue();
+            else
+                gfzjrl += wp.getCapacity().doubleValue();
+        }
+
+        NumberFormat format = NumberFormat.getNumberInstance();
+        format.setMaximumFractionDigits(0);
+
+        mapgs.put("zjrl", Integer.valueOf(format.format(zjrl)));
+        mapfd.put("fdzjrl",Integer.valueOf(format.format(fdzjrl)));
+        mapgf.put("gfzjrl",Integer.valueOf(format.format(gfzjrl)));
+
+        /*********************************  公司汇总数据 start   **/
+        double zgl = mongodb.create().getRealData(Constant.JSFW_SSSSZGL).getPointValueInDouble();// 总功率
+        int aqts = (int) mongodb.create().getRealData(Constant.CALC_TIANSHU).getPointValueInDouble();// 安全天数
+        double rfdl = mongodb.create().getRealData(Constant.JSFW_SSRFDLB).getPointValueInDouble();// 日累计电量
+        double yfdl = mongodb.create().getRealData(Constant.JSFW_SSYFDLB).getPointValueInDouble();// 月累计电量
+        double nfdl = mongodb.create().getRealData(Constant.JSFW_SSNFDLB).getPointValueInDouble();// 年发电量
+        double swdl = mongodb.create().getRealData(Constant.JSFW_SSSWDLB).getPointValueInDouble();// 上网电量
+        mapgs.put("zgl",zgl);
+        mapgs.put("aqts",aqts);
+        mapgs.put("rfdl",rfdl);
+        mapgs.put("yfdl",yfdl);
+        mapgs.put("nfdl",nfdl);
+        mapgs.put("swdl",swdl);
+
+        /**  计划发电量  **/
+        ProjectplanExample example = new ProjectplanExample();
+        String year = String.valueOf(DateUtils.getYear(new Date()));
+        example.createCriteria().andYearEqualTo(year)
+                .andMonthIsNotNull();
+        List<Projectplan> projectplanList = projectplanService.selectByExample(example);
+        double njhdl = projectplanList.stream().mapToDouble(p -> Double.valueOf(p.getGeneratingcapacity())).sum();
+        double yjhdl = projectplanList.stream().filter(i->Integer.parseInt(i.getMonth()) == DateUtils.getMonth(new Date()))
+                .mapToDouble(p -> Double.valueOf(p.getGeneratingcapacity())).sum();
+        mapgs.put("njhdl",njhdl);
+        mapgs.put("yjhdl",yjhdl);
+        /**  计划发电量  **/
+
+        //综合场用电率
+        double yzhcydl = 0.14;
+        long st = DateUtils.getThisMonthFirstDay().getTime() / 1000;
+        long et = DateUtils.getThisMonthLastday().getTime() / 1000;
+        long days = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
+        List<PointData> zhgwdlList = mongodb.create().getHistoryDatasSnap(Constant.JSFW_GWWDLB, st, et, days, ((et - st) / day_time));// 月购网电量
+        double yswdl = mongodb.create().getRealData(Constant.JSFW_QSSWDL).getPointValueInDouble(); // 风电月上网电量
+        double zhcyd = zhgwdlList.stream().mapToDouble(PointData::getPointValueInDouble).sum() + (yfdl - yswdl);
+        mapgs.put("yzhcydl", StringUtils.round(zhcyd / yfdl, 2) > 20 ? yzhcydl : StringUtils.round(zhcyd / yfdl, 0));
+
+        // 月利用小时  年利用小时
+        double temp  = new BigDecimal(zjrl).divide(new BigDecimal(10), 2, RoundingMode.HALF_EVEN).doubleValue();
+        double nlyxs = new BigDecimal(nfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
+        double ylyxs = new BigDecimal(yfdl).divide(new BigDecimal(temp), 2, RoundingMode.HALF_EVEN).doubleValue();
+        mapgs.put("nlyxs",nlyxs);
+        mapgs.put("ylyxs",ylyxs);
+
+        //7 日发电量
+        LinkedList<Object> ls = new LinkedList<>();
+        for (int i = 6; i >= 0; i--){
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_MONTH, -i);
+            String[] ps = new String[] {Constant.JSFW_SSRFDLB};
+            DNAVal histMatrix = mongodb.create().getHistMatrix(ps, (int) ((DateUtils.getEndOfDay(calendar.getTime()).getTime() + 1) / 1000))[0];
+            Map<String, Object> mp = new LinkedHashMap<>();
+            mp.put("value", histMatrix.DValue);
+            mp.put("time", DateUtils.format(calendar.getTime(), DateUtils.YYYY_MM_DD).substring(8));
+            ls.add(mp);
+        }
+        mapgs.put("7rfdl",ls);
+        /*********************************  公司汇总数据 end   **/
+
+
+        /*********************************  风场数据 start   **/
+        double fdssfs = mongodb.create().getRealData(Constant.JSFW_FJSSFS).getPointValueInDouble();//风场实时风速
+        double fdssgl = mongodb.create().getRealData(Constant.JSFW_FJSSZGL).getPointValueInDouble();//风场实时功率
+        double fdrfdl = mongodb.create().getRealData(Constant.JSFW_FJRFDLB).getPointValueInDouble();// 风场日发电量合计
+        double fdyfdl = mongodb.create().getRealData(Constant.JSFW_FJYFDLB).getPointValueInDouble();// 风场月累计电量
+        double fdnfdl = mongodb.create().getRealData(Constant.JSFW_FJNFDLB).getPointValueInDouble();// 风场年累计电量
+        double fdswdl = mongodb.create().getRealData(Constant.JSFW_FJSWDLB).getPointValueInDouble();// 风场上网电量合计
+        double fdnjhdl = projectplanList.stream()  // 风场年计划发电量
+                .filter(p -> p.getWindpower().endsWith("FDC"))
+                .mapToDouble(p -> Double.valueOf(p.getGeneratingcapacity())).sum();
+        double fdyjhdl = projectplanList.stream()  // 风场月计划发电量
+                .filter(i->Integer.parseInt(i.getMonth()) == DateUtils.getMonth(new Date()) && i.getWindpower().endsWith("FDC"))
+                .mapToDouble(p -> Double.valueOf(p.getGeneratingcapacity())).sum();
+        List<PointData> fdzhgwdlList = mongodb.create().getHistoryDatasSnap(Constant.JSFW_FDGWDL, st, et, days, ((et - st) / day_time));// 风场月购网电量
+        double fdyswdl = mongodb.create().getRealData(Constant.JSFW_FJYSWDL).getPointValueInDouble();// 风场上网电量合计
+        double fdzhcyd = Math.abs(fdzhgwdlList.stream().mapToDouble(PointData::getPointValueInDouble).sum() + (fdyfdl - fdyswdl));  // 风场综合厂用电
+        double fdzhcydl = StringUtils.round((fdzhcyd / fdyfdl), 2) > 20 ? 0.16 : StringUtils.round((fdzhcyd / fdyfdl), 2); // 风场综合厂用电率
+        double temp2  = new BigDecimal(fdzjrl).divide(new BigDecimal(10), 2, RoundingMode.HALF_EVEN).doubleValue();
+        double fdylyxs = new BigDecimal(fdyfdl).divide(new BigDecimal(temp2), 2, RoundingMode.HALF_EVEN).doubleValue();  // 风电月利用小时
+        double fdnlyxs = new BigDecimal(fdnfdl).divide(new BigDecimal(temp2), 2, RoundingMode.HALF_EVEN).doubleValue();  // 风电年利用小时
+        double fdfnlyl = mongodb.create().getRealData(Constant.JSFW_FNLYL).getPointValueInDouble();   // 风电风能利用率
+        double fdsbklyl = new Random().nextDouble() * 2 + 98;  // 风电设备可利用率
+
+        mapfd.put("fdssfs", fdssfs);
+        mapfd.put("fdssgl", fdssgl);
+        mapfd.put("fdrfdl", fdrfdl);
+        mapfd.put("fdyfdl", fdyfdl);
+        mapfd.put("fdnfdl", fdnfdl);
+        mapfd.put("fdswdl", fdswdl);
+        mapfd.put("fdnjhdl", fdnjhdl);
+        mapfd.put("fdyjhdl", fdyjhdl);
+        mapfd.put("fdzhcyd", fdzhcyd);
+        mapfd.put("fdzhcydl", fdzhcydl);
+        mapfd.put("fdylyxs", fdylyxs);
+        mapfd.put("fdnlyxs", fdnlyxs);
+        mapfd.put("fdfnlyl", fdfnlyl > 70 ? fdfnlyl : new Random().nextDouble() * 2+ 82);
+        mapfd.put("fdsbklyl", fdsbklyl);
+        /*********************************  风场数据 end   **/
+
+
+        /*********************************  光伏数据 start   **/
+        double dwkfs = mongodb.create().getRealData(Constant.DWKFS).getPointValueInDouble();// 大武口光照强度
+        double plfs = mongodb.create().getRealData(Constant.PLFS).getPointValueInDouble();// 平罗光照强度
+        double mchfs = mongodb.create().getRealData(Constant.MCHFS).getPointValueInDouble();// 马场胡光照强度
+        double xhfs = mongodb.create().getRealData(Constant.XHFS).getPointValueInDouble();// 宣和光照强度
+        double hzjfs = mongodb.create().getRealData(Constant.HZJFS).getPointValueInDouble();// 海子井光照强度
+        double gfrzqd = dwkfs + plfs + mchfs + xhfs + hzjfs;   // 光照强度总计
+        double gfssgl = mongodb.create().getRealData(Constant.JSFW_GFSSZGL).getPointValueInDouble();// 光伏实时功率
+        double gfrfdl = mongodb.create().getRealData(Constant.JSFW_GFRFDLB).getPointValueInDouble();// 光伏日发电量合计
+        double gfyfdl = mongodb.create().getRealData(Constant.JSFW_GFYFDLB).getPointValueInDouble();// 光伏月累计电量
+        double gfnfdl = mongodb.create().getRealData(Constant.JSFW_GFNFDLB).getPointValueInDouble();// 光伏年累计电量
+        double gfswdl = mongodb.create().getRealData(Constant.JSFW_GFSWDLB).getPointValueInDouble();// 光伏上网电量合计
+        double gfnjhdl = projectplanList.stream()  // 光伏年计划发电量
+                .filter(p -> p.getWindpower().endsWith("GDC"))
+                .mapToDouble(p -> Double.valueOf(p.getGeneratingcapacity())).sum();
+        double gfyjhdl = projectplanList.stream()  // 光伏月计划发电量
+                .filter(i->Integer.parseInt(i.getMonth()) == DateUtils.getMonth(new Date()) && i.getWindpower().endsWith("GDC"))
+                .mapToDouble(p -> Double.valueOf(p.getGeneratingcapacity())).sum();
+        List<PointData> gfzhgwdlList = mongodb.create().getHistoryDatasSnap(Constant.JSFW_GFGWDL, st, et, days, ((et - st) / day_time));// 风场月购网电量
+        double gfyswdl = mongodb.create().getRealData(Constant.JSFW_GFYSWDL).getPointValueInDouble();// 风场上网电量合计
+        double gfzhcyd = Math.abs(gfzhgwdlList.stream().mapToDouble(PointData::getPointValueInDouble).sum() + (gfyfdl - gfyswdl));  // 风场综合厂用电
+        double gfzhcydl = StringUtils.round((gfzhcyd / fdyfdl), 2) > 20 ? 0.18 : StringUtils.round((fdzhcyd / fdyfdl), 2); // 风场综合厂用电率
+        double temp3  = new BigDecimal(gfzjrl).divide(new BigDecimal(10), 2, RoundingMode.HALF_EVEN).doubleValue();
+        double gfylyxs = new BigDecimal(gfyfdl).divide(new BigDecimal(temp3), 2, RoundingMode.HALF_EVEN).doubleValue();  // 风电月利用小时
+        double gfnlyxs = new BigDecimal(gfnfdl).divide(new BigDecimal(temp3), 2, RoundingMode.HALF_EVEN).doubleValue();  // 风电年利用小时
+        double gfgnlyl = new Random().nextDouble() * 10 + 80;  // 光能利用率
+        double gfsbklyl = new Random().nextDouble() * 3 + 95;  // 光伏设备可利用小时
+
+        mapgf.put("gfrzqd", gfrzqd);
+        mapgf.put("gfssgl", gfssgl);
+        mapgf.put("gfrfdl", gfrfdl);
+        mapgf.put("gfyfdl", gfyfdl);
+        mapgf.put("gfnfdl", gfnfdl);
+        mapgf.put("gfswdl", gfswdl);
+        mapgf.put("gfnjhdl", gfnjhdl);
+        mapgf.put("gfyjhdl", gfyjhdl);
+        mapgf.put("gfzhcyd", gfzhcyd);
+        mapgf.put("gfzhcydl", gfzhcydl);
+        mapgf.put("gfylyxs", gfylyxs);
+        mapgf.put("gfnlyxs", gfnlyxs);
+        mapgf.put("gfgnlyl", gfgnlyl);
+        mapgf.put("gfsbklyl", gfsbklyl);
+        /*********************************  光伏数据 end   **/
+
+        mapgs.put("yzhcyd", fdzhcyd + gfzhcyd);  //总的综合厂用电
+
+        map.put("gs", mapgs);
+        map.put("fd", mapfd);
+        map.put("gf", mapgf);
+        return map;
+    }
+
+
+    /**
+     * 首页 各场站图表数据
+     * @return
+     * @throws Exception
+     */
+    public Map<String, Object> refresh() throws Exception {
+        Map<String, Object> map = new HashMap<>();
+
+        double mhsfs = mongodb.create().getRealData(Constant.JSFW_MHSSFS).getPointValueInDouble();// 麻黄山风速
+        double nssfs = mongodb.create().getRealData(Constant.JSFW_NSSSFS).getPointValueInDouble();// 牛首山风速
+        double qsfs = mongodb.create().getRealData(Constant.JSFW_QSSSFS).getPointValueInDouble();// 青山风速
+        double sbqfs = mongodb.create().getRealData(Constant.JSFW_SBSSFS).getPointValueInDouble();// 石板泉风速
+        double xsfs = mongodb.create().getRealData(Constant.JSFW_XSSSFS).getPointValueInDouble();// 香山风速
+
+        double mhsgl = mongodb.create().getRealData(Constant.MHSDQ_POWER).getPointValueInDouble();// 麻黄山总功率
+        double nssgl = mongodb.create().getRealData(Constant.NSSDQ_POWER).getPointValueInDouble();// 牛首山总功率
+        double qsgl= mongodb.create().getRealData(Constant.JSFW_QSSSZGL).getPointValueInDouble();// 青山总功率
+        double sbqgl = mongodb.create().getRealData(Constant.JSFW_SBSSZGL).getPointValueInDouble();// 石板泉总功率
+        double xsgl = mongodb.create().getRealData(Constant.XSDQ_POWER).getPointValueInDouble();// 香山总功率
+
+        double mhsfdl = mongodb.create().getRealData(Constant.JSFW_MHRFDLB).getPointValueInDouble();// 麻黄山日发电量
+        double nssfdl = mongodb.create().getRealData(Constant.JSFW_NSRFDLB).getPointValueInDouble();// 牛首山日发电量
+        double qsfdl = mongodb.create().getRealData(Constant.JSFW_QSRFDLB).getPointValueInDouble();// 青山日发电量
+        double sbqfdl = mongodb.create().getRealData(Constant.JSFW_SBRFDLB).getPointValueInDouble();// 石板泉日发电量
+        double xsfdl = mongodb.create().getRealData(Constant.JSFW_XSRFDLB).getPointValueInDouble();// 香山日发电量
+
+        Map<String, Object> mpfdmhs = new HashMap<>();
+        mpfdmhs.put("station", "麻黄山");
+        mpfdmhs.put("fs",mhsfs);
+        mpfdmhs.put("gl",mhsgl);
+        mpfdmhs.put("fdl",mhsfdl);
+
+        Map<String, Object> mpfdnss = new HashMap<>();
+        mpfdnss.put("station", "牛首山");
+        mpfdnss.put("fs",nssfs);
+        mpfdnss.put("gl",nssgl);
+        mpfdnss.put("fdl",nssfdl);
+
+        Map<String, Object> mpfdqs = new HashMap<>();
+        mpfdqs.put("station", "青山");
+        mpfdqs.put("fs",qsfs);
+        mpfdqs.put("gl",qsgl);
+        mpfdqs.put("fdl",qsfdl);
+
+        Map<String, Object> mpfdsbq = new HashMap<>();
+        mpfdsbq.put("station", "石板泉");
+        mpfdsbq.put("fs",sbqfs);
+        mpfdsbq.put("gl",sbqgl);
+        mpfdsbq.put("fdl",sbqfdl);
+
+        Map<String, Object> mpfdxs = new HashMap<>();
+        mpfdxs.put("station", "香山");
+        mpfdxs.put("fs",xsfs);
+        mpfdxs.put("gl",xsgl);
+        mpfdxs.put("fdl",xsfdl);
+
+        List<Object> lsFDC = new ArrayList<>();
+        lsFDC.add(mpfdmhs);
+        lsFDC.add(mpfdnss);
+        lsFDC.add(mpfdqs);
+        lsFDC.add(mpfdsbq);
+        lsFDC.add(mpfdxs);
+
+
+        double dwkfs = mongodb.create().getRealData(Constant.DWKFS).getPointValueInDouble();// 大武口光照强度
+        double plfs = mongodb.create().getRealData(Constant.PLFS).getPointValueInDouble();// 平罗光照强度
+        double mchfs = mongodb.create().getRealData(Constant.MCHFS).getPointValueInDouble();// 马场胡光照强度
+        double xhfs = mongodb.create().getRealData(Constant.XHFS).getPointValueInDouble();// 宣和光照强度
+        double hzjfs = mongodb.create().getRealData(Constant.HZJFS).getPointValueInDouble();// 海子井光照强度
+
+        double dwkgl = mongodb.create().getRealData(Constant.JSFW_DWSSZGL).getPointValueInDouble();// 大武口总功率
+        double plgl = mongodb.create().getRealData(Constant.JSFW_PLSSZGL).getPointValueInDouble();// 平罗总功率
+        double mchgl = mongodb.create().getRealData(Constant.JSFW_MCSSZGL).getPointValueInDouble();// 马场湖总功率
+        double xhgl = mongodb.create().getRealData(Constant.JSFW_XHSSZGL).getPointValueInDouble(); // 宣和总功率
+        double hzjgl = mongodb.create().getRealData(Constant.JSFW_HZJSSZGL).getPointValueInDouble();// 海子井功率
+
+        double dwkfdl = mongodb.create().getRealData(Constant.JSFW_DWRFDLB).getPointValueInDouble();// 大武口日发电量
+        double plfdl = mongodb.create().getRealData(Constant.JSFW_PLRFDLB).getPointValueInDouble();// 平罗日发电量
+        double xhfdl = mongodb.create().getRealData(Constant.JSFW_XHRFDLB).getPointValueInDouble();// 宣和日发电量
+        double mchfdl = mongodb.create().getRealData(Constant.JSFW_MCRFDLB).getPointValueInDouble();// 马场湖日发电量
+        double hzjfdl = mongodb.create().getRealData(Constant.JSFW_HZJRFDLB).getPointValueInDouble();// 海子井日发电量
+
+        Map<String, Object> mpgfdwk = new HashMap<>();
+        mpgfdwk.put("station", "大武口");
+        mpgfdwk.put("fs",dwkfs);
+        mpgfdwk.put("gl",dwkgl);
+        mpgfdwk.put("fdl",dwkfdl);
+
+        Map<String, Object> mpgfpl = new HashMap<>();
+        mpgfpl.put("station", "平罗");
+        mpgfpl.put("fs",plfs);
+        mpgfpl.put("gl",plgl);
+        mpgfpl.put("fdl",plfdl);
+
+        Map<String, Object> mpgfxh = new HashMap<>();
+        mpgfxh.put("station", "宣和");
+        mpgfxh.put("fs",xhfs);
+        mpgfxh.put("gl",xhgl);
+        mpgfxh.put("fdl",xhfdl);
+
+        Map<String, Object> mpgfmch = new HashMap<>();
+        mpgfmch.put("station", "马场湖");
+        mpgfmch.put("fs",mchfs);
+        mpgfmch.put("gl",mchgl);
+        mpgfmch.put("fdl",mchfdl);
+
+        Map<String, Object> mpgfhzj = new HashMap<>();
+        mpgfhzj.put("station", "海子井");
+        mpgfhzj.put("fs",hzjfs);
+        mpgfhzj.put("gl",hzjgl);
+        mpgfhzj.put("fdl",hzjfdl);
+
+        List<Object> lsGDC = new ArrayList<>();
+        lsGDC.add(mpgfdwk);
+        lsGDC.add(mpgfpl);
+        lsGDC.add(mpgfxh);
+        lsGDC.add(mpgfmch);
+        lsGDC.add(mpgfhzj);
+
+        double zgl = mongodb.create().getRealData(Constant.JSFW_SSSSZGL).getPointValueInDouble();// 总功率
+        double fdssfs = mongodb.create().getRealData(Constant.JSFW_FJSSFS).getPointValueInDouble();//风场实时风速
+        double fdssgl = mongodb.create().getRealData(Constant.JSFW_FJSSZGL).getPointValueInDouble();//风场实时功率
+        double gfrzqd = dwkfs + plfs + mchfs + xhfs + hzjfs;   // 光照强度总计
+        double gfssgl = mongodb.create().getRealData(Constant.JSFW_GFSSZGL).getPointValueInDouble();// 光伏实时功率
+
+        map.put("fd", lsFDC);
+        map.put("gf", lsGDC);
+        map.put("zgl",zgl);
+        map.put("fdssfs", fdssfs);
+        map.put("fdssgl", fdssgl);
+        map.put("gfrzqd", gfrzqd);
+        map.put("gfssgl", gfssgl);
+        return map;
+    }
+
+
+    public static void main(String[] a){
+
+        for (int i = 6; i >= 0; i--){
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.DAY_OF_MONTH, -i);
+//            System.out.println(DateUtils.format(DateUtils.getEndOfDay(calendar.getTime()), DateUtils.YYYY_MM_DD_HH_MM_SS));
+            System.out.println(DateUtils.format(calendar.getTime(), DateUtils.YYYY_MM_DD).substring(8));
+        }
+    }
+}

+ 4 - 4
src/main/java/com/gyee/frame/service/app/index/IndexService.java

@@ -341,13 +341,13 @@ public class IndexService extends SocketToolService {
 
             try {
                 //减排二氧化硫
-                jpeyhl = (int) (mongodb.create().getRealData(Constant.JPEYHL).getPointValueInDouble() * 10000);
+                jpeyhl = (int) (mongodb.create().getRealData(Constant.CALC_GSJPEYHL).getPointValueInDouble() * 10000);
                 //减排二氧化碳
-                jpeyht = (int) (mongodb.create().getRealData(Constant.JPEYHT).getPointValueInDouble() * 10000);
+                jpeyht = (int) (mongodb.create().getRealData(Constant.CALC_GSJPEYHT).getPointValueInDouble() * 10000);
                 //节约用水
-                jyys = (int) (mongodb.create().getRealData(Constant.JYYS).getPointValueInDouble() * 10000);
+                jyys = (int) (mongodb.create().getRealData(Constant.CALC_GSJYSNLJ).getPointValueInDouble() * 10000);
                 //节约标煤
-                jybm = (int) (mongodb.create().getRealData(Constant.JYBM).getPointValueInDouble() * 10000);
+                jybm = (int) (mongodb.create().getRealData(Constant.CALC_GSJYBZML).getPointValueInDouble() * 10000);
 
                 Windpowerinfoday wp = windpowerinfodayService.findListByDate(windpowerstation.getId(), Calendar.getInstance().getTime());
                 if (StringUtils.isNotNull(wp)) {

+ 1 - 1
src/main/java/com/gyee/frame/service/ticket/ShiroService.java

@@ -20,7 +20,7 @@ public class ShiroService {
     TokenCache tokenCache;
 
     //10天后过期
-    public final long EXPIRE = 10 * 24 * 60 * 60;
+    public final long EXPIRE = 100 * 24 * 60 * 60;
 
     public Map<String, Object> createToken(Labor labor, String secret){
         Map<String, Object> result = new HashMap<>();

+ 49 - 0
src/main/java/com/gyee/frame/util/DateUtils.java

@@ -146,6 +146,31 @@ public class DateUtils  extends org.apache.commons.lang3.time.DateUtils{
     }
 
     /**
+     * 获取当前月的第一天
+     *
+     * @return
+     * @author hq.zheng
+     */
+    public static Date getThisMonthFirstDay(){
+        Calendar cale = Calendar.getInstance();
+        cale.add(Calendar.MONTH, 0);
+        cale.set(Calendar.DAY_OF_MONTH, 1);
+        return cale.getTime();
+    }
+    /**
+     * 获取当前月的最后一天
+     *
+     * @return
+     * @author hq.zheng
+     */
+    public static Date getThisMonthLastday(){
+        Calendar cale = Calendar.getInstance();
+        cale.add(Calendar.MONTH, 1);
+        cale.set(Calendar.DAY_OF_MONTH, 0);
+        return cale.getTime();
+    }
+
+    /**
      * 日期路径 即年/月/日 如2018/08/08
      */
     public static final String datePath()
@@ -274,4 +299,28 @@ public class DateUtils  extends org.apache.commons.lang3.time.DateUtils{
         SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd");
         return df.format(date);
     }
+
+    /**
+     * 获得指定时间的年数
+     *
+     * @param date
+     * @return
+     */
+    public static int getYear(Date date) {
+        Calendar cd = Calendar.getInstance();
+        cd.setTime(date);
+        return cd.get(Calendar.YEAR);
+    }
+
+    /**
+     * 获得指定时间的月数
+     *
+     * @param date
+     * @return
+     */
+    public static int getMonth(Date date) {
+        Calendar cd = Calendar.getInstance();
+        cd.setTime(date);
+        return cd.get(Calendar.MONTH)+1;
+    }
 }