Jelajahi Sumber

切入切出接口,月度单机分析接口

shilin 3 tahun lalu
induk
melakukan
e2c5f9c171

+ 1 - 22
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconEquipmentInfoDayTop.java

@@ -381,29 +381,8 @@ public class ProEconEquipmentInfoDayTop extends Model {
     private String dayLevel;
 
     /**
-     * 综合排名
-     */
-    private Integer monthRank;
-
-    /**
-     * 等级
-     */
-    private String monthLevel;
-
-    /**
-     * 综合排名
-     */
-    private Integer yearRank;
-
-    /**
-     * 等级
-     */
-    private String yearLevel;
-
-    /**
      * 分数
      */
     private Double dayScore;
-    private Double monthScore;
-    private Double yearScore;
+
 }

+ 4 - 3
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconInOrOutSpeedTotal.java

@@ -26,8 +26,8 @@ public class ProEconInOrOutSpeedTotal extends Model {
     /**
      * 编号
      */
-    @TableId(value = "id",type = IdType.ASSIGN_UUID)
-    private String id;
+    @TableId(value = "id",type = IdType.ASSIGN_ID)
+    private Long id;
 
     /**
      * 风机编号
@@ -374,5 +374,6 @@ public class ProEconInOrOutSpeedTotal extends Model {
      */
     private String lineId;
 
-
+    private String companyId;
+    private String types;
 }

+ 4 - 3
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconInOrOutSpeedTotal2.java

@@ -26,8 +26,8 @@ public class ProEconInOrOutSpeedTotal2 extends Model {
     /**
      * 编号
      */
-    @TableId(value = "id",type = IdType.ASSIGN_UUID)
-    private String id;
+    @TableId(value = "id",type = IdType.ASSIGN_ID)
+    private Long id;
 
     /**
      * 风机编号
@@ -473,6 +473,7 @@ public class ProEconInOrOutSpeedTotal2 extends Model {
      * 线路编号
      */
     private String lineId;
-
+    private String companyId;
+    private String types;
 
 }

+ 1 - 0
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconInputOrOutputSpeed.java

@@ -66,4 +66,5 @@ public class ProEconInputOrOutputSpeed extends Model {
     private String lineId;
 
 
+
 }

+ 2 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/model/auto/ProEconWindturbineGoodness.java

@@ -93,5 +93,6 @@ public class ProEconWindturbineGoodness extends Model {
      */
     private Integer yearTop;
 
-
+    private String companyId;
+    private String types;
 }

+ 633 - 685
realtime/generationXK-service/src/main/java/com/gyee/generation/service/EquipmentInfoDayTopService.java

@@ -40,6 +40,7 @@ public class EquipmentInfoDayTopService {
         //判断是否有重复记录,先删除重复记录
         List<Long> idls = proEconEquipmentInfoDayTopService.list().stream()
                 .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getTypes() ==1
                         && CacheContext.wtmap.containsKey(i.getWindturbineId())).map(ProEconEquipmentInfoDayTop::getId)
                 .collect(Collectors.toList());
 
@@ -59,19 +60,16 @@ public class EquipmentInfoDayTopService {
 
             }
 
-            // Map<指标, Map<风机编号,ProEconEquipmentInfoDayTop>>
-            Map<String, Map<String, ProEconEquipmentInfoDayTop>> ordermap = new HashMap<>();
 
-            List<String> filedls = initialFiled();
+
+            List<String> filedls = initialDayFiled();
             //遍历循环排序,将序号赋值给rank,再通过风机编号转为,MAP
-            orderObject(topls,ordermap,filedls);
+            orderObject(topls,filedls);
 
 
             for (ProEconEquipmentInfoDayTop top : topls) {
 
-                calLevels(top, topls.size(), ordermap, "day");
-                calLevels(top, topls.size(), ordermap, "month");
-                calLevels(top, topls.size(), ordermap, "year");
+                calLevels(top, topls.size());
 
             }
 
@@ -82,24 +80,116 @@ public class EquipmentInfoDayTopService {
                 ProEconEquipmentInfoDayTop top =topls.get(i);
                 top.setDayRank(i+1);
             }
+
+        }
+
+    }
+
+
+    public void calEquipmentInfoMonthTop(Date recordDate) throws Exception {
+        Calendar c = Calendar.getInstance();
+        c.setTime(recordDate);
+
+
+        //判断是否有重复记录,先删除重复记录
+        List<Long> idls = proEconEquipmentInfoDayTopService.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getTypes() ==2
+                        && CacheContext.wtmap.containsKey(i.getWindturbineId())).map(ProEconEquipmentInfoDayTop::getId)
+                .collect(Collectors.toList());
+
+        if (idls.size() > 0) {
+
+            proEconEquipmentInfoDayTopService.removeByIds(idls);
+        }
+        for (ProBasicPowerstation wp : CacheContext.wpls) {
+
+            List<ProEconEquipmentInfoDayTop> topls = new ArrayList<>();
+
+            for (ProBasicEquipment wt : CacheContext.wpwtmap.get(wp.getId())) {
+
+                ProEconEquipmentInfoDayTop peeidt = getEquipmentInfoMonthTop(recordDate, c, wt);
+
+                topls.add(peeidt);
+
+            }
+
+
+
+            List<String> filedls = initialMonthFiled();
+            //遍历循环排序,将序号赋值给rank,再通过风机编号转为,MAP
+            orderObject(topls,filedls);
+
+
+            for (ProEconEquipmentInfoDayTop top : topls) {
+
+                calLevels(top, topls.size());
+            }
+
             topls=topls.stream()
-                    .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthScore).reversed()).collect(Collectors.toList());
+                    .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayScore).reversed()).collect(Collectors.toList());
 
             for (int i=0;i<topls.size();i++) {
                 ProEconEquipmentInfoDayTop top =topls.get(i);
-                top.setMonthRank(i+1);
+                top.setDayRank(i+1);
+            }
+
+
+            proEconEquipmentInfoDayTopService.saveBatch(topls);
+        }
+
+
+    }
+
+    public void calEquipmentInfoYearTop(Date recordDate) throws Exception {
+        Calendar c = Calendar.getInstance();
+        c.setTime(recordDate);
+
+
+        //判断是否有重复记录,先删除重复记录
+        List<Long> idls = proEconEquipmentInfoDayTopService.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getTypes() ==3
+                        && CacheContext.wtmap.containsKey(i.getWindturbineId())).map(ProEconEquipmentInfoDayTop::getId)
+                .collect(Collectors.toList());
+
+        if (idls.size() > 0) {
+
+            proEconEquipmentInfoDayTopService.removeByIds(idls);
+        }
+        for (ProBasicPowerstation wp : CacheContext.wpls) {
+
+            List<ProEconEquipmentInfoDayTop> topls = new ArrayList<>();
+
+            for (ProBasicEquipment wt : CacheContext.wpwtmap.get(wp.getId())) {
+
+                ProEconEquipmentInfoDayTop peeidt = getEquipmentInfoYearTop(recordDate, c, wt);
+
+                topls.add(peeidt);
+
             }
+
+
+            List<String> filedls = initialYearFiled();
+            //遍历循环排序,将序号赋值给rank,再通过风机编号转为,MAP
+            orderObject(topls,filedls);
+
+
+            for (ProEconEquipmentInfoDayTop top : topls) {
+
+                calLevels(top, topls.size());
+            }
+
             topls=topls.stream()
-                    .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearScore).reversed()).collect(Collectors.toList());
+                    .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayScore).reversed()).collect(Collectors.toList());
 
             for (int i=0;i<topls.size();i++) {
                 ProEconEquipmentInfoDayTop top =topls.get(i);
-                top.setYearRank(i+1);
-
-                proEconEquipmentInfoDayTopService.save(top);
+                top.setDayRank(i+1);
             }
 
 
+            proEconEquipmentInfoDayTopService.saveBatch(topls);
         }
 
 
@@ -109,6 +199,7 @@ public class EquipmentInfoDayTopService {
         ProEconEquipmentInfoDayTop peeidt = new ProEconEquipmentInfoDayTop();
 
         peeidt.setWindpowerstationId(wt.getWindpowerstationId());
+        peeidt.setTypes(1);
         peeidt.setLineId(wt.getLineId());
         peeidt.setProjectId(wt.getProjectId());
         peeidt.setWindturbineId(wt.getId());
@@ -125,36 +216,28 @@ public class EquipmentInfoDayTopService {
             ProEconEquipmentInfoDay1 pepid1 = pepid1ls.get(0);
             //发电量
             peeidt.setDayfdl(pepid1.getRfdl());
-            peeidt.setMonthfdl(pepid1.getYfdl());
-            peeidt.setYearfdl(pepid1.getNfdl());
+
             //理论发电量
             peeidt.setDayllfdl(pepid1.getRllfdl());
-            peeidt.setMonthllfdl(pepid1.getYllfdl());
-            peeidt.setYearllfdl(pepid1.getNllfdl());
+
             //平均风速
             peeidt.setDayfs(pepid1.getRpjfs());
-            peeidt.setMonthfs(pepid1.getYpjfs());
-            peeidt.setYearfs(pepid1.getNpjfs());
+
             //平均功率
             peeidt.setDaygl(pepid1.getRpjgl());
-            peeidt.setMonthgl(pepid1.getYpjgl());
-            peeidt.setYeargl(pepid1.getNpjgl());
+
             //故障损失电量
             peeidt.setDaygzssdl(pepid1.getRgzssdl());
-            peeidt.setMonthgzssdl(pepid1.getYgzssdl());
-            peeidt.setYeargzssdl(pepid1.getNgzssdl());
+
             //限电损失电量
             peeidt.setDayxdssdl(pepid1.getRxdtjssdl());
-            peeidt.setMonthxdssdl(pepid1.getYxdtjssdl());
-            peeidt.setYearxdssdl(pepid1.getNxdtjssdl());
+
             //维护损失电量
             peeidt.setDaywhssdl(pepid1.getRjxssdl());
-            peeidt.setMonthwhssdl(pepid1.getYjxssdl());
-            peeidt.setYearwhssdl(pepid1.getNjxssdl());
+
             //性能损失电量
             peeidt.setDayxnssdl(pepid1.getRqxjclssdl());
-            peeidt.setMonthxnssdl(pepid1.getYqxjclssdl());
-            peeidt.setYearxnssdl(pepid1.getNqxjclssdl());
+
         }
 
 
@@ -167,20 +250,16 @@ public class EquipmentInfoDayTopService {
             ProEconEquipmentInfoDay2 pepid2 = pepid2ls.get(0);
             //故障时间
             peeidt.setDaygzsj(pepid2.getRgzxsmx());
-            peeidt.setMonthgzsj(pepid2.getYgzxsmx());
-            peeidt.setYeargzsj(pepid2.getNgzxsmx());
+
             //维护时间
             peeidt.setDaywhsj(pepid2.getRjxxsmx());
-            peeidt.setMonthwhsj(pepid2.getYjxxsmx());
-            peeidt.setYearwhsj(pepid2.getNjxxsmx());
+
             //运行时间
             peeidt.setDayyxsj(pepid2.getRyxxs());
-            peeidt.setMonthyxsj(pepid2.getYyxxs());
-            peeidt.setYearyxsj(pepid2.getNyxxs());
+
             //停机时间
             peeidt.setDaytjsj(pepid2.getRgzxsmx());
-            peeidt.setMonthtjsj(pepid2.getYgzxsmx());
-            peeidt.setYeartjsj(pepid2.getNgzxsmx());
+
             //利用小时数
 
             double defaultpower = 1500.0;
@@ -189,8 +268,6 @@ public class EquipmentInfoDayTopService {
             }
 
             peeidt.setDaylyxs(BigDecimal.valueOf(peeidt.getDayfdl()).divide(new BigDecimal(defaultpower), 2, RoundingMode.HALF_EVEN).doubleValue());
-            peeidt.setMonthlyxs(BigDecimal.valueOf(peeidt.getMonthfdl()).divide(new BigDecimal(defaultpower), 2, RoundingMode.HALF_EVEN).doubleValue());
-            peeidt.setYearlyxs(BigDecimal.valueOf(peeidt.getYearfdl()).divide(new BigDecimal(defaultpower), 2, RoundingMode.HALF_EVEN).doubleValue());
 
 
             //设备可利用率
@@ -198,18 +275,6 @@ public class EquipmentInfoDayTopService {
             double temp = StringUtils.round(dayhours - peeidt.getDaygzsj(), 2);
             peeidt.setDaysbklyl(temp);
 
-            Calendar cal = Calendar.getInstance();
-            cal.setTime(recordDate);
-            int days = c.get(Calendar.DAY_OF_MONTH);
-
-            dayhours = 24 * days;
-            temp = StringUtils.round(dayhours - peeidt.getMonthgzsj(), 2);
-            peeidt.setMonthsbklyl(temp);
-
-            days = c.get(Calendar.DAY_OF_YEAR);
-            dayhours = 24 * days;
-            temp = StringUtils.round(dayhours - peeidt.getYeargzsj(), 2);
-            peeidt.setYearsbklyl(temp);
 
 
             //等效可用系数
@@ -217,18 +282,7 @@ public class EquipmentInfoDayTopService {
             temp = StringUtils.round(dayhours - peeidt.getDaygzsj() - peeidt.getDaywhsj(), 2);
             peeidt.setDaydxkyxs(temp);
 
-            cal = Calendar.getInstance();
-            cal.setTime(recordDate);
-            days = c.get(Calendar.DAY_OF_MONTH);
 
-            dayhours = 24 * days;
-            temp = StringUtils.round(dayhours - peeidt.getMonthgzsj() - peeidt.getMonthwhsj(), 2);
-            peeidt.setMonthdxkyxs(temp);
-
-            days = c.get(Calendar.DAY_OF_YEAR);
-            dayhours = 24 * days;
-            temp = StringUtils.round(dayhours - peeidt.getYeargzsj() - peeidt.getMonthwhsj(), 2);
-            peeidt.setYeardxkyxs(temp);
         }
 
         List<ProEconEquipmentInfoDay4> pepid4ls = proEconEquipmentInfoDay4Service.list().stream()
@@ -240,46 +294,268 @@ public class EquipmentInfoDayTopService {
             ProEconEquipmentInfoDay4 pepid4 = pepid4ls.get(0);
             //拟合优度
             peeidt.setDaynhyd(pepid4.getRnhyd());
-            peeidt.setMonthnhyd(pepid4.getYnhyd());
-            peeidt.setYearnhyd(pepid4.getNnhyd());
+
             //有效风时数
             peeidt.setDayyxfss(pepid4.getRyxfss());
-            peeidt.setMonthyxfss(pepid4.getYyxfss());
-            peeidt.setYearyxfss(pepid4.getNyxfss());
+
             //小风切入
             peeidt.setDayxfqr(pepid4.getRxfqrfs());
-            peeidt.setMonthxfqr(pepid4.getYxfqrfs());
-            peeidt.setYearxfqr(pepid4.getNxfqrfs());
+
             //静风频率
 
             int dayhours = 24;
             double temp = BigDecimal.valueOf(pepid4.getRjfsc()).divide(new BigDecimal(dayhours), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
             peeidt.setDayjfpl(temp);
 
-            Calendar cal = Calendar.getInstance();
-            cal.setTime(recordDate);
-            int days = c.get(Calendar.DAY_OF_MONTH);
 
-            dayhours = 24 * days;
-            temp = BigDecimal.valueOf(pepid4.getYjfsc()).divide(new BigDecimal(dayhours), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
-            peeidt.setMonthjfpl(temp);
 
-            days = c.get(Calendar.DAY_OF_YEAR);
-            dayhours = 24 * days;
-            temp = BigDecimal.valueOf(pepid4.getNjfsc()).divide(new BigDecimal(dayhours), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
-            peeidt.setYearjfpl(temp);
+            //功率一致性系数
+            peeidt.setDayglyzxxs(pepid4.getRglyzxxs());
+
+        }
+        return peeidt;
+    }
+
+    private ProEconEquipmentInfoDayTop getEquipmentInfoMonthTop(Date recordDate, Calendar c, ProBasicEquipment wt) {
+        ProEconEquipmentInfoDayTop peeidt = new ProEconEquipmentInfoDayTop();
+        peeidt.setTypes(2);
+        peeidt.setWindpowerstationId(wt.getWindpowerstationId());
+        peeidt.setLineId(wt.getLineId());
+        peeidt.setProjectId(wt.getProjectId());
+        peeidt.setWindturbineId(wt.getId());
+        peeidt.setRecordDate(DateUtils.truncate(recordDate));
+        peeidt.setYear(DateUtils.getYear(recordDate));
+        peeidt.setMonth(DateUtils.getMonth(recordDate) + 1);
+
+        List<ProEconEquipmentInfoDay1> pepid1ls = proEconEquipmentInfoDay1Service.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getWindturbineId().equals(wt.getId())
+                ).collect(Collectors.toList());
+
+        if (!pepid1ls.isEmpty()) {
+            ProEconEquipmentInfoDay1 pepid1 = pepid1ls.get(0);
+            //发电量
+            peeidt.setDayfdl(pepid1.getYfdl());
+
+            //理论发电量
+            peeidt.setDayllfdl(pepid1.getYllfdl());
+
+            //平均风速
+            peeidt.setDayfs(pepid1.getYpjfs());
+
+            //平均功率
+            peeidt.setDaygl(pepid1.getYpjgl());
+
+            //故障损失电量
+            peeidt.setDaygzssdl(pepid1.getYgzssdl());
+
+            //限电损失电量
+            peeidt.setDayxdssdl(pepid1.getYxdtjssdl());
+
+            //维护损失电量
+            peeidt.setDaywhssdl(pepid1.getYjxssdl());
+
+            //性能损失电量
+            peeidt.setDayxnssdl(pepid1.getYqxjclssdl());
+
+        }
+
+
+        List<ProEconEquipmentInfoDay2> pepid2ls = proEconEquipmentInfoDay2Service.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getWindturbineId().equals(wt.getId())
+                ).collect(Collectors.toList());
+
+        if (!pepid2ls.isEmpty()) {
+            ProEconEquipmentInfoDay2 pepid2 = pepid2ls.get(0);
+            //故障时间
+            peeidt.setDaygzsj(pepid2.getYgzxsmx());
+
+            //维护时间
+            peeidt.setDaywhsj(pepid2.getYjxxsmx());
+
+            //运行时间
+            peeidt.setDayyxsj(pepid2.getYyxxs());
+
+            //停机时间
+            peeidt.setDaytjsj(pepid2.getYgzxsmx());
+
+            //利用小时数
+
+            double defaultpower = 1500.0;
+            if (CacheContext.modelMap.containsKey(wt.getModelId())) {
+                defaultpower = CacheContext.modelMap.get(wt.getModelId()).getPowerProduction();
+            }
+
+            peeidt.setDaylyxs(BigDecimal.valueOf(peeidt.getDayfdl()).divide(new BigDecimal(defaultpower), 2, RoundingMode.HALF_EVEN).doubleValue());
+
+
+            //设备可利用率
+            int dayhours = 24;
+            double temp = StringUtils.round(dayhours - peeidt.getDaygzsj(), 2);
+            peeidt.setDaysbklyl(temp);
+
+
+
+            //等效可用系数
+            dayhours = 24;
+            temp = StringUtils.round(dayhours - peeidt.getDaygzsj() - peeidt.getDaywhsj(), 2);
+            peeidt.setDaydxkyxs(temp);
+
+
+        }
+
+        List<ProEconEquipmentInfoDay4> pepid4ls = proEconEquipmentInfoDay4Service.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getWindturbineId().equals(wt.getId())
+                ).collect(Collectors.toList());
+
+        if (!pepid4ls.isEmpty()) {
+            ProEconEquipmentInfoDay4 pepid4 = pepid4ls.get(0);
+            //拟合优度
+            peeidt.setDaynhyd(pepid4.getYnhyd());
+
+            //有效风时数
+            peeidt.setDayyxfss(pepid4.getYyxfss());
+
+            //小风切入
+            peeidt.setDayxfqr(pepid4.getYxfqrfs());
+
+            //静风频率
+
+            int dayhours = 24;
+            double temp = BigDecimal.valueOf(pepid4.getYjfsc()).divide(new BigDecimal(dayhours), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
+            peeidt.setDayjfpl(temp);
+
 
 
             //功率一致性系数
-            peeidt.setDayglyzxxs(pepid4.getRglyzxxs());
-            peeidt.setMonthglyzxxs(pepid4.getYglyzxxs());
-            peeidt.setYearglyzxxs(pepid4.getNglyzxxs());
+            peeidt.setDayglyzxxs(pepid4.getYglyzxxs());
+
         }
         return peeidt;
     }
 
+    private ProEconEquipmentInfoDayTop getEquipmentInfoYearTop(Date recordDate, Calendar c, ProBasicEquipment wt) {
+        ProEconEquipmentInfoDayTop peeidt = new ProEconEquipmentInfoDayTop();
+        peeidt.setTypes(3);
+        peeidt.setWindpowerstationId(wt.getWindpowerstationId());
+        peeidt.setLineId(wt.getLineId());
+        peeidt.setProjectId(wt.getProjectId());
+        peeidt.setWindturbineId(wt.getId());
+        peeidt.setRecordDate(DateUtils.truncate(recordDate));
+        peeidt.setYear(DateUtils.getYear(recordDate));
+        peeidt.setMonth(DateUtils.getMonth(recordDate) + 1);
+
+        List<ProEconEquipmentInfoDay1> pepid1ls = proEconEquipmentInfoDay1Service.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getWindturbineId().equals(wt.getId())
+                ).collect(Collectors.toList());
+
+        if (!pepid1ls.isEmpty()) {
+            ProEconEquipmentInfoDay1 pepid1 = pepid1ls.get(0);
+            //发电量
+            peeidt.setDayfdl(pepid1.getNfdl());
+
+            //理论发电量
+            peeidt.setDayllfdl(pepid1.getNllfdl());
+
+            //平均风速
+            peeidt.setDayfs(pepid1.getNpjfs());
+
+            //平均功率
+            peeidt.setDaygl(pepid1.getNpjgl());
+
+            //故障损失电量
+            peeidt.setDaygzssdl(pepid1.getNgzssdl());
+
+            //限电损失电量
+            peeidt.setDayxdssdl(pepid1.getNxdtjssdl());
 
-    private void orderObject(List<ProEconEquipmentInfoDayTop> topls, Map<String, Map<String, ProEconEquipmentInfoDayTop>> ordermap, List<String> filedls) {
+            //维护损失电量
+            peeidt.setDaywhssdl(pepid1.getNjxssdl());
+
+            //性能损失电量
+            peeidt.setDayxnssdl(pepid1.getNqxjclssdl());
+
+        }
+
+
+        List<ProEconEquipmentInfoDay2> pepid2ls = proEconEquipmentInfoDay2Service.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getWindturbineId().equals(wt.getId())
+                ).collect(Collectors.toList());
+
+        if (!pepid2ls.isEmpty()) {
+            ProEconEquipmentInfoDay2 pepid2 = pepid2ls.get(0);
+            //故障时间
+            peeidt.setDaygzsj(pepid2.getNgzxsmx());
+
+            //维护时间
+            peeidt.setDaywhsj(pepid2.getNjxxsmx());
+
+            //运行时间
+            peeidt.setDayyxsj(pepid2.getNyxxs());
+
+            //停机时间
+            peeidt.setDaytjsj(pepid2.getNgzxsmx());
+
+            //利用小时数
+
+            double defaultpower = 1500.0;
+            if (CacheContext.modelMap.containsKey(wt.getModelId())) {
+                defaultpower = CacheContext.modelMap.get(wt.getModelId()).getPowerProduction();
+            }
+
+            peeidt.setDaylyxs(BigDecimal.valueOf(peeidt.getDayfdl()).divide(new BigDecimal(defaultpower), 2, RoundingMode.HALF_EVEN).doubleValue());
+
+
+            //设备可利用率
+            int dayhours = 24;
+            double temp = StringUtils.round(dayhours - peeidt.getDaygzsj(), 2);
+            peeidt.setDaysbklyl(temp);
+
+
+
+            //等效可用系数
+            dayhours = 24;
+            temp = StringUtils.round(dayhours - peeidt.getDaygzsj() - peeidt.getDaywhsj(), 2);
+            peeidt.setDaydxkyxs(temp);
+
+
+        }
+
+        List<ProEconEquipmentInfoDay4> pepid4ls = proEconEquipmentInfoDay4Service.list().stream()
+                .filter(i -> i.getRecordDate().compareTo(DateUtils.truncate(recordDate)) == 0
+                        && i.getWindturbineId().equals(wt.getId())
+                ).collect(Collectors.toList());
+
+        if (!pepid4ls.isEmpty()) {
+            ProEconEquipmentInfoDay4 pepid4 = pepid4ls.get(0);
+            //拟合优度
+            peeidt.setDaynhyd(pepid4.getNnhyd());
+
+            //有效风时数
+            peeidt.setDayyxfss(pepid4.getNyxfss());
+
+            //小风切入
+            peeidt.setDayxfqr(pepid4.getNxfqrfs());
+
+            //静风频率
+
+            int dayhours = 24;
+            double temp = BigDecimal.valueOf(pepid4.getNjfsc()).divide(new BigDecimal(dayhours), 2, RoundingMode.HALF_EVEN).multiply(new BigDecimal(100)).doubleValue();
+            peeidt.setDayjfpl(temp);
+
+
+
+            //功率一致性系数
+            peeidt.setDayglyzxxs(pepid4.getNglyzxxs());
+
+        }
+        return peeidt;
+    }
+    private void orderObject(List<ProEconEquipmentInfoDayTop> topls,  List<String> filedls) {
 
 
         //遍历循环排序,将序号赋值给rank,再通过风机编号转为,MAP
@@ -289,170 +565,260 @@ public class EquipmentInfoDayTopService {
             List<ProEconEquipmentInfoDayTop> ls = new ArrayList<>();
 
 
-            Map<String, ProEconEquipmentInfoDayTop> map;
 
             switch (str) {
                 case "dayfs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayfs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthfs((double) (i + 1));
+                    }
                     break;
                 case "monthfs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthfs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthfs((double) (i + 1));
+                    }
                     break;
                 case "yearfs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearfs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthfs((double) (i + 1));
+                    }
                     break;
                 case "dayxnssdl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayxnssdl)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthxnssdl((double) (i + 1));
+                    }
                     break;
                 case "monthxnssdl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthxnssdl)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthxnssdl((double) (i + 1));
+                    }
                     break;
                 case "yearxnssdl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearxnssdl)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthxnssdl((double) (i + 1));
+                    }
                     break;
+
                 case "daylyxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDaylyxs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthlyxs((double) (i + 1));
+                    }
                     break;
                 case "monthlyxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthlyxs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthlyxs((double) (i + 1));
+                    }
                     break;
                 case "yearlyxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearlyxs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthlyxs((double) (i + 1));
+                    }
                     break;
                 case "daynhyd":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDaynhyd)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthnhyd((double) (i + 1));
+                    }
                     break;
                 case "monthnhyd":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthnhyd)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthnhyd((double) (i + 1));
+                    }
                     break;
                 case "yearnhyd":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearnhyd)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthnhyd((double) (i + 1));
+                    }
                     break;
                 case "daysbklyl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDaysbklyl).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthsbklyl((double) (i + 1));
+                    }
                     break;
                 case "monthsbklyl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthsbklyl).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthsbklyl((double) (i + 1));
+                    }
                     break;
                 case "yearsbklyl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearsbklyl).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthsbklyl((double) (i + 1));
+                    }
                     break;
                 case "daydxkyxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDaydxkyxs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthdxkyxs((double) (i + 1));
+                    }
                     break;
                 case "monthdxkyxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthdxkyxs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthdxkyxs((double) (i + 1));
+                    }
                     break;
                 case "yeardxkyxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYeardxkyxs).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthdxkyxs((double) (i + 1));
+                    }
                     break;
                 case "dayyxfss":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayyxfss).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthyxfss((double) (i + 1));
+                    }
                     break;
                 case "monthyxfss":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthyxfss).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthyxfss((double) (i + 1));
+                    }
                     break;
                 case "yearyxfss":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearyxfss).reversed()).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthyxfss((double) (i + 1));
+                    }
                     break;
                 case "dayxfqr":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayxfqr)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthxfqr((double) (i + 1));
+                    }
                     break;
                 case "monthxfqr":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthxfqr)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthxfqr((double) (i + 1));
+                    }
                     break;
                 case "yearxfqr":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearxfqr)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthxfqr((double) (i + 1));
+                    }
                     break;
                 case "dayjfpl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayjfpl)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthjfpl((double) (i + 1));
+                    }
                     break;
                 case "monthjfpl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthjfpl)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthjfpl((double) (i + 1));
+                    }
                     break;
                 case "yearjfpl":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearjfpl)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthjfpl((double) (i + 1));
+                    }
                     break;
                 case "dayglyzxxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getDayglyzxxs)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthglyzxxs((double) (i + 1));
+                    }
                     break;
                 case "monthglyzxxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getMonthglyzxxs)).collect(Collectors.toList());
+                    for (int i = 0; i < ls.size(); i++) {
+                        ProEconEquipmentInfoDayTop po = ls.get(i);
+                        po.setMonthglyzxxs((double) (i + 1));
+                    }
                     break;
                 case "yearglyzxxs":
                     ls = topls.stream()
                             .sorted(Comparator.comparing(ProEconEquipmentInfoDayTop::getYearglyzxxs)).collect(Collectors.toList());
-                    break;
-                default:
-
-            }
-
-                if(str.contains("day")) {
-                    Map<String, ProEconEquipmentInfoDayTop> result = new HashMap<>();
                     for (int i = 0; i < ls.size(); i++) {
                         ProEconEquipmentInfoDayTop po = ls.get(i);
-                        po.setDayRank(i + 1);
-                        result.putIfAbsent(po.getWindturbineId(), po);
+                        po.setMonthglyzxxs((double) (i + 1));
                     }
-                    map = result;
-
-                }else if(str.contains("month")){
-                    Map<String, ProEconEquipmentInfoDayTop> result = new HashMap<>();
-                    for (int i = 0; i < ls.size(); i++) {
-                        ProEconEquipmentInfoDayTop po = ls.get(i);
-                        po.setMonthRank(i + 1);
-                        result.putIfAbsent(po.getWindturbineId(), po);
-                    }
-                    map = result;
-
-                }else{
-                    Map<String, ProEconEquipmentInfoDayTop> result = new HashMap<>();
-                    for (int i = 0; i < ls.size(); i++) {
-                        ProEconEquipmentInfoDayTop po = ls.get(i);
-                        po.setYearRank(i + 1);
-                        result.putIfAbsent(po.getWindturbineId(), po);
-                    }
-                    map = result;
+                    break;
+                default:
 
-                }
+            }
 
 
-            ordermap.put(str, map);
         }
 
 
     }
 
-    private void calLevels(ProEconEquipmentInfoDayTop top, Integer size, Map<String, Map<String, ProEconEquipmentInfoDayTop>> ordermap, String type) {
+    private void calLevels(ProEconEquipmentInfoDayTop top, Integer size) {
         double m = 10;
         double d = m / (double) size;
         double temp = 0;
@@ -479,716 +845,298 @@ public class EquipmentInfoDayTopService {
         double jfplValue = 0;
 
         //切入风速
-        if (ordermap.containsKey(type + "xfqr")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "xfqr");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDayxfqr();
-
-                        break;
-                    case "month":
-                        value = top.getMonthxfqr();
-
-
-                        break;
-                    case "year":
-                        value = top.getYearxfqr();
-                        break;
-                }
-
-                if (value >= 5) {
-                    xfqrValue = 0;
-                } else if (value <= 3.5) {
-                    xfqrValue = m;
-                } else {
-
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
+        double value = 0.0;
+        value = top.getDayxfqr();
 
+        if (value >= 5) {
+            xfqrValue = 0;
+        } else if (value <= 3.5) {
+            xfqrValue = m;
+        } else {
 
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
+            temp = d * (size - top.getMonthxfqr());
 
-                    xfqrValue = StringUtils.round(temp, 0);
-                }
-            }
+            xfqrValue = StringUtils.round(temp, 0);
+            top.setYearxfqr(xfqrValue);
         }
         //性能损失电量
-        if (ordermap.containsKey(type + "xnssdl")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "xnssdl");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDayxnssdl();
-
-                        break;
-                    case "month":
-                        value = top.getMonthxnssdl();
-
-
-                        break;
-                    case "year":
-                        value = top.getYearxnssdl();
-                        break;
-                }
-                if (value >= top.getDayfdl()) {
-                    xnssdlValue = 0;
-                } else if (value <= 0) {
-                    xnssdlValue = m;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
-
-
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    xnssdlValue = StringUtils.round(temp, 0);
-
-                }
-
+        value = 0.0;
+        value = top.getDayxnssdl();
+        if (value >= top.getDayfdl()) {
+            xnssdlValue = 0;
+        } else if (value <= 0) {
+            xnssdlValue = m;
+        } else {
+            temp = d * (size - top.getMonthxnssdl());
+            xnssdlValue = StringUtils.round(temp, 0);
+            top.setYearxnssdl(xnssdlValue);
 
-            }
         }
 
-
+        value = 0.0;
+        value = top.getDaynhyd();
         //拟合优度
-        if (ordermap.containsKey(type + "nhyd")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "nhyd");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDaynhyd();
-
-                        break;
-                    case "month":
-                        value = top.getMonthnhyd();
-
-
-                        break;
-                    case "year":
-                        value = top.getYearnhyd();
-                        break;
-                }
-                //拟合优度
-                if (value >= 0.5) {
-                    nhydValue = 0;
-                } else if (value <= 0.15) {
-                    nhydValue = m;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
-
-
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    nhydValue = StringUtils.round(temp, 0);
-                }
-
-            }
+        if (value >= 0.5) {
+            nhydValue = 0;
+        } else if (value <= 0.15) {
+            nhydValue = m;
+        } else {
+            temp = d * (size - top.getMonthnhyd());
+            nhydValue = StringUtils.round(temp, 0);
+            top.setYearnhyd(nhydValue);
         }
 
 
+
         //功率一致性系数
-        if (ordermap.containsKey(type + "glyzxxs")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "glyzxxs");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDayglyzxxs();
-
-                        break;
-                    case "month":
-                        value = top.getMonthglyzxxs();
-
-
-                        break;
-                    case "year":
-                        value = top.getYearglyzxxs();
-                        break;
-                }
-
-                if (value >= 50) {
-                    glyzxxsValue = 0;
-                } else if (value <= 15) {
-                    glyzxxsValue = m;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
-
-
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    glyzxxsValue = StringUtils.round(temp, 0);
-                }
+        value = 0.0;
+        value = top.getDayglyzxxs();
 
-            }
+        if (value >= 50) {
+            glyzxxsValue = 0;
+        } else if (value <= 15) {
+            glyzxxsValue = m;
+        } else {
+            temp = d * (size - top.getMonthglyzxxs());
+            glyzxxsValue = StringUtils.round(temp, 0);
+            top.setYearglyzxxs(glyzxxsValue);
         }
 
         //利用小时
-        if (ordermap.containsKey(type + "lyxs")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "lyxs");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDaylyxs();
-
-                        break;
-                    case "month":
-                        value = top.getMonthlyxs();
-
+        value = 0.0;
+        value = top.getDaylyxs();
 
-                        break;
-                    case "year":
-                        value = top.getYearlyxs();
-                        break;
-                }
-
-                if (value <= 0) {
-                    lyxsValue = 0;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
-
-
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    lyxsValue = StringUtils.round(temp, 0);
-                }
-
-            }
+        if (value <= 0) {
+            lyxsValue = 0;
+        } else {
+            temp = d * (size - top.getMonthlyxs());
+            lyxsValue = StringUtils.round(temp, 0);
+            top.setYearlyxs(lyxsValue);
         }
 
 
         //设备可利用率
-        if (ordermap.containsKey(type + "sbklyl")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "sbklyl");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDaysbklyl();
-
-                        break;
-                    case "month":
-                        value = top.getMonthsbklyl();
-
-
-                        break;
-                    case "year":
-                        value = top.getYearsbklyl();
-                        break;
-                }
-
-                if (value < 90) {
-                    sbklylValue = 0;
-                } else if (value >= 99.8) {
-                    sbklylValue = m;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
-
-
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    sbklylValue = StringUtils.round(temp, 0);
-                }
+        value = 0.0;
+        value = top.getDaysbklyl();
 
-            }
+        if (value < 90) {
+            sbklylValue = 0;
+        } else if (value >= 99.8) {
+            sbklylValue = m;
+        } else {
+            temp = d * (size - top.getMonthsbklyl());
+            sbklylValue = StringUtils.round(temp, 0);
+            top.setYearsbklyl(sbklylValue);
         }
 
 
         //等效可用系数
-        if (ordermap.containsKey(type + "dxkyxs")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "dxkyxs");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
-
-
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDaydxkyxs();
-
-                        break;
-                    case "month":
-                        value = top.getMonthdxkyxs();
-
-
-                        break;
-                    case "year":
-                        value = top.getYeardxkyxs();
-                        break;
-                }
-
-                if (value < 90) {
-                    dxkyxsValue = 0;
-                } else if (value >= 99.8) {
-                    dxkyxsValue = m;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
-
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
-
-
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    dxkyxsValue = StringUtils.round(temp, 0);
-                }
+        value = 0.0;
+        value = top.getDaydxkyxs();
 
-            }
+        if (value < 90) {
+            dxkyxsValue = 0;
+        } else if (value >= 99.8) {
+            dxkyxsValue = m;
+        } else {
+            temp = d * (size - top.getMonthdxkyxs());
+            dxkyxsValue = StringUtils.round(temp, 0);
+            top.setYeardxkyxs(dxkyxsValue);
         }
 
 
         //有效风时数
-        if (ordermap.containsKey(type + "yxfss")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "yxfss");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
+        value = 0.0;
+        value = top.getDayyxfss();
 
+        if (value <= 0) {
+            yxfssValue = 0;
+        } else {
+            temp = d * (size - top.getMonthyxfss());
+            yxfssValue = StringUtils.round(temp, 0);
+            top.setYearyxfss(yxfssValue);
+        }
 
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDayyxfss();
-
-                        break;
-                    case "month":
-                        value = top.getMonthyxfss();
+        //平均风速
+        value = 0.0;
+        value = top.getDayfs();
 
+        if (value <= 0) {
+            fsValue = 0;
+        } else {
+            temp = d * (size - top.getMonthfs());
+            fsValue = StringUtils.round(temp, 0);
+            top.setYearfs(fsValue);
+        }
 
-                        break;
-                    case "year":
-                        value = top.getYearyxfss();
-                        break;
-                }
+        //静风频率
+        value = 0.0;
+        value = top.getDayjfpl();
 
-                if (value <= 0) {
-                    yxfssValue = 0;
-                } else {
-                    if (type.equals("day")) {
-                        temp = d * (size - rtop.getDayRank());
+        if (value <= 0) {
+            jfplValue = 0;
+        } else {
+            temp = d * (size - top.getMonthjfpl());
+            top.setYearjfpl(temp);
+            jfplValue = StringUtils.round(temp, 0);
+        }
 
-                    } else if (type.equals("month")) {
-                        temp = d * (size - rtop.getMonthRank());
+        Double total = xfqrValue + xnssdlValue + nhydValue + glyzxxsValue + lyxsValue + sbklylValue + dxkyxsValue + yxfssValue + fsValue + jfplValue;
 
+        if (total >= 95) {
 
-                    } else {
-                        temp = d * (size - rtop.getYearRank());
-                    }
-                    yxfssValue = StringUtils.round(temp, 0);
-                }
+            top.setDayLevel("AAA");
+            top.setDayScore(total);
+        } else if (total >= 85) {
+            top.setDayLevel("AA");
+            top.setDayScore(total);
+        } else if (total >= 80) {
 
-            }
-        }
+            top.setDayLevel("A");
+            top.setDayScore(total);
+        } else if (total >= 75) {
+            top.setDayLevel("BBB");
+            top.setDayScore(total);
+        } else if (total >= 65) {
+            top.setDayLevel("BB");
+            top.setDayScore(total);
 
-        //平均风速
-        if (ordermap.containsKey(type + "fs")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "fs");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
+        } else if (total >= 60) {
+            top.setDayLevel("B");
+            top.setDayScore(total);
+        } else if (total >= 40) {
+            top.setDayLevel("C");
+            top.setDayScore(total);
 
+        } else {
+            top.setDayLevel("C-");
+            top.setDayScore(total);
+        }
+    }
 
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDayfs();
 
-                        break;
-                    case "month":
-                        value = top.getMonthfs();
 
 
-                        break;
-                    case "year":
-                        value = top.getYearfs();
-                        break;
-                }
+    private List<String> initialDayFiled() {
+        List<String> filedls = new ArrayList<>();
 
-                if (value <= 0) {
-                    fsValue = 0;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
 
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
+        filedls.add("dayfs");
 
 
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    fsValue = StringUtils.round(temp, 0);
-                }
+        filedls.add("dayxnssdl");
 
-            }
-        }
 
-        //静风频率
-        if (ordermap.containsKey(type + "jfpl")) {
-            Map<String, ProEconEquipmentInfoDayTop> map = ordermap.get(type + "jfpl");
-            if (map.containsKey(top.getWindturbineId())) {
-                ProEconEquipmentInfoDayTop rtop = map.get(top.getWindturbineId());
 
 
-                double value = 0.0;
-                switch (type) {
-                    case "day":
-                        value = top.getDayjfpl();
+        filedls.add("daylyxs");
 
-                        break;
-                    case "month":
-                        value = top.getMonthjfpl();
 
 
-                        break;
-                    case "year":
-                        value = top.getYearjfpl();
-                        break;
-                }
 
-                if (value <= 0) {
-                    jfplValue = 0;
-                } else {
-                    switch (type) {
-                        case "day":
-                            temp = d * (size - rtop.getDayRank());
+        filedls.add("daynhyd");
 
-                            break;
-                        case "month":
-                            temp = d * (size - rtop.getMonthRank());
 
 
-                            break;
-                        case "year":
-                            temp = d * (size - rtop.getYearRank());
-                            break;
-                    }
-                    jfplValue = StringUtils.round(temp, 0);
-                }
 
-            }
-        }
+        filedls.add("daysbklyl");
 
-        Double total = xfqrValue + xnssdlValue + nhydValue + glyzxxsValue + lyxsValue + sbklylValue + dxkyxsValue + yxfssValue + fsValue + jfplValue;
 
-        if (total >= 95) {
-            switch (type) {
-                case "day":
 
-                    top.setDayLevel("AAA");
-                    top.setDayScore(total);
+        filedls.add("daydxkyxs");
 
-                    break;
-                case "month":
 
-                    top.setMonthLevel("AAA");
-                    top.setMonthScore(total);
 
-                    break;
-                case "year":
 
-                    top.setYearLevel("AAA");
-                    top.setYearScore(total);
-                    break;
-            }
-        } else if (total >= 85) {
-            switch (type) {
-                case "day":
+        filedls.add("dayyxfss");
 
-                    top.setDayLevel("AA");
-                    top.setDayScore(total);
 
-                    break;
-                case "month":
 
-                    top.setMonthLevel("AA");
-                    top.setMonthScore(total);
+        filedls.add("dayxfqr");
 
-                    break;
-                case "year":
 
-                    top.setYearLevel("AA");
-                    top.setYearScore(total);
-                    break;
-            }
-        } else if (total >= 80) {
-            switch (type) {
-                case "day":
 
-                    top.setDayLevel("A");
-                    top.setDayScore(total);
 
-                    break;
-                case "month":
+        filedls.add("dayjfpl");
 
-                    top.setMonthLevel("A");
-                    top.setMonthScore(total);
 
-                    break;
-                case "year":
+        filedls.add("dayglyzxxs");
 
-                    top.setYearLevel("A");
-                    top.setYearScore(total);
-                    break;
-            }
-        } else if (total >= 75) {
-            switch (type) {
-                case "day":
 
-                    top.setDayLevel("BBB");
-                    top.setDayScore(total);
+        return filedls;
+    }
 
-                    break;
-                case "month":
+    private List<String> initialMonthFiled() {
+        List<String> filedls = new ArrayList<>();
 
-                    top.setMonthLevel("BBB");
-                    top.setMonthScore(total);
 
-                    break;
-                case "year":
 
-                    top.setYearLevel("BBB");
-                    top.setYearScore(total);
-                    break;
-            }
-        } else if (total >= 65) {
-            switch (type) {
-                case "day":
+        filedls.add("monthfs");
 
-                    top.setDayLevel("BB");
-                    top.setDayScore(total);
 
-                    break;
-                case "month":
+        filedls.add("monthxnssdl");
 
-                    top.setMonthLevel("BB");
-                    top.setMonthScore(total);
 
-                    break;
-                case "year":
+        filedls.add("monthlyxs");
 
-                    top.setYearLevel("BB");
-                    top.setYearScore(total);
-                    break;
-            }
 
-        } else if (total >= 60) {
-            switch (type) {
-                case "day":
+        filedls.add("monthnhyd");
 
-                    top.setDayLevel("B");
-                    top.setDayScore(total);
 
-                    break;
-                case "month":
+        filedls.add("monthsbklyl");
 
-                    top.setMonthLevel("B");
-                    top.setMonthScore(total);
 
-                    break;
-                case "year":
+        filedls.add("monthdxkyxs");
 
-                    top.setYearLevel("B");
-                    top.setYearScore(total);
-                    break;
-            }
-        } else if (total >= 40) {
-            switch (type) {
-                case "day":
 
-                    top.setDayLevel("C");
-                    top.setDayScore(total);
 
-                    break;
-                case "month":
+        filedls.add("monthyxfss");
 
-                    top.setMonthLevel("C");
-                    top.setMonthScore(total);
 
-                    break;
-                case "year":
+        filedls.add("monthxfqr");
 
-                    top.setYearLevel("C");
-                    top.setYearScore(total);
-                    break;
-            }
 
-        } else {
-            switch (type) {
-                case "day":
+        filedls.add("monthjfpl");
 
-                    top.setDayLevel("C-");
-                    top.setDayScore(total);
 
-                    break;
-                case "month":
 
-                    top.setMonthLevel("C-");
-                    top.setMonthScore(total);
+        filedls.add("monthglyzxxs");
 
-                    break;
-                case "year":
 
-                    top.setYearLevel("C-");
-                    top.setYearScore(total);
-                    break;
-            }
-        }
+        return filedls;
     }
 
-    private List<String> initialFiled() {
+    private List<String> initialYearFiled() {
         List<String> filedls = new ArrayList<>();
 
 
-        filedls.add("dayfs");
-
-        filedls.add("monthfs");
 
         filedls.add("yearfs");
 
 
-        filedls.add("dayxnssdl");
-
-        filedls.add("monthxnssdl");
-
         filedls.add("yearxnssdl");
 
 
-        filedls.add("daylyxs");
-
-        filedls.add("monthlyxs");
 
         filedls.add("yearlyxs");
 
 
-        filedls.add("daynhyd");
-
-        filedls.add("monthnhyd");
-
         filedls.add("yearnhyd");
 
 
-        filedls.add("daysbklyl");
-
-        filedls.add("monthsbklyl");
-
         filedls.add("yearsbklyl");
 
 
-        filedls.add("daydxkyxs");
-
-        filedls.add("monthdxkyxs");
-
         filedls.add("yeardxkyxs");
 
 
-        filedls.add("dayyxfss");
-
-        filedls.add("monthyxfss");
-
         filedls.add("yearyxfss");
 
-
-        filedls.add("dayxfqr");
-
-        filedls.add("monthxfqr");
-
         filedls.add("yearxfqr");
 
 
-        filedls.add("dayjfpl");
-
-        filedls.add("monthjfpl");
-
         filedls.add("yearjfpl");
 
-
-        filedls.add("dayglyzxxs");
-
-        filedls.add("monthglyzxxs");
-
         filedls.add("yearglyzxxs");
 
         return filedls;

+ 17 - 2
realtime/generationXK-service/src/main/java/com/gyee/generation/service/InputOrOutPutService.java

@@ -95,6 +95,7 @@ public class InputOrOutPutService {
                         if (lastStatus == 0 && status == 2)
                         {
                             ProEconInputOrOutputSpeed input = new ProEconInputOrOutputSpeed();
+
                             input.setWindturbineId(wt.getId());
                             input.setWindpowerstationId(wt.getWindpowerstationId());
                             input.setProjectId(wt.getProjectId());
@@ -202,14 +203,28 @@ public class InputOrOutPutService {
                     total1.setProjectId(wt.getProjectId());
                     total1.setLineId(wt.getLineId());
                     total1.setRecordDate(daybegin);
-
+                    total1.setCompanyId(wt.getCompanyId());
+                    if(wt.getWindpowerstationId().contains("FDC"))
+                    {
+                        total1.setTypes("-1");
+                    }else
+                    {
+                        total1.setTypes("-2");
+                    }
                     total2 = new ProEconInOrOutSpeedTotal2();
                     total2.setWindturbineId(wt.getId());
                     total2.setWindpowerstationId(wt.getWindpowerstationId());
                     total2.setProjectId(wt.getProjectId());
                     total2.setLineId(wt.getLineId());
                     total2.setRecordDate(daybegin);
-
+                    total2.setCompanyId(wt.getCompanyId());
+                    if(wt.getWindpowerstationId().contains("FDC"))
+                    {
+                        total2.setTypes("-1");
+                    }else
+                    {
+                        total2.setTypes("-2");
+                    }
 
                     newMethod(end, daybegin, monthbegin, yearbegin, wt.getId(), total1, total2);
                     verify(total1);

+ 8 - 1
realtime/generationXK-service/src/main/java/com/gyee/generation/service/WindturbineGoodnessService.java

@@ -51,7 +51,14 @@ public class WindturbineGoodnessService {
             po.setWindturbineId(wt.getId());
             po.setRecordDate(DateUtils.truncate(recordDate));
             po.setWindtpowerstationId(wt.getWindpowerstationId());
-
+            po.setCompanyId(wt.getCompanyId());
+            if(wt.getWindpowerstationId().contains("FDC"))
+            {
+                po.setTypes("-1");
+            }else
+            {
+                po.setTypes("-2");
+            }
             po.setDayGoodness(0.0);
             po.setYearGoodness(0.0);
             po.setMonthGoodness(0.0);