diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java index 4574a4e..47e7645 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java @@ -17,8 +17,6 @@ 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.dto.ExperimentDTO; -import org.jeecg.modules.database.dto.ExperimentUserDTO; import org.jeecg.modules.database.entity.*; import org.jeecg.modules.database.service.*; import org.jeecg.modules.system.entity.SysUser; @@ -28,7 +26,6 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import java.util.*; -import java.util.stream.Collectors; /** * @Description: 试验管理 @@ -71,47 +68,15 @@ public class ExperimentController extends JeecgController> queryPageList(Experiment experiment, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(Experiment experiment, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experiment, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); IPage pageList = experimentService.page(page, queryWrapper); - List experimentDTOList = new ArrayList<>(); - pageList.getRecords().forEach(v -> { - ExperimentDTO experimentDTO = ExperimentDTO.of(v); - if (StringUtils.isNotBlank(v.getSupervisor())) { - SysUser user = userService.getById(v.getSupervisor()); - if (Objects.nonNull(user)) { - experimentDTO.setSupervisorName(user.getRealname()); - } - } - List user = experimentUserService.getByExperimentId(v.getId()); - List userDTOList; - if (CollUtil.isNotEmpty(user)) { - List list = new ArrayList<>(); - for (ExperimentUser experimentUser : user) { - ExperimentUserDTO userDTO = ExperimentUserDTO.of(experimentUser); - SysUser sysUser = userService.getById(experimentUser.getUserId()); - if (Objects.nonNull(sysUser)) { - userDTO.setUserName(sysUser.getRealname()); - } - list.add(userDTO); - } - userDTOList = list; - experimentDTO.setExperimentUserList(userDTOList); - experimentDTO.setExperimentUser(userDTOList.stream().map(ExperimentUserDTO::getUserId).collect(Collectors.joining(","))); - } - experimentDTOList.add(experimentDTO); - }); - Page result = new Page(); - result.setRecords(experimentDTOList); - result.setCurrent(pageList.getCurrent()); - result.setTotal(pageList.getTotal()); - result.setPages(pageList.getPages()); - - return Result.OK(result); + pageList.getRecords().forEach(v -> experimentService.fetchExperimentDetail(v)); + return Result.OK(pageList); } /** @@ -124,20 +89,19 @@ public class ExperimentController extends JeecgController add(@RequestBody ExperimentDTO experiment, HttpServletRequest request) { - Experiment experimentDomain = ExperimentDTO.to(experiment); - String experimentNo = experimentDomain.getExperimentNo(); + public Result add(@RequestBody Experiment experiment, HttpServletRequest request) { + String experimentNo = experiment.getExperimentNo(); if (!StringUtils.startsWith(experimentNo, "KC")) { return Result.error("实验编号格式不正确!"); } - experimentDomain.setStatus(ExperimentStatus.PRE_TEST); - experimentService.save(experimentDomain); + experiment.setStatus(ExperimentStatus.PRE_TEST); + experimentService.save(experiment); String experimentUser = experiment.getExperimentUser(); if (StringUtils.isNotBlank(experimentUser)) { for (String userId : experimentUser.split(",")) { ExperimentUser userDomain = new ExperimentUser(); - userDomain.setExperimentId(experimentDomain.getId()); + userDomain.setExperimentId(experiment.getId()); userDomain.setUserId(userId); userDomain.setType("OPERATOR"); experimentUserService.save(userDomain); @@ -146,7 +110,7 @@ public class ExperimentController extends JeecgController experimentAnnealProcess = experimentAnnealProcessService.getByExperimentId(old.getId()); @@ -272,30 +237,13 @@ public class ExperimentController extends JeecgController queryById(@RequestParam(name = "id", required = true) String id) { + public Result queryById(@RequestParam(name = "id", required = true) String id) { Experiment experiment = experimentService.getById(id); if (experiment == null) { return Result.error("未找到对应数据"); } - ExperimentDTO dto = ExperimentDTO.of(experiment); - if (StringUtils.isNotBlank(dto.getSupervisor())) { - SysUser user = userService.getById(dto.getSupervisor()); - if (Objects.nonNull(user)) { - dto.setSupervisorName(user.getRealname()); - } - } - List userList = experimentUserService.getByExperimentId(dto.getId()); - List userDTOList = new ArrayList<>(); - for (ExperimentUser v : userList) { - ExperimentUserDTO userDTO = ExperimentUserDTO.of(v); - SysUser user = userService.getById(v.getUserId()); - if (Objects.nonNull(user)) { - userDTO.setUserName(user.getRealname()); - userDTOList.add(userDTO); - } - } - dto.setExperimentUserList(userDTOList); - return Result.OK(dto); + experimentService.fetchExperimentDetail(experiment); + return Result.OK(experiment); } /** diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRatingController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRatingController.java index dc08092..dfdbd9b 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRatingController.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentRatingController.java @@ -1,6 +1,5 @@ package org.jeecg.modules.database.controller; -import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -15,7 +14,6 @@ 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.dto.ExperimentRatingDTO; import org.jeecg.modules.database.dto.ExperimentRatingUserDTO; import org.jeecg.modules.database.entity.Experiment; import org.jeecg.modules.database.entity.ExperimentRating; @@ -56,29 +54,15 @@ public class ExperimentRatingController extends JeecgController> queryPageList(ExperimentRating experimentRating, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(ExperimentRating experimentRating, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentRating, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = experimentRatingService.page(page, queryWrapper); - List result = new ArrayList<>(); - pageList.getRecords().forEach(v -> { - Experiment experiment = experimentService.getById(v.getExperimentId()); - ExperimentRatingDTO experimentRatingDTO = new ExperimentRatingDTO(); - BeanUtil.copyProperties(v, experimentRatingDTO); - experimentRatingDTO.setExperimentName(experiment.getName()); - experimentRatingDTO.setExperimentNo(experiment.getExperimentNo()); - result.add(experimentRatingDTO); - }); - IPage pageList1 = new Page(); - pageList1.setRecords(result); - pageList1.setPages(pageList.getPages()); - pageList1.setTotal(pageList.getTotal()); - pageList1.setSize(pageList.getSize()); - pageList1.setCurrent(pageList.getCurrent()); - return Result.OK(pageList1); + pageList.getRecords().forEach(v -> experimentRatingService.fetchExperimentDetail(v)); + return Result.OK(pageList); } /** @@ -117,7 +101,7 @@ public class ExperimentRatingController extends JeecgController batchAdd(@RequestBody ExperimentRatingDTO experimentRating) { + public Result batchAdd(@RequestBody ExperimentRating experimentRating) { String experimentId = experimentRating.getExperimentId(); if (StringUtils.isBlank(experimentId)) { return Result.error("试验数据不存在!"); @@ -204,6 +188,7 @@ public class ExperimentRatingController extends JeecgController next() { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - int year = DateUtil.year(new Date()); - queryWrapper.eq(ExperimentSequence::getSequenceYear, year); - queryWrapper.orderByDesc(ExperimentSequence::getCreateTime); - ExperimentSequence sequence = experimentSequenceService.getOne(queryWrapper, false); - if (sequence == null) { - sequence = new ExperimentSequence(); - sequence.setSequenceValue(0); - sequence.setSequenceYear(year + ""); - experimentSequenceService.save(sequence); - } - return Result.OK(assembleSequence(sequence)); + + return Result.OK(experimentSequenceService.next()); } - public String assembleSequence(ExperimentSequence experimentSequence) { - return "KC-" + experimentSequence.getSequenceYear() + "-JL-" + StringUtils.leftPad((experimentSequence.getSequenceValue() + 1) + "", - 3, "0"); - } + // ///** // * 添加 diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentUserController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentUserController.java index 82077bd..bd9f69d 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentUserController.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentUserController.java @@ -17,7 +17,6 @@ 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.dto.ExperimentUserDTO; import org.jeecg.modules.database.entity.*; import org.jeecg.modules.database.service.*; import org.jeecg.modules.system.entity.SysUser; @@ -62,28 +61,15 @@ public class ExperimentUserController extends JeecgController> queryPageList(ExperimentUser experimentUser, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(ExperimentUser experimentUser, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentUser, req.getParameterMap()); Page page = new Page<>(pageNo, pageSize); IPage pageList = experimentUserService.page(page, queryWrapper); - List userDTOList = new ArrayList<>(); - pageList.getRecords().forEach(v -> { - ExperimentUserDTO userDTO = ExperimentUserDTO.of(v); - SysUser user = userService.getById(v.getUserId()); - if (Objects.nonNull(user)) { - userDTO.setUserName(user.getRealname()); - userDTOList.add(userDTO); - } - }); - Page result = new Page(); - result.setRecords(userDTOList); - result.setCurrent(pageList.getCurrent()); - result.setTotal(pageList.getTotal()); - result.setPages(pageList.getPages()); - return Result.OK(result); + pageList.getRecords().forEach(v -> experimentUserService.fetchUserName(v)); + return Result.OK(pageList); } /** @@ -244,17 +230,13 @@ public class ExperimentUserController extends JeecgController queryById(@RequestParam(name = "id", required = true) String id) { + public Result queryById(@RequestParam(name = "id", required = true) String id) { ExperimentUser experimentUser = experimentUserService.getById(id); if (experimentUser == null) { return Result.error("未找到对应数据"); } - ExperimentUserDTO userDTO = ExperimentUserDTO.of(experimentUser); - SysUser user = userService.getById(experimentUser.getUserId()); - if (Objects.nonNull(user)) { - userDTO.setUserName(user.getRealname()); - } - return Result.OK(userDTO); + experimentUserService.fetchUserName(experimentUser); + return Result.OK(experimentUser); } /** @@ -266,7 +248,7 @@ public class ExperimentUserController extends JeecgController> queryByExperimentalId( + public Result> queryByExperimentalId( @RequestParam(name = "experimentId", required = true) String experimentalId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ExperimentUser::getExperimentId, experimentalId); @@ -274,16 +256,8 @@ public class ExperimentUserController extends JeecgController userDTOList = new ArrayList<>(); - list.forEach(v -> { - ExperimentUserDTO userDTO = ExperimentUserDTO.of(v); - SysUser user = userService.getById(v.getUserId()); - if (Objects.nonNull(user)) { - userDTO.setUserName(user.getRealname()); - userDTOList.add(userDTO); - } - }); - return Result.OK(userDTOList); + list.forEach(v -> experimentUserService.fetchUserName(v)); + return Result.OK(list); } /** diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentDTO.java deleted file mode 100644 index 7cd5f34..0000000 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentDTO.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Ant Group - * Copyright (c) 2004-2024 All Rights Reserved. - */ -package org.jeecg.modules.database.dto; - -import cn.hutool.core.bean.BeanUtil; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Getter; -import lombok.Setter; -import org.jeecg.modules.database.entity.Experiment; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -/** - * @author lise - * @version ExperimentDTO.java, v 0.1 2024年11月16日 21:13 lise - */ -@Getter -@Setter -public class ExperimentDTO implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - private String id; - /** - * 创建人 - */ - private String createBy; - /** - * 创建日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - /** - * 更新人 - */ - private String updateBy; - /** - * 更新日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - /** - * 所属部门 - */ - private String sysOrgCode; - /** - * 试验编号 - */ - private String experimentNo; - /** - * 名称 - */ - private String name; - /** - * 试验类型 - */ - private String type; - /** - * 试验日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date startDate; - /** - * 试验日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date endDate; - /** - * 辐射源类型 - */ - private String radiationSourceType; - /** - * 委托方名称 - */ - private String clientName; - /** - * 样品型号 - */ - private String sampleModel; - /** - * 试验负责人 - */ - private String supervisor; - /** - * 状态 - */ - private String status; - - /** - * 样品信息 - */ - private String sampleInfo; - /** - * 辐照板 - */ - private String irradiationBoard; - /** - * 偏置条件 - */ - private String deviationCondition; - /** - * 加偏设备 - */ - private String deviationEquipment; - /** - * 复制次数 - */ - private Integer copyCount; - - /** - * 试验负责人 - */ - private String supervisorName; - - /** - * 试验人员 - */ - private List experimentUserList; - private String experimentUser; - - public static ExperimentDTO of(Experiment experiment) { - ExperimentDTO dto = new ExperimentDTO(); - BeanUtil.copyProperties(experiment, dto); - return dto; - } - - public static Experiment to(ExperimentDTO experiment) { - Experiment dto = new Experiment(); - BeanUtil.copyProperties(experiment, dto); - return dto; - } - -} \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentRatingDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentRatingDTO.java deleted file mode 100644 index 4aa8f5a..0000000 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentRatingDTO.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Ant Group - * Copyright (c) 2004-2024 All Rights Reserved. - */ -package org.jeecg.modules.database.dto; - -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Getter; -import lombok.Setter; -import org.springframework.format.annotation.DateTimeFormat; - -import java.util.Date; -import java.util.List; - -/** - * @author lise - * @version ExperimentRatingDTO.java, v 0.1 2024年11月16日 13:46 lise - */ -@Getter -@Setter -public class ExperimentRatingDTO { - - /** - * 主键 - */ - private String id; - /** - * 创建人 - */ - private String createBy; - /** - * 创建日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - /** - * 更新人 - */ - private String updateBy; - /** - * 更新日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - /** - * 所属部门 - */ - private String sysOrgCode; - /** - * 实验ID - */ - private String experimentId; - /** - * 评分人 - */ - private String rateUserId; - /** - * 总分数 - */ - private Integer totalScore; - /** - * 基础分 - */ - private Integer baseScore; - /** - * 完成分 - */ - private Integer completionScore; - /** - * 难度分 - */ - private Integer difficultyScore; - /** - * 管理支撑分 - */ - private Integer managementScore; - private String experimentName; - private String experimentNo; - @Schema(description = "评分人列表") - private List rateUserList; -} \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentUserDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentUserDTO.java deleted file mode 100644 index 3b1be45..0000000 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/ExperimentUserDTO.java +++ /dev/null @@ -1,75 +0,0 @@ -package org.jeecg.modules.database.dto; - -import cn.hutool.core.bean.BeanUtil; -import com.baomidou.mybatisplus.annotation.*; -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.jeecg.modules.database.entity.Experiment; -import org.jeecg.modules.database.entity.ExperimentUser; -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-08-30 - * @Version: V1.0 - */ -@Data -public class ExperimentUserDTO implements Serializable { - private static final long serialVersionUID = 1L; - - /** - * 主键 - */ - private String id; - /** - * 创建人 - */ - private String createBy; - /** - * 创建日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date createTime; - /** - * 更新人 - */ - private String updateBy; - /** - * 更新日期 - */ - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date updateTime; - /** - * 所属部门 - */ - private String sysOrgCode; - /** - * 试验ID - */ - private String experimentId; - /** - * 人员 - */ - private String userId; - private String userName; - /** - * 类型 - */ - private String type; - - public static ExperimentUserDTO of(ExperimentUser experiment) { - ExperimentUserDTO dto = new ExperimentUserDTO(); - BeanUtil.copyProperties(experiment, dto); - return dto; - } -} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/Experiment.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/Experiment.java index 117056f..56d40d3 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/Experiment.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/Experiment.java @@ -10,7 +10,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.apache.commons.lang3.StringUtils; -import org.jeecg.common.util.DateUtils; import org.jeecg.modules.database.constant.ExperimentStatus; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; @@ -163,13 +162,23 @@ public class Experiment implements Serializable { @Schema(description = "复制次数") private Integer copyCount; - /** * 试验人员ID, 逗号分割多个 */ @TableField(exist = false) private String experimentUser; + /** + * 试验负责人 + */ + @TableField(exist = false) + private String supervisorName; + + /** + * 试验人员 + */ + @TableField(exist = false) + private List experimentUserList; public void addCopyCount() { if (Objects.isNull(copyCount)) { @@ -202,8 +211,6 @@ public class Experiment implements Serializable { }); experiment.setDeviationEquipment(JSON.toJSONString(boardList)); } - experiment.setExperimentNo("NO-" + DateUtils.formatDate(new Date(), "yyyyMMddHHmmss")); - experiment.setName(this.name + "-" + getCopyCount()); experiment.setId(null); experiment.setCopyCount(0); experiment.setStatus(ExperimentStatus.PRE_TEST); diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentRating.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentRating.java index 5a698e9..367bb46 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentRating.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentRating.java @@ -1,85 +1,116 @@ 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.baomidou.mybatisplus.annotation.*; 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.jeecg.modules.database.dto.ExperimentRatingUserDTO; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; /** * @Description: 试验评分 * @Author: jeecg-boot - * @Date: 2024-11-16 + * @Date: 2024-11-16 * @Version: V1.0 */ @Data @TableName("experiment_rating") @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -@Schema(description="试验评分") +@Schema(description = "试验评分") public class ExperimentRating implements Serializable { private static final long serialVersionUID = 1L; - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) @Schema(description = "主键") - private String id; - /**创建人*/ + 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") + private String createBy; + /** + * 创建日期 + */ + @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; + /** + * 更新人 + */ @Schema(description = "更新人") - private String updateBy; - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + private String updateBy; + /** + * 更新日期 + */ + @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; + /** + * 所属部门 + */ @Schema(description = "所属部门") - private String sysOrgCode; - /**实验ID*/ - @Excel(name = "实验ID", width = 15) + private String sysOrgCode; + /** + * 实验ID + */ + @Excel(name = "实验ID", width = 15) @Schema(description = "实验ID") - private String experimentId; - /**评分人*/ - @Excel(name = "评分人", width = 15) + private String experimentId; + /** + * 评分人 + */ + @Excel(name = "评分人", width = 15) @Schema(description = "评分人") - private String rateUserId; - /**总分数*/ - @Excel(name = "总分数", width = 15) + private String rateUserId; + /** + * 总分数 + */ + @Excel(name = "总分数", width = 15) @Schema(description = "总分数") private Integer totalScore; - /**基础分*/ - @Excel(name = "基础分", width = 15) + /** + * 基础分 + */ + @Excel(name = "基础分", width = 15) @Schema(description = "基础分") private Integer baseScore; - /**完成分*/ - @Excel(name = "完成分", width = 15) + /** + * 完成分 + */ + @Excel(name = "完成分", width = 15) @Schema(description = "完成分") private Integer completionScore; - /**难度分*/ - @Excel(name = "难度分", width = 15) + /** + * 难度分 + */ + @Excel(name = "难度分", width = 15) @Schema(description = "难度分") private Integer difficultyScore; - /**管理支撑分*/ - @Excel(name = "管理支撑分", width = 15) + /** + * 管理支撑分 + */ + @Excel(name = "管理支撑分", width = 15) @Schema(description = "管理支撑分") private Integer managementScore; + + @TableField(exist = false) + private String experimentName; + @TableField(exist = false) + private String experimentNo; + @TableField(exist = false) + @Schema(description = "评分人列表") + private List rateUserList; } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentUser.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentUser.java index 98047d5..dbdfeb5 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentUser.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentUser.java @@ -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 ExperimentUser 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 ExperimentUser 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; /** * 所属部门 */ @@ -75,6 +73,8 @@ public class ExperimentUser implements Serializable { @Excel(name = "人员", width = 15) @Schema(description = "人员") private String userId; + @TableField(exist = false) + private String userName; /** * 类型 */ diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentRatingService.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentRatingService.java index 8967a92..abad4ed 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentRatingService.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentRatingService.java @@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IExperimentRatingService extends IService { + void fetchExperimentDetail(ExperimentRating experimentRating); } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSequenceService.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSequenceService.java index 263865f..3c42d9e 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSequenceService.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSequenceService.java @@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IExperimentSequenceService extends IService { + String next(); } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentService.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentService.java index 6401f2d..c9f4e1b 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentService.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentService.java @@ -11,4 +11,5 @@ import org.jeecg.modules.database.entity.Experiment; */ public interface IExperimentService extends IService { + void fetchExperimentDetail(Experiment experiment); } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentUserService.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentUserService.java index 79eacf9..3ece3d7 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentUserService.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentUserService.java @@ -15,4 +15,6 @@ public interface IExperimentUserService extends IService { List getByExperimentId(String experimentId); void removeByExperimentId(String experimentId); + + void fetchUserName(ExperimentUser experimentUser); } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentRatingServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentRatingServiceImpl.java index 600a582..a84f12d 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentRatingServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentRatingServiceImpl.java @@ -1,19 +1,38 @@ package org.jeecg.modules.database.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.jeecg.modules.database.entity.Experiment; import org.jeecg.modules.database.entity.ExperimentRating; import org.jeecg.modules.database.mapper.ExperimentRatingMapper; import org.jeecg.modules.database.service.IExperimentRatingService; +import org.jeecg.modules.database.service.IExperimentService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.Objects; /** * @Description: 试验评分 * @Author: jeecg-boot - * @Date: 2024-11-16 + * @Date: 2024-11-16 * @Version: V1.0 */ @Service public class ExperimentRatingServiceImpl extends ServiceImpl implements IExperimentRatingService { + @Autowired + private IExperimentService experimentService; + + @Override + public void fetchExperimentDetail(ExperimentRating experimentRating) { + if (Objects.isNull(experimentRating)) { + return; + } + Experiment experiment = experimentService.getById(experimentRating.getExperimentId()); + if (Objects.isNull(experiment)) { + return; + } + experimentRating.setExperimentName(experiment.getName()); + experimentRating.setExperimentNo(experiment.getExperimentNo()); + } } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSequenceServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSequenceServiceImpl.java index 1570ce8..6212af6 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSequenceServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSequenceServiceImpl.java @@ -1,19 +1,44 @@ package org.jeecg.modules.database.service.impl; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.database.entity.ExperimentSequence; import org.jeecg.modules.database.mapper.ExperimentSequenceMapper; import org.jeecg.modules.database.service.IExperimentSequenceService; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.Date; /** * @Description: 试验序列 * @Author: jeecg-boot - * @Date: 2024-12-04 + * @Date: 2024-12-04 * @Version: V1.0 */ @Service -public class ExperimentSequenceServiceImpl extends ServiceImpl implements IExperimentSequenceService { +public class ExperimentSequenceServiceImpl extends ServiceImpl + implements IExperimentSequenceService { + @Override + public String next() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + int year = DateUtil.year(new Date()); + queryWrapper.eq(ExperimentSequence::getSequenceYear, year); + queryWrapper.orderByDesc(ExperimentSequence::getCreateTime); + ExperimentSequence sequence = getOne(queryWrapper, false); + if (sequence == null) { + sequence = new ExperimentSequence(); + sequence.setSequenceValue(0); + sequence.setSequenceYear(year + ""); + save(sequence); + } + return assembleSequence(sequence); + } + + public String assembleSequence(ExperimentSequence experimentSequence) { + return "KC-" + experimentSequence.getSequenceYear() + "-JL-" + StringUtils.leftPad((experimentSequence.getSequenceValue() + 1) + "", + 3, "0"); + } } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java index 28ad04b..a076ff4 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java @@ -1,11 +1,22 @@ package org.jeecg.modules.database.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.database.entity.Experiment; +import org.jeecg.modules.database.entity.ExperimentUser; import org.jeecg.modules.database.mapper.ExperimentMapper; import org.jeecg.modules.database.service.IExperimentService; +import org.jeecg.modules.database.service.IExperimentUserService; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + /** * @Description: 试验管理 * @Author: jeecg-boot @@ -14,5 +25,29 @@ import org.springframework.stereotype.Service; */ @Service public class ExperimentServiceImpl extends ServiceImpl implements IExperimentService { + @Autowired + private ISysUserService userService; + @Autowired + private IExperimentUserService experimentUserService; + @Override + public void fetchExperimentDetail(Experiment experiment) { + if (StringUtils.isNotBlank(experiment.getSupervisor())) { + SysUser user = userService.getById(experiment.getSupervisor()); + if (Objects.nonNull(user)) { + experiment.setSupervisorName(user.getRealname()); + } + } + List userList = experimentUserService.getByExperimentId(experiment.getId()); + if (CollUtil.isNotEmpty(userList)) { + userList.forEach(experimentUser -> { + SysUser sysUser = userService.getById(experimentUser.getUserId()); + if (Objects.nonNull(sysUser)) { + experimentUser.setUserName(sysUser.getRealname()); + } + }); + } + experiment.setExperimentUserList(userList); + experiment.setExperimentUser(userList.stream().map(ExperimentUser::getUserId).collect(Collectors.joining(","))); + } } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentUserServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentUserServiceImpl.java index b74699a..7a1acb0 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentUserServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentUserServiceImpl.java @@ -5,9 +5,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.database.entity.ExperimentUser; import org.jeecg.modules.database.mapper.ExperimentUserMapper; import org.jeecg.modules.database.service.IExperimentUserService; +import org.jeecg.modules.system.entity.SysUser; +import org.jeecg.modules.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Objects; /** * @Description: 试验人员 @@ -18,6 +22,9 @@ import java.util.List; @Service public class ExperimentUserServiceImpl extends ServiceImpl implements IExperimentUserService { + @Autowired + private ISysUserService userService; + @Override public List getByExperimentId(String experimentId) { return list(new LambdaQueryWrapper().eq(ExperimentUser::getExperimentId, experimentId)); @@ -28,4 +35,15 @@ public class ExperimentUserServiceImpl extends ServiceImpl userList = getByExperimentId(experimentId); userList.forEach(user -> removeById(user.getId())); } + + @Override + public void fetchUserName(ExperimentUser experimentUser) { + if (Objects.isNull(experimentUser)) { + return; + } + SysUser user = userService.getById(experimentUser.getUserId()); + if (Objects.nonNull(user)) { + experimentUser.setUserName(user.getRealname()); + } + } } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSampleInfoForm.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSampleInfoForm.vue new file mode 100644 index 0000000..69200fb --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSampleInfoForm.vue @@ -0,0 +1,113 @@ + + + diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSampleInfoList.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSampleInfoList.vue new file mode 100644 index 0000000..cbe6de6 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSampleInfoList.vue @@ -0,0 +1,44 @@ + + + + diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSequenceForm.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSequenceForm.vue new file mode 100644 index 0000000..715b5d0 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSequenceForm.vue @@ -0,0 +1,83 @@ + + + diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSequenceList.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSequenceList.vue new file mode 100644 index 0000000..a0afff7 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/uniapp/ExperimentSequenceList.vue @@ -0,0 +1,44 @@ + + + + diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfo.api.ts b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfo.api.ts new file mode 100644 index 0000000..b30c50c --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfo.api.ts @@ -0,0 +1,64 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/database/experimentSampleInfo/list', + save='/database/experimentSampleInfo/add', + edit='/database/experimentSampleInfo/edit', + deleteOne = '/database/experimentSampleInfo/delete', + deleteBatch = '/database/experimentSampleInfo/deleteBatch', + importExcel = '/database/experimentSampleInfo/importExcel', + exportXls = '/database/experimentSampleInfo/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfo.data.ts b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfo.data.ts new file mode 100644 index 0000000..a4ab1a7 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfo.data.ts @@ -0,0 +1,105 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '试验ID', + align:"center", + dataIndex: 'experimentId' + }, + { + title: '样品类型', + align:"center", + dataIndex: 'sampleType' + }, + { + title: '样品型号', + align:"center", + dataIndex: 'sampleModel' + }, + { + title: '样品批次', + align:"center", + dataIndex: 'sampleBatch' + }, + { + title: '生产厂家', + align:"center", + dataIndex: 'sampleManufacturer' + }, + { + title: '图片', + align:"center", + dataIndex: 'sampleImage' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '试验ID', + field: 'experimentId', + component: 'Input', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入试验ID!'}, + ]; + }, + }, + { + label: '样品类型', + field: 'sampleType', + component: 'Input', + }, + { + label: '样品型号', + field: 'sampleModel', + component: 'Input', + }, + { + label: '样品批次', + field: 'sampleBatch', + component: 'Input', + }, + { + label: '生产厂家', + field: 'sampleManufacturer', + component: 'Input', + }, + { + label: '图片', + field: 'sampleImage', + component: 'Input', + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + experimentId: {title: '试验ID',order: 0,view: 'text', type: 'string',}, + sampleType: {title: '样品类型',order: 1,view: 'text', type: 'string',}, + sampleModel: {title: '样品型号',order: 2,view: 'text', type: 'string',}, + sampleBatch: {title: '样品批次',order: 3,view: 'text', type: 'string',}, + sampleManufacturer: {title: '生产厂家',order: 4,view: 'text', type: 'string',}, + sampleImage: {title: '图片',order: 5,view: 'text', type: 'string',}, +}; + +/** +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[]{ + // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema + return formSchema; +} \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfoList.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfoList.vue new file mode 100644 index 0000000..f76df41 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSampleInfoList.vue @@ -0,0 +1,188 @@ + + + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequence.api.ts b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequence.api.ts new file mode 100644 index 0000000..7e8692b --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequence.api.ts @@ -0,0 +1,64 @@ +import {defHttp} from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/database/experimentSequence/list', + save='/database/experimentSequence/add', + edit='/database/experimentSequence/edit', + deleteOne = '/database/experimentSequence/delete', + deleteBatch = '/database/experimentSequence/deleteBatch', + importExcel = '/database/experimentSequence/importExcel', + exportXls = '/database/experimentSequence/exportXls', +} +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; +/** + * 列表接口 + * @param params + */ +export const list = (params) => + defHttp.get({url: Api.list, params}); + +/** + * 删除单个 + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} +/** + * 批量删除 + * @param params + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} +/** + * 保存或者更新 + * @param params + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({url: url, params}); +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequence.data.ts b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequence.data.ts new file mode 100644 index 0000000..58aaa3f --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequence.data.ts @@ -0,0 +1,50 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '序列值', + align:"center", + dataIndex: 'sequenceValue' + }, +]; +//查询数据 +export const searchFormSchema: FormSchema[] = [ +]; +//表单数据 +export const formSchema: FormSchema[] = [ + { + label: '序列值', + field: 'sequenceValue', + component: 'Input', + dynamicRules: ({model,schema}) => { + return [ + { required: true, message: '请输入序列值!'}, + ]; + }, + }, + // TODO 主键隐藏字段,目前写死为ID + { + label: '', + field: 'id', + component: 'Input', + show: false + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + sequenceValue: {title: '序列值',order: 0,view: 'text', type: 'string',}, +}; + +/** +* 流程表单调用这个方法获取formSchema +* @param param +*/ +export function getBpmFormSchema(_formData): FormSchema[]{ + // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema + return formSchema; +} \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequenceList.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequenceList.vue new file mode 100644 index 0000000..219ef7a --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/ExperimentSequenceList.vue @@ -0,0 +1,188 @@ + + + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/V20241204_1__menu_insert_ExperimentSampleInfo.sql b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/V20241204_1__menu_insert_ExperimentSampleInfo.sql new file mode 100644 index 0000000..9fc1082 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/V20241204_1__menu_insert_ExperimentSampleInfo.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/database文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('202412040408790140', NULL, '试验样品信息', '/database/experimentSampleInfoList', 'database/ExperimentSampleInfoList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202412040408790141', '202412040408790140', '添加试验样品信息', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sample_info:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202412040408790142', '202412040408790140', '编辑试验样品信息', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sample_info:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202412040408790143', '202412040408790140', '删除试验样品信息', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sample_info:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202412040408790144', '202412040408790140', '批量删除试验样品信息', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sample_info:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202412040408790145', '202412040408790140', '导出excel_试验样品信息', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sample_info:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('202412040408790146', '202412040408790140', '导入excel_试验样品信息', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sample_info:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:08:14', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/V20241204_1__menu_insert_ExperimentSequence.sql b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/V20241204_1__menu_insert_ExperimentSequence.sql new file mode 100644 index 0000000..503df7c --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/V20241204_1__menu_insert_ExperimentSequence.sql @@ -0,0 +1,26 @@ +-- 注意:该页面对应的前台目录为views/database文件夹下 +-- 如果你想更改到其他目录,请修改sql中component字段对应的值 + + +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('2024120404071620580', NULL, '试验序列', '/database/experimentSequenceList', 'database/ExperimentSequenceList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0); + +-- 权限控制sql +-- 新增 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2024120404071630581', '2024120404071620580', '添加试验序列', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sequence:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0, 0, '1', 0); +-- 编辑 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2024120404071630582', '2024120404071620580', '编辑试验序列', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sequence:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0, 0, '1', 0); +-- 删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2024120404071630583', '2024120404071620580', '删除试验序列', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sequence:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0, 0, '1', 0); +-- 批量删除 +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2024120404071630584', '2024120404071620580', '批量删除试验序列', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sequence:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0, 0, '1', 0); +-- 导出excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2024120404071630585', '2024120404071620580', '导出excel_试验序列', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sequence:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0, 0, '1', 0); +-- 导入excel +INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) +VALUES ('2024120404071630586', '2024120404071620580', '导入excel_试验序列', NULL, NULL, 0, NULL, NULL, 2, 'database:experiment_sequence:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2024-12-04 16:07:58', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSampleInfoForm.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSampleInfoForm.vue new file mode 100644 index 0000000..126f825 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSampleInfoForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSampleInfoModal.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSampleInfoModal.vue new file mode 100644 index 0000000..d6b25b6 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSampleInfoModal.vue @@ -0,0 +1,68 @@ + + + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSequenceForm.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSequenceForm.vue new file mode 100644 index 0000000..fbd2cf1 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSequenceForm.vue @@ -0,0 +1,70 @@ + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSequenceModal.vue b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSequenceModal.vue new file mode 100644 index 0000000..26bd432 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/vue3/components/ExperimentSequenceModal.vue @@ -0,0 +1,68 @@ + + + + + \ No newline at end of file