|
|
@@ -13,9 +13,7 @@ import cn.tr.module.smart.app.controller.dto.AppDoctorClinicRoomDTO;
|
|
|
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.common.dto.BizClinicAddOrEditDTO;
|
|
|
-import cn.tr.module.smart.common.dto.BizClinicRoomDTO;
|
|
|
-import cn.tr.module.smart.common.dto.BizClinicRoomQueryDTO;
|
|
|
+import cn.tr.module.smart.common.dto.*;
|
|
|
import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
|
|
|
import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
|
|
|
import cn.tr.module.smart.common.enums.InfusionBindType;
|
|
|
@@ -24,6 +22,7 @@ import cn.tr.module.smart.common.enums.UserTypeEnums;
|
|
|
import cn.tr.module.smart.common.mapper.BizClinicRoomMapper;
|
|
|
import cn.tr.module.smart.common.mapper.BizInfusionHistoryMapper;
|
|
|
import cn.tr.module.smart.common.mapper.BizQuestionAnswerMapper;
|
|
|
+import cn.tr.module.smart.common.mapper.BizQuestionMapper;
|
|
|
import cn.tr.module.smart.common.po.*;
|
|
|
import cn.tr.module.smart.common.properties.ALiYunProperties;
|
|
|
import cn.tr.module.smart.common.repository.*;
|
|
|
@@ -42,9 +41,12 @@ import cn.tr.module.smart.wx.dto.*;
|
|
|
import cn.tr.module.smart.wx.utils.Id2Utils;
|
|
|
import cn.tr.module.sys.user.po.SysUserPO;
|
|
|
import cn.tr.module.sys.user.repository.SysUserRepository;
|
|
|
+import com.alibaba.dashscope.exception.InputRequiredException;
|
|
|
+import com.alibaba.dashscope.exception.NoApiKeyException;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -120,6 +122,10 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
|
|
|
@Autowired
|
|
|
private SysUserRepository sysUserRepository;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ @Lazy
|
|
|
+ private IBizQuestionGroupService questionGroupService;
|
|
|
@Override
|
|
|
public List<BizWxAppletClinicDetailVO> stdSelectWxAppletClinicList(BizWxAppletClinicQueryDTO query) {
|
|
|
return baseRepository.stdSelectWxAppletClinicList(query);
|
|
|
@@ -739,6 +745,27 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
return Boolean.TRUE;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Cacheable(value = "ai::preSurgeryQuestionnaire#2592000",key = "'groupId:' + #clinicId")
|
|
|
+ public List<BizWxDeptQuestionVO> generatePreSurgeryQuestionnaireAi(String clinicId) throws NoApiKeyException, InputRequiredException {
|
|
|
+ //如果未设置的话,采用AI生成一组问卷
|
|
|
+ BizClinicRoomPO bizClinicRoomPO = baseRepository.selectById(clinicId);
|
|
|
+ BizQuestionGroupAiDTO query = new BizQuestionGroupAiDTO();
|
|
|
+ query.setName(bizClinicRoomPO.getClinicName()+"术前问卷");
|
|
|
+ query.setType(ClinicPhaseEnums.BEFORE);
|
|
|
+ List<BizQuestionDTO> bizQuestionDTOS = questionGroupService.generateAi(query);
|
|
|
+ return BizQuestionMapper.INSTANCE.dtoConvertWxDeptQuestionVOList(bizQuestionDTOS)
|
|
|
+ .stream()
|
|
|
+ .peek(t->t.setGroupId(clinicId))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Cacheable(value = "ai::preSurgeryQuestionnaire#2592000", key = "'groupId:' + #clinicId")
|
|
|
+ @Override
|
|
|
+ public List<BizWxDeptQuestionVO> getPreSurgeryQuestionnaireAi(String clinicId){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 微信小程序基于医生已填写的信息更新数据
|
|
|
*/
|