فهرست منبع

1.南网准确率公式判断参数修改
23.开机容量,需要时候再判断

zhangchenglong 2 سال پیش
والد
کامیت
21389e2206

+ 18 - 18
pom.xml

@@ -10,8 +10,8 @@
     </parent>
     <groupId>com.syjy</groupId>
     <artifactId>calculation-spring-boot-starter</artifactId>
-    <version>0.0.9</version>
-    <!--<version>0.0.9-SNAPSHOT</version>-->
+    <!--<version>0.0.12</version>-->
+    <version>0.0.12-SNAPSHOT</version>
     <name>calculation</name>
     <description>Demo project for Spring Boot</description>
     <properties>
@@ -117,27 +117,27 @@
 
     <distributionManagement>
 
-        <repository>
-            <id>jiayue-releases</id>
-            <name>Nexus Release Repository</name>
-            <url>http://49.4.68.219:8888/repository/jiayue-releases/</url>
-        </repository>
-        <snapshotRepository>
-            <id>jiayue-snapshots</id>
-            <name>Nexus Snapshot Repository</name>
-            <url>http://49.4.68.219:8888/repository/jiayue-snapshots/</url>
-        </snapshotRepository>
-
-        <!--csc-->
         <!--<repository>-->
-            <!--<id>jiayue-csc-releases</id>-->
-            <!--<url>http://49.4.68.219:8888/repository/jiayue-csc-releases/</url>-->
+            <!--<id>jiayue-releases</id>-->
+            <!--<name>Nexus Release Repository</name>-->
+            <!--<url>http://49.4.68.219:8888/repository/jiayue-releases/</url>-->
         <!--</repository>-->
         <!--<snapshotRepository>-->
-            <!--<id>jiayue-csc-snapshots</id>-->
-            <!--<url>http://49.4.68.219:8888/repository/jiayue-csc-snapshots/</url>-->
+            <!--<id>jiayue-snapshots</id>-->
+            <!--<name>Nexus Snapshot Repository</name>-->
+            <!--<url>http://49.4.68.219:8888/repository/jiayue-snapshots/</url>-->
         <!--</snapshotRepository>-->
 
+        <!--csc-->
+        <repository>
+            <id>jiayue-csc-releases</id>
+            <url>http://49.4.68.219:8888/repository/jiayue-csc-releases/</url>
+        </repository>
+        <snapshotRepository>
+            <id>jiayue-csc-snapshots</id>
+            <url>http://49.4.68.219:8888/repository/jiayue-csc-snapshots/</url>
+        </snapshotRepository>
+
     </distributionManagement>
 
     <build>

+ 6 - 0
src/main/java/com/syjy/calculate/entity/CalculationFormula.java

@@ -75,6 +75,12 @@ public class CalculationFormula extends PageReq {
      */
     private String dataSourceType;
 
+    /**
+     * 需要计算提前几天的(不包含当天)
+     */
+    private String howManyDays;
+
+
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date createTime;

+ 5 - 3
src/main/java/com/syjy/calculate/function/RootMeanSquaredErrorSouthernPowerGrid.java

@@ -32,13 +32,15 @@ public class RootMeanSquaredErrorSouthernPowerGrid extends AbstractFunction {
         String forExp;
         // 循环集合获取实际功率、预测功率信息并计算
         for (Object obj : seq) {
+
             Map<String, Object> map = (Map<String, Object>) obj;
             ableValue = new BigDecimal(String.valueOf(map.get("ableValue")));
-            // 如果可用功率>=
-            if(ableValue.compareTo(electricCapacity.multiply(new BigDecimal("0.02")))>-1){
+
+            // 如果可用功率>=容量*0.2
+            if(ableValue.compareTo(electricCapacity.multiply(new BigDecimal("0.2")))>-1){
                 forExp = "math.pow((" + formulaParam.getSecond() + "-" + formulaParam.getThird() + ")/" + formulaParam.getSecond() + ",2)";
             }else{
-                forExp = "math.pow((" + formulaParam.getSecond() + "-" + formulaParam.getThird() + ")/" + formulaParam.getFourth() +"*"+ formulaParam.getFifth() + ",2)";
+                forExp = "math.pow((" + formulaParam.getSecond() + "-" + formulaParam.getThird() + ")/" +"("+ formulaParam.getFourth() +"*"+ formulaParam.getFifth()+")" + ",2)";
             }
             BigDecimal forResult = new BigDecimal(String.valueOf(AviatorEvaluator.execute(forExp, map)));
             sum = sum.add(forResult);

+ 18 - 12
src/main/java/com/syjy/calculate/service/AccuracyPassRateCalculateService.java

@@ -180,15 +180,29 @@ public class AccuracyPassRateCalculateService {
             return CalculateResult.error(CalculateResult.MSG_CAP_NULL);
         }
 
+        // 获取细则公式
+        CalculationFormula rulesCalculationFormula = calculationFormulaRepository.findByTypeAndProvince(CalculateResult.RULES, formulaType, province, electricType, stationCode);
+
+        // 将数据转为List Map 格式
+        List<Map<String, Object>> calculationInfoListMap = getCalculationInfoList(calculationInfoList, calculateRequest.getElectricCapacity());
+
+        if (rulesCalculationFormula == null || rulesCalculationFormula.getFormula() == null) {
+            // 未匹配到细则文件,则不进行细则校验,返回数据
+            return CalculateResult.success(calculationInfoListMap);
+        }
+
         // 循环判断实际功率/预测功率、开机容量
         for (int i = 0; i < calculationInfoList.size(); i++) {
             // 如果 实际功率/可用功率/预测功率为null 则剔除此条
             if (calculationInfoList.get(i).getAbleValue() == null || calculationInfoList.get(i).getForecastAbleValue() == null || calculationInfoList.get(i).getRealValue() == null) {
                 calculationInfoList.remove(i);
             }
-            // 如果开机容量 null 返回
-            if (calculationInfoList.get(i).getOpenCapacity() == null || calculationInfoList.get(i).getOpenCapacity().compareTo(BigDecimal.ZERO) == 0) {
-                return CalculateResult.error(CalculateResult.MSG_CAP_NULL);
+            // 如果公式中包含
+            if(rulesCalculationFormula.getRuleFormula()!=null && !"".equals(rulesCalculationFormula.getRuleFormula()) && rulesCalculationFormula.getRuleFormula().indexOf("openCapacity")>0){
+                // 如果开机容量 null 返回
+                if (calculationInfoList.get(i).getOpenCapacity() == null || calculationInfoList.get(i).getOpenCapacity().compareTo(BigDecimal.ZERO) == 0) {
+                    return CalculateResult.error(CalculateResult.MSG_CAP_NULL);
+                }
             }
 
             // 如果数据文件类型不为空,则判断数据的生成时间和文件类型不可以为空
@@ -203,15 +217,7 @@ public class AccuracyPassRateCalculateService {
             }
         }
 
-        // 将数据转为List Map 格式
-        List<Map<String, Object>> calculationInfoListMap = getCalculationInfoList(calculationInfoList, calculateRequest.getElectricCapacity());
-        // 获取细则公式
-        CalculationFormula rulesCalculationFormula = calculationFormulaRepository.findByTypeAndProvince(CalculateResult.RULES, formulaType, province, electricType, stationCode);
-        if (rulesCalculationFormula == null || rulesCalculationFormula.getFormula() == null) {
-            // 未匹配到细则文件,则不进行细则校验,返回数据
-            return CalculateResult.success(calculationInfoListMap);
-        }
-
+        // 获取公式
         String formula = rulesCalculationFormula.getFormula();
         // 初始化公式并获取缓存的公式
         String scriptName = common.initFormula(formula, calculateRequest.getProvince(), calculateRequest.getFormulaType(), calculateRequest.getElectricType(), CalculateResult.RULES);

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 3 - 118
src/main/resources/sql/t_calculation_formula.sql


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است