浏览代码

Merge remote-tracking branch 'origin/master'

全业务考评 1 年之前
父节点
当前提交
85a71c036d

+ 1 - 1
power-fitting-JN/src/main/java/com.gyee.power.fitting/controller/newfj/NewDataFittingController.java

@@ -29,7 +29,7 @@ public class NewDataFittingController {
      * @param newDataFittingVo
      * @return
      */
-    @GetMapping("/data")
+    @PostMapping("/data")
     public JSONObject dataFitting(@RequestBody NewDataFittingVo newDataFittingVo ) {
 
         ProEconPowerFittingAnalySis obj = newDataFittingService.newDataFitting(newDataFittingVo);

+ 25 - 8
power-fitting-JN/src/main/java/com.gyee.power.fitting/service/custom/curve/NewDataFittingService.java

@@ -68,6 +68,7 @@ public class NewDataFittingService {
 
         //1.数据获取
         List<String> wtIds = Arrays.asList(vo.getWtIds().split(","));
+        deleteDir(config.getFilePathPrepare());
         for (int k = 0; k < wtIds.size(); k++) {
             String wt = wtIds.get(k);
             List<List<TsDoubleData>> result = new ArrayList<>();
@@ -92,8 +93,9 @@ public class NewDataFittingService {
                 String content = prepareAssemble(result);
                 // 处理的数据保存在本地
                 String wtCode = InitialRunner.wtNewMap.get(wt).getId();
+                String wtCode2 = InitialRunner.wtNewMap.get(wt).getNemCode();
                 String fileName = config.getFilePathPrepare() + vo.getStation() + "_" + wtCode + "_" + System.currentTimeMillis() / 1000 + ".csv";
-                deleteDir(config.getFilePathPrepare());
+
                 boolean flag = FileUtil.writeFile(fileName, content);
 
                 if (flag){  // TODO  保存数据库
@@ -101,7 +103,7 @@ public class NewDataFittingService {
                     obj.setStation(vo.getStation());
                     obj.setStationcn(InitialRunner.stationNewMap.get(vo.getStation()));
                     obj.setWindturbineId(wt);
-                    obj.setCode(wtCode);
+                    obj.setCode(wtCode2);
                     obj.setTime(DateUtil.format(vo.getSt(), DateUtil.YYYY_MM_DD_CHN) + "-" + DateUtil.format(vo.getEt(), DateUtil.YYYY_MM_DD_CHN));
                     obj.setInterval(NumberUtil.toNum(vo.getInterval()));
                     obj.setPath(fileName);
@@ -122,6 +124,7 @@ public class NewDataFittingService {
         //2.数据筛选
 
         try {
+            deleteDir(config.getFilePathProcess());
             for (String key : prepareMap.keySet()){
 
                 ProEconPowerFittingAnalySis obj = proEconPowerFittingAnalySisService.getById(key);
@@ -147,6 +150,7 @@ public class NewDataFittingService {
                 boolean flag = FileUtil.writeFile(fileName, content);
 
                 if (flag) {  // TODO  保存数据库
+                    obj.setId(null);
                     obj.setPath(fileName);
                     obj.setFrequency(frequency);
                     obj.setSpeedavg(speed);
@@ -163,7 +167,7 @@ public class NewDataFittingService {
         //3.数据拟合
 
         AtomicReference<ProEconPowerFittingAnalySis> object = new AtomicReference<>();
-
+        deleteDir(config.getFilePathFitting());
         if (vo.getMode() == 0){  //单台拟合
             for (String processkey : processMap.keySet()){
                 List<ProEconPowerFittingAnalySis> list = proEconPowerFittingAnalySisService.selectListByIds(processkey);
@@ -171,7 +175,7 @@ public class NewDataFittingService {
                 List<Double> arrayPower = new ArrayList<>();
                 List<String> line = FileUtil.readFile(processMap.get(processkey), true);
                 csvParse(line, arraySpeed, arrayPower, vo.getMins(), vo.getMaxs(), vo.getMinp(), vo.getMaxp());
-                List<ProBasicModelPower> mp = InitialRunner.modelPowerDetailNewMap.get(InitialRunner.wtNewMap.get(processkey).getModelId());
+                List<ProBasicModelPower> mp = InitialRunner.modelPowerDetailNewMap.get(InitialRunner.wtNewMap.get(list.get(0).getWindturbineId()).getModelId());
                 Double maxP = mp.stream().map(ProBasicModelPower::getEnsurePower).max(Comparator.comparing(Double::doubleValue)).get();
                 object.set(fittingMode(list, maxP, arraySpeed, arrayPower, vo.getDimension(), vo.getMode()));
 
@@ -182,14 +186,19 @@ public class NewDataFittingService {
             AtomicReference<Double> maxP = new AtomicReference<>(0.0);
             List<Double> arraySpeed = new ArrayList<>();
             List<Double> arrayPower = new ArrayList<>();
+            StringBuffer ids = new StringBuffer();
             for (String processkey : processMap.keySet()){
+                ids.append(processkey).append(",");
+                ProEconPowerFittingAnalySis fittingAnalySis = proEconPowerFittingAnalySisService.getById(processkey);
                 List<String> line = FileUtil.readFile(processMap.get(processkey), true);
                 csvParse(line, arraySpeed, arrayPower, vo.getMins(), vo.getMaxs(), vo.getMinp(), vo.getMaxp());
-                List<ProBasicModelPower> mp = InitialRunner.modelPowerDetailNewMap.get(InitialRunner.wtNewMap.get(processkey).getModelId());
+                List<ProBasicModelPower> mp = InitialRunner.modelPowerDetailNewMap.get(InitialRunner.wtNewMap.get(fittingAnalySis.getWindturbineId()).getModelId());
                 Double maxPower = mp.stream().map(ProBasicModelPower::getEnsurePower).max(Comparator.comparing(Double::doubleValue)).get();
                 if (maxPower > maxP.get()) maxP.set(maxPower);
             }
-//            object.set(fittingMode(list, maxP.get(), arraySpeed, arrayPower, dimension, mode));
+            List<ProEconPowerFittingAnalySis> list = proEconPowerFittingAnalySisService.selectListByIds(ids.toString());
+
+            object.set(fittingMode(list, maxP.get(), arraySpeed, arrayPower, vo.getDimension(), vo.getMode()));
         }
         if (vo.getMode() == 2){  //同名拟合(暂时不支持)
 ////            List<ProEconPowerFittingAnalySis> list = powerService.selectListByIds(ids);
@@ -297,7 +306,7 @@ public class NewDataFittingService {
         map.put("sjgl", sjglList);    //实际功率
         map.put("llgl", bzglList);    //保证功率
         map.put("cpz", cpzList);      //Cp值
-        map.put("obj", obj);     //对象
+        map.put("obj", obj);     //对w
         map.put("yyd", listYY);  //有用散点
         map.put("wyd", listWY);  //无用散点
 
@@ -376,7 +385,14 @@ public class NewDataFittingService {
             sb.append(DateUtil.format(data.get(i).getTs(), DateUtil.DATE_TIME_PATTERN)).append(",");
             sb.append(data.get(i).getDoubleValue()).append(",");
             for (int j = 1; j < list.size(); j++){
-                sb.append(list.get(j).get(i).getDoubleValue()).append(",");
+
+                //
+                if(null != list.get(j) && list.get(j).size()>0){
+                    sb.append(list.get(j).get(i).getDoubleValue()).append(",");
+                }else {
+                    sb.append(0).append(",");
+                }
+
             }
             sb.deleteCharAt(sb.lastIndexOf(","));
             sb.append("\n");
@@ -466,6 +482,7 @@ public class NewDataFittingService {
         }
         boolean flag = FileUtil.writeFile(fileName, content);
         if (flag) {  // TODO  保存数据库
+            obj.setId(null);
             obj.setPath(fileName);
             obj.setProcessid(processId);
             obj.setCpavg(lf.getCpAvg());