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 77bc13e..4574a4e 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 @@ -55,6 +55,8 @@ public class ExperimentController extends JeecgController add(@RequestBody ExperimentDTO experiment, HttpServletRequest request) { Experiment experimentDomain = ExperimentDTO.to(experiment); + String experimentNo = experimentDomain.getExperimentNo(); + if (!StringUtils.startsWith(experimentNo, "KC")) { + return Result.error("实验编号格式不正确!"); + } experimentDomain.setStatus(ExperimentStatus.PRE_TEST); experimentService.save(experimentDomain); @@ -146,6 +152,12 @@ public class ExperimentController extends JeecgController { + @Autowired + private IExperimentSampleInfoService experimentSampleInfoService; + + /** + * 分页列表查询 + * + * @param experimentSampleInfo + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "试验样品信息-分页列表查询") + @Operation(summary="试验样品信息-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(ExperimentSampleInfo experimentSampleInfo, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(experimentSampleInfo, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = experimentSampleInfoService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param experimentSampleInfo + * @return + */ + @AutoLog(value = "试验样品信息-添加") + @Operation(summary="试验样品信息-添加") + @RequiresPermissions("database:experiment_sample_info:add") + @PostMapping(value = "/add") + public Result add(@RequestBody ExperimentSampleInfo experimentSampleInfo) { + experimentSampleInfoService.save(experimentSampleInfo); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param experimentSampleInfo + * @return + */ + @AutoLog(value = "试验样品信息-编辑") + @Operation(summary="试验样品信息-编辑") + @RequiresPermissions("database:experiment_sample_info:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody ExperimentSampleInfo experimentSampleInfo) { + experimentSampleInfoService.updateById(experimentSampleInfo); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "试验样品信息-通过id删除") + @Operation(summary="试验样品信息-通过id删除") + @RequiresPermissions("database:experiment_sample_info:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + experimentSampleInfoService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "试验样品信息-批量删除") + @Operation(summary="试验样品信息-批量删除") + @RequiresPermissions("database:experiment_sample_info:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.experimentSampleInfoService.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) { + ExperimentSampleInfo experimentSampleInfo = experimentSampleInfoService.getById(id); + if(experimentSampleInfo==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(experimentSampleInfo); + } + + /** + * 导出excel + * + * @param request + * @param experimentSampleInfo + */ + @RequiresPermissions("database:experiment_sample_info:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ExperimentSampleInfo experimentSampleInfo) { + return super.exportXls(request, experimentSampleInfo, ExperimentSampleInfo.class, "试验样品信息"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("database:experiment_sample_info:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ExperimentSampleInfo.class); + } + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentSequenceController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentSequenceController.java new file mode 100644 index 0000000..b7e395b --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentSequenceController.java @@ -0,0 +1,162 @@ +package org.jeecg.modules.database.controller; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.database.entity.ExperimentSequence; +import org.jeecg.modules.database.service.IExperimentSequenceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; + +/** + * @Description: 试验序列 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +@Tag(name = "试验序列") +@RestController +@RequestMapping("/database/experimentSequence") +@Slf4j +public class ExperimentSequenceController extends JeecgController { + @Autowired + private IExperimentSequenceService experimentSequenceService; + + /** + * 获取序号 + * + * @return + */ + //@AutoLog(value = "试验序列-分页列表查询") + @Operation(summary = "试验序列-获取序号") + @GetMapping(value = "/next") + public Result 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)); + } + + public String assembleSequence(ExperimentSequence experimentSequence) { + return "KC-" + experimentSequence.getSequenceYear() + "-JL-" + StringUtils.leftPad((experimentSequence.getSequenceValue() + 1) + "", + 3, "0"); + } + // + ///** + // * 添加 + // * + // * @param experimentSequence + // * @return + // */ + //@AutoLog(value = "试验序列-添加") + //@Operation(summary = "试验序列-添加") + ////@RequiresPermissions("database:experiment_sequence:add") + //@PostMapping(value = "/add") + //public Result add(@RequestBody ExperimentSequence experimentSequence) { + // experimentSequenceService.save(experimentSequence); + // return Result.OK("添加成功!"); + //} + // + ///** + // * 编辑 + // * + // * @param experimentSequence + // * @return + // */ + //@AutoLog(value = "试验序列-编辑") + //@Operation(summary = "试验序列-编辑") + ////@RequiresPermissions("database:experiment_sequence:edit") + //@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) + //public Result edit(@RequestBody ExperimentSequence experimentSequence) { + // experimentSequenceService.updateById(experimentSequence); + // return Result.OK("编辑成功!"); + //} + // + ///** + // * 通过id删除 + // * + // * @param id + // * @return + // */ + //@AutoLog(value = "试验序列-通过id删除") + //@Operation(summary = "试验序列-通过id删除") + ////@RequiresPermissions("database:experiment_sequence:delete") + //@DeleteMapping(value = "/delete") + //public Result delete(@RequestParam(name = "id", required = true) String id) { + // experimentSequenceService.removeById(id); + // return Result.OK("删除成功!"); + //} + // + ///** + // * 批量删除 + // * + // * @param ids + // * @return + // */ + //@AutoLog(value = "试验序列-批量删除") + //@Operation(summary = "试验序列-批量删除") + ////@RequiresPermissions("database:experiment_sequence:deleteBatch") + //@DeleteMapping(value = "/deleteBatch") + //public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + // this.experimentSequenceService.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) { + // ExperimentSequence experimentSequence = experimentSequenceService.getById(id); + // if (experimentSequence == null) { + // return Result.error("未找到对应数据"); + // } + // return Result.OK(experimentSequence); + //} + // + ///** + // * 导出excel + // * + // * @param request + // * @param experimentSequence + // */ + ////@RequiresPermissions("database:experiment_sequence:exportXls") + //@RequestMapping(value = "/exportXls") + //public ModelAndView exportXls(HttpServletRequest request, ExperimentSequence experimentSequence) { + // return super.exportXls(request, experimentSequence, ExperimentSequence.class, "试验序列"); + //} + // + ///** + // * 通过excel导入数据 + // * + // * @param request + // * @param response + // * @return + // */ + ////@RequiresPermissions("database:experiment_sequence:importExcel") + //@RequestMapping(value = "/importExcel", method = RequestMethod.POST) + //public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + // return super.importExcel(request, response, ExperimentSequence.class); + //} + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentSampleInfo.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentSampleInfo.java new file mode 100644 index 0000000..2eb785f --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentSampleInfo.java @@ -0,0 +1,81 @@ +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.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 试验样品信息 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +@Data +@TableName("experiment_sample_info") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@Schema(description="试验样品信息") +public class ExperimentSampleInfo implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @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") + @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") + @Schema(description = "更新日期") + private Date updateTime; + /**所属部门*/ + @Schema(description = "所属部门") + private String sysOrgCode; + /**试验ID*/ + @Excel(name = "试验ID", width = 15) + @Schema(description = "试验ID") + private String experimentId; + /**样品类型*/ + @Excel(name = "样品类型", width = 15) + @Schema(description = "样品类型") + private String sampleType; + /**样品型号*/ + @Excel(name = "样品型号", width = 15) + @Schema(description = "样品型号") + private String sampleModel; + /**样品批次*/ + @Excel(name = "样品批次", width = 15) + @Schema(description = "样品批次") + private String sampleBatch; + /**生产厂家*/ + @Excel(name = "生产厂家", width = 15) + @Schema(description = "生产厂家") + private String sampleManufacturer; + /**图片*/ + @Excel(name = "图片", width = 15) + @Schema(description = "图片") + private String sampleImage; +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentSequence.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentSequence.java new file mode 100644 index 0000000..f7966db --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentSequence.java @@ -0,0 +1,76 @@ +package org.jeecg.modules.database.entity; + +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.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-12-04 + * @Version: V1.0 + */ +@Data +@TableName("experiment_sequence") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@Schema(description = "试验序列") +public class ExperimentSequence implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @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") + @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") + @Schema(description = "更新日期") + private Date updateTime; + /** + * 所属部门 + */ + @Schema(description = "所属部门") + private String sysOrgCode; + /** + * 序列值 + */ + @Excel(name = "序列年份", width = 15) + @Schema(description = "序列年份") + private String sequenceYear; + /** + * 序列值 + */ + @Excel(name = "序列值", width = 15) + @Schema(description = "序列值") + private Integer sequenceValue; +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/ExperimentSampleInfoMapper.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/ExperimentSampleInfoMapper.java new file mode 100644 index 0000000..b09644a --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/ExperimentSampleInfoMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.database.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.database.entity.ExperimentSampleInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 试验样品信息 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +public interface ExperimentSampleInfoMapper extends BaseMapper { + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/ExperimentSequenceMapper.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/ExperimentSequenceMapper.java new file mode 100644 index 0000000..944c46c --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/ExperimentSequenceMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.database.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.database.entity.ExperimentSequence; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 试验序列 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +public interface ExperimentSequenceMapper extends BaseMapper { + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/xml/ExperimentSampleInfoMapper.xml b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/xml/ExperimentSampleInfoMapper.xml new file mode 100644 index 0000000..82e8567 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/xml/ExperimentSampleInfoMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/xml/ExperimentSequenceMapper.xml b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/xml/ExperimentSequenceMapper.xml new file mode 100644 index 0000000..13cd9b5 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/mapper/xml/ExperimentSequenceMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSampleInfoService.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSampleInfoService.java new file mode 100644 index 0000000..ba9ae2d --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSampleInfoService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.database.service; + +import org.jeecg.modules.database.entity.ExperimentSampleInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 试验样品信息 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +public interface IExperimentSampleInfoService extends IService { + +} 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 new file mode 100644 index 0000000..263865f --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/IExperimentSequenceService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.database.service; + +import org.jeecg.modules.database.entity.ExperimentSequence; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 试验序列 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +public interface IExperimentSequenceService extends IService { + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSampleInfoServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSampleInfoServiceImpl.java new file mode 100644 index 0000000..8aad914 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSampleInfoServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.database.service.impl; + +import org.jeecg.modules.database.entity.ExperimentSampleInfo; +import org.jeecg.modules.database.mapper.ExperimentSampleInfoMapper; +import org.jeecg.modules.database.service.IExperimentSampleInfoService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 试验样品信息 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +@Service +public class ExperimentSampleInfoServiceImpl extends ServiceImpl implements IExperimentSampleInfoService { + +} 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 new file mode 100644 index 0000000..1570ce8 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentSequenceServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.database.service.impl; + +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; + +/** + * @Description: 试验序列 + * @Author: jeecg-boot + * @Date: 2024-12-04 + * @Version: V1.0 + */ +@Service +public class ExperimentSequenceServiceImpl extends ServiceImpl implements IExperimentSequenceService { + +}