Переглянути джерело

单点准确率计算修改

zhangchenglong 2 роки тому
батько
коміт
d9ec43dfd8

+ 0 - 272
src/main/java/com/syjy/calculate/conotroller/Test.java

@@ -24,7 +24,6 @@ public class Test {
     @ResponseBody
     public void saveElectricField() {
 
-
         List<CalculationInfo> calculationInfoList = new ArrayList<>();
         CalculationInfo calculationInfo = new CalculationInfo();
         calculationInfo.setSj(new BigDecimal("5"));
@@ -71,279 +70,8 @@ public class Test {
         calculateRequest.setElectricType("E2");
 
         Map<String,Object> resultMap = accuracyPassRateCalculateService.calculate(calculateRequest);
-
         System.out.println("666666");
 
-        Expression exp = null;
-        //            exp = AviatorEvaluator.getInstance().compileScript("examples/aaa.av",true);
-//            Expression script = AviatorEvaluator.getInstance().compile("0M+one-(math.sqrt(sum)/rl)");
-//            Object aad = exp.execute();
-
-//        Map<String , Object> rty = new HashMap<>();
-//        rty.put("sj",new BigDecimal("10"));
-//        rty.put("yc",new BigDecimal("8"));
-//        rty.put("rl",new BigDecimal("3"));
-//        String aacc =  "sj-yc/math.sqrt(rl)";
-//        Expression script = AviatorEvaluator.getInstance().compile(aacc);
-//        Object erew = script.execute(rty);
-//        System.out.println(erew);
-
-
-
-//        CalculationInfo calculationInfo = new CalculationInfo();
-//        calculationInfo.setSj(new BigDecimal("9"));
-//
-//        BigDecimal yc = calculationInfo.getYc();
-//
-//        List<Map<String,Object>> lastList = new ArrayList<>();
-//        Map<String,Object> m1 = new HashMap<>();
-//        m1.put("sj",new BigDecimal("9"));
-//        m1.put("yc",new BigDecimal("9"));
-//        m1.put("rl",new BigDecimal("9"));
-//        m1.put("time",1662998400000L);
-//        lastList.add(m1);
-//        Map<String,Object> m2 = new HashMap<>();
-//        m2.put("sj",new BigDecimal("7"));
-//        m2.put("yc",new BigDecimal("6"));
-//        m2.put("rl",new BigDecimal("8"));
-//        m2.put("time",1662998400000L);
-//        lastList.add(m2);
-//
-//        Map<String,Object> m3 = new HashMap<>();
-//        m3.put("sj",new BigDecimal("9"));
-//        m3.put("yc",new BigDecimal("6"));
-//        m3.put("rl",new BigDecimal("10"));
-//        m3.put("time",1662999300000L);
-//        lastList.add(m3);
-//
-//        Map<String,Object> m4 = new HashMap<>();
-//        m4.put("sj",new BigDecimal("5"));
-//        m4.put("yc",new BigDecimal("4"));
-//        m4.put("rl",new BigDecimal("7"));
-//        m4.put("time",1663000200000L);
-//        lastList.add(m4);
-//
-//        Map<String,Object> m5 = new HashMap<>();
-//        m5.put("sj",new BigDecimal("7"));
-//        m5.put("yc",new BigDecimal("6"));
-//        m5.put("rl",new BigDecimal("7"));
-//        m5.put("time",1663000200000L);
-//        lastList.add(m5);
-//
-//        Map<String,Object> m6 = new HashMap<>();
-//        m6.put("sj",new BigDecimal("12"));
-//        m6.put("yc",new BigDecimal("11"));
-//        m6.put("rl",new BigDecimal("10"));
-//        m6.put("time",1663000200000L);
-//        lastList.add(m6);
-//
-//        Map<String,Object> evv = new HashMap<>();
-//        evv.put("list",lastList);
-//        evv.put("rl",new BigDecimal("10"));
-////        Object rr24 = AviatorEvaluator.execute("listToListList(list)",evv);
-////
-////        System.out.println(rr24);
-//
-//
-//        Expression exp = null;
-//        try {
-//            String aa = System.getProperty("user.dir");
-//            exp = AviatorEvaluator.getInstance().compileScript("examples/aaa.av",true);
-//            Object aad = exp.execute(evv);
-//            System.out.println(aad);
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-
-
-
-
-
-
-
-//        Date ddd = new Date();
-//        ddd.getTime();
-//
-//        long startTime = DateUtil.beginOfDay(DateTime.now()).getTime();
-//        DateTime startTime2 = DateUtil.beginOfDay(DateTime.now());
-//        long nowTime = DateTime.now().getTime();
-//
-//
-//
-//
-//
-//
-//        List<CalculationInfo> calculationInfoList = new ArrayList<>();
-//        CalculationInfo calculationInfo = new CalculationInfo();
-//        calculationInfo.setSj(new BigDecimal("5"));
-//        calculationInfo.setYc(new BigDecimal("4"));
-//        calculationInfo.setRl(new BigDecimal("4"));
-//        calculationInfoList.add(calculationInfo);
-//
-//        CalculateRequest calculateRequest = new CalculateRequest();
-//        calculateRequest.setCalculationInfoList(calculationInfoList);
-//
-//        calculateRequest.setCap(new BigDecimal("12"));
-//        calculateRequest.setFormulaType("DAY_SHORT_ACCURACY");
-//        calculateRequest.setProvince("E99");
-//        calculateRequest.setElectricType("E2");
-//        Map<String,Object> result23 = new HashMap<>();
-//        result23 = accuracyPassRateCalculateService.calculate(calculateRequest);
-//
-//
-//        CalculateResult aa = CalculateResult.error();
-//        String cc = CalculateResult.Type.SUCCESS.value();
-//
-//
-//        Map<String,Object> q1 = new HashMap<>();
-//
-//        Map<String,BigDecimal> q2 = new HashMap<>();
-//        q2.put("aa",new BigDecimal("10"));
-//        q2.put("bb",new BigDecimal("7"));
-//
-//        q1.put("dd",q2);
-//
-//        Map<String,Object> q3 = (Map<String,Object>)q1.get("dd");
-//
-//        Object tr = AviatorEvaluator.execute("math.abs((aa-bb)/bb)",q3);
-//
-//
-//        Map<String,Object> mqww = new HashMap<>();
-//        mqww.put("sj",new BigDecimal("5"));
-//        mqww.put("yc",new BigDecimal("8"));
-//        Object rr24 = AviatorEvaluator.execute("differenceAbsolute(sj,yc)",mqww);
-//
-//
-//        Expression exp = null;
-//        try {
-//            exp = AviatorEvaluator.getInstance().compileScript("examples/hello.av",true);
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-//
-//        List<Map<String,BigDecimal>> listMap = new ArrayList<>();
-//        Map<String,BigDecimal> mq = new HashMap<>();
-//        mq.put("sj",new BigDecimal("8"));
-//        mq.put("yc",new BigDecimal("6"));
-//        mq.put("rl",new BigDecimal("11"));
-//        listMap.add(mq);
-//
-//        Map<String,BigDecimal> mq1 = new HashMap<>();
-//        mq1.put("sj",new BigDecimal("9"));
-//        mq1.put("yc",new BigDecimal("8"));
-//        mq1.put("rl",new BigDecimal("11"));
-//        listMap.add(mq1);
-//
-//        Map<String,Object> tM = new HashMap<>();
-//
-//        tM.put("list",listMap);
-//        tM.put("rl",new BigDecimal("10"));
-//
-//
-//        Object result = null;
-//        try {
-//            result = exp.execute(tM);
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//        }
-//
-//        System.out.println(result);
-//        //注册函数
-//        AviatorEvaluator.addFunction(new SumFunction());
-//        Map<String, Object> m66 = new HashMap<>();
-//        m66.put("a",new BigDecimal("12"));
-//        m66.put("b",new BigDecimal("13"));
-//        System.out.println(AviatorEvaluator.execute("sum(a, b)",m66));           // 3.0
-//
-//        // Compile the script into a Expression instance.
-//        exp = null;
-//        try {
-//            exp = AviatorEvaluator.getInstance().compileScript("examples/hello.av",true);
-//
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//        }
-//
-////        // 文本存在数据库中的时候
-////        Expression script = AviatorEvaluator.getInstance().compile("name","println('Hello, AviatorScript!');",true);
-//        Map<String, Object> testMap = new HashMap<>();
-//        List<Map<String,BigDecimal>> list = new ArrayList<>();
-//        Map<String,BigDecimal> m1 = new HashMap<String,BigDecimal>();
-//        m1.put("sj",new BigDecimal("8"));
-//        m1.put("yc",new BigDecimal("7"));
-//        m1.put("rl",new BigDecimal("10"));
-//        list.add(m1);
-//        Map<String,BigDecimal> m2 = new HashMap<String,BigDecimal>();
-//        m2.put("sj",new BigDecimal("5"));
-//        m2.put("yc",new BigDecimal("6"));
-//        m2.put("rl",new BigDecimal("10"));
-//        list.add(m2);
-//        Map<String,BigDecimal> m3 = new HashMap<String,BigDecimal>();
-//        m3.put("sj",new BigDecimal("6"));
-//        m3.put("yc",new BigDecimal("9"));
-//        m3.put("rl",new BigDecimal("10"));
-//        list.add(m3);
-//
-//        testMap.put("list",list);
-//
-//        result = exp.execute(testMap);
-//
-//        // 测试数据组装
-//        JSONArray powerData = new JSONArray();
-//        JSONObject dataText = new JSONObject();
-//
-//        String aa = dataText.getString(null);
-//
-//        if(aa == null){
-//            System.out.println("1111111");
-//        }
-//
-//        dataText.put("sj", new BigDecimal(8));
-//        dataText.put("yc", new BigDecimal(7));
-//        powerData.add(dataText);
-//        dataText = new JSONObject();
-//        dataText.put("sj", new BigDecimal(9));
-//        dataText.put("yc", new BigDecimal(7));
-//        powerData.add(dataText);
-//
-//        dataText = new JSONObject();
-//        dataText.put("sj", new BigDecimal(5));
-//        dataText.put("yc", new BigDecimal(6));
-//        powerData.add(dataText);
-//
-//        dataText = new JSONObject();
-//        dataText.put("sj", new BigDecimal(8));
-//        dataText.put("yc", new BigDecimal(10));
-//        powerData.add(dataText);
-//
-//        Map<String, Object> env = new HashMap<String, Object>();
-//        env.put("powerData",powerData);
-//
-//        Map<String, Object> map1 = new HashMap<>();
-//        List<Map<String,Object>> list1 = new ArrayList<>();
-//        Map<String, Object> map2 = new HashMap<>();
-//        map2.put("sj",new BigDecimal(8));
-//        map2.put("yc",new BigDecimal(7));
-//        list1.add(map2);
-//        Map<String, Object> map3 = new HashMap<>();
-//        map3.put("sj",new BigDecimal(8));
-//        map3.put("yc",new BigDecimal(6));
-//        list1.add(map3);
-//        map1.put("list1",list1);
-//
-//
-//        BigDecimal rl = new BigDecimal("10");
-//        String provinceEnum = "E51";
-//        String type = "MAE";
-//        String electricType = "E1";
-//        // 计算
-//        JSONObject jsonResult = accuracyPassRateCalculateService.calculate(powerData, rl, provinceEnum, type,electricType);
-//        // 计算结果
-//        String reslut = jsonResult.getString("reslut");
-//        String accuracy = "";
-//        if ("success".equals(reslut)) {
-//            accuracy = jsonResult.getString("value");
-//        }
     }
 
     @RequestMapping("testExportSql")

+ 2 - 1
src/main/java/com/syjy/calculate/function/PointS.java

@@ -26,7 +26,8 @@ public class PointS extends AbstractFunction {
         // 循环集合
         for (Object obj : seq) {
             Map<String, Object> map = (Map<String, Object>) obj;
-            result = (BigDecimal) AviatorEvaluator.execute("math.abs((sj-yc)/yc)",map);
+            result = (BigDecimal) AviatorEvaluator.execute("1-math.abs((sj-yc)/yc)",map);
+            break;
         }
         return new AviatorDecimal(result);
     }