|
@@ -9,10 +9,7 @@ import cn.tr.core.exception.TRExcCode;
|
|
|
import cn.tr.core.strategy.LoginUserStrategy;
|
|
import cn.tr.core.strategy.LoginUserStrategy;
|
|
|
import cn.tr.module.mobile.repository.ImGroupUserRepository;
|
|
import cn.tr.module.mobile.repository.ImGroupUserRepository;
|
|
|
import cn.tr.module.smart.app.controller.dto.*;
|
|
import cn.tr.module.smart.app.controller.dto.*;
|
|
|
-import cn.tr.module.smart.app.controller.vo.AppBizDeviceListVO;
|
|
|
|
|
-import cn.tr.module.smart.app.controller.vo.AppDoctorInfusionHistoryVO;
|
|
|
|
|
-import cn.tr.module.smart.app.controller.vo.DoctorClinicRoomVO;
|
|
|
|
|
-import cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomThumbnailVO;
|
|
|
|
|
|
|
+import cn.tr.module.smart.app.controller.vo.*;
|
|
|
import cn.tr.module.smart.common.dto.*;
|
|
import cn.tr.module.smart.common.dto.*;
|
|
|
import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
|
|
import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
|
|
|
import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
|
|
import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
|
|
@@ -393,8 +390,8 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
.set(BizClinicRoomPO::getClinicEndTime, finishDTO.getClinicEndTime())
|
|
.set(BizClinicRoomPO::getClinicEndTime, finishDTO.getClinicEndTime())
|
|
|
.eq(BizClinicRoomPO::getId, finishDTO.getClinicId()));
|
|
.eq(BizClinicRoomPO::getId, finishDTO.getClinicId()));
|
|
|
//创建镇痛和问卷的消息通知的任务
|
|
//创建镇痛和问卷的消息通知的任务
|
|
|
- mpPublishTaskService.createQuestionTask(clinicRoom.getId(),finishDTO.getClinicEndTime());
|
|
|
|
|
- mpPublishTaskService.createAssessmentTask(clinicRoom.getId(),finishDTO.getClinicEndTime());
|
|
|
|
|
|
|
+// mpPublishTaskService.createQuestionTask(clinicRoom.getId(),finishDTO.getClinicEndTime());
|
|
|
|
|
+// mpPublishTaskService.createAssessmentTask(clinicRoom.getId(),finishDTO.getClinicEndTime());
|
|
|
return update != 0;
|
|
return update != 0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -886,6 +883,97 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
return infusionClinicRepository.deleteById(bizInfusionClinicPO.getId())!=0;
|
|
return infusionClinicRepository.deleteById(bizInfusionClinicPO.getId())!=0;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param source
|
|
|
|
|
+ * @description: 批量解绑手术信息
|
|
|
|
|
+ * @author wangzl
|
|
|
|
|
+ * @date 2025/10/17
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<AppClinicBatchErrorVO> unBindClinicBatch(AppClinicUnBindBatchDTO source) {
|
|
|
|
|
+ String currentUserId = LoginUserStrategy.tr.getCurrentUserId();
|
|
|
|
|
+ List<String> clinicIds = source.getClinicIds();
|
|
|
|
|
+ List<BizClinicRoomPO> clinicRooms = baseRepository.selectList(new LambdaQueryWrapper<BizClinicRoomPO>()
|
|
|
|
|
+ .in(BizClinicRoomPO::getId, clinicIds));
|
|
|
|
|
+ if (CollectionUtil.isEmpty(clinicRooms)) {
|
|
|
|
|
+ throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "手术信息不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ Set<String> clinicRoomIds = clinicRooms.stream().map(BizClinicRoomPO::getId).collect(Collectors.toSet());
|
|
|
|
|
+ List<AppClinicBatchErrorVO> unBindError = new ArrayList<>();
|
|
|
|
|
+ clinicIds.forEach(id -> {
|
|
|
|
|
+ if(!clinicRoomIds.contains(id)){
|
|
|
|
|
+ unBindError.add( AppClinicBatchErrorVO.builder()
|
|
|
|
|
+ .clinicId(id)
|
|
|
|
|
+ .errorMsg("手术信息不存在")
|
|
|
|
|
+ .build());
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ if (clinicRoomDoctorUserRepository.delete(new LambdaQueryWrapper<BizClinicRoomDoctorUserPO>()
|
|
|
|
|
+ .in(BizClinicRoomDoctorUserPO::getClinicRoomId, clinicIds)
|
|
|
|
|
+ .eq(BizClinicRoomDoctorUserPO::getUserId, currentUserId)) != 0f) {
|
|
|
|
|
+ clinicIds.forEach(clinicId -> groupUserRepository.readAllMsg(clinicId,currentUserId));
|
|
|
|
|
+ }
|
|
|
|
|
+ return unBindError;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @param source
|
|
|
|
|
+ * @description: 批量结束手术信息
|
|
|
|
|
+ * @author wangzl
|
|
|
|
|
+ * @date 2025/10/17
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<AppClinicBatchErrorVO> finishClinicBatch(AppClinicFinishBatchDTO source) {
|
|
|
|
|
+ List<String> clinicIds = source.getClinicIds();
|
|
|
|
|
+ List<BizClinicRoomPO> clinicRooms = baseRepository.selectList(new LambdaQueryWrapper<BizClinicRoomPO>()
|
|
|
|
|
+ .in(BizClinicRoomPO::getId, clinicIds));
|
|
|
|
|
+ //去除已删除数据
|
|
|
|
|
+ Set<String> existClinicIds = clinicRooms.stream().map(BizClinicRoomPO::getId).collect(Collectors.toSet());
|
|
|
|
|
+ clinicIds.removeIf(clinicId -> !existClinicIds.contains(clinicId));
|
|
|
|
|
+ List<AppClinicBatchErrorVO> finishError = new ArrayList<>();
|
|
|
|
|
+ clinicRooms.forEach(clinicRoom -> {
|
|
|
|
|
+ if (ObjectUtil.isNull(clinicRoom)) {
|
|
|
|
|
+ finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
|
|
+ .clinicId(clinicRoom.getId())
|
|
|
|
|
+ .errorMsg("手术信息不存在")
|
|
|
|
|
+ .build());
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ClinicPhaseEnums.AFTER.equals(clinicRoom.getClinicStatus())) {
|
|
|
|
|
+ finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
|
|
+ .clinicId(clinicRoom.getId())
|
|
|
|
|
+ .errorMsg("手术已结束,无法结束手术")
|
|
|
|
|
+ .build());
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ObjectUtil.compare(source.getClinicEndTime(), new Date()) > 0) {
|
|
|
|
|
+ finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
|
|
+ .clinicId(clinicRoom.getId())
|
|
|
|
|
+ .errorMsg(String.format("手术结束时间[%s],不得大于当前时间[%s]"
|
|
|
|
|
+ , DateUtil.formatDateTime(source.getClinicEndTime())
|
|
|
|
|
+ , DateUtil.formatDateTime(new Date())))
|
|
|
|
|
+ .build());
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ObjectUtil.compare(clinicRoom.getClinicStartTime(), source.getClinicEndTime()) > 0) {
|
|
|
|
|
+ finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
|
|
+ .clinicId(clinicRoom.getId())
|
|
|
|
|
+ .errorMsg(String.format("手术结束时间[%s],不得早于手术开始时间[%s]"
|
|
|
|
|
+ , DateUtil.formatDateTime(source.getClinicEndTime()),
|
|
|
|
|
+ DateUtil.formatDateTime(clinicRoom.getClinicStartTime())))
|
|
|
|
|
+ .build());
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ finishError.forEach(error->clinicIds.removeIf(id-> id.equals(error.getClinicId())));
|
|
|
|
|
+ if(CollectionUtil.isNotEmpty(clinicIds)){
|
|
|
|
|
+ baseRepository.update(null, new LambdaUpdateWrapper<BizClinicRoomPO>()
|
|
|
|
|
+ .set(BizClinicRoomPO::getClinicStatus, ClinicPhaseEnums.AFTER)
|
|
|
|
|
+ .set(BizClinicRoomPO::getClinicEndTime, source.getClinicEndTime())
|
|
|
|
|
+ .in(BizClinicRoomPO::getId, clinicIds));
|
|
|
|
|
+ }
|
|
|
|
|
+ return finishError;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 微信小程序基于医生已填写的信息更新数据
|
|
* 微信小程序基于医生已填写的信息更新数据
|
|
|
*/
|
|
*/
|