根据新的参数计算新的曲线数据接口实现

This commit is contained in:
qiaoqinzheng 2023-08-01 17:15:46 +08:00
parent 24b115744a
commit 23265b3046
4 changed files with 63 additions and 39 deletions

View File

@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
@RestController
@RequestMapping("spectrumAnalysis")
@ -133,13 +134,9 @@ public class SpectrumAnalysesController {
}
@GetMapping("fitting")
public Result fitting(Double paramA, Double paramB, Double paramC, Integer points){
return null;
}
@PostMapping("savetoDB")
public Result savetoDB(HttpServletRequest request, Integer stationId, Integer sampleId){
return null;
@ApiOperation(value = "公式计算新的曲线", notes = "公式计算新的曲线")
public Result fitting(Double paramA, Double paramB, Double paramC, List<Double> tempPoints){
return spectrumAnalysisService.fitting(paramA, paramB, paramC, tempPoints);
}
}

View File

@ -0,0 +1,20 @@
package org.jeecg.modules.entity.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class TableWidget implements Serializable {
private Integer rowCount;
private Double channel;
private Double energy;
private String c;
private String keV;
}

View File

@ -8,6 +8,7 @@ import org.jeecg.modules.entity.vo.StatisticsQueryData;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
public interface ISpectrumAnalysisService {
@ -47,8 +48,6 @@ public interface ISpectrumAnalysisService {
Result statisticsQueryBtn(String detectorName, Integer stationId, String statisticsType, Date startTime, Date endTime);
Result fitting(Double paramA, Double paramB, Double paramC, Integer points);
Result saveToDB(HttpServletRequest request, Integer stationId, Integer sampleId);
Result fitting(Double paramA, Double paramB, Double paramC, List<Double> tempPoints);
}

View File

@ -989,6 +989,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
temp.setY(p2);
oldScatterSeries.add(temp);
}
map.put("oldScatterSeries", oldScatterSeries);
List<Double> xs = new LinkedList<>();
List<Double> ys = new LinkedList<>();
for (int i=0; i< oldScatterSeries.size(); i++){
@ -1174,6 +1175,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
temp.setY(p2);
oldScatterSeries.add(temp);
}
map.put("oldScatterSeries", oldScatterSeries);
List<Double> xs = new LinkedList<>();
List<Double> ys = new LinkedList<>();
for (int i=0; i< oldScatterSeries.size(); i++){
@ -1711,52 +1713,58 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
}
@Override
public Result fitting(Double paramA, Double paramB, Double paramC, Integer points) {
public Result fitting(Double paramA, Double paramB, Double paramC, List<Double> tempPoints) {
Result result = new Result();
Map<String, Object> map = new HashMap<>();
List<Double> fittingPara = new LinkedList<>();
fittingPara.add(paramA);
fittingPara.add(paramB);
fittingPara.add(paramC);
List<Double> xs = new LinkedList<>();
for (int i=0; i<points; i++){
xs.add(Double.valueOf(i));
for (int i=0; i<tempPoints.size(); i++){
xs.add(tempPoints.get(i));
}
List<Double> ys = EnergySpectrumHandler.GetFileFittingPara(xs, fittingPara);
List<SeriseData> seriseDataList = new LinkedList<>();
List<TableWidget> tableWidgets = new LinkedList<>();
for (int i=0; i<xs.size(); i++) {
//表单数据信息
TableWidget tableWidget = new TableWidget();
tableWidget.setRowCount(i+1);
tableWidget.setChannel(xs.get(i));
tableWidget.setEnergy(ys.get(i));
tableWidgets.add(tableWidget);
//折线图位置信息
SeriseData seriseData = new SeriseData();
seriseData.setX(xs.get(i));
seriseData.setY(ys.get(i));
seriseDataList.add(seriseData);
}
map.put("tableWidgets", tableWidgets);
map.put("newScatterSeriesData", seriseDataList);
return null;
}
@Override
public Result saveToDB(HttpServletRequest request, Integer stationId, Integer sampleId) {
Result result = new Result();
String userName = JwtUtil.getUserNameByToken(request);
boolean checkUserStation = userTaskUtil.checkUserStation(stationId, userName);
if ( !checkUserStation ) {
result.error500("This user has no right to store the results of the analysis to the database.");
return result;
List<Double> channels = new LinkedList<>();
for (int i=0; i<255; i++) {
channels.add(Double.valueOf(i));
}
List<Double> energys = EnergySpectrumHandler.GetFileFittingData(channels,fittingPara);
List<SeriseData> newLineSeries = new LinkedList<>();
for (int i=0; i<channels.size(); ++i) {
SeriseData seriseData = new SeriseData();
seriseData.setX(channels.get(i));
seriseData.setY(energys.get(i));
}
map.put("newLineSeries", newLineSeries);
//E to C
List<Double> fittingParaToUi = EnergySpectrumHandler.GetFileFittingPara(ys, xs);
List<String> fittingParaToUiStr = new LinkedList<>();
for (Double para:fittingParaToUi) {
fittingParaToUiStr.add(String.valueOf(para));
}
map.put("EToC", fittingParaToUiStr);
result.setSuccess(true);
result.setResult(map);
return result;
}
private void getData(String userName, Integer sampleId){
String dbName = "RNAUTO.GARDS_ANALYSES";
//基础数据信息
//根据sampleId 获取到文件路径信息
SpectrumFileRecord dbSpectrumFilePath = spectrumAnalysisMapper.getDBSpectrumFilePath(dbName, sampleId);
String collectStartStr = DateUtils.formatDate(dbSpectrumFilePath.getCollectStart(), "yyyy-MM-dd HH:mm:ss");
String dbQcFilePath = spectrumAnalysisMapper.getQCFilePath(dbSpectrumFilePath.getSiteDetCode(), collectStartStr);
dbSpectrumFilePath.setQcFilePath(dbQcFilePath);
//获取当前登录用户名称
String anlyseName = userName;
//获取备注信息
}
}