From 91c6004f46c337ef794da3b5d400190bb16e60f4 Mon Sep 17 00:00:00 2001 From: ls Date: Wed, 23 Oct 2024 23:27:03 +0800 Subject: [PATCH] update --- .../ExperimentReportController.java | 337 ++++++++++-------- .../database/entity/ExperimentReport.java | 101 ++++-- 2 files changed, 257 insertions(+), 181 deletions(-) diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentReportController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentReportController.java index da879b7..bed4b31 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentReportController.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentReportController.java @@ -1,161 +1,150 @@ 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.ExperimentReport; -import org.jeecg.modules.database.service.IExperimentReportService; - 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.commons.lang3.StringUtils; 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.common.util.oConvertUtils; +import org.jeecg.modules.database.entity.ExperimentReport; +import org.jeecg.modules.database.service.IExperimentReportService; +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-08-30 + * @Date: 2024-08-30 * @Version: V1.0 */ -@Tag(name="试验报告") +@Tag(name = "试验报告") @RestController @RequestMapping("/database/experimentReport") @Slf4j public class ExperimentReportController extends JeecgController { - @Autowired - private IExperimentReportService experimentReportService; - - /** - * 分页列表查询 - * - * @param experimentReport - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "试验报告-分页列表查询") - @Operation(summary="试验报告-分页列表查询") - @GetMapping(value = "/list") - public Result> queryPageList(ExperimentReport experimentReport, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentReport, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); - IPage pageList = experimentReportService.page(page, queryWrapper); - return Result.OK(pageList); - } - - /** - * 添加 - * - * @param experimentReport - * @return - */ - @AutoLog(value = "试验报告-添加") - @Operation(summary="试验报告-添加") - @RequiresPermissions("database:experiment_report:add") - @PostMapping(value = "/add") - public Result add(@RequestBody ExperimentReport experimentReport) { - experimentReportService.save(experimentReport); - return Result.OK("添加成功!"); - } - - /** - * 编辑 - * - * @param experimentReport - * @return - */ - @AutoLog(value = "试验报告-编辑") - @Operation(summary="试验报告-编辑") - @RequiresPermissions("database:experiment_report:edit") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody ExperimentReport experimentReport) { - experimentReportService.updateById(experimentReport); - return Result.OK("编辑成功!"); - } - - /** - * 通过id删除 - * - * @param id - * @return - */ - @AutoLog(value = "试验报告-通过id删除") - @Operation(summary="试验报告-通过id删除") - @RequiresPermissions("database:experiment_report:delete") - @DeleteMapping(value = "/delete") - public Result delete(@RequestParam(name="id",required=true) String id) { - experimentReportService.removeById(id); - return Result.OK("删除成功!"); - } - - /** - * 批量删除 - * - * @param ids - * @return - */ - @AutoLog(value = "试验报告-批量删除") - @Operation(summary="试验报告-批量删除") - @RequiresPermissions("database:experiment_report:deleteBatch") - @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { - this.experimentReportService.removeByIds(Arrays.asList(ids.split(","))); - return Result.OK("批量删除成功!"); - } - - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "试验报告-通过id查询") - @Operation(summary="试验报告-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { - ExperimentReport experimentReport = experimentReportService.getById(id); - if(experimentReport==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(experimentReport); - } + @Autowired + private IExperimentReportService experimentReportService; + + @Autowired + private ISysUserService sysUserService; /** - * 导出excel - * - * @param request - * @param experimentReport - */ + * 分页列表查询 + * + * @param experimentReport + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "试验报告-分页列表查询") + @Operation(summary = "试验报告-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(ExperimentReport experimentReport, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentReport, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = experimentReportService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param experimentReport + * @return + */ + @AutoLog(value = "试验报告-添加") + @Operation(summary = "试验报告-添加") + @RequiresPermissions("database:experiment_report:add") + @PostMapping(value = "/add") + public Result add(@RequestBody ExperimentReport experimentReport) { + experimentReportService.save(experimentReport); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param experimentReport + * @return + */ + @AutoLog(value = "试验报告-编辑") + @Operation(summary = "试验报告-编辑") + @RequiresPermissions("database:experiment_report:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result edit(@RequestBody ExperimentReport experimentReport) { + experimentReportService.updateById(experimentReport); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "试验报告-通过id删除") + @Operation(summary = "试验报告-通过id删除") + @RequiresPermissions("database:experiment_report:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name = "id", required = true) String id) { + experimentReportService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "试验报告-批量删除") + @Operation(summary = "试验报告-批量删除") + @RequiresPermissions("database:experiment_report:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + this.experimentReportService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "试验报告-通过id查询") + @Operation(summary = "试验报告-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + ExperimentReport experimentReport = experimentReportService.getById(id); + if (experimentReport == null) { + return Result.error("未找到对应数据"); + } + return Result.OK(experimentReport); + } + + /** + * 导出excel + * + * @param request + * @param experimentReport + */ @RequiresPermissions("database:experiment_report:exportXls") @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, ExperimentReport experimentReport) { @@ -163,16 +152,74 @@ public class ExperimentReportController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, ExperimentReport.class); } + + /** + * 审核 + * + * @param experimentReport + * @return + */ + @AutoLog(value = "试验报告-审核") + @Operation(summary = "试验报告-审核") + @RequiresPermissions("database:experiment_report:audit") + @RequestMapping(value = "/audit", method = {RequestMethod.PUT, RequestMethod.POST}) + public Result audit(@RequestBody ExperimentReport experimentReport, HttpServletRequest request) { + String username = JwtUtil.getUserNameByToken(request); + if (oConvertUtils.isEmpty(username)) { + return Result.error("用户未登录!"); + } + // 根据用户名查询用户信息 + SysUser sysUser = sysUserService.getUserByName(username); + ExperimentReport report = experimentReportService.getById(experimentReport.getId()); + //校对员 + String requestStatus = experimentReport.getStatus(); + if (StringUtils.equals(report.getProofreader(), sysUser.getId())) { + if (!StringUtils.equals(report.getStatus(), "INIT")) { + return Result.error("实验报告状态不匹配!"); + } + if (!StringUtils.equals(requestStatus, "PROOFREAD_PASS")) { + report.setStatus("REJECT"); + } + report.setStatus(requestStatus); + } + //审核员 + if (StringUtils.equals(report.getAuditor(), sysUser.getId())) { + if (!StringUtils.equals(report.getStatus(), "PROOFREAD_PASS")) { + return Result.error("实验报告状态不匹配!"); + } + + if (!StringUtils.equals(requestStatus, "AUDIT_PASS")) { + report.setStatus("REJECT"); + } + report.setStatus(requestStatus); + } + //批准员 + if (StringUtils.equals(report.getConfirmer(), sysUser.getId())) { + if (!StringUtils.equals(report.getStatus(), "AUDIT_PASS")) { + return Result.error("实验报告状态不匹配!"); + } + if (!StringUtils.equals(requestStatus, "PASSED")) { + report.setStatus("REJECT"); + } + report.setStatus(requestStatus); + } + + + experimentReportService.updateById(report); + + return Result.OK("审核成功!"); + } + } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentReport.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentReport.java index 3a180c5..84c18e2 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentReport.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentReport.java @@ -1,85 +1,114 @@ package org.jeecg.modules.database.entity; -import java.io.Serializable; -import java.io.UnsupportedEncodingException; -import java.util.Date; -import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableLogic; -import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; -import org.jeecg.common.aspect.annotation.Dict; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; /** * @Description: 试验报告 * @Author: jeecg-boot - * @Date: 2024-10-23 + * @Date: 2024-10-23 * @Version: V1.0 */ @Data @TableName("experiment_report") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@Schema(description="试验报告") +@Schema(description = "试验报告") public class ExperimentReport implements Serializable { private static final long serialVersionUID = 1L; - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) @Schema(description = "主键") private String id; - /**创建人*/ + /** + * 创建人 + */ @Schema(description = "创建人") private String createBy; - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + /** + * 创建日期 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "创建日期") private Date createTime; - /**更新人*/ + /** + * 更新人 + */ @Schema(description = "更新人") private String updateBy; - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + /** + * 更新日期 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "更新日期") private Date updateTime; - /**所属部门*/ + /** + * 所属部门 + */ @Schema(description = "所属部门") private String sysOrgCode; - /**试验ID*/ - @Excel(name = "试验ID", width = 15) + /** + * 试验ID + */ + @Excel(name = "试验ID", width = 15) @Schema(description = "试验ID") private String experimentId; - /**样品信息*/ - @Excel(name = "样品信息", width = 15) + /** + * 样品信息 + */ + @Excel(name = "样品信息", width = 15) @Schema(description = "样品信息") private String sampleInfo; - /**偏置原理图*/ - @Excel(name = "偏置原理图", width = 15) + /** + * 偏置原理图 + */ + @Excel(name = "偏置原理图", width = 15) @Schema(description = "偏置原理图") private String imgUrls; - /**偏置原理说明*/ - @Excel(name = "偏置原理说明", width = 15) + /** + * 偏置原理说明 + */ + @Excel(name = "偏置原理说明", width = 15) @Schema(description = "偏置原理说明") private String description; - /**审核员*/ - @Excel(name = "审核员", width = 15) + /** + * 审核员 + */ + @Excel(name = "审核员", width = 15) @Schema(description = "审核员") private String auditor; - /**校对员*/ - @Excel(name = "校对员", width = 15) + /** + * 校对员 + */ + @Excel(name = "校对员", width = 15) @Schema(description = "校对员") private String proofreader; - /**确认员*/ - @Excel(name = "确认员", width = 15) + /** + * 确认员 + */ + @Excel(name = "确认员", width = 15) @Schema(description = "确认员") private String confirmer; + /** + * 状态 + */ + @Excel(name = "状态", width = 15) + @Schema(description = "状态(申请中(待校对):INIT,不合格RE:REJECT ,校对通过(待审核):PROOFREAD_PASS,审核通过(待批准):AUDIT_PASS,批准通过:PASSED)") + private String status; }