DataFittingController.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.gyee.power.fitting.controller.fj;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.gyee.power.fitting.common.result.JsonResult;
  4. import com.gyee.power.fitting.common.result.ResultCode;
  5. import com.gyee.power.fitting.model.ProEconPowerFittingAnalySis;
  6. import com.gyee.power.fitting.model.custom.PowerPointData;
  7. import com.gyee.power.fitting.service.custom.curve.DataFittingService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.web.bind.annotation.*;
  10. import javax.annotation.Resource;
  11. import javax.servlet.http.HttpServletRequest;
  12. import java.util.List;
  13. import java.util.Map;
  14. /**
  15. * 功率曲线拟合
  16. */
  17. @RestController
  18. @CrossOrigin
  19. @RequestMapping("/power/fitting")
  20. public class DataFittingController {
  21. @Resource
  22. private DataFittingService fittingService;
  23. @Autowired
  24. private HttpServletRequest request;
  25. /**
  26. * 数据拟合
  27. * @param ids 数据预处理id
  28. * @param maxs
  29. * @param mins
  30. * @param maxp
  31. * @param minp
  32. * @param dimension 多项式
  33. * @param mode 拟合方式 0:单台拟合 1:合并拟合 2:同名拟合
  34. * @return
  35. */
  36. @GetMapping("/data")
  37. public JSONObject dataFitting(@RequestParam(value = "ids", required = false) String ids,
  38. @RequestParam(value = "maxs", required = false) Double maxs,
  39. @RequestParam(value = "mins", required = false) Double mins,
  40. @RequestParam(value = "maxp", required = false) Double maxp,
  41. @RequestParam(value = "minp", required = false) Double minp,
  42. @RequestParam(value = "dimension", required = false) Integer dimension,
  43. @RequestParam(value = "mode", required = false) Integer mode){
  44. if (ids.isEmpty())
  45. return JsonResult.error(ResultCode.PARAM_IS_BLANK);
  46. ProEconPowerFittingAnalySis obj = fittingService.dataFitting(ids, maxs, mins, maxp, minp, dimension, mode);
  47. return JsonResult.successData(ResultCode.SUCCESS, obj);
  48. }
  49. /** 文件 tree
  50. * @return
  51. */
  52. @GetMapping("tree")
  53. public JSONObject dataFIttingTree(){
  54. List<Object> result = fittingService.dataFittingTree(request);
  55. return JsonResult.successData(ResultCode.SUCCESS, result);
  56. }
  57. /**
  58. * file 文件数据展示
  59. * @param id
  60. * @return
  61. */
  62. @GetMapping("show")
  63. public JSONObject dataFittingShow(String id){
  64. Map<String, Object> result = fittingService.dataFittingShow(id);
  65. return JsonResult.successData(ResultCode.SUCCESS, result);
  66. }
  67. /**
  68. * 读取曲线,散点等数据
  69. * @param id 拟合好的数据ID
  70. * @return
  71. */
  72. @GetMapping("curve")
  73. public JSONObject dataFittingCurve(String id){
  74. Map<String, Object> result = fittingService.dataFittingCurve(id);
  75. return JsonResult.successData(ResultCode.SUCCESS, result);
  76. }
  77. /**
  78. * 通过key获取原始数据
  79. * 对应前端的圈选功能
  80. * @param yk 有用点的key
  81. * @param wk 无用点的key
  82. * @return
  83. */
  84. @GetMapping("filter")
  85. public JSONObject dataFittingFilter(String yk, String wk){
  86. List<PowerPointData> list = fittingService.dataOrigin(yk, wk);
  87. return JsonResult.successData(ResultCode.SUCCESS, list);
  88. }
  89. /**
  90. * 保存拟合的功率曲线数据
  91. * @param ids 曲线拟合的ids
  92. * @return
  93. */
  94. @GetMapping("curve/save")
  95. public JSONObject dataCurveSave(String ids){
  96. fittingService.curveSave(ids);
  97. return JsonResult.success(ResultCode.SUCCESS);
  98. }
  99. /**
  100. * 获取多风机的拟合曲线功率
  101. * @param ids 拟合好的数据ID
  102. * @return
  103. */
  104. @GetMapping("line")
  105. public JSONObject dataFittingLine(String ids){
  106. Object o = fittingService.dataFittingLine(ids);
  107. return JsonResult.successData(ResultCode.SUCCESS, o);
  108. }
  109. /**
  110. * 获取多风机的运行时间
  111. * 不运行时间 3-5m风速运行时间 5-10m风速运行时间 10-12m风速运行时间 12-25m风速运行时间
  112. * 到达切入风速但未运行的时间
  113. * @param ids 拟合好的数据ID
  114. * @return
  115. */
  116. @GetMapping("time")
  117. public JSONObject dataFittingYXTime(String ids){
  118. Object o = fittingService.dataFittingTime(ids);
  119. return JsonResult.successData(ResultCode.SUCCESS, o);
  120. }
  121. }