Merge remote-tracking branch 'origin/SelfStation' into SelfStation

This commit is contained in:
xiaoguangbin 2024-07-19 09:44:11 +08:00
commit fa79e380dd
15 changed files with 1921 additions and 104 deletions

View File

@ -10,5 +10,4 @@ public class SeriseData implements Serializable {
private double x;
private double y;
}

View File

@ -102,12 +102,12 @@ public class EnergySpectrumStruct {
/*
* 坐标: 经度值
* */
public double longitude;
public double lon;
/*
* 坐标: 纬度值
* */
public double latitude;
public double lat;
/************************* Collection Block ******************/

View File

@ -5,7 +5,9 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.google.common.cache.Cache;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.cache.SelfCache;
import org.jeecg.modules.base.abstracts.AbstractLogOrReport;
import org.jeecg.modules.base.enums.CalName;
import org.jeecg.modules.entity.vo.*;
@ -970,4 +972,37 @@ public class SelfStationUtil extends AbstractLogOrReport {
out.printf("%" + ( c.length() + (17 - b.length())) + "s", c+"\n");
}
}
/**
* 根据ROI从selfStationData 获取对应的gamma数据
* @param gammaROINum
* @param selfStationCache
* @return
*/
public PHDFile getGammaPHD(String fileName, String userName, int gammaROINum, SelfCache selfStationCache) {
PHDFile phd = null;
//获取自建台站缓存信息
Cache<String, SelfStationData> selfCache = selfStationCache.getSelfCache();
SelfStationData selfStationData = selfCache.getIfPresent(fileName + StringPool.DASH + userName);
if (Objects.isNull(selfStationData)) {
return phd;
}
switch (gammaROINum) {
case 1:
phd = selfStationData.getSampleVueData().getROIOnePHDFile();
break;
case 2:
phd = selfStationData.getSampleVueData().getROITwoPHDFile();
break;
case 3:
phd = selfStationData.getSampleVueData().getROIThreePHDFile();
break;
case 4:
phd = selfStationData.getSampleVueData().getROIFourPHDFile();
break;
default:
break;
}
return phd;
}
}

View File

@ -3,7 +3,11 @@ package org.jeecg.modules.controller;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.vo.*;
import org.jeecg.modules.entity.vo.ChangeData;
import org.jeecg.modules.entity.vo.ConfigureData;
import org.jeecg.modules.entity.vo.FittingBody;
import org.jeecg.modules.entity.vo.UserLibraryInfo;
import org.jeecg.modules.service.ISelfStationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -176,4 +180,133 @@ public class SelfStationController {
return selfStationService.Reprocessing(fileName, processKey, request);
}
@GetMapping("InteractiveTool")
@ApiOperation(value = "analyze菜单下InteractiveTool页面数据", notes = "analyze菜单下InteractiveTool页面数据")
public Result InteractiveTool(Integer sampleId, String fileName, int gammaROINum, HttpServletRequest request) {
return selfStationService.InteractiveTool(sampleId, fileName, gammaROINum, request);
}
@GetMapping("insertPeak")
@ApiOperation(value = "InteractiveTool页面Insert按钮页面", notes = "InteractiveTool页面Insert按钮页面")
public Result insertPeak(Integer sampleId, String fileName, int gammaROINum, Integer curChan, HttpServletRequest request) {
return selfStationService.insertPeak(sampleId, fileName, gammaROINum, curChan, request);
}
@PostMapping("acceptResults")
@ApiOperation(value = "InteractiveTool页面Insert页面save", notes = "InteractiveTool页面Insert页面save")
public Result acceptResults(@RequestBody AcceptInfo acceptInfo, HttpServletRequest request) {
return selfStationService.acceptResults(acceptInfo.getFileName(), acceptInfo.getGammaROINum(),
acceptInfo.isAccept(), acceptInfo.getOldPeak(), acceptInfo.getTablePeaksList(), acceptInfo.getNewPeak(),
acceptInfo.getFlag(), request);
}
@GetMapping("deletePeak")
@ApiOperation(value = "InteractiveTool页面delete按钮", notes = "InteractiveTool页面delete按钮")
public Result deletePeak(String fileName, int gammaROINum, int curRow, HttpServletRequest request) {
return selfStationService.deletePeak(fileName, curRow, gammaROINum, request);
}
@GetMapping("fitPeak")
public Result fitPeak(int left, int right, String fileName, int gammaROINum, HttpServletRequest request) {
return selfStationService.fitPeak(left, right, fileName, gammaROINum, request);
}
@GetMapping("getGammaSelPosNuclide")
@ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口")
public Result getGammaSelPosNuclide(Integer sampleId, String fileName, int gammaROINum, int channel, double energy, HttpServletRequest request) {
return selfStationService.getGammaSelPosNuclide(sampleId, fileName, gammaROINum, channel, energy, request);
}
@GetMapping("getGammaSelPosNuclideApp")
@ApiOperation(value = "gamma主页面选择channel加载对应核素信息接口", notes = "gamma主页面选择channel加载对应核素信息接口")
public Result getGammaSelPosNuclideApp(@RequestParam("sampleId") Integer sampleId,@RequestParam("fileName") String fileName,
int gammaROINum,
@RequestParam("channel") int channel,@RequestParam("energy") double energy,
HttpServletRequest request) {
return selfStationService.getGammaSelPosNuclide(sampleId, fileName, gammaROINum, channel, energy, request);
}
@GetMapping("getSelPosNuclide")
@ApiOperation(value = "InteractiveTool页面选择channel加载对应核素信息接口", notes = "InteractiveTool页面选择channel加载对应核素信息接口")
public Result getSelPosNuclide(Integer sampleId, String fileName, int gammaROINum, int channel, HttpServletRequest request) {
return selfStationService.getSelPosNuclide(sampleId, fileName, gammaROINum, channel, request);
}
@PostMapping("addNuclide")
@ApiOperation(value = "InteractiveTool页面增加核素信息接口", notes = "InteractiveTool页面增加核素信息接口")
public Result addNuclide(@RequestBody NuclideInfo nuclideInfo, HttpServletRequest request) {
return selfStationService.addNuclide(nuclideInfo.getCurRow(), nuclideInfo.getNuclideName(),
nuclideInfo.getFileName(), nuclideInfo.getGammaRoiNum(), nuclideInfo.getList_identify(), request);
}
@PostMapping("deleteNuclide")
@ApiOperation(value = "InteractiveTool页面删除核素信息接口", notes = "InteractiveTool页面删除核素信息接口")
public Result deleteNuclide(@RequestBody NuclideInfo nuclideInfo, HttpServletRequest request) {
return selfStationService.deleteNuclide(nuclideInfo.getCurRow(), nuclideInfo.getNuclideName(),
nuclideInfo.getFileName(), nuclideInfo.getGammaRoiNum(), nuclideInfo.getList_identify(), request);
}
@GetMapping("viewPeakComment")
@ApiOperation(value = "InteractiveTool页面查看峰对应备注信息接口", notes = "InteractiveTool页面查看峰对应备注信息接口")
public Result viewPeakComment(String fileName, int gammaROINum, int curRow, HttpServletRequest request) {
return selfStationService.viewPeakComment(fileName, gammaROINum, curRow, request);
}
@PostMapping("addPeakComment")
@ApiOperation(value = "InteractiveTool页面add峰对应备注信息接口", notes = "InteractiveTool页面add峰对应备注信息接口")
public Result addPeakComment(@RequestBody CommentsInfo commentsInfo, HttpServletRequest request) {
return selfStationService.addPeakComment(commentsInfo.getFileName(), commentsInfo.getCurRow(),
commentsInfo.getGammaROINum(),commentsInfo.getComments(), request);
}
@GetMapping("viewGeneralComment")
@ApiOperation(value = "InteractiveTool页面查看备注信息接口", notes = "InteractiveTool页面查看备注信息接口")
public Result viewGeneralComment(String fileName, int gammaROINum, HttpServletRequest request) {
return selfStationService.viewGeneralComment(fileName, gammaROINum, request);
}
@PostMapping("addGeneralComment")
@ApiOperation(value = "InteractiveTool页面add备注信息接口", notes = "InteractiveTool页面add备注信息接口")
public Result addGeneralComment(@RequestBody CommentsInfo commentsInfo, HttpServletRequest request) {
return selfStationService.addGeneralComment(commentsInfo.getFileName(), commentsInfo.getGammaROINum(),
commentsInfo.getComments(), request);
}
/***************************************** beta ******************************************/
@PostMapping("fitting")
@ApiOperation(value = "公式计算新的曲线", notes = "公式计算新的曲线")
public Result fitting(@RequestBody FittingBody fittingBody, HttpServletRequest request) {
return selfStationService.fitting(fittingBody.getParamA(), fittingBody.getParamB(), fittingBody.getParamC(), fittingBody.getTempPoints(), fittingBody.getCount(), fittingBody.getSampleFileName(), fittingBody.getTabName(), fittingBody.isFittingBtn(), request);
}
@GetMapping("NuclideLibrary")
@ApiOperation(value = "查看Nuclide Library页面数据", notes = "查看Nuclide Library页面数据")
public Result NuclideLibrary(Integer sampleId, String fileName, String editEnergy, double err, String libraryName, String nuclideName, HttpServletRequest request) {
return selfStationService.NuclideLibrary(sampleId, fileName, editEnergy, err, libraryName, nuclideName, request);
}
@GetMapping("configUserLibrary")
@ApiOperation(value = "查看Config Nuclide Library页面数据", notes = "查看Config Nuclide Library页面数据")
public Result configUserLibrary(Integer sampleId, String fileName, HttpServletRequest request) {
return selfStationService.configUserLibrary(sampleId, fileName, request);
}
@PostMapping("saveUserLibrary")
@ApiOperation(value = "Config User Library页面save按钮", notes = "Config User Library页面save按钮")
public Result saveUserLibrary(@RequestBody UserLibraryInfo userLibraryInfo, HttpServletRequest request) {
return selfStationService.saveUserLibrary(userLibraryInfo.getUserLibraryName(), userLibraryInfo.getFileName(), request);
}
@GetMapping("configure")
@ApiOperation(value = "analyze菜单下configure页面数据", notes = "analyze菜单下configure页面数据")
public Result configure(String fileName, HttpServletRequest request) {
return selfStationService.configure(fileName, request);
}
@PostMapping("configureSave")
@ApiOperation(value = "analyze菜单下configure页面数据保存按钮", notes = "analyze菜单下configure页面数据保存按钮")
public Result configureSave(@RequestBody ConfigureData configureData, HttpServletRequest request) {
return selfStationService.configureSave(configureData, request);
}
}

View File

@ -20,4 +20,6 @@ public class AcceptInfo implements Serializable {
private String flag;
private Integer gammaROINum;
}

View File

@ -13,4 +13,6 @@ public class CommentsInfo implements Serializable {
private String comments;
private int gammaROINum;
}

View File

@ -10,6 +10,8 @@ public class NuclideInfo implements Serializable {
private Integer curRow;
private Integer gammaRoiNum;
private String nuclideName;
private String fileName;

View File

@ -13,6 +13,10 @@ public class SelfStationVueData implements Serializable {
/**
* ROI-1结果数据
*/
/**
* ROI-1 Gamma文件名称
*/
private String ROIOneFileName;
/**
* 折线图横纵坐标数组
*/
@ -34,6 +38,10 @@ public class SelfStationVueData implements Serializable {
/**
* ROI-2结果数据
*/
/**
* ROI-2 Gamma文件名称
*/
private String ROITwoFileName;
/**
* 折线图横纵坐标数组
*/
@ -55,6 +63,10 @@ public class SelfStationVueData implements Serializable {
/**
* ROI-3结果数据
*/
/**
* ROI-3 Gamma文件名称
*/
private String ROIThreeFileName;
//折线图横纵坐标数组
private List<SeriseData> ROIThreeList;
private List<Long> ROIThreeCounts;
@ -70,6 +82,10 @@ public class SelfStationVueData implements Serializable {
/**
* ROI-4结果数据
*/
/**
* ROI-4 Gamma文件名称
*/
private String ROIFourFileName;
//折线图横纵坐标数组
private List<SeriseData> ROIFourList;
private List<Long> ROIFourCounts;
@ -142,6 +158,11 @@ public class SelfStationVueData implements Serializable {
mapEnerPara = new HashMap<>();
mapResoPara = new HashMap<>();
mapEffiPara = new HashMap<>();
ROIOnePHDFile = new PHDFile();
ROITwoPHDFile = new PHDFile();
ROIThreePHDFile = new PHDFile();
ROIFourPHDFile = new PHDFile();
}
}

View File

@ -8,8 +8,12 @@ import java.util.List;
public interface SysDefaultNuclideSpectrumMapper extends BaseMapper<SysDefaultNuclide> {
List<String> findNuclidesByUserName(@Param(value = "userName") String userName, @Param(value = "systemType") String systemType);
List<String> findNuclidesByUserName(@Param(value = "userName") String userName,
@Param(value = "systemType") String systemType,
@Param("useType") Integer useType);
void deleteNuclidesByUserName(@Param(value = "userName") String userName, @Param(value = "systemType") String systemType);
void deleteNuclidesByUserName(@Param(value = "userName") String userName,
@Param(value = "systemType") String systemType,
@Param("useType") Integer useType);
}

View File

@ -7,7 +7,7 @@
nuclide_name
from
sys_default_nuclide
where use_type = 3
where use_type = #{useType}
and nuclide_type = #{systemType}
and create_by = #{userName}
</select>
@ -15,7 +15,7 @@
<delete id="deleteNuclidesByUserName">
delete from
sys_default_nuclide
where use_type = 3
where use_type = #{useType}
and nuclide_type = #{systemType}
and create_by = #{userName}
</delete>

View File

@ -1,7 +1,11 @@
package org.jeecg.modules.service;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.vo.ConfigureData;
import org.jeecg.modules.entity.vo.ParameterInfo;
import org.jeecg.modules.entity.vo.PeakInfo;
import org.jeecg.modules.entity.vo.SeriseData;
import org.jeecg.modules.entity.vo.TablePeaks;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
@ -62,4 +66,44 @@ public interface ISelfStationService {
Result viewBetaDetectorCalibration(Integer sampleId, String sampleFileName, String qcFileName, boolean fittingBtn, HttpServletRequest request);
Result Reprocessing(String fileName, String processKey, HttpServletRequest request);
Result InteractiveTool(Integer sampleId, String fileName, int gammaROINum, HttpServletRequest request);
Result insertPeak(Integer sampleId, String fileName, int gammaROINum, Integer curChan, HttpServletRequest request);
Result acceptResults(String fileName, int gammaROINum, boolean accept, List<PeakInfo> oldPeak, List<TablePeaks> tablePeaksList,
List<PeakInfo> newPeak, String flag, HttpServletRequest request);
Result deletePeak(String fileName, int curRow, int gammaROINum, HttpServletRequest request);
Result fitPeak(int left, int right, String fileName, int gammaROINum, HttpServletRequest request);
Result getGammaSelPosNuclide(Integer sampleId, String fileName, int gammaROINum, int channel, double energy, HttpServletRequest request);
Result getSelPosNuclide(Integer sampleId, String fileName, int gammaROINum, int channel, HttpServletRequest request);
Result addNuclide(Integer curRow, String nuclideName, String fileName, int gammaROINum, List<String> list_identify, HttpServletRequest request);
Result deleteNuclide(Integer curRow, String nuclideName, String fileName, int gammaROINum, List<String> list_identify, HttpServletRequest request);
Result viewPeakComment(String fileName, int gammaROINum, int curRow, HttpServletRequest request);
Result addPeakComment(String fileName, int gammaROINum, int curRow, String comments, HttpServletRequest request);
Result viewGeneralComment(String fileName, int gammaROINum, HttpServletRequest request);
Result addGeneralComment(String fileName, int gammaROINum, String comments, HttpServletRequest request);
Result fitting(Double paramA, Double paramB, Double paramC, List<SeriseData> tempPointsArray, Integer count,
String sampleFileName, String tabName, boolean fittingBtn, HttpServletRequest request);
Result NuclideLibrary(Integer sampleId, String fileName, String editEnergy, double err, String libraryName, String nuclideName, HttpServletRequest request);
Result configUserLibrary(Integer sampleId, String fileName, HttpServletRequest request);
Result saveUserLibrary(List<String> userLibraryName, String fileName, HttpServletRequest request);
Result configure(String fileName, HttpServletRequest request);
Result configureSave(ConfigureData configureData, HttpServletRequest request);
}

View File

@ -7,8 +7,8 @@ import java.util.List;
public interface ISysDefaultNuclideSpectrumService extends IService<SysDefaultNuclide> {
List<String> findNuclidesByUserName(String userName, String systemType);
List<String> findNuclidesByUserName(String userName, String systemType, Integer useType);
boolean saveNuclidesByUserName(List<String> userLibraryName, String userName, String systemType);
boolean saveNuclidesByUserName(List<String> userLibraryName, String userName, String systemType, Integer useType);
}

View File

@ -212,9 +212,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
// 查询当前用户关联的核素信息
List<String> userLib = new LinkedList<>();
// 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的
userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase());
userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase(), 3);
if (CollectionUtils.isEmpty(userLib)) {
userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase());
userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase(), 3);
}
userLib = userLib.stream().sorted().collect(Collectors.toList());
Map<String, NuclideLines> nuclideMap = new HashMap<>();
@ -623,9 +623,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
// 查询当前用户关联的核素信息
List<String> userLib = new LinkedList<>();
// 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的
userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase());
userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase(), 3);
if (CollectionUtils.isEmpty(userLib)) {
userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase());
userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase(), 3);
}
userLib = userLib.stream().sorted().collect(Collectors.toList());
Map<String, NuclideLines> nuclideMap = new HashMap<>();
@ -3825,7 +3825,7 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
return result;
}
userLibraryName = userLibraryName.stream().distinct().collect(Collectors.toList());
boolean save = defaultNuclideSpectrumService.saveNuclidesByUserName(userLibraryName, userName, phd.getHeader().getSystem_type().toUpperCase());
boolean save = defaultNuclideSpectrumService.saveNuclidesByUserName(userLibraryName, userName, phd.getHeader().getSystem_type().toUpperCase(), 3);
if (save) {
result.success("Modified successfully");
// 重新计算峰值
@ -3833,9 +3833,9 @@ public class GammaServiceImpl extends AbstractLogOrReport implements IGammaServi
// 查询当前用户关联的核素信息
List<String> userLib = new LinkedList<>();
// 从postgreSql中获取当前用户关注的核素信息 如果当前用户没有 则返回管理员的
userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase());
userLib = defaultNuclideSpectrumService.findNuclidesByUserName(userName, phd.getHeader().getSystem_type().toUpperCase(), 3);
if (CollectionUtils.isEmpty(userLib)) {
userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase());
userLib = defaultNuclideSpectrumService.findNuclidesByUserName("admin", phd.getHeader().getSystem_type().toUpperCase(), 3);
}
Map<String, NuclideLines> nuclideMap = new HashMap<>();
for (Map.Entry<String, NuclideLines> entry:allNuclideMap.entrySet()) {

View File

@ -20,20 +20,20 @@ public class SysDefaultNuclideSpectrumServiceImpl extends ServiceImpl<SysDefault
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public List<String> findNuclidesByUserName(String userName, String systemType) {
public List<String> findNuclidesByUserName(String userName, String systemType, Integer useType) {
//查询当前用户的核素信息
List<String> nuclides = this.baseMapper.findNuclidesByUserName(userName, systemType);
List<String> nuclides = this.baseMapper.findNuclidesByUserName(userName, systemType, useType);
if (CollectionUtils.isEmpty(nuclides)){
nuclides = this.baseMapper.findNuclidesByUserName("admin", systemType);
nuclides = this.baseMapper.findNuclidesByUserName("admin", systemType, useType);
}
return nuclides;
}
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public boolean saveNuclidesByUserName(List<String> userLibraryName, String userName, String systemType) {
public boolean saveNuclidesByUserName(List<String> userLibraryName, String userName, String systemType, Integer useType) {
//删除当前用户名当前使用类型下所有的数据
this.baseMapper.deleteNuclidesByUserName(userName, systemType);
this.baseMapper.deleteNuclidesByUserName(userName, systemType, useType);
//删除后重新插入本次数据
List<SysDefaultNuclide> defaultNuclideList = new LinkedList<>();
for (String nuclideName: userLibraryName) {
@ -42,7 +42,7 @@ public class SysDefaultNuclideSpectrumServiceImpl extends ServiceImpl<SysDefault
continue;
}
nuclide.setNuclideName(nuclideName);
nuclide.setUseType(3);
nuclide.setUseType(useType);
nuclide.setNuclideType(systemType);
nuclide.setCreateBy(userName);
defaultNuclideList.add(nuclide);