Browse Source

修正预测发电量

shilin 3 years ago
parent
commit
04800203db

+ 24 - 0
src/main/java/com/gyee/frame/service/ProjectPlanService.java

@@ -120,6 +120,30 @@ public class ProjectPlanService implements BaseService<ProjectPlan, ProjectPlanE
 
 	}
 
+	public List<ProjectPlan> getProjectPlanList(String wpId,String year,String month) {
+
+
+		List<ProjectPlan> list=new ArrayList<>();
+
+		if (StringUtils.notEmp(wpId)  && StringUtils.notEmp(year)  ) {
+
+			ProjectPlanExample example=new ProjectPlanExample();
+			example.setOrderByClause("projectid DESC");
+
+			ProjectPlanExample.Criteria criteria =example.createCriteria();
+
+			criteria.andWindpowerEqualTo(wpId);
+			criteria.andYearEqualTo(year);
+			criteria.andMonthEqualTo(month);
+			criteria.andMonthIsNotNull();
+
+			list= projectPlanMapper.selectByExample(example);
+
+		}
+		return list;
+
+	}
+
 	public List<ProjectPlan> getProjectPlanListByTypeId(String year,String id) {
 
 

+ 34 - 2
src/main/java/com/gyee/frame/service/health/HealthMainService.java

@@ -15,7 +15,6 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class HealthMainService {
@@ -36,7 +35,8 @@ public class HealthMainService {
     private WeatherDay5Service weatherDay5Service;
     @Resource
     private PowerToPowerService powerToPowerService;
-
+    @Resource
+    private ProjectPlanService projectPlanService;
     private final int digit = 2;
     private final double NUM = 3.6;
     private final double XZNUM = 1.25;
@@ -661,6 +661,24 @@ public class HealthMainService {
 //                    ycdl1day = getPowerByWp(speedmap, wpId, 1);
 //
 //                }
+
+                cal = Calendar.getInstance();
+                cal.setTime(new Date());
+                int year = cal.get(Calendar.YEAR);
+                int month = cal.get(Calendar.MONTH)+1;
+                List<ProjectPlan> pjls = projectPlanService.getProjectPlanList(wpId,String.valueOf(year),String.valueOf(month));
+
+                double yfdljh=0.0;
+                if(!pjls.isEmpty())
+                {
+                    for (ProjectPlan plan : pjls) {
+
+                        double fdl = null != plan.getGeneratingcapacity() ? Double.valueOf(plan.getGeneratingcapacity()) : 0.0;
+
+                        yfdljh = yfdljh + fdl;
+                    };
+                }
+
                 cal = Calendar.getInstance();
                 cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
                 cal.set(Calendar.HOUR_OF_DAY, 0);
@@ -702,6 +720,20 @@ public class HealthMainService {
                     cal = Calendar.getInstance();
                     ycdl1month = StringUtils.round((yfdl + ycdl1day*(daynum-cal.get(Calendar.DAY_OF_MONTH)))*YCFDLXS, 2);
 
+
+                    if(yfdljh!=0)
+                    {
+                        //与月计划发电量结合判断月预测发电量
+                        if(ycdl1month<yfdljh)
+                        {
+                            ycdl1month=yfdljh*1.05;
+
+                        }else if(ycdl1month>(yfdljh*1.2))
+                        {
+                            ycdl1month=yfdljh*1.2;
+                        }
+                    }
+
                 }
 
                 if (ycdl1day != 0.0) {

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

@@ -1338,6 +1338,18 @@ public class GenreSetPushService {
             yfdljh = gxkmap.get("yfdljh");
             nfdljh = gxkmap.get("nfdljh");
 
+            if(yfdljh!=0)
+            {
+                //与月计划发电量结合判断月预测发电量
+                if(yycfdl<yfdljh)
+                {
+                    jczbmap.put("yycfdl", MathUtil.twoBit(yfdljh*1.05));
+                }else if(yycfdl>(yfdljh*1.2))
+                {
+                    jczbmap.put("yycfdl", MathUtil.twoBit(yfdljh*1.2));
+                }
+            }
+
 
             if (yfdljh == 0.0) {
                 nfdljh = 1.0;