Browse Source

1、针对和风基础信息表配置问题对代码做的修改;
2、针对单期次出现多出线情况做的调整。

xieshengjie 3 years ago
parent
commit
cf92cfb638

+ 23 - 17
histroy/analysis-histroy-hb/src/main/java/com/gyee/analysis/init/CacheContext.java

@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
 @Component
 public class CacheContext implements CommandLineRunner {
     private Logger logger= LoggerFactory.getLogger(CacheContext.class);
-//    @Resource
+    //    @Resource
 //    private IWindturbinetestingpointaiService windturbinetestingpointai2Service;
 //    @Resource
 //    private IWindpowerstationtestingpointService windpowerstationtestingpoint2Service;
@@ -51,12 +51,13 @@ public class CacheContext implements CommandLineRunner {
 
     public static List<Windpowerstation> stations = new ArrayList<>();
 
-//    public static Map<String,Windpowerstation> wpmaps = new HashMap<>();
 
-//    public static Map<String,String> wpmap = new HashMap<>();
+    public static Map<String,Windpowerstation> wpmaps = new HashMap<>();
+
+    public static Map<String,String> wpmap = new HashMap<>();
 
     public static Map<String,Meterpoint> meterMap = new HashMap<>();
-//
+    //
     public static Map<String,List<Meterpoint>> wpmeterMap = new HashMap<>();
 
 //    public static List<Analysiswindtarget> targetlist = new ArrayList<>();
@@ -68,26 +69,31 @@ public class CacheContext implements CommandLineRunner {
 
 //        targetlist = analysiswindtargetService.list();
 
+        stations = windpowerstationService.list();
+        for (Windpowerstation station : stations) {
+            wpmap.put(station.getId(),station.getName());
+            wpmaps.put(station.getId(),station);
+        }
+
         for (Meterpoint meterpoint2 : meterpoint2Service.list()) {
-            meterMap.put(meterpoint2.getId(),meterpoint2);
-            if (wpmeterMap.containsKey(meterpoint2.getWindpowerstationid())){
-                wpmeterMap.get(meterpoint2.getWindpowerstationid()).add(meterpoint2);
-            }else{
-                List<Meterpoint> list = new ArrayList<>();
-                list.add(meterpoint2);
-                wpmeterMap.put(meterpoint2.getWindpowerstationid(),list);
+            if (wpmaps.containsKey(meterpoint2.getWindpowerstationid())){
+                meterMap.put(meterpoint2.getId(),meterpoint2);
+                if (wpmeterMap.containsKey(meterpoint2.getWindpowerstationid())){
+                    wpmeterMap.get(meterpoint2.getWindpowerstationid()).add(meterpoint2);
+                }else{
+                    List<Meterpoint> list = new ArrayList<>();
+                    list.add(meterpoint2);
+                    wpmeterMap.put(meterpoint2.getWindpowerstationid(),list);
+                }
             }
+
         }
 
-        projects = projectService.list().stream().sorted(Comparator.comparing(Project::getOrdernum)).collect(Collectors.toList());
+        projects = projectService.list().stream().filter(p->wpmap.containsKey(p.getWindpowerstationid())).sorted(Comparator.comparing(Project::getOrdernum)).collect(Collectors.toList());
 //        for (Project project : projects) {
 //            projectMap.put(project.getId(),project);
 //        }
-        stations = windpowerstationService.list();
-//        for (Windpowerstation station : stations) {
-//            wpmap.put(station.getId(),station.getName());
-//            wpmaps.put(station.getId(),station);
-//        }
+
 
 //        List<Windturbinetestingpointai> wtplist = windturbinetestingpointai2Service.list();
 //        for (Windturbinetestingpointai pointai : wtplist) {

+ 8 - 7
histroy/analysis-histroy-hb/src/main/java/com/gyee/analysis/service/analysis/AnalysisNewService.java

@@ -517,6 +517,7 @@ public class AnalysisNewService {
      */
     public void saveWindProject(String beginDate, String endDate) throws Exception {
         Map<String, List<Meterpoint>> wpmeterMap = CacheContext.wpmeterMap;
+        Map<String, Meterpoint> meterMap = CacheContext.meterMap;
         List<String> days = getDays(beginDate, endDate);
         for (String day : days) {
             Map<String, Object> bdzmap = new HashMap<>();
@@ -557,19 +558,19 @@ public class AnalysisNewService {
                 //算上网电量和购网电量
                 double swdl = 0;
                 double gwdl = 0;
-                Meterpoint fcswmeter = wpmeterMap.get(project.getWindpowerstationid()).stream()
+                List<Meterpoint> fcswmeter = wpmeterMap.get(project.getWindpowerstationid()).stream()
                         .filter(i -> (
                                 i.getMetersort().equals("主") && i.getMetertype().equals("出线") && i.getUniformcode().equals("ZXYG") && i.getProjectid().contains(project.getId())
-                        )).findFirst().get();
-                Meterpoint fcgwmeter = wpmeterMap.get(project.getWindpowerstationid()).stream()
+                        )).collect(Collectors.toList());
+                List<Meterpoint> fcgwmeter = wpmeterMap.get(project.getWindpowerstationid()).stream()
                         .filter(i -> (
                                 i.getMetersort().equals("主") && i.getMetertype().equals("出线") && i.getUniformcode().equals("FXYG") && i.getProjectid().contains(project.getId())
-                        )).findFirst().get();
-                String[] lineids = fcswmeter.getLineid().split("\\|");
+                        )).collect(Collectors.toList());
+                String[] lineids = fcswmeter.get(0).getLineid().split("\\|");
                 Double fcfdl = Arrays.stream(lineids).map(lineid -> wpmeterMap.get(project.getWindpowerstationid()).stream().filter(j -> j.getMetersort().equals("主") && j.getMetertype().equals("进线") && j.getUniformcode().equals("ZXYG") && j.getLineid().equals(lineid)).findFirst().get()).mapToDouble(linemeterpoint2 -> currentDay.stream().filter(currentBdz -> currentBdz.getMeterid().equals(linemeterpoint2.getId())).findFirst().get().getDayvaluemodify()).sum();
 
-                Double dayvaluesw = currentDay.stream().filter(currentBdz -> currentBdz.getMeterid().equals(fcswmeter.getId())).findFirst().get().getDayvaluemodify();
-                Double dayvaluegw = currentDay.stream().filter(currentBdz -> currentBdz.getMeterid().equals(fcgwmeter.getId())).findFirst().get().getDayvaluemodify();
+                Double dayvaluesw = currentDay.stream().filter(currentBdz -> fcswmeter.contains(meterMap.get(currentBdz.getMeterid()))).mapToDouble(Analysissubtablebottom::getDayvaluemodify).sum();
+                Double dayvaluegw = currentDay.stream().filter(currentBdz -> fcgwmeter.contains(meterMap.get(currentBdz.getMeterid()))).mapToDouble(Analysissubtablebottom::getDayvaluemodify).sum();
                 swdl = fcfdl!=0?generatingcapacity/fcfdl*dayvaluesw:0;
                 gwdl = fcfdl!=0?generatingcapacity/fcfdl*dayvaluegw:0;