Преглед на файлове

对标管理改造,除单机横向

xieshengjie преди 3 години
родител
ревизия
8563aaaf0d
променени са 49 файла, в които са добавени 5087 реда и са изтрити 159 реда
  1. 11 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/config/AjaxStatus.java
  2. 3 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/contant/Contant.java
  3. 136 54
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/BenchmarkingController.java
  4. 200 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/CompareController.java
  5. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/BenchmarkingbetweenController.java
  6. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/DutyscheduleController.java
  7. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/OperationrecordController.java
  8. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbineanalysisdayController.java
  9. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbinecurvefittingController.java
  10. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbinecurvefittingmonthController.java
  11. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbinethewindinfoController.java
  12. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/init/CacheContext.java
  13. 23 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/BenchmarkingbetweenMapper.java
  14. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/DutyscheduleMapper.java
  15. 22 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/OperationrecordMapper.java
  16. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbineanalysisdayMapper.java
  17. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbinecurvefittingMapper.java
  18. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbinecurvefittingmonthMapper.java
  19. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbinethewindinfoMapper.java
  20. 76 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Benchmarkingbetween.java
  21. 45 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Dutyschedule.java
  22. 45 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Operationrecord.java
  23. 217 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbineanalysisday.java
  24. 50 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbinecurvefitting.java
  25. 50 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbinecurvefittingmonth.java
  26. 929 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbinethewindinfo.java
  27. 355 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/DataVo.java
  28. 67 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/GoodCompareVo.java
  29. 18 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/OpeVo.java
  30. 32 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/Operation.java
  31. 70 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/ValueVo.java
  32. 345 99
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/BenchmarkingService.java
  33. 1855 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/CompareService.java
  34. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IBenchmarkingbetweenService.java
  35. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IDutyscheduleService.java
  36. 19 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IOperationrecordService.java
  37. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbineanalysisdayService.java
  38. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbinecurvefittingService.java
  39. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbinecurvefittingmonthService.java
  40. 16 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbinethewindinfoService.java
  41. 30 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/BenchmarkingbetweenServiceImpl.java
  42. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/DutyscheduleServiceImpl.java
  43. 30 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/OperationrecordServiceImpl.java
  44. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbineanalysisdayServiceImpl.java
  45. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbinecurvefittingServiceImpl.java
  46. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbinecurvefittingmonthServiceImpl.java
  47. 20 0
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbinethewindinfoServiceImpl.java
  48. 18 4
      benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/task/SaticScheduleTask.java
  49. 5 2
      benchmarking-impala/src/test/java/com/gyee/benchmarkingimpala/BenchmarkingImpalaApplicationTests.java

+ 11 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/config/AjaxStatus.java

@@ -0,0 +1,11 @@
+package com.gyee.benchmarkingimpala.config;
+
+public enum AjaxStatus {
+    success(200),
+    error(500),
+    logineroor(501);
+    public int code;
+    AjaxStatus(int c) {
+        code = c;
+    }
+}

+ 3 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/contant/Contant.java

@@ -11,4 +11,7 @@ public class Contant {
 
     public static String WXSS = "RFDL,AI022,RDJSSDL-ZS,RSTSSDL-ZS,RXNSSDL-ZS,RQXSSDL-ZS,RGZSSDL-ZS,NSZSSDL-ZS,RJXSSDL-ZS,RLZSSDL-ZS,RQFSSDL-ZS,RXDSSDL-ZS,RWZSSDL-ZS,RTZSSDL-ZS";
 
+    public static String opePoints = "CI0668,CI0669,CI0670";
+
+    public static String benchPoints = "RSDJZSDL,RSSTZSDL,RXNZSDL,RSQXZSDL,RGZZSDL,RSZZSDL,RJXZSDL,RLZZSDL,RQFZSDL,RXDZSDL,RWZZSDL,RTZZSDL";
 }

+ 136 - 54
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/BenchmarkingController.java

@@ -3,11 +3,10 @@ package com.gyee.benchmarkingimpala.controller;
 
 import com.gyee.benchmarkingimpala.common.StringUtils;
 import com.gyee.benchmarkingimpala.config.R;
-import com.gyee.benchmarkingimpala.model.auto.Line;
-import com.gyee.benchmarkingimpala.model.auto.Project;
-import com.gyee.benchmarkingimpala.model.auto.Windpowerstation;
+import com.gyee.benchmarkingimpala.model.auto.*;
 import com.gyee.benchmarkingimpala.model.vo.FjjxbVo;
 import com.gyee.benchmarkingimpala.model.vo.FjjxbmxVo;
+import com.gyee.benchmarkingimpala.model.vo.Operation;
 import com.gyee.benchmarkingimpala.model.vo.WxsslVo;
 import com.gyee.benchmarkingimpala.service.BenchmarkingService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -209,55 +208,138 @@ public class BenchmarkingController {
         }
     }
 
-//    /**
-//     * 项目对标
-//     * @param wpids
-//     * @param projectids
-//     * @param beginDate
-//     * @param endDate
-//     * @return
-//     */
-//    @GetMapping("/xmdb")
-//    @ResponseBody
-//    @CrossOrigin(origins = "*", maxAge = 3600)
-//    public R xmdb(@RequestParam(value = "wpids",required = true) String wpids,
-//                  @RequestParam(value = "projectids",required = true) String projectids,
-//                  @RequestParam(value = "beginDate",required = true) String beginDate,
-//                  @RequestParam(value = "endDate",required = true) String endDate
-//    ){
-//        List<WxsslVo> resultList = benchmarkingService.xmdb(wpids,projectids,beginDate,endDate);
-//
-//        if (StringUtils.isNotNull(resultList)) {
-//            return R.ok().data(resultList);
-//        }else{
-//            return R.error().message("访问失败");
-//        }
-//    }
-//
-//    /**
-//     * 线路对标
-//     * @param wpids
-//     * @param projectids
-//     * @param lineids
-//     * @param beginDate
-//     * @param endDate
-//     * @return
-//     */
-//    @GetMapping("/xldb")
-//    @ResponseBody
-//    @CrossOrigin(origins = "*", maxAge = 3600)
-//    public R xldb(@RequestParam(value = "wpids",required = true) String wpids,
-//                  @RequestParam(value = "projectids",required = true) String projectids,
-//                  @RequestParam(value = "lineids",required = true) String lineids,
-//                  @RequestParam(value = "beginDate",required = true) String beginDate,
-//                  @RequestParam(value = "endDate",required = true) String endDate
-//    ){
-//        List<WxsslVo> resultList = benchmarkingService.xldb(wpids,projectids,lineids,beginDate,endDate);
-//
-//        if (StringUtils.isNotNull(resultList)) {
-//            return R.ok().data(resultList);
-//        }else{
-//            return R.error().message("访问失败");
-//        }
-//    }
+    /**
+     * 项目对标
+     * @param wpids
+     * @param projectids
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/xmdb")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R xmdb(@RequestParam(value = "wpids",required = true) String wpids,
+                  @RequestParam(value = "projectids",required = true) String projectids,
+                  @RequestParam(value = "beginDate",required = true) String beginDate,
+                  @RequestParam(value = "endDate",required = true) String endDate
+    ){
+        List<WxsslVo> resultList = benchmarkingService.xmdb(wpids,projectids,beginDate,endDate);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.ok(resultList.size()).data(resultList);
+        }else{
+            return R.error().message("访问失败");
+        }
+    }
+
+    /**
+     * 线路对标
+     * @param wpids
+     * @param projectids
+     * @param lineids
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/xldb")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R xldb(@RequestParam(value = "wpids",required = true) String wpids,
+                  @RequestParam(value = "projectids",required = true) String projectids,
+                  @RequestParam(value = "lineids",required = true) String lineids,
+                  @RequestParam(value = "beginDate",required = true) String beginDate,
+                  @RequestParam(value = "endDate",required = true) String endDate
+    ){
+        List<WxsslVo> resultList = benchmarkingService.xldb(wpids,projectids,lineids,beginDate,endDate);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.ok(resultList.size()).data(resultList);
+        }else{
+            return R.error().message("访问失败");
+        }
+    }
+
+    /**
+     * 值际操作指令list
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/zjlist")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R listplus(@RequestParam(value = "beginDate",required = true)String beginDate,
+                                    @RequestParam(value = "endDate",required = true)String endDate){
+        List<Operation> resultList =  benchmarkingService.findOperecords(beginDate,endDate);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.ok(resultList.size()).data(resultList);
+        }else{
+            return R.error().message("访问失败");
+        }
+    }
+
+    /**
+     * 值际点击钻取
+     * @param beginDate
+     * @param endDate
+     * @param dutyname
+     * @param direct
+     * @return
+     */
+    @GetMapping("/zjdrill")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R zjdrill(@RequestParam(value = "beginDate",required = true)String beginDate,
+                                           @RequestParam(value = "endDate",required = true)String endDate,
+                                           @RequestParam(value = "dutyname",required = true)String dutyname,
+                                           @RequestParam(value = "direct",required = true)String direct){
+        List<Operationrecord> resultList = benchmarkingService.drillOperecords(beginDate, endDate, dutyname, direct);
+        if (StringUtils.isNotNull(resultList)) {
+            return R.ok(resultList.size()).data(resultList);
+        }else{
+            return R.error().message("访问失败");
+        }
+    }
+
+    /**
+     * 值际损失电量
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/zjwxssl")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R zjwxssl(@RequestParam(value = "beginDate",required = true)String beginDate,
+                                          @RequestParam(value = "endDate",required = true)String endDate){
+        List<Benchmarkingbetween> resultList =  benchmarkingService.findbenchlist(beginDate,endDate);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.ok(resultList.size()).data(resultList);
+        }else{
+            return R.error().message("访问失败");
+        }
+    }
+
+    /**
+     * 对标页面详情
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    @GetMapping("/details")
+    @ResponseBody
+    @CrossOrigin(origins = "*", maxAge = 3600)
+    public R details(@RequestParam(value = "id",required = true)String id,
+                  @RequestParam(value = "beginDate",required = true)String beginDate,
+                  @RequestParam(value = "endDate",required = true)String endDate){
+        List<WxsslVo> resultList =  benchmarkingService.details(id,beginDate,endDate);
+
+        if (StringUtils.isNotNull(resultList)) {
+            return R.ok(resultList.size()).data(resultList);
+        }else{
+            return R.error().message("访问失败");
+        }
+    }
 }

+ 200 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/CompareController.java

@@ -0,0 +1,200 @@
+//package com.gyee.benchmarkingimpala.controller;
+//
+//
+//import com.gyee.benchmarkingimpala.common.StringUtils;
+//import com.gyee.benchmarkingimpala.config.AjaxResult;
+//import com.gyee.benchmarkingimpala.util.DateUtils;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiImplicitParam;
+//import io.swagger.annotations.ApiImplicitParams;
+//import io.swagger.annotations.ApiOperation;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.web.bind.annotation.GetMapping;
+//import org.springframework.web.bind.annotation.RequestMapping;
+//import org.springframework.web.bind.annotation.ResponseBody;
+//
+//import javax.annotation.Resource;
+//import java.util.Date;
+//
+//@Controller
+//@RequestMapping("/compare")
+//@Api(value = "单机横向对比功能",tags =  "单机横向对比功能")
+//public class CompareController {
+//    @Resource
+//    private CompareService compareService;
+//
+//    /**查询日横向对比列表**/
+//    @GetMapping("/compareDayList")
+//    @ResponseBody
+//    @ApiOperation(value = "查询日横向对比列表", notes = "查询日横向对比列表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult compareDayList(String windturbineid, String recorddate) {
+//
+//
+//        AjaxResult ajaxResult=compareService.compareDayList(windturbineid, DateUtils.parseDate(recorddate)) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /**创建日风资源图表**/
+//    @GetMapping("/fzyDay")
+//    @ResponseBody
+//    @ApiOperation(value = "创建日风资源图表", notes = "创建日风资源图表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult fzyDay(String windturbineid,String recorddate) {
+//
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//        AjaxResult ajaxResult=compareService.fzyDay(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /**查询日横向对比下方图表**/
+//    @GetMapping("/compareDayChat")
+//    @ResponseBody
+//    @ApiOperation(value = "查询日横向对比下方图表", notes = "查询日横向对比下方图表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult compareDayChat(String windturbineid,String recorddate) {
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//
+//        AjaxResult ajaxResult=compareService.compareDayChat(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /***********************************************************************************************************************/
+//
+//    /**查询月横向对比列表**/
+//    @GetMapping("/compareMonthList")
+//    @ResponseBody
+//    @ApiOperation(value = "查询月横向对比列表", notes = "查询月横向对比列表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult compareMonthList(String windturbineid,String recorddate) {
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//
+//        AjaxResult ajaxResult=compareService.compareMonthList(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /**创建月风资源图表**/
+//    @GetMapping("/fzyMonth")
+//    @ResponseBody
+//    @ApiOperation(value = "创建月风资源图表", notes = "创建月风资源图表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult fzyMonth(String windturbineid,String recorddate) {
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//
+//        AjaxResult ajaxResult=compareService.fzyMonth(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /**查询月横向对比下方图表**/
+//    @GetMapping("/compareMonthChat")
+//    @ResponseBody
+//    @ApiOperation(value = "查询月横向对比下方图表", notes = "查询月横向对比下方图表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult compareMonthChat(String windturbineid,String recorddate) {
+//
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//        AjaxResult ajaxResult=compareService.compareMonthChat(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//
+//
+//    /***********************************************************************************************************************/
+//
+//    /**查询年横向对比列表**/
+//    @GetMapping("/compareYearList")
+//    @ResponseBody
+//    @ApiOperation(value = "查询年横向对比列表", notes = "查询年横向对比列表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult compareYearList(String windturbineid,String recorddate) {
+//
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//        AjaxResult ajaxResult=compareService.compareYearList(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /**创建年风资源图表**/
+//    @GetMapping("/fzyYear")
+//    @ResponseBody
+//    @ApiOperation(value = "创建年风资源图表", notes = "创建年风资源图表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult fzyYear(String windturbineid,String recorddate) {
+//
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//        AjaxResult ajaxResult=compareService.fzyYear(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//    /**查询年横向对比下方图表**/
+//    @GetMapping("/compareYearChat")
+//    @ResponseBody
+//    @ApiOperation(value = "查询年横向对比下方图表", notes = "查询年横向对比下方图表")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "windturbineid", value = "风场编号", required = true, dataType = "string", paramType = "query"),
+//            @ApiImplicitParam(name = "recorddate", value = "日期", required = true, dataType = "string", paramType = "query")})
+//    public AjaxResult compareYearChat(String windturbineid,String recorddate) {
+//        Date beginDate_d=null;
+//        if (StringUtils.isNotEmpty(recorddate))
+//        {
+//            beginDate_d= DateUtils.parseDate(recorddate);
+//        }
+//
+//        AjaxResult ajaxResult=compareService.compareYearChat(windturbineid,beginDate_d) ;
+//
+//        return ajaxResult;
+//
+//    }
+//
+//}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/BenchmarkingbetweenController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//benchmarkingbetween")
+public class BenchmarkingbetweenController {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/DutyscheduleController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//dutyschedule")
+public class DutyscheduleController {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/OperationrecordController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//operationrecord")
+public class OperationrecordController {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbineanalysisdayController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//windturbineanalysisday")
+public class WindturbineanalysisdayController {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbinecurvefittingController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//windturbinecurvefitting")
+public class WindturbinecurvefittingController {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbinecurvefittingmonthController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//windturbinecurvefittingmonth")
+public class WindturbinecurvefittingmonthController {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/controller/auto/WindturbinethewindinfoController.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.controller.auto;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@RestController
+@RequestMapping("//windturbinethewindinfo")
+public class WindturbinethewindinfoController {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/init/CacheContext.java

@@ -36,6 +36,8 @@ public class CacheContext implements CommandLineRunner {
     private ILineService lineService;
     @Autowired
     private IWindturbinetestingpointai2Service windturbineTestingAi2Service;
+    @Autowired
+    private IWindpowerstationtestingpoint2Service windpowerstationtestingpoint2Service;
 
     public static Map<String, List<Windturbine>> wtmap = new HashMap<>();
 
@@ -49,6 +51,8 @@ public class CacheContext implements CommandLineRunner {
 
     public static Map<String, Map<String, Windturbinetestingpointai2>> wtpAimap = new HashMap<>();// 风电机测点AI表
 
+    public static Map<String,Map<String, Windpowerstationtestingpoint2>> wppointmap =new HashMap<>();
+
     public static List<Project> projects = new ArrayList<>();
 
     public static List<Line> lines = new ArrayList<>();
@@ -96,6 +100,18 @@ public class CacheContext implements CommandLineRunner {
             }
         }
 
+
+        List<Windpowerstationtestingpoint2> wplist = windpowerstationtestingpoint2Service.list();
+        for (Windpowerstationtestingpoint2 windpowerstationtestingpoint2 : wplist) {
+            if (wppointmap.containsKey(windpowerstationtestingpoint2.getWindpowerstationid())){
+                wppointmap.get(windpowerstationtestingpoint2.getWindpowerstationid()).put(windpowerstationtestingpoint2.getUniformcode(),windpowerstationtestingpoint2);
+            }else{
+                Map<String,Windpowerstationtestingpoint2> wpmap = new HashMap<>();
+                wpmap.put(windpowerstationtestingpoint2.getUniformcode(),windpowerstationtestingpoint2);
+                wppointmap.put(windpowerstationtestingpoint2.getWindpowerstationid(),wpmap);
+            }
+        }
+
         log.info("-------------------------------缓存结束--------------------------------------");
     }
 }

+ 23 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/BenchmarkingbetweenMapper.java

@@ -0,0 +1,23 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Benchmarkingbetween;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface BenchmarkingbetweenMapper extends BaseMapper<Benchmarkingbetween> {
+    @Select("select dutyname,sum(theoreticalgeneratity) theoreticalgeneratity,sum(generatity) generatity,sum(faultloss) faultloss,sum(mainloss) mainloss,sum(performanceloss) performanceloss,sum(rationingloss) rationingloss,sum(involvesloss) involvesloss from benchmarkingbetween where theday>=#{begin} and theday <=#{end} group by dutyname ")
+    public List<Benchmarkingbetween> findByBeginAndEnd(@Param(value = "begin")Date begin, @Param(value = "end")Date end);
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/DutyscheduleMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Dutyschedule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface DutyscheduleMapper extends BaseMapper<Dutyschedule> {
+
+}

+ 22 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/OperationrecordMapper.java

@@ -0,0 +1,22 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Operationrecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface OperationrecordMapper extends BaseMapper<Operationrecord> {
+    @Select("select * from operationrecord where time>=#{begin} and time <=#{end} ")
+    public List<Operationrecord> listByBeginAndEnd(@Param(value = "begin") Date begin, @Param(value = "end")Date end);
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbineanalysisdayMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbineanalysisday;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface WindturbineanalysisdayMapper extends BaseMapper<Windturbineanalysisday> {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbinecurvefittingMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinecurvefitting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface WindturbinecurvefittingMapper extends BaseMapper<Windturbinecurvefitting> {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbinecurvefittingmonthMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinecurvefittingmonth;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface WindturbinecurvefittingmonthMapper extends BaseMapper<Windturbinecurvefittingmonth> {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/mapper/auto/WindturbinethewindinfoMapper.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.mapper.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinethewindinfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface WindturbinethewindinfoMapper extends BaseMapper<Windturbinethewindinfo> {
+
+}

+ 76 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Benchmarkingbetween.java

@@ -0,0 +1,76 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("BENCHMARKINGBETWEEN")
+public class Benchmarkingbetween extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Double id;
+
+    @TableField("DUTYNAME")
+    private String dutyname;
+
+    @TableField("THEDAY")
+    private Date theday;
+
+    @TableField("THEORETICALGENERATITY")
+    private Double theoreticalgeneratity;
+
+    @TableField("GENERATITY")
+    private Double generatity;
+
+    @TableField("FAULTLOSS")
+    private Double faultloss;
+
+    @TableField("FAULTRATE")
+    private Double faultrate;
+
+    @TableField("MAINLOSS")
+    private Double mainloss;
+
+    @TableField("MAINRATE")
+    private Double mainrate;
+
+    @TableField("PERFORMANCELOSS")
+    private Double performanceloss;
+
+    @TableField("PERFORMANCERATE")
+    private Double performancerate;
+
+    @TableField("RATIONINGLOSS")
+    private Double rationingloss;
+
+    @TableField("RATIONINGRATE")
+    private Double rationingrate;
+
+    @TableField("INVOLVESLOSS")
+    private Double involvesloss;
+
+    @TableField("INVOLVESRATE")
+    private Double involvesrate;
+
+    @TableField("FNLYL")
+    private Double fnlyl;
+
+
+}

+ 45 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Dutyschedule.java

@@ -0,0 +1,45 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("DUTYSCHEDULE")
+public class Dutyschedule extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private BigDecimal id;
+
+    @TableField("NAME")
+    private String name;
+
+    @TableField("BEGIN")
+    private String begin;
+
+    @TableField("END")
+    private String end;
+
+    @TableField("CREATEDATE")
+    private Date createdate;
+
+
+}

+ 45 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Operationrecord.java

@@ -0,0 +1,45 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("OPERATIONRECORD")
+public class Operationrecord extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Long id;
+
+    @TableField("DUTYNAME")
+    private String dutyname;
+
+    @TableField("WTID")
+    private String wtid;
+
+    @TableField("TIME")
+    private Date time;
+
+    @TableField("VALUE")
+    private Double value;
+
+
+}

+ 217 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbineanalysisday.java

@@ -0,0 +1,217 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("WINDTURBINEANALYSISDAY")
+public class Windturbineanalysisday extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private BigDecimal id;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("RECORDDATE")
+    private LocalDateTime recorddate;
+
+    @TableField("C1")
+    private BigDecimal c1;
+
+    @TableField("C2")
+    private BigDecimal c2;
+
+    @TableField("C3")
+    private BigDecimal c3;
+
+    @TableField("C4")
+    private BigDecimal c4;
+
+    @TableField("C5")
+    private BigDecimal c5;
+
+    @TableField("C6")
+    private BigDecimal c6;
+
+    @TableField("C7")
+    private BigDecimal c7;
+
+    @TableField("C8")
+    private BigDecimal c8;
+
+    @TableField("C9")
+    private BigDecimal c9;
+
+    @TableField("C10")
+    private BigDecimal c10;
+
+    @TableField("C11")
+    private BigDecimal c11;
+
+    @TableField("C12")
+    private BigDecimal c12;
+
+    @TableField("C13")
+    private BigDecimal c13;
+
+    @TableField("C14")
+    private BigDecimal c14;
+
+    @TableField("C15")
+    private BigDecimal c15;
+
+    @TableField("C16")
+    private BigDecimal c16;
+
+    @TableField("C17")
+    private BigDecimal c17;
+
+    @TableField("C18")
+    private BigDecimal c18;
+
+    @TableField("C19")
+    private BigDecimal c19;
+
+    @TableField("C20")
+    private BigDecimal c20;
+
+    @TableField("C21")
+    private BigDecimal c21;
+
+    @TableField("C22")
+    private BigDecimal c22;
+
+    @TableField("C23")
+    private BigDecimal c23;
+
+    @TableField("C24")
+    private BigDecimal c24;
+
+    @TableField("C25")
+    private BigDecimal c25;
+
+    @TableField("C26")
+    private BigDecimal c26;
+
+    @TableField("C27")
+    private BigDecimal c27;
+
+    @TableField("C28")
+    private BigDecimal c28;
+
+    @TableField("C29")
+    private BigDecimal c29;
+
+    @TableField("C30")
+    private BigDecimal c30;
+
+    @TableField("C31")
+    private BigDecimal c31;
+
+    @TableField("C32")
+    private BigDecimal c32;
+
+    @TableField("C33")
+    private BigDecimal c33;
+
+    @TableField("C34")
+    private BigDecimal c34;
+
+    @TableField("C35")
+    private BigDecimal c35;
+
+    @TableField("C36")
+    private BigDecimal c36;
+
+    @TableField("C37")
+    private BigDecimal c37;
+
+    @TableField("C38")
+    private BigDecimal c38;
+
+    @TableField("C39")
+    private BigDecimal c39;
+
+    @TableField("C40")
+    private BigDecimal c40;
+
+    @TableField("C41")
+    private BigDecimal c41;
+
+    @TableField("C42")
+    private BigDecimal c42;
+
+    @TableField("C43")
+    private BigDecimal c43;
+
+    @TableField("C44")
+    private BigDecimal c44;
+
+    @TableField("C45")
+    private BigDecimal c45;
+
+    @TableField("C46")
+    private BigDecimal c46;
+
+    @TableField("C47")
+    private BigDecimal c47;
+
+    @TableField("C48")
+    private BigDecimal c48;
+
+    @TableField("C49")
+    private BigDecimal c49;
+
+    @TableField("C50")
+    private BigDecimal c50;
+
+    @TableField("C51")
+    private BigDecimal c51;
+
+    @TableField("C52")
+    private BigDecimal c52;
+
+    @TableField("C53")
+    private BigDecimal c53;
+
+    @TableField("C54")
+    private BigDecimal c54;
+
+    @TableField("C55")
+    private BigDecimal c55;
+
+    @TableField("C56")
+    private BigDecimal c56;
+
+    @TableField("C57")
+    private BigDecimal c57;
+
+    @TableField("C58")
+    private BigDecimal c58;
+
+    @TableField("C59")
+    private BigDecimal c59;
+
+    @TableField("C60")
+    private BigDecimal c60;
+
+
+}

+ 50 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbinecurvefitting.java

@@ -0,0 +1,50 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("WINDTURBINECURVEFITTING")
+public class Windturbinecurvefitting extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Double id;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("SPEED")
+    private Double speed;
+
+    @TableField("ACTUALPOWER")
+    private Double actualpower;
+
+    @TableField("OPTIMALPOWER")
+    private Double optimalpower;
+
+    @TableField("RECORDDATE")
+    private Date recorddate;
+
+    @TableField("MAINID")
+    private String mainid;
+
+
+}

+ 50 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbinecurvefittingmonth.java

@@ -0,0 +1,50 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("WINDTURBINECURVEFITTINGMONTH")
+public class Windturbinecurvefittingmonth extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Double id;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("SPEED")
+    private Double speed;
+
+    @TableField("ACTUALPOWER")
+    private Double actualpower;
+
+    @TableField("OPTIMALPOWER")
+    private Double optimalpower;
+
+    @TableField("YEAR")
+    private String year;
+
+    @TableField("MONTH")
+    private String month;
+
+    @TableField("MAINID")
+    private String mainid;
+
+
+}

+ 929 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/auto/Windturbinethewindinfo.java

@@ -0,0 +1,929 @@
+package com.gyee.benchmarkingimpala.model.auto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("WINDTURBINETHEWINDINFO")
+public class Windturbinethewindinfo extends Model {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId("ID")
+    private Long id;
+
+    @TableField("WINDTURBINEID")
+    private String windturbineid;
+
+    @TableField("RECORDDATE")
+    private Date recorddate;
+
+    @TableField("CA")
+    private Double ca;
+
+    @TableField("CB")
+    private Double cb;
+
+    @TableField("CC")
+    private Double cc;
+
+    @TableField("CD")
+    private Double cd;
+
+    @TableField("CF")
+    private Double cf;
+
+    @TableField("CG")
+    private Double cg;
+
+    @TableField("E")
+    private Double e;
+
+    @TableField("ESE")
+    private Double ese;
+
+    @TableField("SE")
+    private Double se;
+
+    @TableField("SSE")
+    private Double sse;
+
+    @TableField("S")
+    private Double s;
+
+    @TableField("SSW")
+    private Double ssw;
+
+    @TableField("SW")
+    private Double sw;
+
+    @TableField("WSW")
+    private Double wsw;
+
+    @TableField("W")
+    private Double w;
+
+    @TableField("WNW")
+    private Double wnw;
+
+    @TableField("NW")
+    private Double nw;
+
+    @TableField("NNW")
+    private Double nnw;
+
+    @TableField("N")
+    private Double n;
+
+    @TableField("NNE")
+    private Double nne;
+
+    @TableField("NE")
+    private Double ne;
+
+    @TableField("ENE")
+    private Double ene;
+
+    @TableField("E2")
+    private Double e2;
+
+    @TableField("ESE2")
+    private Double ese2;
+
+    @TableField("SE2")
+    private Double se2;
+
+    @TableField("SSE2")
+    private Double sse2;
+
+    @TableField("S2")
+    private Double s2;
+
+    @TableField("SSW2")
+    private Double ssw2;
+
+    @TableField("SW2")
+    private Double sw2;
+
+    @TableField("WSW2")
+    private Double wsw2;
+
+    @TableField("W2")
+    private Double w2;
+
+    @TableField("WNW2")
+    private Double wnw2;
+
+    @TableField("NW2")
+    private Double nw2;
+
+    @TableField("NNW2")
+    private Double nnw2;
+
+    @TableField("N2")
+    private Double n2;
+
+    @TableField("NNE2")
+    private Double nne2;
+
+    @TableField("NE2")
+    private Double ne2;
+
+    @TableField("ENE2")
+    private Double ene2;
+
+    @TableField("E3")
+    private Double e3;
+
+    @TableField("ESE3")
+    private Double ese3;
+
+    @TableField("SE3")
+    private Double se3;
+
+    @TableField("SSE3")
+    private Double sse3;
+
+    @TableField("S3")
+    private Double s3;
+
+    @TableField("SSW3")
+    private Double ssw3;
+
+    @TableField("SW3")
+    private Double sw3;
+
+    @TableField("WSW3")
+    private Double wsw3;
+
+    @TableField("W3")
+    private Double w3;
+
+    @TableField("WNW3")
+    private Double wnw3;
+
+    @TableField("NW3")
+    private Double nw3;
+
+    @TableField("NNW3")
+    private Double nnw3;
+
+    @TableField("N3")
+    private Double n3;
+
+    @TableField("NNE3")
+    private Double nne3;
+
+    @TableField("NE3")
+    private Double ne3;
+
+    @TableField("ENE3")
+    private Double ene3;
+
+    @TableField("E4")
+    private Double e4;
+
+    @TableField("ESE4")
+    private Double ese4;
+
+    @TableField("SE4")
+    private Double se4;
+
+    @TableField("SSE4")
+    private Double sse4;
+
+    @TableField("S4")
+    private Double s4;
+
+    @TableField("SSW4")
+    private Double ssw4;
+
+    @TableField("SW4")
+    private Double sw4;
+
+    @TableField("WSW4")
+    private Double wsw4;
+
+    @TableField("W4")
+    private Double w4;
+
+    @TableField("WNW4")
+    private Double wnw4;
+
+    @TableField("NW4")
+    private Double nw4;
+
+    @TableField("NNW4")
+    private Double nnw4;
+
+    @TableField("N4")
+    private Double n4;
+
+    @TableField("NNE4")
+    private Double nne4;
+
+    @TableField("NE4")
+    private Double ne4;
+
+    @TableField("ENE4")
+    private Double ene4;
+
+    @TableField("E5")
+    private Double e5;
+
+    @TableField("ESE5")
+    private Double ese5;
+
+    @TableField("SE5")
+    private Double se5;
+
+    @TableField("SSE5")
+    private Double sse5;
+
+    @TableField("S5")
+    private Double s5;
+
+    @TableField("SSW5")
+    private Double ssw5;
+
+    @TableField("SW5")
+    private Double sw5;
+
+    @TableField("WSW5")
+    private Double wsw5;
+
+    @TableField("W5")
+    private Double w5;
+
+    @TableField("WNW5")
+    private Double wnw5;
+
+    @TableField("NW5")
+    private Double nw5;
+
+    @TableField("NNW5")
+    private Double nnw5;
+
+    @TableField("N5")
+    private Double n5;
+
+    @TableField("NNE5")
+    private Double nne5;
+
+    @TableField("NE5")
+    private Double ne5;
+
+    @TableField("ENE5")
+    private Double ene5;
+
+    @TableField("E6")
+    private Double e6;
+
+    @TableField("ESE6")
+    private Double ese6;
+
+    @TableField("SE6")
+    private Double se6;
+
+    @TableField("SSE6")
+    private Double sse6;
+
+    @TableField("S6")
+    private Double s6;
+
+    @TableField("SSW6")
+    private Double ssw6;
+
+    @TableField("SW6")
+    private Double sw6;
+
+    @TableField("WSW6")
+    private Double wsw6;
+
+    @TableField("W6")
+    private Double w6;
+
+    @TableField("WNW6")
+    private Double wnw6;
+
+    @TableField("NW6")
+    private Double nw6;
+
+    @TableField("NNW6")
+    private Double nnw6;
+
+    @TableField("N6")
+    private Double n6;
+
+    @TableField("NNE6")
+    private Double nne6;
+
+    @TableField("NE6")
+    private Double ne6;
+
+    @TableField("ENE6")
+    private Double ene6;
+
+    @TableField("E7")
+    private Double e7;
+
+    @TableField("ESE7")
+    private Double ese7;
+
+    @TableField("SE7")
+    private Double se7;
+
+    @TableField("SSE7")
+    private Double sse7;
+
+    @TableField("S7")
+    private Double s7;
+
+    @TableField("SSW7")
+    private Double ssw7;
+
+    @TableField("SW7")
+    private Double sw7;
+
+    @TableField("WSW7")
+    private Double wsw7;
+
+    @TableField("W7")
+    private Double w7;
+
+    @TableField("WNW7")
+    private Double wnw7;
+
+    @TableField("NW7")
+    private Double nw7;
+
+    @TableField("NNW7")
+    private Double nnw7;
+
+    @TableField("N7")
+    private Double n7;
+
+    @TableField("NNE7")
+    private Double nne7;
+
+    @TableField("NE7")
+    private Double ne7;
+
+    @TableField("ENE7")
+    private Double ene7;
+
+    @TableField("E8")
+    private Double e8;
+
+    @TableField("ESE8")
+    private Double ese8;
+
+    @TableField("SE8")
+    private Double se8;
+
+    @TableField("SSE8")
+    private Double sse8;
+
+    @TableField("S8")
+    private Double s8;
+
+    @TableField("SSW8")
+    private Double ssw8;
+
+    @TableField("SW8")
+    private Double sw8;
+
+    @TableField("WSW8")
+    private Double wsw8;
+
+    @TableField("W8")
+    private Double w8;
+
+    @TableField("WNW8")
+    private Double wnw8;
+
+    @TableField("NW8")
+    private Double nw8;
+
+    @TableField("NNW8")
+    private Double nnw8;
+
+    @TableField("N8")
+    private Double n8;
+
+    @TableField("NNE8")
+    private Double nne8;
+
+    @TableField("NE8")
+    private Double ne8;
+
+    @TableField("ENE8")
+    private Double ene8;
+
+    @TableField("E9")
+    private Double e9;
+
+    @TableField("ESE9")
+    private Double ese9;
+
+    @TableField("SE9")
+    private Double se9;
+
+    @TableField("SSE9")
+    private Double sse9;
+
+    @TableField("S9")
+    private Double s9;
+
+    @TableField("SSW9")
+    private Double ssw9;
+
+    @TableField("SW9")
+    private Double sw9;
+
+    @TableField("WSW9")
+    private Double wsw9;
+
+    @TableField("W9")
+    private Double w9;
+
+    @TableField("WNW9")
+    private Double wnw9;
+
+    @TableField("NW9")
+    private Double nw9;
+
+    @TableField("NNW9")
+    private Double nnw9;
+
+    @TableField("N9")
+    private Double n9;
+
+    @TableField("NNE9")
+    private Double nne9;
+
+    @TableField("NE9")
+    private Double ne9;
+
+    @TableField("ENE9")
+    private Double ene9;
+
+    @TableField("E10")
+    private Double e10;
+
+    @TableField("ESE10")
+    private Double ese10;
+
+    @TableField("SE10")
+    private Double se10;
+
+    @TableField("SSE10")
+    private Double sse10;
+
+    @TableField("S10")
+    private Double s10;
+
+    @TableField("SSW10")
+    private Double ssw10;
+
+    @TableField("SW10")
+    private Double sw10;
+
+    @TableField("WSW10")
+    private Double wsw10;
+
+    @TableField("W10")
+    private Double w10;
+
+    @TableField("WNW10")
+    private Double wnw10;
+
+    @TableField("NW10")
+    private Double nw10;
+
+    @TableField("NNW10")
+    private Double nnw10;
+
+    @TableField("N10")
+    private Double n10;
+
+    @TableField("NNE10")
+    private Double nne10;
+
+    @TableField("NE10")
+    private Double ne10;
+
+    @TableField("ENE10")
+    private Double ene10;
+
+    @TableField("E11")
+    private Double e11;
+
+    @TableField("ESE11")
+    private Double ese11;
+
+    @TableField("SE11")
+    private Double se11;
+
+    @TableField("SSE11")
+    private Double sse11;
+
+    @TableField("S11")
+    private Double s11;
+
+    @TableField("SSW11")
+    private Double ssw11;
+
+    @TableField("SW11")
+    private Double sw11;
+
+    @TableField("WSW11")
+    private Double wsw11;
+
+    @TableField("W11")
+    private Double w11;
+
+    @TableField("WNW11")
+    private Double wnw11;
+
+    @TableField("NW11")
+    private Double nw11;
+
+    @TableField("NNW11")
+    private Double nnw11;
+
+    @TableField("N11")
+    private Double n11;
+
+    @TableField("NNE11")
+    private Double nne11;
+
+    @TableField("NE11")
+    private Double ne11;
+
+    @TableField("ENE11")
+    private Double ene11;
+
+    @TableField("E12")
+    private Double e12;
+
+    @TableField("ESE12")
+    private Double ese12;
+
+    @TableField("SE12")
+    private Double se12;
+
+    @TableField("SSE12")
+    private Double sse12;
+
+    @TableField("S12")
+    private Double s12;
+
+    @TableField("SSW12")
+    private Double ssw12;
+
+    @TableField("SW12")
+    private Double sw12;
+
+    @TableField("WSW12")
+    private Double wsw12;
+
+    @TableField("W12")
+    private Double w12;
+
+    @TableField("WNW12")
+    private Double wnw12;
+
+    @TableField("NW12")
+    private Double nw12;
+
+    @TableField("NNW12")
+    private Double nnw12;
+
+    @TableField("N12")
+    private Double n12;
+
+    @TableField("NNE12")
+    private Double nne12;
+
+    @TableField("NE12")
+    private Double ne12;
+
+    @TableField("ENE12")
+    private Double ene12;
+
+    @TableField("E13")
+    private Double e13;
+
+    @TableField("ESE13")
+    private Double ese13;
+
+    @TableField("SE13")
+    private Double se13;
+
+    @TableField("SSE13")
+    private Double sse13;
+
+    @TableField("S13")
+    private Double s13;
+
+    @TableField("SSW13")
+    private Double ssw13;
+
+    @TableField("SW13")
+    private Double sw13;
+
+    @TableField("WSW13")
+    private Double wsw13;
+
+    @TableField("W13")
+    private Double w13;
+
+    @TableField("WNW13")
+    private Double wnw13;
+
+    @TableField("NW13")
+    private Double nw13;
+
+    @TableField("NNW13")
+    private Double nnw13;
+
+    @TableField("N13")
+    private Double n13;
+
+    @TableField("NNE13")
+    private Double nne13;
+
+    @TableField("NE13")
+    private Double ne13;
+
+    @TableField("ENE13")
+    private Double ene13;
+
+    @TableField("E14")
+    private Double e14;
+
+    @TableField("ESE14")
+    private Double ese14;
+
+    @TableField("SE14")
+    private Double se14;
+
+    @TableField("SSE14")
+    private Double sse14;
+
+    @TableField("S14")
+    private Double s14;
+
+    @TableField("SSW14")
+    private Double ssw14;
+
+    @TableField("SW14")
+    private Double sw14;
+
+    @TableField("WSW14")
+    private Double wsw14;
+
+    @TableField("W14")
+    private Double w14;
+
+    @TableField("WNW14")
+    private Double wnw14;
+
+    @TableField("NW14")
+    private Double nw14;
+
+    @TableField("NNW14")
+    private Double nnw14;
+
+    @TableField("N14")
+    private Double n14;
+
+    @TableField("NNE14")
+    private Double nne14;
+
+    @TableField("NE14")
+    private Double ne14;
+
+    @TableField("ENE14")
+    private Double ene14;
+
+    @TableField("E15")
+    private Double e15;
+
+    @TableField("ESE15")
+    private Double ese15;
+
+    @TableField("SE15")
+    private Double se15;
+
+    @TableField("SSE15")
+    private Double sse15;
+
+    @TableField("S15")
+    private Double s15;
+
+    @TableField("SSW15")
+    private Double ssw15;
+
+    @TableField("SW15")
+    private Double sw15;
+
+    @TableField("WSW15")
+    private Double wsw15;
+
+    @TableField("W15")
+    private Double w15;
+
+    @TableField("WNW15")
+    private Double wnw15;
+
+    @TableField("NW15")
+    private Double nw15;
+
+    @TableField("NNW15")
+    private Double nnw15;
+
+    @TableField("N15")
+    private Double n15;
+
+    @TableField("NNE15")
+    private Double nne15;
+
+    @TableField("NE15")
+    private Double ne15;
+
+    @TableField("ENE15")
+    private Double ene15;
+
+    @TableField("E16")
+    private Double e16;
+
+    @TableField("ESE16")
+    private Double ese16;
+
+    @TableField("SE16")
+    private Double se16;
+
+    @TableField("SSE16")
+    private Double sse16;
+
+    @TableField("S16")
+    private Double s16;
+
+    @TableField("SSW16")
+    private Double ssw16;
+
+    @TableField("SW16")
+    private Double sw16;
+
+    @TableField("WSW16")
+    private Double wsw16;
+
+    @TableField("W16")
+    private Double w16;
+
+    @TableField("WNW16")
+    private Double wnw16;
+
+    @TableField("NW16")
+    private Double nw16;
+
+    @TableField("NNW16")
+    private Double nnw16;
+
+    @TableField("N16")
+    private Double n16;
+
+    @TableField("NNE16")
+    private Double nne16;
+
+    @TableField("NE16")
+    private Double ne16;
+
+    @TableField("ENE16")
+    private Double ene16;
+
+    @TableField("E17")
+    private Double e17;
+
+    @TableField("ESE17")
+    private Double ese17;
+
+    @TableField("SE17")
+    private Double se17;
+
+    @TableField("SSE17")
+    private Double sse17;
+
+    @TableField("S17")
+    private Double s17;
+
+    @TableField("SSW17")
+    private Double ssw17;
+
+    @TableField("SW17")
+    private Double sw17;
+
+    @TableField("WSW17")
+    private Double wsw17;
+
+    @TableField("W17")
+    private Double w17;
+
+    @TableField("WNW17")
+    private Double wnw17;
+
+    @TableField("NW17")
+    private Double nw17;
+
+    @TableField("NNW17")
+    private Double nnw17;
+
+    @TableField("N17")
+    private Double n17;
+
+    @TableField("NNE17")
+    private Double nne17;
+
+    @TableField("NE17")
+    private Double ne17;
+
+    @TableField("ENE17")
+    private Double ene17;
+
+    @TableField("E18")
+    private Double e18;
+
+    @TableField("ESE18")
+    private Double ese18;
+
+    @TableField("SE18")
+    private Double se18;
+
+    @TableField("SSE18")
+    private Double sse18;
+
+    @TableField("S18")
+    private Double s18;
+
+    @TableField("SSW18")
+    private Double ssw18;
+
+    @TableField("SW18")
+    private Double sw18;
+
+    @TableField("WSW18")
+    private Double wsw18;
+
+    @TableField("W18")
+    private Double w18;
+
+    @TableField("WNW18")
+    private Double wnw18;
+
+    @TableField("NW18")
+    private Double nw18;
+
+    @TableField("NNW18")
+    private Double nnw18;
+
+    @TableField("N18")
+    private Double n18;
+
+    @TableField("NNE18")
+    private Double nne18;
+
+    @TableField("NE18")
+    private Double ne18;
+
+    @TableField("ENE18")
+    private Double ene18;
+
+    @TableField("CH")
+    private Double ch;
+
+    @TableField("CI")
+    private Double ci;
+
+    @TableField("CJ")
+    private Double cj;
+
+
+}

+ 355 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/DataVo.java

@@ -0,0 +1,355 @@
+
+package com.gyee.benchmarkingimpala.model.vo;
+
+/**
+ * 
+ * 
+ * 项目名称:nxfd 类名称:DataVo 类描述: 创建人:石林 创建时间:2014-3-4 下午2:34:22 修改人:shilinno1
+ * 修改时间:2014-3-4 下午2:34:22 修改备注:
+ * 
+ * @version
+ * 
+ */
+
+public class DataVo {
+
+    private Long time;
+    private String timestr;
+    private Double value1;
+
+    private Double value2;
+
+    private Double value3;
+
+    private Double value4;
+
+    private Double value5;
+
+    private Double value6;
+
+    private Double value7;
+
+    private Double value8;
+
+    private Double value9;
+    
+    private Double value10;
+    
+    private Double value11;
+    
+    private Double value12;
+    
+    private Double value13;
+
+    private Double speed;
+
+    private String name;
+
+    private String url;
+
+    private String aName;
+
+    private String desc;
+
+    private String datefomat;
+
+    private Long minRange;
+    private Long pointInterval;
+    private Integer year;
+    private Integer month;
+    private Integer day;
+    private String id;
+    private Integer hours;
+    private Integer minutes;
+    private Integer seconds;
+
+    private Long beginDate;
+    private Long endDate;
+    private Long beginDateDay;
+    private Long endDateDay;
+
+    private String value;
+
+
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public Long getMinRange() {
+        return minRange;
+    }
+
+    public void setMinRange(Long minRange) {
+        this.minRange = minRange;
+    }
+
+    public Long getPointInterval() {
+        return pointInterval;
+    }
+
+    public void setPointInterval(Long pointInterval) {
+        this.pointInterval = pointInterval;
+    }
+
+    public Integer getHours() {
+        return hours;
+    }
+
+    public void setHours(Integer hours) {
+        this.hours = hours;
+    }
+
+    public Integer getMinutes() {
+        return minutes;
+    }
+
+    public void setMinutes(Integer minutes) {
+        this.minutes = minutes;
+    }
+
+    public Integer getSeconds() {
+        return seconds;
+    }
+
+    public void setSeconds(Integer seconds) {
+        this.seconds = seconds;
+    }
+
+    public Long getTime() {
+        return time;
+    }
+
+    public void setTime(Long time) {
+        this.time = time;
+    }
+
+    public Double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(Double speed) {
+        this.speed = speed;
+    }
+
+    public Double getValue1() {
+        return value1;
+    }
+
+    public void setValue1(Double value1) {
+        this.value1 = value1;
+    }
+
+    public Double getValue2() {
+        return value2;
+    }
+
+    public void setValue2(Double value2) {
+        this.value2 = value2;
+    }
+
+    public Double getValue3() {
+        return value3;
+    }
+
+    public void setValue3(Double value3) {
+        this.value3 = value3;
+    }
+
+    public Double getValue4() {
+        return value4;
+    }
+
+    public void setValue4(Double value4) {
+        this.value4 = value4;
+    }
+
+    public Double getValue5() {
+        return value5;
+    }
+
+    public void setValue5(Double value5) {
+        this.value5 = value5;
+    }
+
+    public Double getValue6() {
+        return value6;
+    }
+
+    public void setValue6(Double value6) {
+        this.value6 = value6;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getaName() {
+        return aName;
+    }
+
+    public void setaName(String aName) {
+        this.aName = aName;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+
+    public void setDesc(String desc) {
+        this.desc = desc;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Integer getYear() {
+        return year;
+    }
+
+    public void setYear(Integer year) {
+        this.year = year;
+    }
+
+    public Integer getMonth() {
+        return month;
+    }
+
+    public void setMonth(Integer month) {
+        this.month = month;
+    }
+
+    public Integer getDay() {
+        return day;
+    }
+
+    public void setDay(Integer day) {
+        this.day = day;
+    }
+
+    public Long getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Long beginDate) {
+        this.beginDate = beginDate;
+    }
+
+    public Long getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Long endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getDatefomat() {
+        return datefomat;
+    }
+
+    public void setDatefomat(String datefomat) {
+        this.datefomat = datefomat;
+    }
+
+    public Long getBeginDateDay() {
+        return beginDateDay;
+    }
+
+    public void setBeginDateDay(Long beginDateDay) {
+        this.beginDateDay = beginDateDay;
+    }
+
+    public Long getEndDateDay() {
+        return endDateDay;
+    }
+
+    public void setEndDateDay(Long endDateDay) {
+        this.endDateDay = endDateDay;
+    }
+
+    public String getTimestr() {
+        return timestr;
+    }
+
+    public void setTimestr(String timestr) {
+        this.timestr = timestr;
+    }
+
+    public Double getValue7() {
+        return value7;
+    }
+
+    public void setValue7(Double value7) {
+        this.value7 = value7;
+    }
+
+    public Double getValue8() {
+        return value8;
+    }
+
+    public void setValue8(Double value8) {
+        this.value8 = value8;
+    }
+
+    public Double getValue9() {
+        return value9;
+    }
+
+    public void setValue9(Double value9) {
+        this.value9 = value9;
+    }
+
+	public Double getValue10() {
+		return value10;
+	}
+
+	public void setValue10(Double value10) {
+		this.value10 = value10;
+	}
+
+	public Double getValue11() {
+		return value11;
+	}
+
+	public void setValue11(Double value11) {
+		this.value11 = value11;
+	}
+
+	public Double getValue12() {
+		return value12;
+	}
+
+	public void setValue12(Double value12) {
+		this.value12 = value12;
+	}
+
+	public Double getValue13() {
+		return value13;
+	}
+
+	public void setValue13(Double value13) {
+		this.value13 = value13;
+	}
+
+}

+ 67 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/GoodCompareVo.java

@@ -0,0 +1,67 @@
+package com.gyee.benchmarkingimpala.model.vo;
+
+
+public class GoodCompareVo implements java.io.Serializable {
+
+	/** 
+    * @Fields serialVersionUID : TODO
+    */ 
+    
+    
+    private static final long serialVersionUID = 1L;
+	// Fields
+
+	private Integer id;
+	private String name;
+	private String value1;
+	private String value2;
+	private String value3;
+	private String value4;
+	private String value5;
+	
+	public String getName() {
+    	return name;
+    }
+	public void setName(String name) {
+    	this.name = name;
+    }
+	public Integer getId() {
+    	return id;
+    }
+	public void setId(Integer id) {
+    	this.id = id;
+    }
+	public String getValue1() {
+    	return value1;
+    }
+	public void setValue1(String value1) {
+    	this.value1 = value1;
+    }
+	public String getValue2() {
+    	return value2;
+    }
+	public void setValue2(String value2) {
+    	this.value2 = value2;
+    }
+	public String getValue3() {
+    	return value3;
+    }
+	public void setValue3(String value3) {
+    	this.value3 = value3;
+    }
+	public String getValue4() {
+    	return value4;
+    }
+	public void setValue4(String value4) {
+    	this.value4 = value4;
+    }
+	public String getValue5() {
+    	return value5;
+    }
+	public void setValue5(String value5) {
+    	this.value5 = value5;
+    }
+	
+
+
+}

+ 18 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/OpeVo.java

@@ -0,0 +1,18 @@
+package com.gyee.benchmarkingimpala.model.vo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName : OpeVo
+ * @Author : xieshengjie
+ * @Date: 2021/1/19 14:36
+ * @Description : 操作vo
+ */
+@Data
+public class OpeVo {
+    private String wtid;
+    private Date time;
+    private Double value;
+}

+ 32 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/Operation.java

@@ -0,0 +1,32 @@
+package com.gyee.benchmarkingimpala.model.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName : Operation
+ * @Author : xieshengjie
+ * @Date: 2021/1/18 16:10
+ * @Description : 操作model
+ */
+@Data
+public class Operation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private String nameOfDuty;  //值班名称
+    private Integer startCount;//启动
+    private Integer stopCount;//停机
+    private Integer resetCount;//复位
+    private Integer maintainCount;//维护
+    private Integer unmaintainCount;//取消维护
+    private Integer gpmaintainCount;//挂牌检修
+    private Integer gpfaultCount;//挂牌故障维修
+    private Integer gponsiteinvolvementMaintainCount;//挂牌场内受累检修
+    private Integer gponsiteinvolvementFaultCount;//挂牌场内受累故障
+    private Integer gpoffsiteaffectedgridCount;//挂牌场外受累电网
+    private Integer gpweatherOutsideCount;//挂牌场外受累天气
+    private Integer ungpCount;//取消挂牌
+
+}

+ 70 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/model/vo/ValueVo.java

@@ -0,0 +1,70 @@
+package com.gyee.benchmarkingimpala.model.vo;
+
+public class ValueVo {
+	private String name;
+	private String value;
+	private Double data1;
+
+	private String warningId;
+	private String shutdowneventId;
+	private String wpId;
+	private String wtId;
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Double getData1() {
+		return data1;
+	}
+
+	public void setData1(Double data1) {
+		this.data1 = data1;
+	}
+
+	public String getWarningId() {
+		return warningId;
+	}
+
+	public void setWarningId(String warningId) {
+		this.warningId = warningId;
+	}
+
+	public String getShutdowneventId() {
+		return shutdowneventId;
+	}
+
+	public void setShutdowneventId(String shutdowneventId) {
+		this.shutdowneventId = shutdowneventId;
+	}
+
+	public String getWpId() {
+		return wpId;
+	}
+
+	public void setWpId(String wpId) {
+		this.wpId = wpId;
+	}
+
+	public String getWtId() {
+		return wtId;
+	}
+
+	public void setWtId(String wtId) {
+		this.wtId = wtId;
+	}
+
+	
+}

+ 345 - 99
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/BenchmarkingService.java

@@ -7,19 +7,16 @@ import com.gyee.benchmarkingimpala.common.StringUtils;
 import com.gyee.benchmarkingimpala.contant.Contant;
 import com.gyee.benchmarkingimpala.init.CacheContext;
 import com.gyee.benchmarkingimpala.model.auto.*;
-import com.gyee.benchmarkingimpala.model.vo.FjjxbVo;
-import com.gyee.benchmarkingimpala.model.vo.FjjxbmxVo;
-import com.gyee.benchmarkingimpala.model.vo.WxsslVo;
-import com.gyee.benchmarkingimpala.service.auto.IEquipmentdaydetailedService;
-import com.gyee.benchmarkingimpala.service.auto.IEquipmentdayinfoService;
+import com.gyee.benchmarkingimpala.model.vo.*;
+import com.gyee.benchmarkingimpala.service.auto.*;
 import com.gyee.benchmarkingimpala.util.DateUtils;
 import com.gyee.benchmarkingimpala.util.SortUtils;
 import com.gyee.benchmarkingimpala.util.taos.EdosUtil;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.core.BatchUpdateUtils;
-import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -32,11 +29,25 @@ import java.util.stream.Collectors;
  */
 @Service
 public class BenchmarkingService  {
+
+    private  final String TYPE_DATE = "date";
+    private  final String TYPE_WIND = "wind";
+    private  final String TYPE_PROJECT = "project";
+    private  final String TYPE_LINE = "line";
+    private  final String TYPE_WINDTURBINE = "windturbine";
+
     private EdosUtil edosUtil = new EdosUtil();
     @Autowired
     private IEquipmentdayinfoService equipmentdayinfoService;
     @Autowired
     private IEquipmentdaydetailedService equipmentdaydetailedService;
+    @Autowired
+    private IDutyscheduleService dutyscheduleService;
+    @Autowired
+    private IOperationrecordService operationrecordService;
+    @Autowired
+    private IBenchmarkingbetweenService benchmarkingbetweenService;
+
 
 
     /**
@@ -172,6 +183,167 @@ public class BenchmarkingService  {
     }
 
     /**
+     * 保存值际操作指令表
+     * @param beginDate
+     * @param endDate
+     */
+    public void saveOperationrecord(String beginDate,String endDate) throws ParseException {
+        List<String> days = getDays(beginDate, endDate);
+        for (String day : days) {
+            Date date = DateUtils.parseDate(day);
+            Date startOfDay = DateUtils.getStartOfDay(date);
+            Date endOfDay = DateUtils.getEndOfDay(date);
+            Map<String, Object> params1 = new HashMap<>();
+            params1.put("createdate", date);
+            List<Dutyschedule> dutyList = dutyscheduleService.listByMap(params1);
+            params1.remove("createdate");
+            params1.put("time",date);
+            operationrecordService.removeByMap(params1);
+            Map<String, Map<String, Windturbinetestingpointai2>> wtpointMap = CacheContext.wtpAimap;
+            String[] points = Contant.opePoints.split(",");
+            List<Windturbine> wtls = CacheContext.wtls;
+            List<OpeVo> resuList = new ArrayList<>();
+            for (Windturbine wt : wtls) {
+                if (wt.getWindpowerstationid().endsWith("GDC")){
+                    continue;
+                }
+                for (String point : points) {
+                    Windturbinetestingpointai2 windturbinetestingpointai2 = wtpointMap.get(wt.getId()).get(point);
+                    try {
+                        List<PointData> pointDatas = edosUtil.getHistoryDatasRaw(windturbinetestingpointai2.getId(), startOfDay.getTime()/1000, endOfDay.getTime()/1000);
+                        pointDatas.stream().forEach(pointData -> {
+                            OpeVo vo = new OpeVo();
+                            vo.setWtid(wt.getId());
+                            vo.setTime(DateUtils.parseLongToDate(pointData.getPointTime()*1000));
+                            vo.setValue(pointData.getPointValueInDouble());
+                            resuList.add(vo);
+                        });
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            for (Dutyschedule duty : dutyList) {
+                for (OpeVo vo : resuList) {
+                    if (isTimeRange(duty,vo.getTime())) {
+                        Operationrecord operationrecord = new Operationrecord();
+                        operationrecord.setDutyname(duty.getName());
+                        operationrecord.setWtid(vo.getWtid());
+                        operationrecord.setTime(vo.getTime());
+                        operationrecord.setValue(vo.getValue());
+                        operationrecordService.save(operationrecord);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * 保存值际五损
+     * @param beginDate
+     * @param endDate
+     */
+    public void saveBeanchmarkList(String beginDate,String endDate) throws Exception {
+        List<String> days = getDays(beginDate, endDate);
+        for (String day : days) {
+            Date date = DateUtils.parseDate(day);
+            Date startOfDay = DateUtils.getStartOfDay(date);
+            Date endOfDay = DateUtils.getEndOfDay(date);
+
+            Map<String, Object> params = new HashMap<>();
+            params.put("theday", date);
+            benchmarkingbetweenService.removeByMap(params);
+            Map<String, Object> params1 = new HashMap<>();
+            params1.put("createdate", date);
+            List<Dutyschedule> dutyList = dutyscheduleService.listByMap(params1);
+            String[] points = Contant.benchPoints.split(",");
+            Map<String, Windpowerstationtestingpoint2> wpmap = CacheContext.wppointmap.get("0");
+            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Map<String, Map<String, Double>> remap = new HashMap<>();
+
+            for (Dutyschedule dutyschedule : dutyList) {
+                String[] begins = dutyschedule.getBegin().split(",");
+                String[] ends = dutyschedule.getEnd().split(",");
+                Map<String, Double> map = new HashMap<>();
+                for (int i = 0; i < begins.length; i++) {
+                    Date begin = df.parse(day + " " + begins[i] + ":00");
+                    Date end = df.parse(day + " " + ends[i] + ":00");
+                    for (String point : points) {
+                        Windpowerstationtestingpoint2 windpowerstationtestingpoint2 = wpmap.get(point);
+                        List<PointData> maxs = edosUtil.getHistStat(windpowerstationtestingpoint2.getCode(), begin.getTime() / 1000, end.getTime() / 1000, (long) 1, null, 0);
+                        List<PointData> mins = edosUtil.getHistStat(windpowerstationtestingpoint2.getCode(), begin.getTime() / 1000, end.getTime() / 1000, (long) 1, null, 1);
+                        double ssdl = 0;
+                        if (StringUtils.isNotEmpty(maxs) && StringUtils.isNotEmpty(mins)) {
+                            ssdl = (maxs.get(0).getPointValueInDouble() - mins.get(0).getPointValueInDouble()) / 10000;
+                        }
+                        if (!map.containsKey(point)) {
+                            map.put(point, ssdl);
+                        } else {
+                            map.put(point, map.get(point) + ssdl);
+                        }
+                    }
+                    Windpowerstationtestingpoint2 windpowerstationtestingpoint2 = wpmap.get("RFDL");
+                    List<PointData> maxs = edosUtil.getHistStat(windpowerstationtestingpoint2.getCode(), begin.getTime() / 1000, end.getTime() / 1000, (long) 1, null, 0);
+                    List<PointData> mins = edosUtil.getHistStat(windpowerstationtestingpoint2.getCode(), begin.getTime() / 1000, end.getTime() / 1000, (long) 1, null, 1);
+                    double fdl = 0;
+                    if (StringUtils.isNotEmpty(maxs) && StringUtils.isNotEmpty(mins)) {
+                        fdl = maxs.get(0).getPointValueInDouble() - mins.get(0).getPointValueInDouble();
+                    }
+                    if (!map.containsKey("RFDL")) {
+                        map.put("RFDL", fdl);
+                    } else {
+                        map.put("RFDL", map.get("RFDL") + fdl);
+                    }
+                    remap.put(dutyschedule.getName(), map);
+                }
+            }
+            Set<String> dutyset = remap.keySet();
+            for (String duty : dutyset) {
+                Benchmarkingbetween bench = new Benchmarkingbetween();
+                bench.setDutyname(duty);
+                bench.setTheday(date);
+                Map<String, Double> pointmap = remap.get(duty);
+                bench.setPerformanceloss(pointmap.get("RSDJZSDL") + pointmap.get("RSSTZSDL") + pointmap.get("RXNZSDL") + pointmap.get("RSQXZSDL"));
+                bench.setFaultloss(pointmap.get("RGZZSDL") + pointmap.get("RSZZSDL"));
+                bench.setMainloss(pointmap.get("RJXZSDL") + pointmap.get("RLZZSDL"));
+                bench.setRationingloss(pointmap.get("RQFZSDL") + pointmap.get("RXDZSDL"));
+                bench.setInvolvesloss(pointmap.get("RWZZSDL") + pointmap.get("RTZZSDL"));
+                bench.setGeneratity(pointmap.get("RFDL"));
+                bench.setTheoreticalgeneratity(bench.getPerformanceloss() + bench.getFaultloss() + bench.getMainloss() + bench.getRationingloss() + bench.getInvolvesloss() + bench.getGeneratity());
+                benchmarkingbetweenService.save(bench);
+            }
+        }
+    }
+    /**
+     * 判断实际操作指令时间是否属于某个值班
+     * @param duty
+     * @param time
+     * @return
+     * @throws ParseException
+     */
+    private boolean isTimeRange(Dutyschedule duty,Date time) throws ParseException {
+        SimpleDateFormat df = new SimpleDateFormat("HH:mm");
+        Date now = df.parse(df.format(time));
+        String[] begins=duty.getBegin().split(",");
+        String[] ends=duty.getEnd().split(",");
+        for (int i=0 ; i<begins.length;i++) {
+            Date begin = df.parse(begins[i]);
+            Date end = df.parse(ends[i]);
+            Calendar nowTime = Calendar.getInstance();
+            nowTime.setTime(now);
+            Calendar beginTime = Calendar.getInstance();
+            beginTime.setTime(begin);
+            Calendar endTime = Calendar.getInstance();
+            endTime.setTime(end);
+            if (nowTime.before(endTime) && nowTime.after(beginTime)) {
+                return true;
+            }
+        }
+        return false;
+
+    }
+
+    /**
      * 获取两日期间日期list
      *
      * @param beginDate
@@ -452,6 +624,7 @@ public class BenchmarkingService  {
         List<Project> projects = CacheContext.projects.stream().filter(i -> wpids.contains(i.getWindpowerstationid())).collect(Collectors.toList());
         return projects;
     }
+
     /**
      * 根据项目查询线路列表
      * @param projects
@@ -601,13 +774,11 @@ public class BenchmarkingService  {
             qw.eq("windpowerstationid",wpid);
         }
         qw.groupBy("recorddate");
-        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList);
+        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList,TYPE_DATE);
         return wxsslVoList;
 
     }
 
-
-
     /**
      * 场际对标
      * @param wpids
@@ -625,102 +796,91 @@ public class BenchmarkingService  {
             qw.in("windpowerstationid",wpList);
         }
         qw.groupBy("windpowerstationid");
-        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList);
+        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList,TYPE_WIND);
         return wxsslVoList;
     }
 
-//    /**
-//     * 项目对标
-//     * @param wpids
-//     * @param projectids
-//     * @param beginDate
-//     * @param endDate
-//     * @return
-//     */
-//    public List<WxsslVo> xmdb(String wpids, String projectids, String beginDate, String endDate) {
-//        StringBuilder sb = new StringBuilder();
-//
-//        sb.append("select projectid as name ,sum(genecapacity) fdl,sum(therogenecapacity) llfdl,sum(daynhwhssdl) jxssdl,sum(daynhgzssdl) gzssdl,sum(daynhxdssdl) xdssdl,sum(daynhqfdl) xnssdl,sum(daynhcfdl) slssdl " +
-//                " from gyee_test.equipmentdayinfo where recorddate>=to_date('");
-//        sb.append(beginDate).append("','yyyy-MM-dd') and recorddate<=to_date('");
-//        sb.append(endDate).append("','yyyy-MM-dd') ");
-//        if (StringUtils.isNotEmpty(wpids)){
-//            sb.append(" and (");
-//            String[] wpArray = wpids.split(",");
-//            for (String s : wpArray) {
-//                sb.append(" windpowerstationid = '").append(s).append("' or");
-//            }
-//            sb = new StringBuilder(sb.substring(0, sb.length() - 2));
-//            sb.append(")");
-//        }
-//        if (StringUtils.isNotEmpty(projectids)){
-//            sb.append(" and (");
-//            String[] wpArray = wpids.split(",");
-//            for (String s : wpArray) {
-//                sb.append(" projectid = '").append(s).append("' or");
-//            }
-//            sb = new StringBuilder(sb.substring(0, sb.length() - 2));
-//            sb.append(")");
-//        }
-//        sb.append(" group by projectid");
-//        List<WxsslVo> wxsslVoList = getWxsslSortVos(sb);
-//        return wxsslVoList;
-//    }
-//
-//    /**
-//     * 线路对标
-//     * @param wpids
-//     * @param projectids
-//     * @param lineids
-//     * @param beginDate
-//     * @param endDate
-//     * @return
-//     */
-//    public List<WxsslVo> xldb(String wpids, String projectids, String lineids, String beginDate, String endDate) {
-//        StringBuilder sb = new StringBuilder();
-//
-//        sb.append("select lineid as name ,sum(genecapacity) fdl,sum(therogenecapacity) llfdl,sum(daynhwhssdl) jxssdl,sum(daynhgzssdl) gzssdl,sum(daynhxdssdl) xdssdl,sum(daynhqfdl) xnssdl,sum(daynhcfdl) slssdl " +
-//                " from gyee_test.equipmentdayinfo where recorddate>=to_date('");
-//        sb.append(beginDate).append("','yyyy-MM-dd') and recorddate<=to_date('");
-//        sb.append(endDate).append("','yyyy-MM-dd') ");
-//        if (StringUtils.isNotEmpty(wpids)){
-//            sb.append(" and (");
-//            String[] wpArray = wpids.split(",");
-//            for (String s : wpArray) {
-//                sb.append(" windpowerstationid = '").append(s).append("' or");
-//            }
-//            sb = new StringBuilder(sb.substring(0, sb.length() - 2));
-//            sb.append(")");
-//        }
-//        if (StringUtils.isNotEmpty(projectids)){
-//            sb.append(" and (");
-//            String[] wpArray = wpids.split(",");
-//            for (String s : wpArray) {
-//                sb.append(" projectid = '").append(s).append("' or");
-//            }
-//            sb = new StringBuilder(sb.substring(0, sb.length() - 2));
-//            sb.append(")");
-//        }
-//        if (StringUtils.isNotEmpty(lineids)){
-//            sb.append(" and (");
-//            String[] wpArray = wpids.split(",");
-//            for (String s : wpArray) {
-//                sb.append(" lineid = '").append(s).append("' or");
-//            }
-//            sb = new StringBuilder(sb.substring(0, sb.length() - 2));
-//            sb.append(")");
-//        }
-//        sb.append(" group by lineid");
-//        List<WxsslVo> wxsslVoList = getWxsslSortVos(sb);
-//        return wxsslVoList;
-//    }
-//
-    private List<WxsslVo> getWxsslSortVos(QueryWrapper<Equipmentdayinfo> qw,List<WxsslVo> resultList) {
+    /**
+     * 项目对标
+     * @param wpids
+     * @param projectids
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public List<WxsslVo> xmdb(String wpids, String projectids, String beginDate, String endDate) {
+        List<WxsslVo> resultList = new ArrayList<>();
+        QueryWrapper<Equipmentdayinfo> qw = new QueryWrapper<>();
+        qw.select("projectid,sum(genecapacity) genecapacity,sum(therogenecapacity) therogenecapacity,sum(daynhwhssdl) daynhwhssdl,sum(daynhgzssdl) daynhgzssdl,sum(daynhxdssdl) daynhxdssdl,sum(daynhqfdl) daynhqfdl,sum(daynhcfdl) daynhcfdl");
+        qw.ge("recorddate",DateUtils.parseDate(beginDate)).le("recorddate",DateUtils.parseDate(endDate));
+        if (StringUtils.isNotEmpty(wpids)){
+            List<String> wpList = Arrays.asList(wpids.split(","));
+            qw.in("windpowerstationid",wpList);
+        }
+        if (StringUtils.isNotEmpty(projectids)){
+            List<String> projectList = Arrays.asList(projectids.split(","));
+            qw.in("projectid",projectList);
+        }
+        qw.groupBy("projectid");
+        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList,TYPE_PROJECT);
+        return wxsslVoList;
+    }
+
+    /**
+     * 线路对标
+     * @param wpids
+     * @param projectids
+     * @param lineids
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public List<WxsslVo> xldb(String wpids, String projectids, String lineids, String beginDate, String endDate) {
+
+        List<WxsslVo> resultList = new ArrayList<>();
+        QueryWrapper<Equipmentdayinfo> qw = new QueryWrapper<>();
+        qw.select("lineid,sum(genecapacity) genecapacity,sum(therogenecapacity) therogenecapacity,sum(daynhwhssdl) daynhwhssdl,sum(daynhgzssdl) daynhgzssdl,sum(daynhxdssdl) daynhxdssdl,sum(daynhqfdl) daynhqfdl,sum(daynhcfdl) daynhcfdl");
+        qw.ge("recorddate",DateUtils.parseDate(beginDate)).le("recorddate",DateUtils.parseDate(endDate));
+
+        if (StringUtils.isNotEmpty(wpids)){
+            List<String> wpList = Arrays.asList(wpids.split(","));
+            qw.in("windpowerstationid",wpList);
+        }
+        if (StringUtils.isNotEmpty(projectids)){
+            List<String> projectList = Arrays.asList(projectids.split(","));
+            qw.in("projectid",projectList);
+        }
+        if (StringUtils.isNotEmpty(lineids)){
+            List<String> lineList = Arrays.asList(lineids.split(","));
+            qw.in("lineid",lineList);
+
+        }
+        qw.groupBy("lineid");
+        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList,TYPE_LINE);
+        return wxsslVoList;
+    }
+
+    /**
+     * 根据查询条件和类型,查询处五项损失并封装到结果list
+     * @param qw
+     * @param resultList
+     * @param type
+     * @return
+     */
+    private List<WxsslVo> getWxsslSortVos(QueryWrapper<Equipmentdayinfo> qw, List<WxsslVo> resultList, String type) {
 
         List<Equipmentdayinfo> list = equipmentdayinfoService.list(qw);
         list.stream().forEach(i->{
             WxsslVo vo = new WxsslVo();
-            vo.setId(i.getId());
+            if (type.equals(TYPE_WIND)){
+                vo.setId(i.getWindpowerstationid());
+            }else if(type.equals(TYPE_PROJECT)){
+                vo.setId(i.getProjectid());
+            }else if(type.equals(TYPE_LINE)){
+                vo.setId(i.getLineid());
+            }else if(type.equals(TYPE_WINDTURBINE)){
+                vo.setId(i.getWindturbineid());
+            }
             vo.setDate(i.getRecorddate());
             vo.setFdl(i.getGenecapacity());
             vo.setLlfdl(i.getTherogenecapacity());
@@ -792,6 +952,92 @@ public class BenchmarkingService  {
         return resultList;
     }
 
+    /**
+     * 值际操作指令list
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public List<Operation> findOperecords(String beginDate, String endDate) {
+        List<Operation> resultList = new ArrayList<>();
+        Date begin = DateUtils.parseDate(beginDate);
+        Date end = DateUtils.getEndOfDay(DateUtils.parseDate(endDate));
+        List<Operationrecord> opeList = operationrecordService.listByBeginAndEnd(begin, end);
+        QueryWrapper<Dutyschedule> wrapper = new QueryWrapper();
+        wrapper.select("max(id) id,name,max(begin) begin,max(end) end,max(createdate) createdate");
+        wrapper.le("createdate",end).ge("createdate",begin).groupBy("name");
+        List<Dutyschedule> dutyList= dutyscheduleService.list(wrapper);
+        for (Dutyschedule duty : dutyList) {
+            Operation ope = new Operation();
+            ope.setNameOfDuty(duty.getName());
+            List<Operationrecord> opeVos= opeList.stream().filter(v -> v.getDutyname().equals(duty.getName())).collect(Collectors.toList());
+            ope.setStartCount(opeVos.stream().filter(vo -> vo.getValue()==1.0).collect(Collectors.toList()).size());
+            ope.setStopCount(opeVos.stream().filter(vo -> vo.getValue()==2.0).collect(Collectors.toList()).size());
+            ope.setResetCount(opeVos.stream().filter(vo -> vo.getValue()==3.0).collect(Collectors.toList()).size());
+            ope.setMaintainCount(opeVos.stream().filter(vo -> vo.getValue()==4.0).collect(Collectors.toList()).size());
+            ope.setUnmaintainCount(opeVos.stream().filter(vo -> vo.getValue()==5.0).collect(Collectors.toList()).size());
+            ope.setGpmaintainCount(opeVos.stream().filter(vo -> vo.getValue()==6.0).collect(Collectors.toList()).size());
+            ope.setGpfaultCount(opeVos.stream().filter(vo -> vo.getValue()==7.0).collect(Collectors.toList()).size());
+            ope.setGponsiteinvolvementMaintainCount(opeVos.stream().filter(vo -> vo.getValue()==8.0).collect(Collectors.toList()).size());
+            ope.setGponsiteinvolvementFaultCount(opeVos.stream().filter(vo -> vo.getValue()==9.0).collect(Collectors.toList()).size());
+            ope.setGpoffsiteaffectedgridCount(opeVos.stream().filter(vo -> vo.getValue()==100).collect(Collectors.toList()).size());
+            ope.setGpweatherOutsideCount(opeVos.stream().filter(vo -> vo.getValue()==11.0).collect(Collectors.toList()).size());
+            ope.setUngpCount(opeVos.stream().filter(vo -> vo.getValue()==12.0).collect(Collectors.toList()).size());
+            resultList.add(ope);
+        }
+        return resultList;
+    }
+
+    /**
+     * 值际点击钻取
+     * @param beginDate
+     * @param endDate
+     * @param dutyname
+     * @param direct
+     * @return
+     */
+    public List<Operationrecord> drillOperecords(String beginDate, String endDate, String dutyname, String direct) {
+        Date begin = DateUtils.parseDate(beginDate);
+        Date end = DateUtils.getEndOfDay(DateUtils.parseDate(endDate));
+        List<Operationrecord> opeList = operationrecordService.listByBeginAndEnd(begin,end);
+        List<Operationrecord> resuList = opeList.stream().filter(ope -> ope.getDutyname().equals(dutyname) && ope.getValue() == Double.parseDouble(direct)).collect(Collectors.toList());
+        return resuList;
+    }
 
+    /**
+     * 值际五项损失
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public List<Benchmarkingbetween> findbenchlist(String beginDate, String endDate) {
+        Date begin = DateUtils.parseDate(beginDate);
+        Date end = DateUtils.parseDate(endDate);
+        List<Benchmarkingbetween> resuList =  benchmarkingbetweenService.findByBeginAndEnd(begin,end);
+        return resuList;
+    }
 
+    /**
+     * 对标管理详情页面
+     * @param id
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public List<WxsslVo> details(String id, String beginDate, String endDate) {
+        List<WxsslVo> resultList = new ArrayList<>();
+        QueryWrapper<Equipmentdayinfo> qw = new QueryWrapper<>();
+        qw.select("windturbineid,sum(genecapacity) genecapacity,sum(therogenecapacity) therogenecapacity,sum(daynhwhssdl) daynhwhssdl,sum(daynhgzssdl) daynhgzssdl,sum(daynhxdssdl) daynhxdssdl,sum(daynhqfdl) daynhqfdl,sum(daynhcfdl) daynhcfdl");
+        qw.ge("recorddate",DateUtils.parseDate(beginDate)).le("recorddate",DateUtils.parseDate(endDate));
+        if (id.endsWith("FDC")){
+            qw.eq("windpowerstationid",id);
+        }else if(id.endsWith("GC")){
+            qw.eq("projectid",id);
+        }else if(id.endsWith("XL")){
+            qw.eq("lineid",id);
+        }
+        qw.groupBy("windturbineid");
+        List<WxsslVo> wxsslVoList = getWxsslSortVos(qw,resultList,TYPE_WINDTURBINE);
+        return wxsslVoList;
+    }
 }

Файловите разлики са ограничени, защото са твърде много
+ 1855 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/CompareService.java


+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IBenchmarkingbetweenService.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Benchmarkingbetween;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IBenchmarkingbetweenService extends IService<Benchmarkingbetween> {
+
+    List<Benchmarkingbetween> findByBeginAndEnd(Date begin, Date end);
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IDutyscheduleService.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Dutyschedule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IDutyscheduleService extends IService<Dutyschedule> {
+
+}

+ 19 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IOperationrecordService.java

@@ -0,0 +1,19 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Operationrecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IOperationrecordService extends IService<Operationrecord> {
+    public List<Operationrecord> listByBeginAndEnd(Date begin, Date end);
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbineanalysisdayService.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbineanalysisday;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IWindturbineanalysisdayService extends IService<Windturbineanalysisday> {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbinecurvefittingService.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinecurvefitting;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IWindturbinecurvefittingService extends IService<Windturbinecurvefitting> {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbinecurvefittingmonthService.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinecurvefittingmonth;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IWindturbinecurvefittingmonthService extends IService<Windturbinecurvefittingmonth> {
+
+}

+ 16 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/IWindturbinethewindinfoService.java

@@ -0,0 +1,16 @@
+package com.gyee.benchmarkingimpala.service.auto;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinethewindinfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+public interface IWindturbinethewindinfoService extends IService<Windturbinethewindinfo> {
+
+}

+ 30 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/BenchmarkingbetweenServiceImpl.java

@@ -0,0 +1,30 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Benchmarkingbetween;
+import com.gyee.benchmarkingimpala.mapper.auto.BenchmarkingbetweenMapper;
+import com.gyee.benchmarkingimpala.service.auto.IBenchmarkingbetweenService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class BenchmarkingbetweenServiceImpl extends ServiceImpl<BenchmarkingbetweenMapper, Benchmarkingbetween> implements IBenchmarkingbetweenService {
+
+    @Resource
+    private BenchmarkingbetweenMapper benchmarkingbetweenMapper;
+    @Override
+    public List<Benchmarkingbetween> findByBeginAndEnd(Date begin, Date end) {
+        return benchmarkingbetweenMapper.findByBeginAndEnd(begin,end);
+    }
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/DutyscheduleServiceImpl.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Dutyschedule;
+import com.gyee.benchmarkingimpala.mapper.auto.DutyscheduleMapper;
+import com.gyee.benchmarkingimpala.service.auto.IDutyscheduleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class DutyscheduleServiceImpl extends ServiceImpl<DutyscheduleMapper, Dutyschedule> implements IDutyscheduleService {
+
+}

+ 30 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/OperationrecordServiceImpl.java

@@ -0,0 +1,30 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Operationrecord;
+import com.gyee.benchmarkingimpala.mapper.auto.OperationrecordMapper;
+import com.gyee.benchmarkingimpala.service.auto.IOperationrecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class OperationrecordServiceImpl extends ServiceImpl<OperationrecordMapper, Operationrecord> implements IOperationrecordService {
+    @Resource
+    private OperationrecordMapper  operationrecordMapper;
+    @Override
+    public List<Operationrecord> listByBeginAndEnd(Date begin, Date end) {
+        return operationrecordMapper.listByBeginAndEnd(begin,end);
+    }
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbineanalysisdayServiceImpl.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbineanalysisday;
+import com.gyee.benchmarkingimpala.mapper.auto.WindturbineanalysisdayMapper;
+import com.gyee.benchmarkingimpala.service.auto.IWindturbineanalysisdayService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class WindturbineanalysisdayServiceImpl extends ServiceImpl<WindturbineanalysisdayMapper, Windturbineanalysisday> implements IWindturbineanalysisdayService {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbinecurvefittingServiceImpl.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinecurvefitting;
+import com.gyee.benchmarkingimpala.mapper.auto.WindturbinecurvefittingMapper;
+import com.gyee.benchmarkingimpala.service.auto.IWindturbinecurvefittingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class WindturbinecurvefittingServiceImpl extends ServiceImpl<WindturbinecurvefittingMapper, Windturbinecurvefitting> implements IWindturbinecurvefittingService {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbinecurvefittingmonthServiceImpl.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinecurvefittingmonth;
+import com.gyee.benchmarkingimpala.mapper.auto.WindturbinecurvefittingmonthMapper;
+import com.gyee.benchmarkingimpala.service.auto.IWindturbinecurvefittingmonthService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class WindturbinecurvefittingmonthServiceImpl extends ServiceImpl<WindturbinecurvefittingmonthMapper, Windturbinecurvefittingmonth> implements IWindturbinecurvefittingmonthService {
+
+}

+ 20 - 0
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/service/auto/impl/WindturbinethewindinfoServiceImpl.java

@@ -0,0 +1,20 @@
+package com.gyee.benchmarkingimpala.service.auto.impl;
+
+import com.gyee.benchmarkingimpala.model.auto.Windturbinethewindinfo;
+import com.gyee.benchmarkingimpala.mapper.auto.WindturbinethewindinfoMapper;
+import com.gyee.benchmarkingimpala.service.auto.IWindturbinethewindinfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 谢生杰
+ * @since 2021-06-24
+ */
+@Service
+public class WindturbinethewindinfoServiceImpl extends ServiceImpl<WindturbinethewindinfoMapper, Windturbinethewindinfo> implements IWindturbinethewindinfoService {
+
+}

+ 18 - 4
benchmarking-impala/src/main/java/com/gyee/benchmarkingimpala/task/SaticScheduleTask.java

@@ -2,14 +2,21 @@ package com.gyee.benchmarkingimpala.task;
 
 
 
+import com.gyee.benchmarkingimpala.model.auto.Operationrecord;
 import com.gyee.benchmarkingimpala.service.BenchmarkingService;
 import com.gyee.benchmarkingimpala.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 
+import java.text.ParseException;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @ClassName : SaticScheduleTask
@@ -30,13 +37,20 @@ public class SaticScheduleTask {
     @Scheduled(cron = "0 0 1 * * ?")
     //或直接指定时间间隔,例如:5秒
     //@Scheduled(fixedRate=5000)
-    private void configureTasks1() {
+    private void configureTasks1()  {
         Date yestday = DateUtils.getYestday(new Date());
         String date = DateUtils.toDate1(yestday);
-        benchmarkingService.saveEquipmentdayinfo(date,date);
-        benchmarkingService.saveEquipmentdaydetailed(date,date);
+        try {
+            benchmarkingService.saveEquipmentdayinfo(date,date);
+            benchmarkingService.saveEquipmentdaydetailed(date,date);
+            benchmarkingService.saveOperationrecord(date,date);
+            benchmarkingService.saveBeanchmarkList(date,date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 
 
-
 }

+ 5 - 2
benchmarking-impala/src/test/java/com/gyee/benchmarkingimpala/BenchmarkingImpalaApplicationTests.java

@@ -48,8 +48,11 @@ class BenchmarkingImpalaApplicationTests {
 
     @Test
     void contextLoads1() throws Exception {
-        benchmarkingService.saveEquipmentdayinfo("2021-06-20","2021-06-20");
-        benchmarkingService.saveEquipmentdaydetailed("2021-06-20","2021-06-20");
+//        benchmarkingService.saveEquipmentdayinfo("2021-06-20","2021-06-20");
+//        benchmarkingService.saveEquipmentdaydetailed("2021-06-20","2021-06-20");
+
+
+        benchmarkingService.saveOperationrecord("2021-03-01","2021-03-01");