jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -28,6 +28,9 @@ ErrorCode DEV_RENT_NOT_EXISTS = new ErrorCode(1_010_005_002, "ç§åä¸åå¨"); ErrorCode DEV_INSTALL_EXCEPTION = new ErrorCode(1_010_005_003, "è£ æºå é¨é误"); ErrorCode DEV_DISMANTLE_EXCEPTION = new ErrorCode(1_010_005_004, "ææºå é¨é误"); ErrorCode DEV_CANCEL_EXCEPTION = new ErrorCode(1_010_005_005, "ææºå é¨é误"); ErrorCode DEV_INSTALL_EXIST = new ErrorCode(1_010_005_006, "å½å¤©å·²æè£ æº"); ErrorCode DEV_DISMANTLE_EXIST = new ErrorCode(1_010_005_006, "å½å¤©å·²æææº"); ErrorCode JOB_RECORD_NOT_EXISTS = new ErrorCode(1_010_006_000, "å·¥ä½è®°å½ä¸åå¨"); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
@@ -17,16 +17,12 @@ 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.error; 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 static cn.lihu.jh.framework.common.util.exception.ExceptionUtils.formatException; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.DEV_DISMANTLE_EXCEPTION; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.DEV_INSTALL_EXCEPTION; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; import cn.lihu.jh.module.ecg.controller.admin.devrent.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.devrent.DevRentDO; @@ -51,12 +47,11 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devInstall(@Valid @RequestBody DevRentSaveReqVO createReqVO) { try { Long rent_id = devRentService.installOperation(createReqVO); return success(rent_id); return devRentService.installOperation(createReqVO); } catch ( RuntimeException runtimeException ) { String err = ExceptionUtils.formatException( runtimeException ); log.error("devInstall: " + err); return error(DEV_INSTALL_EXCEPTION); return CommonResult.error(DEV_INSTALL_EXCEPTION); } } @@ -66,11 +61,24 @@ public CommonResult<Long> devDismantle(@Valid @RequestBody DevRentSaveReqVO createReqVO) { try { devRentService.dismantleOperation(createReqVO); return success(0L); return CommonResult.success(0L); } catch ( RuntimeException runtimeException ) { String err = ExceptionUtils.formatException( runtimeException ); log.error("devDismantle: " + err); return error(DEV_DISMANTLE_EXCEPTION); return CommonResult.error(DEV_DISMANTLE_EXCEPTION); } } @PostMapping("/dev-cancel") @Operation(summary = "åæ¶è£ æº") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devCancel(@Valid @RequestBody DevCancelReqVO cancelReqVO) { try { return devRentService.cancelOperation(cancelReqVO); } catch ( RuntimeException runtimeException ) { String err = ExceptionUtils.formatException( runtimeException ); log.error("devCancel: " + err); return CommonResult.error(DEV_CANCEL_EXCEPTION); } } @@ -78,7 +86,7 @@ @Operation(summary = "åå»ºè£ æºææº") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> createDevRent(@Valid @RequestBody DevRentSaveReqVO createReqVO) { return success(devRentService.createDevRent(createReqVO)); return CommonResult.success(devRentService.createDevRent(createReqVO)); } @PutMapping("/update") @@ -86,7 +94,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Boolean> updateDevRent(@Valid @RequestBody DevRentSaveReqVO updateReqVO) { devRentService.updateDevRent(updateReqVO); return success(true); return CommonResult.success(true); } @DeleteMapping("/delete") @@ -95,7 +103,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Boolean> deleteDevRent(@RequestParam("id") Long id) { devRentService.deleteDevRent(id); return success(true); return CommonResult.success(true); } @GetMapping("/get") @@ -104,7 +112,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<DevRentRespVO> getDevRent(@RequestParam("id") Long id) { DevRentDO devRent = devRentService.getDevRent(id); return success(BeanUtils.toBean(devRent, DevRentRespVO.class)); return CommonResult.success(BeanUtils.toBean(devRent, DevRentRespVO.class)); } @GetMapping("/page") @@ -112,7 +120,7 @@ @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<PageResult<DevRentRespVO>> getDevRentPage(@Valid DevRentPageReqVO pageReqVO) { PageResult<DevRentDO> pageResult = devRentService.getDevRentPage(pageReqVO); return success(BeanUtils.toBean(pageResult, DevRentRespVO.class)); return CommonResult.success(BeanUtils.toBean(pageResult, DevRentRespVO.class)); } @GetMapping("/export-excel") @@ -135,6 +143,6 @@ public CommonResult<DevRentRespVO> getLatestRent( @RequestParam("dev-id") String devId ) { DevRentDO devRent = devRentService.getLatestRent( devId ); return success(BeanUtils.toBean(devRent, DevRentRespVO.class)); return CommonResult.success(BeanUtils.toBean(devRent, DevRentRespVO.class)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevCancelReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,48 @@ package cn.lihu.jh.module.ecg.controller.admin.devrent.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotEmpty; import java.time.LocalDateTime; @Schema(description = "管çåå° - åæ¶è£ æº Request VO") @Data public class DevCancelReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26525") private Long id; @Schema(description = "设å¤ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "3986") 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; @Schema(description = "åæ¶å®è£ ") private Integer cancelled; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/vo/DevRentPageReqVO.java
@@ -44,6 +44,9 @@ @Schema(description = "夿³¨", example = "ä½ ç") private String remark; @Schema(description = "åæ¶å®è£ ") private Integer cancelled; @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
@@ -52,6 +52,10 @@ @ExcelProperty("夿³¨") private String remark; @Schema(description = "åæ¶å®è£ ") @ExcelProperty("åæ¶å®è£ ") private Integer cancelled; @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
@@ -43,4 +43,7 @@ @Schema(description = "夿³¨", example = "ä½ ç") private String remark; @Schema(description = "åæ¶å®è£ ") private Integer cancelled; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/jobrecord/vo/JobRecordPageReqVO.java
@@ -1,5 +1,6 @@ package cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo; import com.alibaba.excel.annotation.ExcelProperty; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -43,6 +44,9 @@ @Schema(description = "夿³¨", example = "ä½ ç") private String remark; @Schema(description = "åæ¶å®è£ ") private Integer cancelled; @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/jobrecord/vo/JobRecordRespVO.java
@@ -52,6 +52,10 @@ @ExcelProperty("夿³¨") private String remark; @Schema(description = "åæ¶å®è£ ") @ExcelProperty("åæ¶å®è£ ") private Integer cancelled; @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/jobrecord/vo/JobRecordSaveReqVO.java
@@ -46,4 +46,6 @@ @NotNull(message = "对åºç§èµç¼å·ä¸è½ä¸ºç©º") private Long rentId; @Schema(description = "åæ¶å®è£ ") private Integer cancelled; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/devrent/DevRentDO.java
@@ -66,4 +66,5 @@ */ private String remark; private Integer cancelled; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/jobrecord/JobRecordDO.java
@@ -64,6 +64,9 @@ * 夿³¨ */ private String remark; private Integer cancelled; /** * 对åºç§èµç¼å· */ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/jobrecord/JobRecordMapper.java
@@ -1,5 +1,6 @@ package cn.lihu.jh.module.ecg.dal.mysql.jobrecord; import java.time.LocalDateTime; import java.util.*; import cn.lihu.jh.framework.common.pojo.PageResult; @@ -38,4 +39,7 @@ @Select("SELECT * FROM lihu.job_record where rent_id=#{rentId} and job_type=#{jobType} and doc_id=#{docId} limit 1") JobRecordDO selectByRentIdJobTypeDocId(@Param("rentId") Long rentId, @Param("jobType") Integer jobType, @Param("docId") Long docId ); @Select("SELECT count(1) FROM lihu.job_record where pat_id=#{patId} and TO_DAYS(job_time)=TO_DAYS(#{jobTime}) and job_type=#{jobType} ") Integer getPatientJobNum(@Param("patId") String patId, @Param("jobTime") LocalDateTime jobTime, @Param("jobType") Integer jobType ); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentService.java
@@ -1,6 +1,8 @@ package cn.lihu.jh.module.ecg.service.devrent; import java.util.*; import cn.lihu.jh.framework.common.pojo.CommonResult; 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; @@ -21,7 +23,7 @@ * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Long installOperation(@Valid DevRentSaveReqVO createReqVO); CommonResult<Long> installOperation(@Valid DevRentSaveReqVO createReqVO); /** * ææº @@ -32,6 +34,14 @@ Long dismantleOperation(@Valid DevRentSaveReqVO createReqVO); /** * è£ æº * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ CommonResult<Long> cancelOperation(@Valid DevCancelReqVO createReqVO); /** * åå»ºè£ æºææº * * @param createReqVO åå»ºä¿¡æ¯ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -1,5 +1,6 @@ package cn.lihu.jh.module.ecg.service.devrent; import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; import cn.lihu.jh.module.ecg.controller.admin.jobrecord.vo.JobRecordSaveReqVO; import cn.lihu.jh.module.ecg.dal.dataobject.jobrecord.JobRecordDO; @@ -40,12 +41,19 @@ @Override @Transactional public Long installOperation(DevRentSaveReqVO createReqVO) { public CommonResult<Long> installOperation(DevRentSaveReqVO createReqVO) { Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); Long rent_id = createReqVO.getId(); if (null == rent_id) { // 夿æ¯å¦å·²ç»æè£ æºè®°å½ Integer recordNum = jobRecordMapper.getPatientJobNum(createReqVO.getPatId(), createReqVO.getRentTime(), 0); if (null != recordNum && recordNum > 0) { return CommonResult.error(DEV_INSTALL_EXIST); } rent_id = createDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); @@ -63,10 +71,14 @@ JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { // æ¤é æ¾å¼æä½ createReqVO.setCancelled(0); updateDevRent( createReqVO ); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(rent_id, 0, userId); if (null != jobRecordDO) { jobRecordDO.setCancelled( createReqVO.getCancelled() ); jobRecordDO.setDevId(createReqVO.getDevId()); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); @@ -75,7 +87,7 @@ jobRecordMapper.updateById(jobRecordDO); } } return rent_id; return CommonResult.success(rent_id); } @Override @@ -113,6 +125,57 @@ } @Override public CommonResult<Long> cancelOperation(DevCancelReqVO cancelReqVO) { DevRentSaveReqVO createReqVO = BeanUtils.toBean(cancelReqVO, DevRentSaveReqVO.class); Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); createReqVO.setCancelled(1); Long rent_id = createReqVO.getId(); if (null == rent_id) { // 夿æ¯å¦å·²ç»æææºè®°å½ Integer recordNum = jobRecordMapper.getPatientJobNum(createReqVO.getPatId(), createReqVO.getRentTime(), 0); if (null != recordNum && recordNum > 0) { return CommonResult.error(DEV_INSTALL_EXIST); } rent_id = createDevRent(createReqVO); JobRecordSaveReqVO jobRecordSaveReqVO = new JobRecordSaveReqVO(); jobRecordSaveReqVO.setRentId(rent_id); //jobRecordSaveReqVO.setDevId(createReqVO.getDevId()); jobRecordSaveReqVO.setDocId(userId); jobRecordSaveReqVO.setDocName(userNickname); jobRecordSaveReqVO.setPatId(createReqVO.getPatId()); jobRecordSaveReqVO.setPatName(createReqVO.getPatName()); jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); jobRecordSaveReqVO.setJobType(0); jobRecordSaveReqVO.setCancelled(1); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { updateDevRent( createReqVO ); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdJobTypeDocId(rent_id, 0, userId); if (null != jobRecordDO) { //jobRecordDO.setDevId(createReqVO.getDevId()); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setCancelled(1); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); jobRecordDO.setUpdateTime(LocalDateTime.now()); jobRecordMapper.updateById(jobRecordDO); } } return CommonResult.success(rent_id); } @Override public Long createDevRent(DevRentSaveReqVO createReqVO) { // sql/mysql/jh.sql
@@ -141,15 +141,16 @@ DROP TABLE IF EXISTS `dev_rent`; CREATE TABLE `dev_rent` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id', `dev_id` varchar(45) DEFAULT NULL COMMENT '设å¤ç¼å·', `pat_id` varchar(45) DEFAULT NULL COMMENT 'æ£è ç¼å·', `pat_name` varchar(45) DEFAULT NULL COMMENT 'æ£è åç§°', `dev_id` varchar(45) DEFAULT NULL COMMENT '设å¤ç¼å·', `rent_time` datetime DEFAULT NULL COMMENT 'è£ æºæ¶é´', `return_time` datetime DEFAULT NULL COMMENT 'ææºæ¶é´', `interference` int DEFAULT NULL COMMENT 'å¹²æ°æ°', `baseline` varchar(100) DEFAULT NULL COMMENT 'åºçº¿ç²', `detachment` varchar(100) DEFAULT NULL COMMENT 'è±ç¦»', `remark` varchar(100) DEFAULT NULL COMMENT '夿³¨', `cancelled` int DEFAULT '0' COMMENT 'æªå®è£ ', `tenant_id` int DEFAULT '1' COMMENT 'ç§æ·ç¼å·', `creator` varchar(10) DEFAULT '' COMMENT 'å建è ', `create_time` datetime NOT NULL COMMENT 'å建æ¶é´', @@ -158,7 +159,7 @@ `deleted` bit(1) DEFAULT b'0' COMMENT 'å 餿 è®°', PRIMARY KEY (`id`), KEY `indx_dev_rent` (`dev_id`,`rent_time`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='è£ æºææºè¡¨'; ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='è£ æºææºè¡¨'; -- ---------------------------- -- Table structure for job_record @@ -176,6 +177,7 @@ `job_time` datetime DEFAULT NULL COMMENT 'ä½ä¸æ¶é´', `summary` varchar(200) DEFAULT NULL COMMENT 'ä½ä¸æ¦è¦', `remark` varchar(100) DEFAULT NULL COMMENT '夿³¨', `cancelled` int DEFAULT '0' COMMENT 'æªå®è£ ', `tenant_id` int DEFAULT '1' COMMENT 'ç§æ·ç¼å·', `creator` varchar(10) DEFAULT '' COMMENT 'å建è ', `create_time` datetime NOT NULL COMMENT 'å建æ¶é´', @@ -183,6 +185,7 @@ `update_time` datetime NOT NULL COMMENT 'æ´æ°æ¶é´', `deleted` bit(1) DEFAULT b'0' COMMENT 'å 餿 è®°', PRIMARY KEY (`id`), UNIQUE KEY `uni_rent_job_doc` (`rent_id`,`job_type`,`doc_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='å·¥ä½è®°å½è¡¨'; KEY `idx_pat_job` (`pat_id`,`job_time`,`job_type`), KEY `idx_rent_id` (`rent_id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='å·¥ä½è®°å½è¡¨';