eight
2024-10-10 d7bfd457d0ebba2ed3d28233b5b9befc24db36a8
检查类型 (准备人数 + 是否需要领用) 配置
已添加9个文件
已修改1个文件
410 ■■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/CheckTypeController.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypePageReqVO.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeRespVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeSaveReqVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/checktype/CheckTypeDO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeServiceImpl.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/checktype/CheckTypeMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -45,4 +45,6 @@
    ErrorCode JOB_RECORD_NOT_EXISTS = new ErrorCode(1_010_007_000, "工作记录不存在");
    ErrorCode CALL_NOT_EXISTS = new ErrorCode(1_010_008_000, "叫号不存在");
    ErrorCode CHECK_TYPE_NOT_EXISTS = new ErrorCode(1_010_009_000, "检查类型不存在");
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/CheckTypeController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,95 @@
package cn.lihu.jh.module.ecg.controller.admin.checktype;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import java.util.*;
import java.io.IOException;
import cn.lihu.jh.framework.common.pojo.PageParam;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.common.pojo.CommonResult;
import cn.lihu.jh.framework.common.util.object.BeanUtils;
import static cn.lihu.jh.framework.common.pojo.CommonResult.success;
import cn.lihu.jh.framework.excel.core.util.ExcelUtils;
import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog;
import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*;
import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
import cn.lihu.jh.module.ecg.service.checktype.CheckTypeService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@Tag(name = "管理后台 - æ£€æŸ¥ç±»åž‹")
@RestController
@RequestMapping("/ecg/check-type")
@Validated
public class CheckTypeController {
    @Resource
    private CheckTypeService checkTypeService;
    @PostMapping("/create")
    @Operation(summary = "创建检查类型")
    @PreAuthorize("@ss.hasPermission('ecg:check-type:create')")
    public CommonResult<Integer> createCheckType(@Valid @RequestBody CheckTypeSaveReqVO createReqVO) {
        return success(checkTypeService.createCheckType(createReqVO));
    }
    @PutMapping("/update")
    @Operation(summary = "更新检查类型")
    @PreAuthorize("@ss.hasPermission('ecg:check-type:update')")
    public CommonResult<Boolean> updateCheckType(@Valid @RequestBody CheckTypeSaveReqVO updateReqVO) {
        checkTypeService.updateCheckType(updateReqVO);
        return success(true);
    }
    @DeleteMapping("/delete")
    @Operation(summary = "删除检查类型")
    @Parameter(name = "id", description = "编号", required = true)
    @PreAuthorize("@ss.hasPermission('ecg:check-type:delete')")
    public CommonResult<Boolean> deleteCheckType(@RequestParam("id") Integer id) {
        checkTypeService.deleteCheckType(id);
        return success(true);
    }
    @GetMapping("/get")
    @Operation(summary = "获得检查类型")
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
    @PreAuthorize("@ss.hasPermission('ecg:check-type:query')")
    public CommonResult<CheckTypeRespVO> getCheckType(@RequestParam("id") Integer id) {
        CheckTypeDO checkType = checkTypeService.getCheckType(id);
        return success(BeanUtils.toBean(checkType, CheckTypeRespVO.class));
    }
    @GetMapping("/page")
    @Operation(summary = "获得检查类型分页")
    @PreAuthorize("@ss.hasPermission('ecg:check-type:query')")
    public CommonResult<PageResult<CheckTypeRespVO>> getCheckTypePage(@Valid CheckTypePageReqVO pageReqVO) {
        PageResult<CheckTypeDO> pageResult = checkTypeService.getCheckTypePage(pageReqVO);
        return success(BeanUtils.toBean(pageResult, CheckTypeRespVO.class));
    }
    @GetMapping("/export-excel")
    @Operation(summary = "导出检查类型 Excel")
    @PreAuthorize("@ss.hasPermission('ecg:check-type:export')")
    @ApiAccessLog(operateType = EXPORT)
    public void exportCheckTypeExcel(@Valid CheckTypePageReqVO pageReqVO,
              HttpServletResponse response) throws IOException {
        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
        List<CheckTypeDO> list = checkTypeService.getCheckTypePage(pageReqVO).getList();
        // å¯¼å‡º Excel
        ExcelUtils.write(response, "检查类型.xls", "数据", CheckTypeRespVO.class,
                        BeanUtils.toBean(list, CheckTypeRespVO.class));
    }
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypePageReqVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package cn.lihu.jh.module.ecg.controller.admin.checktype.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.lihu.jh.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static cn.lihu.jh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - æ£€æŸ¥ç±»åž‹åˆ†é¡µ Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CheckTypePageReqVO extends PageParam {
    @Schema(description = "检查类型名", example = "芋艿")
    private String name;
    @Schema(description = "检查类型值")
    private Integer value;
    @Schema(description = "允许准备中人数")
    private Integer readyNum;
    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;
    @Schema(description = "需要设备领用")
    private Integer needDevReady;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeRespVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package cn.lihu.jh.module.ecg.controller.admin.checktype.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - æ£€æŸ¥ç±»åž‹ Response VO")
@Data
@ExcelIgnoreUnannotated
public class CheckTypeRespVO {
    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "800")
    @ExcelProperty("id")
    private Integer id;
    @Schema(description = "检查类型名", example = "芋艿")
    @ExcelProperty("检查类型名")
    private String name;
    @Schema(description = "检查类型值")
    @ExcelProperty("检查类型值")
    private Integer value;
    @Schema(description = "允许准备中人数")
    @ExcelProperty("允许准备中人数")
    private Integer readyNum;
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;
    @Schema(description = "需要设备领用")
    @ExcelProperty("需要设备领用")
    private Integer needDevReady;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/checktype/vo/CheckTypeSaveReqVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
package cn.lihu.jh.module.ecg.controller.admin.checktype.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
@Schema(description = "管理后台 - æ£€æŸ¥ç±»åž‹æ–°å¢ž/修改 Request VO")
@Data
public class CheckTypeSaveReqVO {
    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "800")
    private Integer id;
    @Schema(description = "检查类型名", example = "芋艿")
    private String name;
    @Schema(description = "检查类型值")
    private Integer value;
    @Schema(description = "允许准备中人数")
    private Integer readyNum;
    @Schema(description = "需要设备领用")
    private Integer needDevReady;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/checktype/CheckTypeDO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package cn.lihu.jh.module.ecg.dal.dataobject.checktype;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO;
/**
 * æ£€æŸ¥ç±»åž‹ DO
 *
 * @author majianbo
 */
@TableName("check_type")
@KeySequence("check_type_seq") // ç”¨äºŽ Oracle、PostgreSQL、Kingbase、DB2、H2 æ•°æ®åº“的主键自增。如果是 MySQL ç­‰æ•°æ®åº“,可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CheckTypeDO extends BaseDO {
    /**
     * id
     */
    @TableId
    private Integer id;
    /**
     * æ£€æŸ¥ç±»åž‹å
     */
    private String name;
    /**
     * æ£€æŸ¥ç±»åž‹å€¼
     */
    private Integer value;
    /**
     * å…è®¸å‡†å¤‡ä¸­äººæ•°
     */
    private Integer readyNum;
    /**
     * éœ€è¦è®¾å¤‡é¢†ç”¨
     */
    private Integer needDevReady;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/checktype/CheckTypeMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
package cn.lihu.jh.module.ecg.dal.mysql.checktype;
import java.util.*;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
import org.apache.ibatis.annotations.Mapper;
import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*;
/**
 * æ£€æŸ¥ç±»åž‹ Mapper
 *
 * @author majianbo
 */
@Mapper
public interface CheckTypeMapper extends BaseMapperX<CheckTypeDO> {
    default PageResult<CheckTypeDO> selectPage(CheckTypePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<CheckTypeDO>()
                .likeIfPresent(CheckTypeDO::getName, reqVO.getName())
                .eqIfPresent(CheckTypeDO::getValue, reqVO.getValue())
                .eqIfPresent(CheckTypeDO::getReadyNum, reqVO.getReadyNum())
                .betweenIfPresent(CheckTypeDO::getCreateTime, reqVO.getCreateTime())
                .eqIfPresent(CheckTypeDO::getNeedDevReady, reqVO.getNeedDevReady())
                .orderByDesc(CheckTypeDO::getId));
    }
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package cn.lihu.jh.module.ecg.service.checktype;
import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
import cn.lihu.jh.framework.common.pojo.PageResult;
import javax.validation.Valid;
/**
 * æ£€æŸ¥ç±»åž‹ Service æŽ¥å£
 *
 * @author majianbo
 */
public interface CheckTypeService {
    /**
     * åˆ›å»ºæ£€æŸ¥ç±»åž‹
     *
     * @param createReqVO åˆ›å»ºä¿¡æ¯
     * @return ç¼–号
     */
    Integer createCheckType(@Valid CheckTypeSaveReqVO createReqVO);
    /**
     * æ›´æ–°æ£€æŸ¥ç±»åž‹
     *
     * @param updateReqVO æ›´æ–°ä¿¡æ¯
     */
    void updateCheckType(@Valid CheckTypeSaveReqVO updateReqVO);
    /**
     * åˆ é™¤æ£€æŸ¥ç±»åž‹
     *
     * @param id ç¼–号
     */
    void deleteCheckType(Integer id);
    /**
     * èŽ·å¾—æ£€æŸ¥ç±»åž‹
     *
     * @param id ç¼–号
     * @return æ£€æŸ¥ç±»åž‹
     */
    CheckTypeDO getCheckType(Integer id);
    /**
     * èŽ·å¾—æ£€æŸ¥ç±»åž‹åˆ†é¡µ
     *
     * @param pageReqVO åˆ†é¡µæŸ¥è¯¢
     * @return æ£€æŸ¥ç±»åž‹åˆ†é¡µ
     */
    PageResult<CheckTypeDO> getCheckTypePage(CheckTypePageReqVO pageReqVO);
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/checktype/CheckTypeServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
package cn.lihu.jh.module.ecg.service.checktype;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import cn.lihu.jh.module.ecg.controller.admin.checktype.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.checktype.CheckTypeDO;
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.common.util.object.BeanUtils;
import cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper;
import javax.annotation.Resource;
import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*;
/**
 * æ£€æŸ¥ç±»åž‹ Service å®žçŽ°ç±»
 *
 * @author majianbo
 */
@Service
@Validated
public class CheckTypeServiceImpl implements CheckTypeService {
    @Resource
    private CheckTypeMapper checkTypeMapper;
    @Override
    public Integer createCheckType(CheckTypeSaveReqVO createReqVO) {
        // æ’å…¥
        CheckTypeDO checkType = BeanUtils.toBean(createReqVO, CheckTypeDO.class);
        checkTypeMapper.insert(checkType);
        // è¿”回
        return checkType.getId();
    }
    @Override
    public void updateCheckType(CheckTypeSaveReqVO updateReqVO) {
        // æ ¡éªŒå­˜åœ¨
        validateCheckTypeExists(updateReqVO.getId());
        // æ›´æ–°
        CheckTypeDO updateObj = BeanUtils.toBean(updateReqVO, CheckTypeDO.class);
        checkTypeMapper.updateById(updateObj);
    }
    @Override
    public void deleteCheckType(Integer id) {
        // æ ¡éªŒå­˜åœ¨
        validateCheckTypeExists(id);
        // åˆ é™¤
        checkTypeMapper.deleteById(id);
    }
    private void validateCheckTypeExists(Integer id) {
        if (checkTypeMapper.selectById(id) == null) {
            throw exception(CHECK_TYPE_NOT_EXISTS);
        }
    }
    @Override
    public CheckTypeDO getCheckType(Integer id) {
        return checkTypeMapper.selectById(id);
    }
    @Override
    public PageResult<CheckTypeDO> getCheckTypePage(CheckTypePageReqVO pageReqVO) {
        return checkTypeMapper.selectPage(pageReqVO);
    }
}
jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/checktype/CheckTypeMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.lihu.jh.module.ecg.dal.mysql.checktype.CheckTypeMapper">
    <!--
        ä¸€èˆ¬æƒ…况下,尽可能使用 Mapper è¿›è¡Œ CRUD å¢žåˆ æ”¹æŸ¥å³å¯ã€‚
        æ— æ³•满足的场景,例如说多表关联查询,才使用 XML ç¼–写 SQL。
        ä»£ç ç”Ÿæˆå™¨æš‚时只生成 Mapper XML æ–‡ä»¶æœ¬èº«ï¼Œæ›´å¤šæŽ¨è MybatisX å¿«é€Ÿå¼€å‘插件来生成查询。
        æ–‡æ¡£å¯è§ï¼šhttps://www.iocoder.cn/MyBatis/x-plugins/
     -->
</mapper>