This commit is contained in:
ls
2024-11-21 10:45:12 +08:00
parent 32b72076d9
commit f1cbecdd23
8 changed files with 86 additions and 45 deletions

View File

@@ -13,7 +13,7 @@ import lombok.Getter;
*/
@Getter
@AllArgsConstructor
public enum ExperimentType {
public enum ExperimentDocType {
fzsyjhb("辐照试验计划表"),
sbsyjlb("设备使用记录表"),
sybgpsb("试验报告评审表"),

View File

@@ -1,5 +1,7 @@
package org.jeecg.modules.database.controller;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -16,7 +18,7 @@ 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.modules.database.constant.ExperimentType;
import org.jeecg.modules.database.constant.ExperimentDocType;
import org.jeecg.modules.database.entity.ExperimentDoc;
import org.jeecg.modules.database.service.IExperimentDocService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -72,6 +74,7 @@ public class ExperimentDocController extends JeecgController<ExperimentDoc, IExp
@RequiresPermissions("database:experiment_doc:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody ExperimentDoc experimentDoc) {
experimentDoc.setVersion(DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN));
experimentDocService.save(experimentDoc);
return Result.OK("添加成功!");
}
@@ -141,19 +144,16 @@ public class ExperimentDocController extends JeecgController<ExperimentDoc, IExp
/**
* 通过实验id查询
*
* @param experimentalId
* @param experimentId
* @return
*/
//@AutoLog(value = "试验评定-通过id查询")
@Operation(summary = "试验报告-通过实验ID查询")
@GetMapping(value = "/queryByExperimentId")
public Result<List<ExperimentDoc>> queryByExperimentalId(@RequestParam(name = "experimentId", required = true) String experimentId) {
public Result<List<ExperimentDoc>> queryByExperimentId(@RequestParam(name = "experimentId", required = true) String experimentId) {
List<ExperimentDoc> result = new ArrayList<>();
for (ExperimentType value : ExperimentType.values()) {
LambdaQueryWrapper<ExperimentDoc> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ExperimentDoc::getExperimentId, experimentId);
queryWrapper.eq(ExperimentDoc::getDocType, value.getType());
ExperimentDoc doc = experimentDocService.getOne(queryWrapper);
for (ExperimentDocType value : ExperimentDocType.values()) {
ExperimentDoc doc = experimentDocService.getByExperimentId(experimentId, value.getType());
if (Objects.isNull(doc)) {
doc = experimentDocService.generate(experimentId, value.getType());
}
@@ -168,6 +168,18 @@ public class ExperimentDocController extends JeecgController<ExperimentDoc, IExp
return Result.OK(result);
}
@Operation(summary = "试验报告-通过实验ID查询所有版本文档")
@GetMapping(value = "/queryHistoryByExperimentId")
public Result<Map<String, List<ExperimentDoc>>> queryHistoryByExperimentId(
@RequestParam(name = "experimentId", required = true) String experimentId) {
Map<String, List<ExperimentDoc>> result = new HashMap<>();
for (ExperimentDocType value : ExperimentDocType.values()) {
List<ExperimentDoc> docList = experimentDocService.getHistoryByExperimentId(experimentId, value.getType());
result.put(value.getType(), docList);
}
return Result.OK(result);
}
/**
* 试验文档下载
*

View File

@@ -1,7 +1,6 @@
package org.jeecg.modules.database.controller;
import cn.hutool.core.util.ObjUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,11 +17,10 @@ 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.ExperimentDocType;
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.database.entity.*;
import org.jeecg.modules.database.service.*;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +28,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 试验报告
@@ -51,6 +48,9 @@ public class ExperimentReportController extends JeecgController<ExperimentReport
@Autowired
private ISysUserService sysUserService;
@Autowired
private IExperimentDocService experimentDocService;
/**
* 分页列表查询
*
@@ -70,6 +70,10 @@ public class ExperimentReportController extends JeecgController<ExperimentReport
QueryWrapper<ExperimentReport> queryWrapper = QueryGenerator.initQueryWrapper(experimentReport, req.getParameterMap());
Page<ExperimentReport> page = new Page<ExperimentReport>(pageNo, pageSize);
IPage<ExperimentReport> pageList = experimentReportService.page(page, queryWrapper);
pageList.getRecords().forEach(v -> {
ExperimentDoc experimentDoc = experimentDocService.getByExperimentId(v.getExperimentId(), ExperimentDocType.sybg.getType());
v.setFileUrl(experimentDoc.getFilePath());
});
return Result.OK(pageList);
}
@@ -92,6 +96,10 @@ public class ExperimentReportController extends JeecgController<ExperimentReport
if (ObjUtil.isNull(experiment)) {
return Result.error("试验数据不存在!");
}
ExperimentReport report = experimentReportService.getByExperimentId(experimentId);
if (ObjUtil.isNotNull(report)) {
return Result.error("试验试验报告已存在!");
}
experimentReport.setReportName(experiment.getName() + "-试验报告");
experimentReportService.save(experimentReport);
return Result.OK("添加成功!");
@@ -110,14 +118,15 @@ public class ExperimentReportController extends JeecgController<ExperimentReport
public Result<String> edit(@RequestBody ExperimentReport experimentReport, HttpServletRequest request) {
String username = JwtUtil.getUserNameByToken(request);
ExperimentReport report = experimentReportService.getById(experimentReport.getId());
if (!StringUtils.equals(report.getCreateBy(), username)) {
return Result.error("您无权进行编辑!");
}
//if (!StringUtils.equals(report.getCreateBy(), username)) {
// return Result.error("您无权进行编辑!");
//}
//待校对
if (!(StringUtils.equals(report.getStatus(), "INIT") || StringUtils.equals(report.getStatus(), "REJECT"))) {
return Result.error("该报告状态无法进行编辑!");
}
experimentReportService.updateById(experimentReport);
experimentDocService.generate(report.getExperimentId(), ExperimentDocType.sybg.getType());
return Result.OK("编辑成功!");
}
@@ -165,27 +174,32 @@ public class ExperimentReportController extends JeecgController<ExperimentReport
if (experimentReport == null) {
return Result.error("未找到对应数据");
}
ExperimentDoc experimentDoc = experimentDocService.getByExperimentId(experimentReport.getExperimentId(),
ExperimentDocType.sybg.getType());
experimentReport.setFileUrl(experimentDoc.getFilePath());
return Result.OK(experimentReport);
}
/**
* 通过实验id查询
*
* @param experimentalId
* @param experimentId
* @return
*/
//@AutoLog(value = "试验评定-通过id查询")
@Operation(summary = "试验报告-通过实验ID查询")
@GetMapping(value = "/queryByExperimentId")
public Result<List<ExperimentReport>> queryByExperimentalId(
@RequestParam(name = "experimentId", required = true) String experimentalId) {
LambdaQueryWrapper<ExperimentReport> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ExperimentReport::getExperimentId, experimentalId);
List<ExperimentReport> experimentReview = experimentReportService.list(queryWrapper);
if (experimentReview == null) {
return Result.error("未找到对应数据");
public Result<ExperimentReport> getByExperimentId(
@RequestParam(name = "experimentId", required = true) String experimentId) {
ExperimentReport experimentReport = experimentReportService.getByExperimentId(experimentId);
if (experimentReport == null) {
return Result.error("试验报告不存在!");
}
return Result.OK(experimentReview);
ExperimentDoc experimentDoc = experimentDocService.getByExperimentId(experimentId, ExperimentDocType.sybg.getType());
experimentReport.setFileUrl(experimentDoc.getFilePath());
return Result.OK(experimentReport);
}
/**

View File

@@ -81,4 +81,11 @@ public class ExperimentDoc implements Serializable {
@Excel(name = "文件地址", width = 15)
@Schema(description = "文件地址")
private String filePath;
/**
* 版本号
*/
@Excel(name = "版本号", width = 15)
@Schema(description = "版本号")
private String version;
}

View File

@@ -1,8 +1,6 @@
package org.jeecg.modules.database.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -45,7 +43,7 @@ public class ExperimentReport implements Serializable {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "创建日期")
private Date createTime;
private Date createTime;
/**
* 更新人
*/
@@ -57,7 +55,7 @@ public class ExperimentReport implements Serializable {
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Schema(description = "更新日期")
private Date updateTime;
private Date updateTime;
/**
* 所属部门
*/
@@ -117,4 +115,7 @@ public class ExperimentReport implements Serializable {
@Excel(name = "状态", width = 15)
@Schema(description = "状态(申请中(待校对):INIT,不合格:REJECT ,校对通过(待审核)PROOFREAD_PASS,审核通过(待批准)AUDIT_PASS批准通过PASSED)")
private String status;
@TableField(exist = false)
private String fileUrl;
}

View File

@@ -15,6 +15,7 @@ public interface IExperimentDocService extends IService<ExperimentDoc> {
ExperimentDoc generate(String experimentId, String type);
List<ExperimentDoc> getByExperimentId(String experimentId);
List<ExperimentDoc> getHistoryByExperimentId(String experimentId,String type);
ExperimentDoc getByExperimentId(String experimentId,String type);
}

View File

@@ -1,5 +1,7 @@
package org.jeecg.modules.database.service.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -76,24 +78,26 @@ public class ExperimentDocServiceImpl extends ServiceImpl<ExperimentDocMapper, E
public ExperimentDoc generate(String experimentId, String type) {
String filePath = generateExperimentDoc(experimentId, type, new HashMap<>());
if (StringUtils.isNotBlank(filePath)) {
LambdaQueryWrapper<ExperimentDoc> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ExperimentDoc::getExperimentId, experimentId);
queryWrapper.eq(ExperimentDoc::getDocType, type);
ExperimentDoc experimentDoc = this.getOne(queryWrapper);
if (Objects.isNull(experimentDoc)) {
experimentDoc = new ExperimentDoc();
experimentDoc.setDocType(type);
experimentDoc.setExperimentId(experimentId);
}
ExperimentDoc experimentDoc = new ExperimentDoc();
experimentDoc.setDocType(type);
experimentDoc.setExperimentId(experimentId);
experimentDoc.setFilePath(filePath);
this.saveOrUpdate(experimentDoc);
experimentDoc.setVersion(DateUtil.format(new Date(), DatePattern.PURE_DATETIME_PATTERN));
this.save(experimentDoc);
return experimentDoc;
}
return null;
}
@Override
public List<ExperimentDoc> getByExperimentId(String experimentId) {
return list(new LambdaQueryWrapper<ExperimentDoc>().eq(ExperimentDoc::getExperimentId, experimentId));
public List<ExperimentDoc> getHistoryByExperimentId(String experimentId, String type) {
return list(new LambdaQueryWrapper<ExperimentDoc>().eq(ExperimentDoc::getExperimentId, experimentId)
.eq(ExperimentDoc::getDocType, type).orderByDesc(ExperimentDoc::getVersion));
}
@Override
public ExperimentDoc getByExperimentId(String experimentId, String type) {
return getOne(new LambdaQueryWrapper<ExperimentDoc>().eq(ExperimentDoc::getExperimentId, experimentId)
.eq(ExperimentDoc::getDocType, type).orderByDesc(ExperimentDoc::getVersion), false);
}
}

View File

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import jakarta.servlet.http.HttpServletRequest;
@@ -91,6 +92,7 @@ public class SysRoleController {
//QueryWrapper<SysRole> queryWrapper = QueryGenerator.initQueryWrapper(role, req.getParameterMap());
//IPage<SysRole> pageList = sysRoleService.page(page, queryWrapper);
Page<SysRole> page = new Page<SysRole>(pageNo, pageSize);
page.addOrder(OrderItem.desc("create_time"));
//换成不做租户隔离的方法,实际上还是存在缺陷(缺陷:如果开启租户隔离,虽然能看到其他租户下的角色,编辑会提示报错)
IPage<SysRole> pageList = sysRoleService.listAllSysRole(page, role);
result.setSuccess(true);