package com.gyee.power.fitting.controller.fj; import com.alibaba.fastjson.JSONObject; import com.gyee.power.fitting.common.result.JsonResult; import com.gyee.power.fitting.common.result.ResultCode; import com.gyee.power.fitting.model.ProEconPowerFittingAnalySis; import com.gyee.power.fitting.model.custom.PowerPointData; import com.gyee.power.fitting.service.custom.curve.DataFittingService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; /** * 功率曲线拟合 */ @RestController @CrossOrigin @RequestMapping("/power/fitting") public class DataFittingController { @Resource private DataFittingService fittingService; @Autowired private HttpServletRequest request; /** * 数据拟合 * @param ids 数据预处理id * @param maxs * @param mins * @param maxp * @param minp * @param dimension 多项式 * @param mode 拟合方式 0:单台拟合 1:合并拟合 2:同名拟合 * @return */ @GetMapping("/data") public JSONObject dataFitting(@RequestParam(value = "ids", required = false) String ids, @RequestParam(value = "maxs", required = false) Double maxs, @RequestParam(value = "mins", required = false) Double mins, @RequestParam(value = "maxp", required = false) Double maxp, @RequestParam(value = "minp", required = false) Double minp, @RequestParam(value = "dimension", required = false) Integer dimension, @RequestParam(value = "mode", required = false) Integer mode){ if (ids.isEmpty()) return JsonResult.error(ResultCode.PARAM_IS_BLANK); ProEconPowerFittingAnalySis obj = fittingService.dataFitting(ids, maxs, mins, maxp, minp, dimension, mode); return JsonResult.successData(ResultCode.SUCCESS, obj); } /** 文件 tree * @return */ @GetMapping("tree") public JSONObject dataFIttingTree(){ List result = fittingService.dataFittingTree(request); return JsonResult.successData(ResultCode.SUCCESS, result); } /** * file 文件数据展示 * @param id * @return */ @GetMapping("show") public JSONObject dataFittingShow(String id){ Map result = fittingService.dataFittingShow(id); return JsonResult.successData(ResultCode.SUCCESS, result); } /** * 读取曲线,散点等数据 * @param id 拟合好的数据ID * @return */ @GetMapping("curve") public JSONObject dataFittingCurve(String id){ Map result = fittingService.dataFittingCurve(id); return JsonResult.successData(ResultCode.SUCCESS, result); } /** * 通过key获取原始数据 * 对应前端的圈选功能 * @param yk 有用点的key * @param wk 无用点的key * @return */ @GetMapping("filter") public JSONObject dataFittingFilter(String yk, String wk){ List list = fittingService.dataOrigin(yk, wk); return JsonResult.successData(ResultCode.SUCCESS, list); } /** * 保存拟合的功率曲线数据 * @param ids 曲线拟合的ids * @return */ @GetMapping("curve/save") public JSONObject dataCurveSave(String ids){ fittingService.curveSave(ids); return JsonResult.success(ResultCode.SUCCESS); } /** * 获取多风机的拟合曲线功率 * @param ids 拟合好的数据ID * @return */ @GetMapping("line") public JSONObject dataFittingLine(String ids){ Object o = fittingService.dataFittingLine(ids); return JsonResult.successData(ResultCode.SUCCESS, o); } /** * 获取多风机的运行时间 * 不运行时间 3-5m风速运行时间 5-10m风速运行时间 10-12m风速运行时间 12-25m风速运行时间 * 到达切入风速但未运行的时间 * @param ids 拟合好的数据ID * @return */ @GetMapping("time") public JSONObject dataFittingYXTime(String ids){ Object o = fittingService.dataFittingTime(ids); return JsonResult.successData(ResultCode.SUCCESS, o); } }