| | |
| | | jobTypeList.add( DevRentStateEnum.ROUTINE_CANCELLED.getState()); |
| | | JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); |
| | | if (null == jobRecordDO) { |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState()); |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); |
| | | if (devRentDOList.size() == 0) |
| | | throw exception(DEV_INSTALL_NOT_APPOINTMENT); |
| | | else if (devRentDOList.size() != 1) { |
| | |
| | | jobRecordSaveReqVO.setJobType( DevRentStateEnum.ROUTINE_FINISH.getState() ); |
| | | jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); |
| | | jobRecordSaveReqVO.setSummary(""); |
| | | jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); |
| | | |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | |
| | | } |
| | | |
| | | // 更新..队列状态 |
| | | queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), |
| | | QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); |
| | | //queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), |
| | | // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.FINISH.getStatus()); |
| | | |
| | | QueueDO firstOnStageQueueItem = queueMapper.getFirstItemByBedAndStatus(createReqVO.getRoomId(), |
| | | createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus()); |
| | | // QueueStatusEnum.ONSTAGE => QueueStatusEnum.FINISH |
| | | firstOnStageQueueItem.setStatus(QueueStatusEnum.FINISH.getStatus()); // 默认状态 设置 |
| | | queueMapper.updateById( firstOnStageQueueItem ); |
| | | |
| | | // 检查项目.亲和性 处理逻辑 |
| | | CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( firstOnStageQueueItem.getBookCheckType() ); |
| | | if (checkTypeDO.getAffinityCheckTypes().length > 0) { |
| | | procAffinityWhenRoutineFinish( firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes() ); |
| | | } |
| | | |
| | | return CommonResult.success(rent_id); |
| | | } |
| | | |
| | | /** |
| | | * 领用完成 操作 |
| | | * @param createReqVO 创建信息 |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public CommonResult<Long> readyOperation(DevRentSaveReqVO createReqVO) { |
| | | Long userId = SecurityFrameworkUtils.getLoginUserId(); |
| | | String userNickname = SecurityFrameworkUtils.getLoginUserNickname(); |
| | | Long rent_id = createReqVO.getId(); |
| | | Long rent_id = createReqVO.getId(); // dev_rent 表的ID |
| | | |
| | | // 标注设备 已领取 |
| | | Integer ret = markDevRecieved(createReqVO.getDevId(), rent_id); |
| | |
| | | jobTypeList.add( DevRentStateEnum.READY_CANCELLED.getState()); |
| | | JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); |
| | | if (null == jobRecordDO) { |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState()); |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); |
| | | if (devRentDOList.size() == 0) |
| | | throw exception(DEV_INSTALL_NOT_APPOINTMENT); |
| | | else if (devRentDOList.size() != 1) { |
| | |
| | | jobRecordSaveReqVO.setJobType( DevRentStateEnum.READY.getState() ); |
| | | jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); |
| | | jobRecordSaveReqVO.setSummary(""); |
| | | jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); |
| | | |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | |
| | | //queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), |
| | | // QueueStatusEnum.ONSTAGE.getStatus(), QueueStatusEnum.RECEIVED.getStatus()); |
| | | |
| | | QueueDO firstOnStageQueueItem = queueMapper.getFirstItemByBedAndStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus()); |
| | | CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( firstOnStageQueueItem.getBookCheckType() ); |
| | | |
| | | // QueueStatusEnum.ONSTAGE => QueueStatusEnum.RECEIVED |
| | | firstOnStageQueueItem.setStatus(QueueStatusEnum.RECEIVED.getStatus()); // 默认状态 设置 |
| | | // 检查项目.亲和性 处理逻辑 |
| | | if (checkTypeDO.getAffinityCheckTypes().length > 0) { |
| | | List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.INSTALLING.getStatus()); |
| | | if (!affinityInstallingItems.isEmpty()) { |
| | | firstOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); |
| | | } |
| | | } |
| | | queueMapper.updateById( firstOnStageQueueItem ); |
| | | QueueDO bedOnStageQueueItem = queueMapper.getFirstItemByBedAndStatus( |
| | | createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.ONSTAGE.getStatus() ); |
| | | CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( bedOnStageQueueItem.getBookCheckType() ); |
| | | bedOnStageQueueItem.setStatus(QueueStatusEnum.RECEIVED.getStatus()); // [已领用] 状态 |
| | | |
| | | // 检查项目.亲和性 处理逻辑 |
| | | // 检查项目.亲和性 处理逻辑 , 更新 bedOnStageQueueItem |
| | | if (checkTypeDO.getAffinityCheckTypes().length > 0) { |
| | | List<QueueDO> affinityReadyItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.READY.getStatus()); |
| | | if (!affinityReadyItems.isEmpty()) { |
| | | QueueDO tmpQueueDO = affinityReadyItems.get(0); |
| | | tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); |
| | | queueMapper.updateById(tmpQueueDO); |
| | | } else { |
| | | List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstOnStageQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_WAITING.getStatus()); |
| | | if (!affinityAffinityWaitingItems.isEmpty()) { |
| | | QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); |
| | | tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); |
| | | queueMapper.updateById(tmpQueueDO); |
| | | } |
| | | } |
| | | procAffinityWhenReadyFinish(/*IN, OUT*/bedOnStageQueueItem, checkTypeDO.getAffinityCheckTypes()); |
| | | } |
| | | |
| | | queueMapper.updateById( bedOnStageQueueItem ); |
| | | return CommonResult.success(rent_id); |
| | | } |
| | | |
| | |
| | | |
| | | // 第一次 安装操作 |
| | | if (null == jobRecordDO) { |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.READY.getState()); |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.READY.getState()); |
| | | if (devRentDOList.size() == 0) |
| | | throw exception(DEV_INSTALL_NOT_RECEIVED); |
| | | else if (devRentDOList.size() != 1) { |
| | |
| | | jobRecordSaveReqVO.setJobType( DevRentStateEnum.INSTALLED.getState() ); |
| | | jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); |
| | | jobRecordSaveReqVO.setSummary(""); |
| | | jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); |
| | | |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | |
| | | //queueMapper.updateBedQueueStatus(createReqVO.getRoomId(), createReqVO.getBedNo(), |
| | | // QueueStatusEnum.INSTALLING.getStatus(), QueueStatusEnum.FINISH.getStatus()); |
| | | |
| | | QueueDO firstInstallingQueueItem = queueMapper.getFirstItemByBedAndStatus(createReqVO.getRoomId(), |
| | | createReqVO.getBedNo(), QueueStatusEnum.INSTALLING.getStatus()); |
| | | // QueueStatusEnum.INSTALLING => QueueStatusEnum.FINISH |
| | | firstInstallingQueueItem.setStatus(QueueStatusEnum.FINISH.getStatus()); // 默认状态 设置 |
| | | queueMapper.updateById( firstInstallingQueueItem ); |
| | | QueueDO bedInstallingQueueItem = queueMapper.getFirstItemByBedAndStatus( |
| | | createReqVO.getRoomId(), createReqVO.getBedNo(), QueueStatusEnum.INSTALLING.getStatus()); |
| | | bedInstallingQueueItem.setStatus(QueueStatusEnum.FINISH.getStatus()); // 默认状态 设置 |
| | | queueMapper.updateById( bedInstallingQueueItem ); |
| | | |
| | | // 检查项目.亲和性 处理逻辑 |
| | | CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( firstInstallingQueueItem.getBookCheckType() ); |
| | | CheckTypeDO checkTypeDO = queueServiceTxFunctions.getCheckTypeItem( bedInstallingQueueItem.getBookCheckType() ); |
| | | if (checkTypeDO.getAffinityCheckTypes().length > 0) { |
| | | List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus(firstInstallingQueueItem.getPatId(), checkTypeDO.getAffinityCheckTypes(), QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); |
| | | if (!affinityAffinityReceivedItems.isEmpty()) { |
| | | QueueDO tmpQueueDO = affinityAffinityReceivedItems.get(0); |
| | | tmpQueueDO.setStatus(QueueStatusEnum.INSTALLING.getStatus()); |
| | | queueMapper.updateById(tmpQueueDO); |
| | | } |
| | | procAffinityWhenInstallFinish(bedInstallingQueueItem, checkTypeDO.getAffinityCheckTypes()); |
| | | } |
| | | |
| | | return CommonResult.success(rent_id); |
| | |
| | | jobRecordSaveReqVO.setJobType( DevRentStateEnum.DISMANTLED.getState() ); |
| | | jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); |
| | | jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); |
| | | jobRecordSaveReqVO.setCheckType( updateReqVO.getCheckType() ); |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | | } else { |
| | |
| | | jobRecordSaveReqVO.setJobType( DevRentStateEnum.DATAENTERED.getState() ); |
| | | jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); |
| | | jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); |
| | | jobRecordSaveReqVO.setCheckType( updateReqVO.getCheckType() ); |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | | } else { |
| | |
| | | jobTypeList.add( DevRentStateEnum.ROUTINE_CANCELLED.getState()); |
| | | JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); |
| | | if (null == jobRecordDO) { |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState()); |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); |
| | | if (devRentDOList.size() != 1) |
| | | throw exception(ROUTINE_CHECK_EXIST); |
| | | |
| | |
| | | jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); |
| | | jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); |
| | | jobRecordSaveReqVO.setSummary(""); |
| | | jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); |
| | | |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | |
| | | jobTypeList.add( DevRentStateEnum.READY_CANCELLED.getState()); |
| | | JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); |
| | | if (null == jobRecordDO) { |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.FREE.getState()); |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.FREE.getState()); |
| | | if (devRentDOList.size() != 1) |
| | | throw exception(DEV_INSTALL_EXIST); |
| | | |
| | |
| | | jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); |
| | | jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); |
| | | jobRecordSaveReqVO.setSummary(""); |
| | | jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); |
| | | |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | |
| | | jobTypeList.add( DevRentStateEnum.INSTALL_CANCELLED.getState()); |
| | | JobRecordDO jobRecordDO = jobRecordMapper.selectByRentIdDocId(rent_id, userId, jobTypeList); |
| | | if (null == jobRecordDO) { |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatIdAndState(createReqVO.getPatId(), DevRentStateEnum.READY.getState()); |
| | | List<DevRentDO> devRentDOList = devRentMapper.selectByPatAndChecktypeAndState(createReqVO.getPatId(), createReqVO.getCheckType(), DevRentStateEnum.READY.getState()); |
| | | if (devRentDOList.size() != 1) |
| | | throw exception(DEV_INSTALL_EXIST); |
| | | |
| | |
| | | jobRecordSaveReqVO.setJobTime(createReqVO.getRentTime()); |
| | | jobRecordSaveReqVO.setRemark(createReqVO.getRemark()); |
| | | jobRecordSaveReqVO.setSummary(""); |
| | | jobRecordSaveReqVO.setCheckType( createReqVO.getCheckType() ); |
| | | |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | |
| | | jobRecordSaveReqVO.setJobType( devRentStateEnum.getState() ); |
| | | jobRecordSaveReqVO.setRemark( updateReqVO.getRemark() ); |
| | | jobRecordSaveReqVO.setSummary( updateReqVO.getInterference() + " " + updateReqVO.getBaseline() + " " + updateReqVO.getDetachment() ); |
| | | jobRecordSaveReqVO.setCheckType( updateReqVO.getCheckType() ); |
| | | JobRecordDO jobRecord = BeanUtils.toBean(jobRecordSaveReqVO, JobRecordDO.class); |
| | | jobRecordMapper.insert(jobRecord); |
| | | } else { |
| | |
| | | return 0; |
| | | } |
| | | |
| | | private void procAffinityWhenRoutineFinish(String patId, Integer[] affinityCheckTypes) { |
| | | // 如果存在 [亲和-排队] 亲和项,则选择 其中一个亲和项 接替其 处于 [就诊中] |
| | | List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus( |
| | | patId, affinityCheckTypes, QueueStatusEnum.AFFINITY_WAITING.getStatus()); |
| | | if (!affinityAffinityWaitingItems.isEmpty()) { |
| | | QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); |
| | | tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); |
| | | queueMapper.updateById(tmpQueueDO); |
| | | } |
| | | } |
| | | |
| | | private void procAffinityWhenReadyFinish(/*IN,OUT*/QueueDO bedOnStageQueueItem, Integer[] affinityCheckTypes) { |
| | | // 如果存在 [安装中] 亲和项,则跟随其中一个亲和项 |
| | | List<QueueDO> affinityInstallingItems = queueMapper.getCurPatGivenCheckTypesAndStatus( |
| | | bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.INSTALLING.getStatus()); |
| | | if (!affinityInstallingItems.isEmpty()) { |
| | | QueueDO affinityInstallingItem = affinityInstallingItems.get(0); |
| | | bedOnStageQueueItem.setStatus(QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); // 亲和-领用 |
| | | bedOnStageQueueItem.setRoomId( affinityInstallingItem.getRoomId() ); |
| | | bedOnStageQueueItem.setBedNo( affinityInstallingItem.getBedNo() ); // 领用 到 安装 可能会在不同工位 |
| | | } |
| | | |
| | | // 如果存在 [亲和-排队] 亲和项,则选择 其中一个亲和项 接替其 处于 [就诊中] |
| | | List<QueueDO> affinityAffinityWaitingItems = queueMapper.getCurPatGivenCheckTypesAndStatus( |
| | | bedOnStageQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_WAITING.getStatus()); |
| | | if (!affinityAffinityWaitingItems.isEmpty()) { |
| | | QueueDO tmpQueueDO = affinityAffinityWaitingItems.get(0); |
| | | tmpQueueDO.setStatus(QueueStatusEnum.ONSTAGE.getStatus()); |
| | | queueMapper.updateById( tmpQueueDO ); |
| | | } |
| | | } |
| | | |
| | | private void procAffinityWhenInstallFinish(QueueDO bedInstallingQueueItem, Integer[] affinityCheckTypes) { |
| | | List<QueueDO> affinityAffinityReceivedItems = queueMapper.getCurPatGivenCheckTypesAndStatus( |
| | | bedInstallingQueueItem.getPatId(), affinityCheckTypes, QueueStatusEnum.AFFINITY_RECEIVED.getStatus()); |
| | | if (!affinityAffinityReceivedItems.isEmpty()) { |
| | | QueueDO tmpQueueDO = affinityAffinityReceivedItems.get(0); |
| | | tmpQueueDO.setStatus(QueueStatusEnum.INSTALLING.getStatus()); |
| | | tmpQueueDO.setRoomId( bedInstallingQueueItem.getRoomId() ); |
| | | tmpQueueDO.setBedNo( bedInstallingQueueItem.getBedNo() ); // 从 [领用] 到 [安装], 可鞥在不同工位上操作 |
| | | queueMapper.updateById(tmpQueueDO); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |