jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -25,4 +25,5 @@ ErrorCode DEV_MODEL_NOT_EXISTS = new ErrorCode(1_010_005_000, "设å¤åå·ä¸åå¨"); ErrorCode DEVICE_NOT_EXISTS = new ErrorCode(1_010_005_001, "设å¤ä¸åå¨"); ErrorCode DEV_RENT_NOT_EXISTS = new ErrorCode(1_010_005_002, "ç§åä¸åå¨"); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,95 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent; 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.devrent.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; import cn.lihu.jh.module.ecg.service.devrent.DevRentService; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @Tag(name = "管çåå° - è£ æºææº") @RestController @RequestMapping("/ecg/dev-rent") @Validated public class DevRentController { @Resource private DevRentService devRentService; @PostMapping("/create") @Operation(summary = "åå»ºè£ æºææº") @PreAuthorize("@ss.hasPermission('ecg:dev-rent:create')") public CommonResult<Integer> createDevRent(@Valid @RequestBody DevRentSaveReqVO createReqVO) { return success(devRentService.createDevRent(createReqVO)); } @PutMapping("/update") @Operation(summary = "æ´æ°è£ æºææº") @PreAuthorize("@ss.hasPermission('ecg:dev-rent:update')") public CommonResult<Boolean> updateDevRent(@Valid @RequestBody DevRentSaveReqVO updateReqVO) { devRentService.updateDevRent(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "å é¤è£ æºææº") @Parameter(name = "id", description = "ç¼å·", required = true) @PreAuthorize("@ss.hasPermission('ecg:dev-rent:delete')") public CommonResult<Boolean> deleteDevRent(@RequestParam("id") Integer id) { devRentService.deleteDevRent(id); return success(true); } @GetMapping("/get") @Operation(summary = "è·å¾è£ æºææº") @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:dev-rent:query')") public CommonResult<DevRentRespVO> getDevRent(@RequestParam("id") Integer id) { DevRentDO devRent = devRentService.getDevRent(id); return success(BeanUtils.toBean(devRent, DevRentRespVO.class)); } @GetMapping("/page") @Operation(summary = "è·å¾è£ æºææºå页") @PreAuthorize("@ss.hasPermission('ecg:dev-rent:query')") public CommonResult<PageResult<DevRentRespVO>> getDevRentPage(@Valid DevRentPageReqVO pageReqVO) { PageResult<DevRentDO> pageResult = devRentService.getDevRentPage(pageReqVO); return success(BeanUtils.toBean(pageResult, DevRentRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "导åºè£ æºææº Excel") @PreAuthorize("@ss.hasPermission('ecg:dev-rent:export')") @ApiAccessLog(operateType = EXPORT) public void exportDevRentExcel(@Valid DevRentPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<DevRentDO> list = devRentService.getDevRentPage(pageReqVO).getList(); // å¯¼åº Excel ExcelUtils.write(response, "è£ æºææº.xls", "æ°æ®", DevRentRespVO.class, BeanUtils.toBean(list, DevRentRespVO.class)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentPageReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent.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 DevRentPageReqVO extends PageParam { @Schema(description = "设å¤ç¼å·", example = "3986") private String devId; @Schema(description = "æ£è ç¼å·", example = "4973") private String patId; @Schema(description = "æ£è åç§°", example = "èè¿") private String patName; @Schema(description = "è£ æºæ¶é´") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] rentTime; @Schema(description = "ææºæ¶é´") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] returnTime; @Schema(description = "å¹²æ°æ°") private Integer interference; @Schema(description = "åºçº¿ç²") private String baseline; @Schema(description = "è±ç¦»") private String detachment; @Schema(description = "夿³¨", example = "ä½ ç") private String remark; @Schema(description = "å建æ¶é´") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,59 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent.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 DevRentRespVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26525") @ExcelProperty("id") private Integer id; @Schema(description = "设å¤ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "3986") @ExcelProperty("设å¤ç¼å·") private String devId; @Schema(description = "æ£è ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "4973") @ExcelProperty("æ£è ç¼å·") private String patId; @Schema(description = "æ£è åç§°", requiredMode = Schema.RequiredMode.REQUIRED, example = "èè¿") @ExcelProperty("æ£è åç§°") private String patName; @Schema(description = "è£ æºæ¶é´") @ExcelProperty("è£ æºæ¶é´") private LocalDateTime rentTime; @Schema(description = "ææºæ¶é´") @ExcelProperty("ææºæ¶é´") private LocalDateTime returnTime; @Schema(description = "å¹²æ°æ°") @ExcelProperty("å¹²æ°æ°") private Integer interference; @Schema(description = "åºçº¿ç²") @ExcelProperty("åºçº¿ç²") private String baseline; @Schema(description = "è±ç¦»") @ExcelProperty("è±ç¦»") private String detachment; @Schema(description = "夿³¨", example = "ä½ ç") @ExcelProperty("夿³¨") private String remark; @Schema(description = "å建æ¶é´", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("å建æ¶é´") private LocalDateTime createTime; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentSaveReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,46 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.NotEmpty; import java.time.LocalDateTime; @Schema(description = "管çåå° - è£ æºææºæ°å¢/ä¿®æ¹ Request VO") @Data public class DevRentSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26525") private Integer id; @Schema(description = "设å¤ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "3986") @NotEmpty(message = "设å¤ç¼å·ä¸è½ä¸ºç©º") private String devId; @Schema(description = "æ£è ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "4973") @NotEmpty(message = "æ£è ç¼å·ä¸è½ä¸ºç©º") private String patId; @Schema(description = "æ£è åç§°", requiredMode = Schema.RequiredMode.REQUIRED, example = "èè¿") @NotEmpty(message = "æ£è åç§°ä¸è½ä¸ºç©º") private String patName; @Schema(description = "è£ æºæ¶é´") private LocalDateTime rentTime; @Schema(description = "ææºæ¶é´") private LocalDateTime returnTime; @Schema(description = "å¹²æ°æ°") private Integer interference; @Schema(description = "åºçº¿ç²") private String baseline; @Schema(description = "è±ç¦»") private String detachment; @Schema(description = "夿³¨", example = "ä½ ç") private String remark; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devrent/DevRentDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,69 @@ package cn.lihu.jh.module.ecg.dal.dataobject.devrent; import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; /** * è£ æºææº DO * * @author èéæºç */ @TableName("dev_rent") @KeySequence("dev_rent_seq") // ç¨äº OracleãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ MySQL çæ°æ®åºï¼å¯ä¸åã @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class DevRentDO extends BaseDO { /** * id */ @TableId private Integer id; /** * 设å¤ç¼å· */ private String devId; /** * æ£è ç¼å· */ private String patId; /** * æ£è åç§° */ private String patName; /** * è£ æºæ¶é´ */ private LocalDateTime rentTime; /** * ææºæ¶é´ */ private LocalDateTime returnTime; /** * å¹²æ°æ° */ private Integer interference; /** * åºçº¿ç² */ private String baseline; /** * è±ç¦» */ private String detachment; /** * 夿³¨ */ private String remark; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devrent/DevRentMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,35 @@ package cn.lihu.jh.module.ecg.dal.mysql.devrent; 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.devrent.DevRentDO; import org.apache.ibatis.annotations.Mapper; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; /** * è£ æºææº Mapper * * @author èéæºç */ @Mapper public interface DevRentMapper extends BaseMapperX<DevRentDO> { default PageResult<DevRentDO> selectPage(DevRentPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<DevRentDO>() .eqIfPresent(DevRentDO::getDevId, reqVO.getDevId()) .eqIfPresent(DevRentDO::getPatId, reqVO.getPatId()) .likeIfPresent(DevRentDO::getPatName, reqVO.getPatName()) .betweenIfPresent(DevRentDO::getRentTime, reqVO.getRentTime()) .betweenIfPresent(DevRentDO::getReturnTime, reqVO.getReturnTime()) .eqIfPresent(DevRentDO::getInterference, reqVO.getInterference()) .eqIfPresent(DevRentDO::getBaseline, reqVO.getBaseline()) .eqIfPresent(DevRentDO::getDetachment, reqVO.getDetachment()) .eqIfPresent(DevRentDO::getRemark, reqVO.getRemark()) .betweenIfPresent(DevRentDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(DevRentDO::getId)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package cn.lihu.jh.module.ecg.service.devrent; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import javax.validation.Valid; /** * è£ æºææº Service æ¥å£ * * @author èéæºç */ public interface DevRentService { /** * åå»ºè£ æºææº * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer createDevRent(@Valid DevRentSaveReqVO createReqVO); /** * æ´æ°è£ æºææº * * @param updateReqVO æ´æ°ä¿¡æ¯ */ void updateDevRent(@Valid DevRentSaveReqVO updateReqVO); /** * å é¤è£ æºææº * * @param id ç¼å· */ void deleteDevRent(Integer id); /** * è·å¾è£ æºææº * * @param id ç¼å· * @return è£ æºææº */ DevRentDO getDevRent(Integer id); /** * è·å¾è£ æºææºå页 * * @param pageReqVO å页æ¥è¯¢ * @return è£ æºææºå页 */ PageResult<DevRentDO> getDevRentPage(DevRentPageReqVO pageReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package cn.lihu.jh.module.ecg.service.devrent; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import cn.lihu.jh.framework.common.util.object.BeanUtils; import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper; 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 èéæºç */ @Service @Validated public class DevRentServiceImpl implements DevRentService { @Resource private DevRentMapper devRentMapper; @Override public Integer createDevRent(DevRentSaveReqVO createReqVO) { // æå ¥ DevRentDO devRent = BeanUtils.toBean(createReqVO, DevRentDO.class); devRentMapper.insert(devRent); // è¿å return devRent.getId(); } @Override public void updateDevRent(DevRentSaveReqVO updateReqVO) { // æ ¡éªåå¨ validateDevRentExists(updateReqVO.getId()); // æ´æ° DevRentDO updateObj = BeanUtils.toBean(updateReqVO, DevRentDO.class); devRentMapper.updateById(updateObj); } @Override public void deleteDevRent(Integer id) { // æ ¡éªåå¨ validateDevRentExists(id); // å é¤ devRentMapper.deleteById(id); } private void validateDevRentExists(Integer id) { if (devRentMapper.selectById(id) == null) { throw exception(DEV_RENT_NOT_EXISTS); } } @Override public DevRentDO getDevRent(Integer id) { return devRentMapper.selectById(id); } @Override public PageResult<DevRentDO> getDevRentPage(DevRentPageReqVO pageReqVO) { return devRentMapper.selectPage(pageReqVO); } } jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/devrent/DevRentMapper.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.devrent.DevRentMapper"> <!-- ä¸è¬æ åµä¸ï¼å°½å¯è½ä½¿ç¨ Mapper è¿è¡ CRUD å¢å æ¹æ¥å³å¯ã æ æ³æ»¡è¶³çåºæ¯ï¼ä¾å¦è¯´å¤è¡¨å ³èæ¥è¯¢ï¼æä½¿ç¨ XML ç¼å SQLã 代ç çæå¨ææ¶åªçæ Mapper XML æä»¶æ¬èº«ï¼æ´å¤æ¨è MybatisX å¿«éå¼åæä»¶æ¥çææ¥è¯¢ã ææ¡£å¯è§ï¼https://www.iocoder.cn/MyBatis/x-plugins/ --> </mapper> sql/mysql/jh.sql
@@ -151,9 +151,11 @@ `detachment` varchar(100) DEFAULT NULL COMMENT 'è±ç¦»', `remark` varchar(100) DEFAULT NULL COMMENT '夿³¨', `tenant_id` int DEFAULT 1 COMMENT 'ç§æ·ç¼å·', `creator` varchar(10) DEFAULT '' COMMENT 'å建è ', `create_time` datetime NOT NULL COMMENT 'å建æ¶é´', `updater` varchar(10) DEFAULT '' COMMENT 'æ´æ°è ', `update_time` datetime NOT NULL COMMENT 'æ´æ°æ¶é´', `deleted` bit(1) DEFAULT 0, `deleted` bit(1) DEFAULT 0 COMMENT 'å 餿 è®°', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='è£ æºææºè¡¨';