This commit is contained in:
ls
2024-10-30 15:41:05 +08:00
parent 3e033720dd
commit 443d3c6f5a
14 changed files with 281 additions and 149 deletions

View File

@@ -12,6 +12,11 @@
<artifactId>physical-system-biz</artifactId>
<dependencies>
<dependency>
<groupId>com.deepoove</groupId>
<artifactId>poi-tl</artifactId>
<version>1.12.2</version>
</dependency>
<dependency>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>physical-system-api</artifactId>

View File

@@ -0,0 +1,8 @@
package org.jeecg.modules.database.constant;
public interface ExperimentStatus {
String PRE_TEST="试验前";
String PROGRESSING="试验进行中";
String COMPLETED="试验完成";
}

View File

@@ -1,161 +1,193 @@
package org.jeecg.modules.database.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.database.entity.ExperimentAnnealProcess;
import org.jeecg.modules.database.service.IExperimentAnnealProcessService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import com.alibaba.fastjson.JSON;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.jeecg.common.aspect.annotation.AutoLog;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.modules.database.constant.ExperimentStatus;
import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentAnnealProcess;
import org.jeecg.modules.database.entity.ExperimentLog;
import org.jeecg.modules.database.service.IExperimentAnnealProcessService;
import org.jeecg.modules.database.service.IExperimentLogService;
import org.jeecg.modules.database.service.IExperimentService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
/**
import java.util.Arrays;
/**
* @Description: 退火过程
* @Author: jeecg-boot
* @Date: 2024-10-21
* @Date: 2024-10-21
* @Version: V1.0
*/
@Tag(name="退火过程")
@Tag(name = "退火过程")
@RestController
@RequestMapping("/database/experimentAnnealProcess")
@Slf4j
public class ExperimentAnnealProcessController extends JeecgController<ExperimentAnnealProcess, IExperimentAnnealProcessService> {
@Autowired
private IExperimentAnnealProcessService experimentAnnealProcessService;
/**
* 分页列表查询
*
* @param experimentAnnealProcess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "退火过程-分页列表查询")
@Operation(summary="退火过程-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<ExperimentAnnealProcess>> queryPageList(ExperimentAnnealProcess experimentAnnealProcess,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ExperimentAnnealProcess> queryWrapper = QueryGenerator.initQueryWrapper(experimentAnnealProcess, req.getParameterMap());
Page<ExperimentAnnealProcess> page = new Page<ExperimentAnnealProcess>(pageNo, pageSize);
IPage<ExperimentAnnealProcess> pageList = experimentAnnealProcessService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param experimentAnnealProcess
* @return
*/
@AutoLog(value = "退火过程-添加")
@Operation(summary="退火过程-添加")
@RequiresPermissions("database:experiment_anneal_process:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody ExperimentAnnealProcess experimentAnnealProcess) {
experimentAnnealProcessService.save(experimentAnnealProcess);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param experimentAnnealProcess
* @return
*/
@AutoLog(value = "退火过程-编辑")
@Operation(summary="退火过程-编辑")
@RequiresPermissions("database:experiment_anneal_process:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
public Result<String> edit(@RequestBody ExperimentAnnealProcess experimentAnnealProcess) {
experimentAnnealProcessService.updateById(experimentAnnealProcess);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "退火过程-通过id删除")
@Operation(summary="退火过程-通过id删除")
@RequiresPermissions("database:experiment_anneal_process:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
experimentAnnealProcessService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "退火过程-批量删除")
@Operation(summary="退火过程-批量删除")
@RequiresPermissions("database:experiment_anneal_process:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.experimentAnnealProcessService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "退火过程-通过id查询")
@Operation(summary="退火过程-通过id查询")
@GetMapping(value = "/queryById")
public Result<ExperimentAnnealProcess> queryById(@RequestParam(name="id",required=true) String id) {
ExperimentAnnealProcess experimentAnnealProcess = experimentAnnealProcessService.getById(id);
if(experimentAnnealProcess==null) {
return Result.error("未找到对应数据");
}
return Result.OK(experimentAnnealProcess);
}
@Autowired
private IExperimentAnnealProcessService experimentAnnealProcessService;
@Autowired
private ISysUserService userService;
@Autowired
private IExperimentService experimentService;
@Autowired
private IExperimentLogService experimentLogService;
/**
* 导出excel
*
* @param request
* @param experimentAnnealProcess
*/
* 分页列表查询
*
* @param experimentAnnealProcess
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "退火过程-分页列表查询")
@Operation(summary = "退火过程-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<ExperimentAnnealProcess>> queryPageList(ExperimentAnnealProcess experimentAnnealProcess,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ExperimentAnnealProcess> queryWrapper = QueryGenerator.initQueryWrapper(experimentAnnealProcess, req.getParameterMap());
Page<ExperimentAnnealProcess> page = new Page<ExperimentAnnealProcess>(pageNo, pageSize);
IPage<ExperimentAnnealProcess> pageList = experimentAnnealProcessService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 添加
*
* @param experimentAnnealProcess
* @return
*/
@AutoLog(value = "退火过程-添加")
@Operation(summary = "退火过程-添加")
@RequiresPermissions("database:experiment_anneal_process:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody ExperimentAnnealProcess experimentAnnealProcess, HttpServletRequest request) {
experimentAnnealProcessService.save(experimentAnnealProcess);
String experimentId = experimentAnnealProcess.getExperimentId();
Experiment experiment = new Experiment();
experiment.setId(experimentId);
experiment.setStatus(ExperimentStatus.PROGRESSING);
experimentService.updateById(experiment);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experimentId);
experimentLog.setLogContent("添加退火过程");
String username = JwtUtil.getUserNameByToken(request);
SysUser userByName = userService.getUserByName(username);
experimentLog.setCreateBy(userByName.getRealname());
experimentLogService.save(experimentLog);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param experimentAnnealProcess
* @return
*/
@AutoLog(value = "退火过程-编辑")
@Operation(summary = "退火过程-编辑")
@RequiresPermissions("database:experiment_anneal_process:edit")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody ExperimentAnnealProcess experimentAnnealProcess, HttpServletRequest request) {
experimentAnnealProcessService.updateById(experimentAnnealProcess);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experimentAnnealProcess.getExperimentId());
experimentLog.setLogContent("编辑退火过程");
String username = JwtUtil.getUserNameByToken(request);
SysUser userByName = userService.getUserByName(username);
experimentLog.setCreateBy(userByName.getRealname());
experimentLogService.save(experimentLog);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "退火过程-通过id删除")
@Operation(summary = "退火过程-通过id删除")
@RequiresPermissions("database:experiment_anneal_process:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id, HttpServletRequest request) {
experimentAnnealProcessService.removeById(id);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(id);
experimentLog.setLogContent("删除退火过程");
String username = JwtUtil.getUserNameByToken(request);
SysUser userByName = userService.getUserByName(username);
experimentLog.setCreateBy(userByName.getRealname());
experimentLogService.save(experimentLog);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "退火过程-批量删除")
@Operation(summary = "退火过程-批量删除")
@RequiresPermissions("database:experiment_anneal_process:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
this.experimentAnnealProcessService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
//@AutoLog(value = "退火过程-通过id查询")
@Operation(summary = "退火过程-通过id查询")
@GetMapping(value = "/queryById")
public Result<ExperimentAnnealProcess> queryById(@RequestParam(name = "id", required = true) String id) {
ExperimentAnnealProcess experimentAnnealProcess = experimentAnnealProcessService.getById(id);
if (experimentAnnealProcess == null) {
return Result.error("未找到对应数据");
}
return Result.OK(experimentAnnealProcess);
}
/**
* 导出excel
*
* @param request
* @param experimentAnnealProcess
*/
@RequiresPermissions("database:experiment_anneal_process:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ExperimentAnnealProcess experimentAnnealProcess) {
@@ -163,12 +195,12 @@ public class ExperimentAnnealProcessController extends JeecgController<Experimen
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequiresPermissions("database:experiment_anneal_process:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {

View File

@@ -14,6 +14,7 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.modules.database.constant.ExperimentStatus;
import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentLog;
import org.jeecg.modules.database.service.IExperimentLogService;
@@ -77,6 +78,7 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
@RequiresPermissions("database:experiment:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody Experiment experiment, HttpServletRequest request) {
experiment.setStatus(ExperimentStatus.PRE_TEST);
experimentService.save(experiment);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experiment.getId());

View File

@@ -14,10 +14,13 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.modules.database.constant.ExperimentStatus;
import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentLog;
import org.jeecg.modules.database.entity.ExperimentRadiationProcess;
import org.jeecg.modules.database.service.IExperimentLogService;
import org.jeecg.modules.database.service.IExperimentRadiationProcessService;
import org.jeecg.modules.database.service.IExperimentService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +48,9 @@ public class ExperimentRadiationProcessController extends JeecgController<Experi
@Autowired
private ISysUserService userService;
@Autowired
private IExperimentService experimentService;
/**
* 分页列表查询
*
@@ -79,9 +85,14 @@ public class ExperimentRadiationProcessController extends JeecgController<Experi
@PostMapping(value = "/add")
public Result<String> add(@RequestBody ExperimentRadiationProcess experimentRadiationProcess, HttpServletRequest request) {
experimentRadiationProcessService.save(experimentRadiationProcess);
String experimentId = experimentRadiationProcess.getExperimentId();
Experiment experiment = new Experiment();
experiment.setId(experimentId);
experiment.setStatus(ExperimentStatus.PROGRESSING);
experimentService.updateById(experiment);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experimentRadiationProcess.getExperimentId());
experimentLog.setExperimentId(experimentId);
experimentLog.setLogContent("添加辐照过程");
String username = JwtUtil.getUserNameByToken(request);
SysUser userByName = userService.getUserByName(username);
@@ -106,7 +117,7 @@ public class ExperimentRadiationProcessController extends JeecgController<Experi
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(byId.getExperimentId());
experimentLog.setLogContent("添加辐照过程");
experimentLog.setLogContent("编辑辐照过程");
String username = JwtUtil.getUserNameByToken(request);
SysUser userByName = userService.getUserByName(username);
experimentLog.setCreateBy(userByName.getRealname());

View File

@@ -16,8 +16,11 @@ import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.database.constant.ExperimentStatus;
import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentReport;
import org.jeecg.modules.database.service.IExperimentReportService;
import org.jeecg.modules.database.service.IExperimentService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +42,8 @@ import java.util.Arrays;
public class ExperimentReportController extends JeecgController<ExperimentReport, IExperimentReportService> {
@Autowired
private IExperimentReportService experimentReportService;
@Autowired
private IExperimentService experimentService;
@Autowired
private ISysUserService sysUserService;
@@ -229,6 +234,12 @@ public class ExperimentReportController extends JeecgController<ExperimentReport
}
experimentReportService.updateById(report);
if (StringUtils.equals(report.getStatus(), "PASSED")) {
Experiment experiment = new Experiment();
experiment.setId(report.getExperimentId());
experiment.setStatus(ExperimentStatus.COMPLETED);
experimentService.updateById(experiment);
}
return Result.OK("审核成功!");
}

View File

@@ -14,9 +14,12 @@ import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.util.JwtUtil;
import org.jeecg.modules.database.constant.ExperimentStatus;
import org.jeecg.modules.database.entity.Experiment;
import org.jeecg.modules.database.entity.ExperimentLog;
import org.jeecg.modules.database.entity.ExperimentTestProcess;
import org.jeecg.modules.database.service.IExperimentLogService;
import org.jeecg.modules.database.service.IExperimentService;
import org.jeecg.modules.database.service.IExperimentTestProcessService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
@@ -45,6 +48,9 @@ public class ExperimentTestProcessController extends JeecgController<ExperimentT
@Autowired
private ISysUserService userService;
@Autowired
private IExperimentService experimentService;
/**
* 分页列表查询
*
@@ -79,6 +85,11 @@ public class ExperimentTestProcessController extends JeecgController<ExperimentT
@PostMapping(value = "/add")
public Result<String> add(@RequestBody ExperimentTestProcess experimentTestProcess, HttpServletRequest request) {
experimentTestProcessService.save(experimentTestProcess);
String experimentId = experimentTestProcess.getExperimentId();
Experiment experiment = new Experiment();
experiment.setId(experimentId);
experiment.setStatus(ExperimentStatus.PROGRESSING);
experimentService.updateById(experiment);
ExperimentLog experimentLog = new ExperimentLog();
experimentLog.setExperimentId(experimentTestProcess.getExperimentId());

View File

@@ -1,19 +1,67 @@
package org.jeecg.modules.database.service.impl;
import cn.hutool.core.io.FileUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.deepoove.poi.XWPFTemplate;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.database.entity.ExperimentDoc;
import org.jeecg.modules.database.mapper.ExperimentDocMapper;
import org.jeecg.modules.database.service.IExperimentDocService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* @Description: 试验文档
* @Author: jeecg-boot
* @Date: 2024-08-30
* @Date: 2024-08-30
* @Version: V1.0
*/
@Service
@Slf4j
public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, ExperimentDoc> implements IExperimentDocService {
static Map<String, String> docTempalteMap = new HashMap<>();
static {
//辐照试验计划表
docTempalteMap.put("辐照试验计划表", "fzsyjhb.docx");
docTempalteMap.put("试验报告评审表", "sybgpsb.docx");
docTempalteMap.put("设备使用记录表", "sbsyjlb.docx");
docTempalteMap.put("试验报告", "sybg.docx");
docTempalteMap.put("辐照试验总结单", "fzsyzjd.docx");
}
public static void main(String[] args) throws IOException {
//The core API uses a minimalist design, only one line of code is required
Map<String, Object> maps = new HashMap<>();
maps.put("title", "辐照试验计划表");
generateExperimentDoc("20241028号实验", "辐照试验计划表", maps);
}
public static void generateExperimentDoc(String experimentId, String fileName, Map<String, Object> params) {
URL resourceUrl = ExperimentDocServiceImpl.class.getClassLoader().getResource("templates/doc/" + docTempalteMap.get(fileName));
if (Objects.isNull(resourceUrl)) {
throw new RuntimeException("模板文件不存在!");
}
String absolutePath = resourceUrl.getPath();
log.info("doc template path: " + absolutePath);
try {
String tmpDirPath = FileUtil.getTmpDirPath();
String outputFile = tmpDirPath + fileName + "-" + experimentId + ".docx";
if (FileUtil.exist(outputFile)) {
FileUtil.del(outputFile);
}
log.info("output file path: " + outputFile);
XWPFTemplate.compile(absolutePath).render(params).writeToFile(outputFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

View File

@@ -456,6 +456,10 @@
<nonFilteredFileExtension>eot</nonFilteredFileExtension>
<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<nonFilteredFileExtension>svg</nonFilteredFileExtension>
<nonFilteredFileExtension>doc</nonFilteredFileExtension>
<nonFilteredFileExtension>docx</nonFilteredFileExtension>
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>