jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/DevRentStateEnum.java
@@ -22,7 +22,9 @@ DATAENTERED(25, "已录入"), READY_CANCELLED(30, "领用放弃"), INSTALL_CANCELLED(35, "安装放弃"), LOST(40, "已遗失"); LOST(40, "已遗失"), ROUTINE_CANCELLED(50, "常规检查放弃"), ROUTINE_FINISH( 60, "常规检查完成"); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(DevRentStateEnum::getState).toArray(); jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/devrent/DevRentController.java
@@ -50,6 +50,21 @@ @Resource private QueueService queueService; // 常规检查 完成 @PostMapping("/routine-finish") @Operation(summary = "") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> routineFinish(@Valid @RequestBody DevRentSaveReqVO createReqVO) { try { CommonResult<Long> result = devRentService.routineFinishOperation(createReqVO); return result; } catch ( RuntimeException runtimeException ) { String err = ExceptionUtils.formatException( runtimeException ); log.error("checkFinish: " + err); return CommonResult.error(DEV_INSTALL_EXCEPTION); } } @PostMapping("/dev-ready") @Operation(summary = "设备领用") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") @@ -106,7 +121,7 @@ } @PostMapping("/dev-ready-cancel") @Operation(summary = "取消装机") @Operation(summary = "取消领用") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<Long> devReadyCancel(@Valid @RequestBody DevCancelReqVO cancelReqVO) { try { jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentService.java
@@ -28,6 +28,14 @@ * @param createReqVO 创建信息 * @return 编号 */ CommonResult<Long> routineFinishOperation(@Valid DevRentSaveReqVO createReqVO); /** * 设备准备 * * @param createReqVO 创建信息 * @return 编号 */ CommonResult<Long> readyOperation(@Valid DevRentSaveReqVO createReqVO); /** jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/devrent/DevRentServiceImpl.java
@@ -60,6 +60,68 @@ } @Override public CommonResult<Long> routineFinishOperation(DevRentSaveReqVO createReqVO) { Long userId = SecurityFrameworkUtils.getLoginUserId(); String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); // 同样 在预约确实时 就进入 [dev_rent] 表了 Long rent_id = createReqVO.getId(); if (null == rent_id) { List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState()); if (devRentDOList.size() == 0) return CommonResult.error(DEV_INSTALL_NOT_APPOINTMENT); else if (devRentDOList.size() != 1) { return CommonResult.error(DEV_INSTALL_EXCEPTION); } rent_id = devRentDOList.getFirst().getId(); createReqVO.setId( rent_id ); createReqVO.setState( DevRentStateEnum.ROUTINE_FINISH.getState() ); updateDevRent( 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( DevRentStateEnum.ROUTINE_FINISH.getState() ); jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); jobRecordSaveReqVO.setSummary(""); JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); jobRecordMapper.insert(jobRecord); } else { // 撤销 放弃操作 createReqVO.setState( DevRentStateEnum.ROUTINE_FINISH.getState() ); updateDevRent( createReqVO ); List<Integer> jobTypeList = new ArrayList<Integer>(); jobTypeList.add( DevRentStateEnum.ROUTINE_FINISH.getState()); jobTypeList.add( DevRentStateEnum.READY_CANCELLED.getState()); JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); if (null != jobRecordDO) { jobRecordDO.setDevId(createReqVO.getDevId()); jobRecordDO.setJobType( DevRentStateEnum.ROUTINE_FINISH.getState() ); jobRecordDO.setJobTime(createReqVO.getRentTime()); jobRecordDO.setRemark(createReqVO.getRemark()); jobRecordDO.setUpdater(String.valueOf(userId)); jobRecordDO.setUpdateTime(LocalDateTime.now()); jobRecordMapper.updateById(jobRecordDO); } } // 更新..队列状态 queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); return CommonResult.success(rent_id); } @Override @Transactional public CommonResult<Long> readyOperation(DevRentSaveReqVO createReqVO) { Long userId = SecurityFrameworkUtils.getLoginUserId(); jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -332,8 +332,15 @@ @Override public void finishNextPatient(Long roomId, String bedNo) { // 从 DB 把 就诊中的人 设置为就诊完成 Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); //Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃取下一位 List<Byte> queueStatusList = new ArrayList<>(); queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); Integer num = queueMapper.bedQueueStatisticByStatus(roomId, bedNo, queueStatusList); if ( num != null && num > 0) return; startNextPatient(roomId, bedNo); } @@ -345,7 +352,7 @@ //Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus()); // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃.取下一位 // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃取下一位 List<Byte> queueStatusList = new ArrayList<>(); queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); Integer num = queueMapper.bedQueueStatisticByStatus(roomId, bedNo, queueStatusList); @@ -362,7 +369,7 @@ //Integer ret = queueMapper.updateBedQueueStatus(roomId, bedNo, // QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus()); // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃.取下一位 // 从 DB 检查 该工位 是否有 [就诊中] 人员,若有就.放弃取下一位 List<Byte> queueStatusList = new ArrayList<>(); queueStatusList.add(QueueStatusEnum.INSTALLING.getStatus()); Integer num = queueMapper.bedQueueStatisticByStatus(roomId, bedNo, queueStatusList);