jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -24,4 +24,5 @@ ErrorCode PATIENT_NOT_EXISTS = new ErrorCode(1_010_004_000, "æ£è ä¸åå¨"); ErrorCode DEV_MODEL_NOT_EXISTS = new ErrorCode(1_010_005_000, "设å¤åå·ä¸åå¨"); ErrorCode DEVICE_NOT_EXISTS = new ErrorCode(1_010_005_001, "设å¤ä¸åå¨"); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/DeviceController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,95 @@ package cn.lihu.jh.module.ecg.controller.admin.devmanage; 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.devmanage.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; import cn.lihu.jh.module.ecg.service.devmanage.DeviceService; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @Tag(name = "管çåå° - 设å¤") @RestController @RequestMapping("/ecg/device") @Validated public class DeviceController { @Resource private DeviceService deviceService; @PostMapping("/create") @Operation(summary = "å建设å¤") @PreAuthorize("@ss.hasPermission('ecg:device:create')") public CommonResult<Integer> createDevice(@Valid @RequestBody DeviceSaveReqVO createReqVO) { return success(deviceService.createDevice(createReqVO)); } @PutMapping("/update") @Operation(summary = "æ´æ°è®¾å¤") @PreAuthorize("@ss.hasPermission('ecg:device:update')") public CommonResult<Boolean> updateDevice(@Valid @RequestBody DeviceSaveReqVO updateReqVO) { deviceService.updateDevice(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "å é¤è®¾å¤") @Parameter(name = "id", description = "ç¼å·", required = true) @PreAuthorize("@ss.hasPermission('ecg:device:delete')") public CommonResult<Boolean> deleteDevice(@RequestParam("id") Integer id) { deviceService.deleteDevice(id); return success(true); } @GetMapping("/get") @Operation(summary = "è·å¾è®¾å¤") @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:device:query')") public CommonResult<DeviceRespVO> getDevice(@RequestParam("id") Integer id) { DeviceDO device = deviceService.getDevice(id); return success(BeanUtils.toBean(device, DeviceRespVO.class)); } @GetMapping("/page") @Operation(summary = "è·å¾è®¾å¤å页") @PreAuthorize("@ss.hasPermission('ecg:device:query')") public CommonResult<PageResult<DeviceRespVO>> getDevicePage(@Valid DevicePageReqVO pageReqVO) { PageResult<DeviceDO> pageResult = deviceService.getDevicePage(pageReqVO); return success(BeanUtils.toBean(pageResult, DeviceRespVO.class)); } @GetMapping("/export-excel") @Operation(summary = "导åºè®¾å¤ Excel") @PreAuthorize("@ss.hasPermission('ecg:device:export')") @ApiAccessLog(operateType = EXPORT) public void exportDeviceExcel(@Valid DevicePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List<DeviceDO> list = deviceService.getDevicePage(pageReqVO).getList(); // å¯¼åº Excel ExcelUtils.write(response, "设å¤.xls", "æ°æ®", DeviceRespVO.class, BeanUtils.toBean(list, DeviceRespVO.class)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devmanage/vo/DevicePageReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package cn.lihu.jh.module.ecg.controller.admin.devmanage.vo; import lombok.*; import java.time.LocalDate; 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 DevicePageReqVO extends PageParam { @Schema(description = "设å¤ç¼å·", example = "5317") private String devId; @Schema(description = "åç±»å") private String category; @Schema(description = "åç") private String brand; @Schema(description = "åå·") private String model; @Schema(description = "éè´æ¥æ") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDate[] purchaseDate; @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/devmanage/vo/DeviceRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ package cn.lihu.jh.module.ecg.controller.admin.devmanage.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.time.LocalDate; 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 DeviceRespVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15567") @ExcelProperty("id") private Integer id; @Schema(description = "设å¤ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "5317") @ExcelProperty("设å¤ç¼å·") private String devId; @Schema(description = "åç±»å", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("åç±»å") private String category; @Schema(description = "åç", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("åç") private String brand; @Schema(description = "åå·", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("åå·") private String model; @Schema(description = "éè´æ¥æ") @ExcelProperty("éè´æ¥æ") private LocalDate purchaseDate; @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/devmanage/vo/DeviceSaveReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ package cn.lihu.jh.module.ecg.controller.admin.devmanage.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.NotEmpty; import java.time.LocalDate; import java.util.*; @Schema(description = "管çåå° - è®¾å¤æ°å¢/ä¿®æ¹ Request VO") @Data public class DeviceSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15567") private Integer id; @Schema(description = "设å¤ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "5317") @NotEmpty(message = "设å¤ç¼å·ä¸è½ä¸ºç©º") private String devId; @Schema(description = "åç±»å", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "åç±»åä¸è½ä¸ºç©º") private String category; @Schema(description = "åç", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "åçä¸è½ä¸ºç©º") private String brand; @Schema(description = "åå·", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "åå·ä¸è½ä¸ºç©º") private String model; @Schema(description = "éè´æ¥æ") private LocalDate purchaseDate; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devmanage/DeviceDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,53 @@ package cn.lihu.jh.module.ecg.dal.dataobject.devmanage; import lombok.*; import java.time.LocalDate; 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("device") @KeySequence("device_seq") // ç¨äº OracleãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ MySQL çæ°æ®åºï¼å¯ä¸åã @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class DeviceDO extends BaseDO { /** * id */ @TableId private Integer id; /** * 设å¤ç¼å· */ private String devId; /** * åç±»å */ private String category; /** * åç */ private String brand; /** * åå· */ private String model; /** * éè´æ¥æ */ private LocalDate purchaseDate; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/devmanage/DeviceMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package cn.lihu.jh.module.ecg.dal.mysql.devmanage; 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.devmanage.DeviceDO; import org.apache.ibatis.annotations.Mapper; import cn.lihu.jh.module.ecg.controller.admin.devmanage.vo.*; /** * è®¾å¤ Mapper * * @author majianbo */ @Mapper public interface DeviceMapper extends BaseMapperX<DeviceDO> { default PageResult<DeviceDO> selectPage(DevicePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<DeviceDO>() .eqIfPresent(DeviceDO::getDevId, reqVO.getDevId()) .eqIfPresent(DeviceDO::getCategory, reqVO.getCategory()) .eqIfPresent(DeviceDO::getBrand, reqVO.getBrand()) .eqIfPresent(DeviceDO::getModel, reqVO.getModel()) .betweenIfPresent(DeviceDO::getPurchaseDate, reqVO.getPurchaseDate()) .betweenIfPresent(DeviceDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(DeviceDO::getId)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,56 @@ package cn.lihu.jh.module.ecg.service.devmanage; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.devmanage.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import javax.validation.Valid; /** * è®¾å¤ Service æ¥å£ * * @author majianbo */ public interface DeviceService { /** * åå»ºè®¾å¤ * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer createDevice(@Valid DeviceSaveReqVO createReqVO); /** * æ´æ°è®¾å¤ * * @param updateReqVO æ´æ°ä¿¡æ¯ */ void updateDevice(@Valid DeviceSaveReqVO updateReqVO); /** * å é¤è®¾å¤ * * @param id ç¼å· */ void deleteDevice(Integer id); /** * è·å¾è®¾å¤ * * @param id ç¼å· * @return è®¾å¤ */ DeviceDO getDevice(Integer id); /** * è·å¾è®¾å¤å页 * * @param pageReqVO å页æ¥è¯¢ * @return 设å¤å页 */ PageResult<DeviceDO> getDevicePage(DevicePageReqVO pageReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devmanage/DeviceServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package cn.lihu.jh.module.ecg.service.devmanage; 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.devmanage.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devmanage.DeviceDO; 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.devmanage.DeviceMapper; 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 DeviceServiceImpl implements DeviceService { @Resource private DeviceMapper deviceMapper; @Override public Integer createDevice(DeviceSaveReqVO createReqVO) { // æå ¥ DeviceDO device = BeanUtils.toBean(createReqVO, DeviceDO.class); deviceMapper.insert(device); // è¿å return device.getId(); } @Override public void updateDevice(DeviceSaveReqVO updateReqVO) { // æ ¡éªåå¨ validateDeviceExists(updateReqVO.getId()); // æ´æ° DeviceDO updateObj = BeanUtils.toBean(updateReqVO, DeviceDO.class); deviceMapper.updateById(updateObj); } @Override public void deleteDevice(Integer id) { // æ ¡éªåå¨ validateDeviceExists(id); // å é¤ deviceMapper.deleteById(id); } private void validateDeviceExists(Integer id) { if (deviceMapper.selectById(id) == null) { throw exception(DEVICE_NOT_EXISTS); } } @Override public DeviceDO getDevice(Integer id) { return deviceMapper.selectById(id); } @Override public PageResult<DeviceDO> getDevicePage(DevicePageReqVO pageReqVO) { return deviceMapper.selectPage(pageReqVO); } } jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/devmanage/DeviceMapper.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.devmanage.DeviceMapper"> <!-- ä¸è¬æ åµä¸ï¼å°½å¯è½ä½¿ç¨ Mapper è¿è¡ CRUD å¢å æ¹æ¥å³å¯ã æ æ³æ»¡è¶³çåºæ¯ï¼ä¾å¦è¯´å¤è¡¨å ³èæ¥è¯¢ï¼æä½¿ç¨ XML ç¼å SQLã 代ç çæå¨ææ¶åªçæ Mapper XML æä»¶æ¬èº«ï¼æ´å¤æ¨è MybatisX å¿«éå¼åæä»¶æ¥çææ¥è¯¢ã ææ¡£å¯è§ï¼https://www.iocoder.cn/MyBatis/x-plugins/ --> </mapper>