Переглянути джерело

add
提交术后问卷
查看术后问卷

18339543638 4 місяців тому
батько
коміт
3b18deebda

+ 7 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionAnswerService.java

@@ -25,11 +25,17 @@ public interface IBizQuestionAnswerService{
      */
     Boolean stdWxAppletCommitPreSurgeryQuestionnaireAnswer(BizWxAppletCommitSurgeryQuestionDTO source);
 
-    List<BizWxDeptQuestionVO> stdSelectWxAppletPreSurgeryQuestionnaire(String clinicId, String questionType);
+    List<BizWxDeptQuestionVO> stdSelectWxAppletPreSurgeryQuestionnaire(String clinicId);
 
     List<BizWebQuestionAnswerVO> selectWebQuestionAnswerList(BizWebQuestionAnswerQueryDTO query);
 
     List<BizWebQuestionAnswerByClinicIdDTO> selectAnswerByClinicList(BizWebQuestionQueryDTO  query);
 
     BizWebQuestionAnswerDTO selectDetailByAnswerId(String answerId);
+
+    /**
+     * 提交术后问卷
+     * @param source
+     */
+    void stdWxAppletCommitPostSurgeryQuestionnaireAnswer(BizWxAppletCommitSurgeryQuestionDTO source);
 }

+ 26 - 2
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionAnswerServiceImpl.java

@@ -68,10 +68,12 @@ public class BizQuestionAnswerServiceImpl implements IBizQuestionAnswerService {
         }
         //做全量更新,删除原来的手术问卷信息
         baseRepository.delete(new LambdaQueryWrapper<BizQuestionAnswerPO>()
-                .eq(BizQuestionAnswerPO::getClinicId, source.getClinicId()));
+                .eq(BizQuestionAnswerPO::getClinicId, source.getClinicId())
+                .eq(BizQuestionAnswerPO::getQuestionType,ClinicPhaseEnums.BEFORE));
         //新增
         BizQuestionAnswerPO questionAnswer = BizQuestionAnswerMapper.INSTANCE.convertPO(source);
         questionAnswer.setAnswerTime(new Date());
+        questionAnswer.setQuestionType(ClinicPhaseEnums.BEFORE);
         List<BizQuestionEntity> questionList = BizQuestionMapper.INSTANCE.convertEntityList(questionRepository.selectList(new LambdaQueryWrapper<BizQuestionPO>()
                 .eq(BizQuestionPO::getGroupId, source.getQuestionGroupId()))
         );
@@ -86,9 +88,10 @@ public class BizQuestionAnswerServiceImpl implements IBizQuestionAnswerService {
     }
 
     @Override
-    public List<BizWxDeptQuestionVO> stdSelectWxAppletPreSurgeryQuestionnaire(String clinicId, String questionType) {
+    public List<BizWxDeptQuestionVO> stdSelectWxAppletPreSurgeryQuestionnaire(String clinicId) {
         BizQuestionAnswerPO questionAnswer = baseRepository.selectOne(new LambdaQueryWrapper<BizQuestionAnswerPO>()
                 .eq(BizQuestionAnswerPO::getClinicId, clinicId)
+                .eq(BizQuestionAnswerPO::getQuestionType,ClinicPhaseEnums.BEFORE)
                 .last("limit 1"));
         if (ObjectUtil.isNull(questionAnswer)) {
             return null;
@@ -124,6 +127,27 @@ public class BizQuestionAnswerServiceImpl implements IBizQuestionAnswerService {
         return bizWebQuestionAnswerDTO;
     }
 
+    @Override
+    public void stdWxAppletCommitPostSurgeryQuestionnaireAnswer(BizWxAppletCommitSurgeryQuestionDTO source) {
+        BizClinicRoomPO clinicRoom = clinicRoomRepository.selectById(source.getClinicId());
+        if (ObjectUtil.isNull(clinicRoom)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "未查询到手术信息");
+        }
+        //新增
+        BizQuestionAnswerPO questionAnswer = BizQuestionAnswerMapper.INSTANCE.convertPO(source);
+        questionAnswer.setAnswerTime(new Date());
+        List<BizQuestionEntity> questionList = BizQuestionMapper.INSTANCE.convertEntityList(questionRepository.selectList(new LambdaQueryWrapper<BizQuestionPO>()
+                .eq(BizQuestionPO::getGroupId, source.getQuestionGroupId()))
+        );
+        if (CollectionUtil.isEmpty(questionList)) {
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001, "问卷问题为空,提交失败");
+        }
+        questionAnswer.setQuestion(questionList);
+        baseRepository.insert(questionAnswer);
+        clinicRoom.setLastAfterQuestionTime(new Date());
+        clinicRoomRepository.updateById(clinicRoom);
+    }
+
     /**
      * @description: 根据问题填充答案
      * @author wangzl

+ 10 - 5
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizWxAppletQuestionController.java

@@ -3,6 +3,7 @@ package cn.tr.module.smart.wx.controller;
 import cn.hutool.core.collection.CollectionUtil;
 
 import cn.tr.core.pojo.CommonResult;
+import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
 import cn.tr.module.smart.common.service.IBizClinicRoomService;
 import cn.tr.module.smart.common.service.IBizQuestionAnswerService;
 import cn.tr.module.smart.web.dto.BizWebQuestionAnswerByClinicIdDTO;
@@ -33,12 +34,12 @@ public class BizWxAppletQuestionController extends BaseController{
 
     private final IBizClinicRoomService clinicRoomService;
     private final IBizQuestionAnswerService questionAnswerService;
-
+    private final IBizQuestionAnswerService bizQuestionAnswerService;
     @ApiOperationSupport(author = "zzy",order = 1)
     @GetMapping("/preSurgery/query/{clinicId}")
     @ApiOperation(value = "查看术前问卷",notes = "权限: 无")
     public CommonResult<List<BizWxDeptQuestionVO>> preSurgeryQuestionnaire(@PathVariable("clinicId") String clinicId){
-        List<BizWxDeptQuestionVO> result=questionAnswerService.stdSelectWxAppletPreSurgeryQuestionnaire(clinicId,"BEFORE");
+        List<BizWxDeptQuestionVO> result=questionAnswerService.stdSelectWxAppletPreSurgeryQuestionnaire(clinicId);
         if(CollectionUtil.isNotEmpty(result)){
             return CommonResult.success(result);
         }
@@ -58,12 +59,16 @@ public class BizWxAppletQuestionController extends BaseController{
     @GetMapping("/postSurgery/query/{clinicId}")
     @ApiOperation(value = "查看术后问卷",notes = "权限: 无")
     public CommonResult<List<BizWebQuestionAnswerByClinicIdDTO>> selectQuestionnaireList(@PathVariable("clinicId") String clinicId) {
-        return CommonResult.success(Collections.emptyList());
+        BizWebQuestionQueryDTO query = new BizWebQuestionQueryDTO();
+        query.setClinicId(clinicId);
+        query.setQuestionType(ClinicPhaseEnums.AFTER);
+        return CommonResult.success(bizQuestionAnswerService.selectAnswerByClinicList(query));
     }
     @ApiOperationSupport(author = "lf", order = 4)
     @ApiOperation(value = "提交术后问卷",notes = "权限: 无")
     @PostMapping("/postSurgery/commit")
-    public CommonResult<BizWebQuestionAnswerDTO> selectQuestionnaireList(@RequestBody@Validated BizWxAppletCommitSurgeryQuestionDTO source) {
-        return CommonResult.success(null);
+    public CommonResult<Boolean> selectQuestionnaireList(@RequestBody@Validated BizWxAppletCommitSurgeryQuestionDTO source) {
+        questionAnswerService.stdWxAppletCommitPostSurgeryQuestionnaireAnswer(source);
+        return CommonResult.success(Boolean.TRUE);
     }
 }

+ 1 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/dto/BizWxAppletCommitSurgeryQuestionDTO.java

@@ -24,7 +24,7 @@ public class BizWxAppletCommitSurgeryQuestionDTO {
     private String clinicId;
 
     @ApiModelProperty(value = "术前问卷组id",required = true)
-    @NotBlank(message = "术前问卷组id")
+    @NotBlank(message = "术前问卷组id不能为空")
     private String questionGroupId;
 
     @ApiModelProperty("术前问卷问题回答")