18339543638 6 месяцев назад
Родитель
Сommit
678338fe6b
17 измененных файлов с 253 добавлено и 154 удалено
  1. 4 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionAnswerMapper.java
  2. 1 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizQuestionAnswerPO.java
  3. 2 1
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRoomRepository.java
  4. 4 5
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicRoomService.java
  5. 3 2
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionAnswerService.java
  6. 4 14
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicRoomServiceImpl.java
  7. 34 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionAnswerServiceImpl.java
  8. 0 4
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizWxUserServiceImpl.java
  9. 0 80
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizQuestionAnswerController.java
  10. 5 14
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizWxAppletClinicController.java
  11. 52 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizWxAppletQuestionController.java
  12. 0 27
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizPreSurgeryQuestionVO.java
  13. 68 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizWxAppletClinicDetailVO.java
  14. 2 3
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizWxDeptQuestionVO.java
  15. 23 2
      tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicRoomMapper.xml
  16. 4 2
      tr-test/src/main/resources/application.yml
  17. 47 0
      tr-test/src/main/resources/log4j2.xml

+ 4 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionAnswerMapper.java

@@ -1,7 +1,9 @@
 package cn.tr.module.smart.common.mapper;
 
+import cn.tr.module.smart.common.entity.BizQuestionEntity;
 import cn.tr.module.smart.common.po.BizQuestionAnswerPO;
 import cn.tr.module.smart.common.dto.BizQuestionAnswerDTO;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -28,4 +30,6 @@ public interface BizQuestionAnswerMapper {
 
     List<BizQuestionAnswerPO> convertPOList(List<BizQuestionAnswerDTO> source);
 
+    List<BizWxDeptQuestionVO> convertWxAppletVOList(List<BizQuestionEntity> source);
+
 }

+ 1 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizQuestionAnswerPO.java

@@ -2,6 +2,7 @@ package cn.tr.module.smart.common.po;
 
 import cn.tr.module.smart.common.entity.BizQuestionEntity;
 import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.plugin.mybatis.config.handler.JsonbTypeHandler;
 import cn.tr.plugin.mybatis.pojo.TenantPO;
 import com.baomidou.mybatisplus.annotation.TableField;

+ 2 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRoomRepository.java

@@ -1,5 +1,6 @@
 package cn.tr.module.smart.common.repository;
 
+import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicVO;
 import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
 import cn.tr.module.smart.app.controller.dto.WxDoctorClinicRoomDTO;
@@ -30,5 +31,5 @@ public interface BizClinicRoomRepository extends BaseMapper<BizClinicRoomPO> {
 
     BizClinicRoomPO stdWxAppletSelectByPatientCodeAndClinicStartTime(@Param("patientCode") String patientCode, @Param("clinicStartTime")Date clinicStartTime);
 
-    BizWxAppletClinicVO stdSelectWxAppletById(@Param("id") String id);
+    BizWxAppletClinicDetailVO stdSelectWxAppletById(@Param("id") String id);
 }

+ 4 - 5
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicRoomService.java

@@ -4,12 +4,11 @@ import cn.tr.module.smart.app.controller.dto.WxDoctorClinicRoomDTO;
 import cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomVO;
 import cn.tr.module.smart.common.dto.BizClinicRoomDTO;
 import cn.tr.module.smart.common.dto.BizClinicRoomQueryDTO;
-import cn.tr.module.smart.wx.controller.vo.BizPreSurgeryQuestionVO;
+import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicVO;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.module.smart.wx.dto.BizClinicAddOrEditDTO;
 import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
-import cn.tr.module.smart.wx.dto.BizWxAppletClinicShiftCareDTO;
-import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
 
 import java.util.*;
 
@@ -55,7 +54,7 @@ public interface IBizClinicRoomService{
      * @param id
      * @return
      */
-    BizWxAppletClinicVO stdSelectWxAppletById(String id);
+    BizWxAppletClinicDetailVO stdSelectWxAppletById(String id);
     /**
      * 微信端删除患者信息
      * @param ids
@@ -63,7 +62,7 @@ public interface IBizClinicRoomService{
      */
     Integer removeBizClinicByIds(Collection<String> ids);
 
-    BizPreSurgeryQuestionVO selectPreSurgeryQuestionnaire(String clinicId);
+    List<BizWxDeptQuestionVO> selectPreSurgeryQuestionnaire(String clinicId);
 
     /**
      * 根据条件查询诊疗室

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

@@ -1,7 +1,6 @@
 package cn.tr.module.smart.common.service;
 
-import cn.tr.module.smart.common.dto.BizQuestionAnswerDTO;
-import cn.tr.module.smart.common.dto.BizQuestionAnswerQueryDTO;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
 
 import java.util.*;
@@ -20,4 +19,6 @@ public interface IBizQuestionAnswerService{
      * @return
      */
     Boolean stdWxAppletCommitPreSurgeryQuestionnaireAnswer(BizWxAppletCommitSurgeryQuestionDTO source);
+
+    List<BizWxDeptQuestionVO> stdSelectWxAppletPreSurgeryQuestionnaire(String clinicId);
 }

+ 4 - 14
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicRoomServiceImpl.java

@@ -15,14 +15,11 @@ import cn.tr.module.smart.common.repository.BizClinicRoomWxUserRepository;
 import cn.tr.module.smart.common.repository.BizPatientRepository;
 import cn.tr.module.smart.common.repository.BizQuestionAnswerRepository;
 import cn.tr.module.smart.common.service.*;
-import cn.tr.module.smart.wx.controller.vo.BizPreSurgeryQuestionVO;
+import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicVO;
 import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.module.smart.wx.dto.BizClinicAddOrEditDTO;
 import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
-import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
-import cn.tr.plugin.security.bo.UserLoginInfoBO;
-import cn.tr.plugin.security.context.LoginUserContextHolder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -163,7 +160,7 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
     }
 
     @Override
-    public BizWxAppletClinicVO stdSelectWxAppletById(String id) {
+    public BizWxAppletClinicDetailVO stdSelectWxAppletById(String id) {
         return baseRepository.stdSelectWxAppletById(id);
     }
 
@@ -189,7 +186,7 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
     }
 
     @Override
-    public BizPreSurgeryQuestionVO selectPreSurgeryQuestionnaire(String clinicId) {
+    public List<BizWxDeptQuestionVO> selectPreSurgeryQuestionnaire(String clinicId) {
         //判断临床id是否为空
         if(StrUtil.isBlank(clinicId)){
             throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"参数为空");
@@ -211,14 +208,7 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
         }
         String groupId = bizDeptDTO.getGroupId();
         //通过获取到的groupId查询问卷调查问题表
-        List<BizWxDeptQuestionVO> questionVOList = bizQuestionService.selectBizQuestionByGroupId(groupId);
-
-        BizPreSurgeryQuestionVO result = new BizPreSurgeryQuestionVO();
-        result.setDataList(questionVOList);
-        result.setLastQuestionTime(lastQuestionTime);
-
-
-        return result;
+        return  bizQuestionService.selectBizQuestionByGroupId(groupId);
     }
 
     /**

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

@@ -1,14 +1,18 @@
 package cn.tr.module.smart.common.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.module.smart.common.entity.BizQuestionEntity;
+import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
 import cn.tr.module.smart.common.mapper.BizQuestionAnswerMapper;
 import cn.tr.module.smart.common.mapper.BizQuestionMapper;
 import cn.tr.module.smart.common.po.BizQuestionAnswerPO;
 import cn.tr.module.smart.common.po.BizQuestionPO;
 import cn.tr.module.smart.common.repository.BizQuestionRepository;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +23,8 @@ import cn.tr.module.smart.common.service.IBizQuestionAnswerService;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * 问卷回答Service接口实现类
@@ -53,4 +59,32 @@ public class BizQuestionAnswerServiceImpl implements IBizQuestionAnswerService {
         baseRepository.insert(questionAnswer);
         return Boolean.TRUE;
     }
+
+    @Override
+    public  List<BizWxDeptQuestionVO> stdSelectWxAppletPreSurgeryQuestionnaire(String clinicId) {
+        BizQuestionAnswerPO questionAnswer = baseRepository.selectOne(new LambdaQueryWrapper<BizQuestionAnswerPO>()
+                .eq(BizQuestionAnswerPO::getClinicId, clinicId)
+                .last("limit 1"));
+        if (ObjectUtil.isNull(questionAnswer)) {
+            return null;
+        }
+
+        List<BizWxDeptQuestionVO> questionAnswerList = BizQuestionAnswerMapper.INSTANCE.convertWxAppletVOList(questionAnswer.getQuestion());
+
+        //填充回答
+        List<BizWxAppletQuestionAnswerEntity> answerContent = questionAnswer.getContent();
+        if(CollectionUtil.isNotEmpty(answerContent)&&CollectionUtil.isNotEmpty(questionAnswerList)){
+            Map<String, BizWxDeptQuestionVO> questionMap = questionAnswerList.stream().collect(Collectors.groupingBy(BizWxDeptQuestionVO::getFieldName, Collectors.collectingAndThen(Collectors.toList(), CollectionUtil::getFirst)));
+            for (BizWxAppletQuestionAnswerEntity answer : answerContent) {
+                if(StrUtil.isEmpty(answer.getFiledName())){
+                    continue;
+                }
+                BizWxDeptQuestionVO question = questionMap.get(answer.getFiledName());
+                if(ObjectUtil.isNull(question)){
+                    question.setAnswer(answer.getContent());
+                }
+            }
+        }
+        return questionAnswerList;
+    }
 }

+ 0 - 4
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizWxUserServiceImpl.java

@@ -16,7 +16,6 @@ import cn.tr.plugin.security.bo.UserLoginInfoBO;
 import cn.tr.plugin.security.constant.SecurityConstant;
 import cn.tr.plugin.security.context.LoginUserContextHolder;
 import cn.tr.plugin.security.utils.SaTokenUtils;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import cn.hutool.core.collection.CollectionUtil;
@@ -47,9 +46,6 @@ public class BizWxUserServiceImpl implements IBizWxUserService {
     @Autowired
     private BizWxUserHospitalRepository wxUserHospitalRepository;
 
-    @Autowired
-    private ISysUserService sysUserService;
-
     @Autowired
     private BizHospitalRepository hospitalRepository;
 

+ 0 - 80
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizQuestionAnswerController.java

@@ -1,80 +0,0 @@
-package cn.tr.module.smart.web.controller;
-
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import cn.tr.core.validation.Insert;
-import cn.tr.core.validation.Update;
-import cn.tr.core.pojo.CommonResult;
-import lombok.AllArgsConstructor;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-import cn.tr.module.smart.common.dto.BizQuestionAnswerDTO;
-import cn.tr.module.smart.common.service.IBizQuestionAnswerService;
-import cn.tr.module.smart.common.dto.BizQuestionAnswerQueryDTO;
-import java.util.*;
-import cn.tr.plugin.mybatis.base.BaseController;
-import org.springframework.web.bind.annotation.*;
-import cn.tr.module.api.sys.log.annotation.OperateLog;
-import cn.tr.core.pojo.TableDataInfo;
-/**
- * 问卷回答控制器
- *
- * @author lf
- * @date  2025/06/19 09:20
- */
-@Api(tags = "问卷回答")
-@RestController
-@RequestMapping("/common/questionAnswer")
-@AllArgsConstructor
-public class BizQuestionAnswerController extends BaseController{
-
-    private final IBizQuestionAnswerService bizQuestionAnswerService;
-
-//    @ApiOperationSupport(author = "lf",order = 1)
-//    @ApiOperation(value="根据条件查询问卷回答",notes = "权限: 无")
-//    @PostMapping("/query/page")
-//    public TableDataInfo<BizQuestionAnswerDTO> selectList(@RequestBody BizQuestionAnswerQueryDTO query) {
-//        startPage();
-//        return getDataTable(bizQuestionAnswerService.selectBizQuestionAnswerList(query));
-//    }
-
-//    @ApiOperationSupport(author = "lf",order = 2)
-//    @ApiOperation(value = "根据id查询问卷回答",notes = "权限: common:questionAnswer:query")
-//    @GetMapping("/detail/{id}")
-//    @SaCheckPermission("common:questionAnswer:query")
-//    public CommonResult<BizQuestionAnswerDTO> findById(@PathVariable("id") String id){
-//        return CommonResult.success(bizQuestionAnswerService.selectBizQuestionAnswerById(id));
-//    }
-
-//    @ApiOperationSupport(author = "lf",order = 3)
-//    @ApiOperation(value="添加问卷回答",notes = "权限: common:questionAnswer:add")
-//    @PostMapping("/add")
-//    @OperateLog
-//    @SaCheckPermission("common:questionAnswer:add")
-//    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizQuestionAnswerDTO source) {
-//        return CommonResult.success(bizQuestionAnswerService.insertBizQuestionAnswer(source));
-//    }
-//
-//    @ApiOperationSupport(author = "lf",order = 4)
-//    @ApiOperation(value="通过主键id编辑问卷回答",notes = "权限: common:questionAnswer:edit")
-//    @PostMapping("/edit")
-//    @OperateLog
-//    @SaCheckPermission("common:questionAnswer:edit")
-//    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizQuestionAnswerDTO source) {
-//        return CommonResult.success(bizQuestionAnswerService.updateBizQuestionAnswerById(source));
-//    }
-//
-//    @ApiOperationSupport(author = "lf",order = 5)
-//    @ApiOperation(value="删除问卷回答",notes = "权限: common:questionAnswer:remove")
-//    @PostMapping("/removeByIds")
-//    @OperateLog
-//    @SaCheckPermission("common:questionAnswer:remove")
-//    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
-//        return CommonResult.success(bizQuestionAnswerService.removeBizQuestionAnswerByIds(ids));
-//    }
-}

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

@@ -7,13 +7,12 @@ import cn.tr.core.validation.Insert;
 import cn.tr.core.validation.Update;
 import cn.tr.module.smart.common.service.IBizClinicRoomService;
 import cn.tr.module.smart.common.service.IBizClinicRoomWxUserService;
-import cn.tr.module.smart.common.service.IBizQuestionAnswerService;
-import cn.tr.module.smart.wx.controller.vo.BizPreSurgeryQuestionVO;
+import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
 import cn.tr.module.smart.wx.dto.BizClinicAddOrEditDTO;
 import cn.tr.module.smart.wx.dto.BizWxAppletClinicQueryDTO;
 import cn.tr.module.smart.wx.dto.BizWxAppletClinicShiftCareDTO;
 import cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicVO;
-import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
 import cn.tr.plugin.mybatis.base.BaseController;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.Api;
@@ -38,7 +37,6 @@ public class BizWxAppletClinicController extends BaseController{
 
     private final IBizClinicRoomService clinicRoomService;
     private final IBizClinicRoomWxUserService roomWxUserService;
-    private final IBizQuestionAnswerService questionAnswerService;
     @ApiOperationSupport(author = "lf",order = 1)
     @ApiOperation(value="查询当前用户所添加的所有患者手术记录(不分页)",notes = "权限: 无")
     @PostMapping("/query/list")
@@ -87,14 +85,15 @@ public class BizWxAppletClinicController extends BaseController{
     @ApiOperationSupport(author = "lf",order = 7)
     @ApiOperation(value="查询患者手术详情",notes = "权限: 无")
     @GetMapping("/detail/{id}")
-    public CommonResult<BizWxAppletClinicVO> detail(@PathVariable("id") String id) {
+    public CommonResult<BizWxAppletClinicDetailVO> detail(@PathVariable("id") String id) {
         return CommonResult.success(clinicRoomService.stdSelectWxAppletById(id));
     }
 
     @ApiOperationSupport(author = "zzy",order = 8)
     @GetMapping("/preSurgeryQuestionnaire/{clinicId}")
     @ApiOperation(value = "术前问卷",notes = "权限: 无")
-    public CommonResult<BizPreSurgeryQuestionVO> preSurgeryQuestionnaire(@PathVariable("clinicId") String clinicId){
+    @Deprecated
+    public CommonResult<List<BizWxDeptQuestionVO> > preSurgeryQuestionnaire(@PathVariable("clinicId") String clinicId){
         return CommonResult.success(clinicRoomService.selectPreSurgeryQuestionnaire(clinicId));
     }
 
@@ -105,12 +104,4 @@ public class BizWxAppletClinicController extends BaseController{
     public CommonResult<Boolean> validatePatientCode(@PathVariable("patientCode") String patientCode){
         return CommonResult.success(Boolean.TRUE);
     }
-
-    @ApiOperationSupport(author = "lf",order = 10)
-    @PostMapping("/commit/preSurgeryQuestionnaire")
-    @ApiOperation(value = "提交术前问卷",notes = "权限: 无")
-    public CommonResult<Boolean> commitPreSurgeryQuestionnaireAnswer(@RequestBody@Validated BizWxAppletCommitSurgeryQuestionDTO source){
-        questionAnswerService.stdWxAppletCommitPreSurgeryQuestionnaireAnswer(source);
-        return CommonResult.success(Boolean.TRUE);
-    }
 }

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

@@ -0,0 +1,52 @@
+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.service.IBizClinicRoomService;
+import cn.tr.module.smart.common.service.IBizQuestionAnswerService;
+import cn.tr.module.smart.wx.controller.vo.BizWxDeptQuestionVO;
+import cn.tr.module.smart.wx.dto.BizWxAppletCommitSurgeryQuestionDTO;
+import cn.tr.plugin.mybatis.base.BaseController;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import java.util.*;
+/**
+ * 微信用户控制器
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ */
+@Api(tags = "问卷操作")
+@RestController
+@RequestMapping("/wx/question")
+@AllArgsConstructor
+//@SaCheckLogin(type = LoginTypeConstant.WX_APPLET)
+public class BizWxAppletQuestionController extends BaseController{
+
+    private final IBizClinicRoomService clinicRoomService;
+    private final IBizQuestionAnswerService questionAnswerService;
+
+    @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);
+        if(CollectionUtil.isNotEmpty(result)){
+            return CommonResult.success(result);
+        }
+        return CommonResult.success(clinicRoomService.selectPreSurgeryQuestionnaire(clinicId));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @PostMapping("/preSurgery/commit")
+    @ApiOperation(value = "提交术前问卷",notes = "权限: 无")
+    public CommonResult<Boolean> commitPreSurgeryQuestionnaireAnswer(@RequestBody@Validated BizWxAppletCommitSurgeryQuestionDTO source){
+        questionAnswerService.stdWxAppletCommitPreSurgeryQuestionnaireAnswer(source);
+        return CommonResult.success(Boolean.TRUE);
+    }
+}

+ 0 - 27
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizPreSurgeryQuestionVO.java

@@ -1,27 +0,0 @@
-package cn.tr.module.smart.wx.controller.vo;
-
-import cn.tr.module.smart.common.entity.BizWxAppletQuestionAnswerEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.ToString;
-
-import java.util.Date;
-import java.util.List;
-
-/**
- * @Author zzy
- * @Data 2025/6/4
- * @Version 1.0
- * @Description XXX
- */
-@Data
-@ApiModel("微信小程序术前问卷返回结果")
-@ToString
-public class BizPreSurgeryQuestionVO {
-    @ApiModelProperty("上一次填写问卷时间")
-    private Date lastQuestionTime;
-
-    @ApiModelProperty("问题列表")
-    private List<BizWxDeptQuestionVO> dataList;
-}

+ 68 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizWxAppletClinicDetailVO.java

@@ -0,0 +1,68 @@
+package cn.tr.module.smart.wx.controller.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 手术信息传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Data
+@ApiModel("微信小程序所展示的手术信息")
+@ToString
+public class BizWxAppletClinicDetailVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 0)
+    private String id;
+
+    @ApiModelProperty(value = "头像图片链接",position = 1)
+    private String imageUrl;
+
+    @ApiModelProperty(value = "患者姓名", position = 2)
+    private String patientName;
+
+    @ApiModelProperty(value = "患者性别", position = 4)
+    private String patientGender;
+
+    @ApiModelProperty(value = "住院号", position = 5)
+    private String patientCode;
+
+    @ApiModelProperty(value = "手术开始时间", position = 6)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
+    private Date clinicStartTime;
+
+    @ApiModelProperty(value = "科室id",position = 7)
+    private String deptId;
+
+    @ApiModelProperty(value = "病人年龄",position = 8)
+    private Integer patientAge;
+
+    @ApiModelProperty(value = "科室名称",position = 9)
+    private String deptName;
+
+    @ApiModelProperty(value = "手术名称", position = 10)
+    private String clinicName;
+
+    @ApiModelProperty(value = "手术状态", position = 11)
+    private String clinicStatus;
+
+    @ApiModelProperty(value = "是否为看护中的临床,0、否 1、是", position = 12)
+    private Boolean care;
+
+    @ApiModelProperty(value = "最后更新临床信息的人员类型",position = 13)
+    private String lastModifyUserType;
+
+    @ApiModelProperty("术前问卷回答id")
+    private String questionAnswerId;
+
+    @ApiModelProperty("上次填写术前问卷时间")
+    private Date lastModifyQuestionTime;
+}

+ 2 - 3
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizWxDeptQuestionVO.java

@@ -40,7 +40,6 @@ public class BizWxDeptQuestionVO {
     @ApiModelProperty(value = "排序", position = 7)
     private Integer sort;
 
-//
-//    @ApiModelProperty(value = "回答内容",position = 8)
-//    private List<String> answer;
+    @ApiModelProperty(value = "回答内容",position = 8)
+    private List<String> answer;
 }

+ 23 - 2
tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicRoomMapper.xml

@@ -20,6 +20,24 @@
         <result property="care" column="care"/>
     </resultMap>
 
+    <resultMap id="stdWxAppletDetailResult" type="cn.tr.module.smart.wx.controller.vo.BizWxAppletClinicDetailVO">
+        <result property="id" column="id"/>
+        <result property="patientName" column="patient_name"/>
+        <result property="patientAge" column="patient_age"/>
+        <result property="patientGender" column="patient_gender"/>
+        <result property="patientCode" column="patient_code"/>
+        <result property="clinicStartTime" column="clinic_start_time"/>
+        <result property="deptId" column="dept_id"/>
+        <result property="deptName" column="dept_name"/>
+        <result property="imageUrl" column="image_url"/>
+        <result property="clinicName" column="clinic_name"/>
+        <result property="clinicStatus" column="clinic_status"/>
+        <result property="lastModifyUserType" column="last_modify_user_type"/>
+        <result property="care" column="care"/>
+        <result property="lastModifyQuestionTime" column="last_modify_question_time"/>
+        <result property="questionAnswerId" column="question_answer_id"/>
+    </resultMap>
+
     <resultMap id="RoomAndPatient" type="cn.tr.module.smart.app.controller.vo.WxDoctorClinicRoomVO">
         <result property="clinicRoomId" column="id"/>
         <result property="clinicName" column="clinic_name"/>
@@ -107,7 +125,7 @@
     </select>
 
 
-    <select id="stdSelectWxAppletById" resultMap="stdWxAppletResult">
+    <select id="stdSelectWxAppletById" resultMap="stdWxAppletDetailResult">
         select
         bcr.id as id,
         bcr.patient_name as patient_name,
@@ -119,10 +137,13 @@
         bcr.dept_name as dept_name,
         bcr.clinic_name as clinic_name,
         bcr.clinic_status as clinic_status,
-        bcrwu.care as care
+        bcrwu.care as care,
+        bqa.id as question_answer_id,
+        bqa.answer_time as last_modify_question_time
         from
         biz_clinic_room as bcr
         join biz_clinic_room_wx_user as bcrwu on bcrwu.clinic_room_id=bcr.id
+        left join biz_question_answer as bqa on bqa.clinic_id=bcr.id
         where bcr.id =#{id}
     </select>
 </mapper>

+ 4 - 2
tr-test/src/main/resources/application.yml

@@ -8,7 +8,7 @@ server:
 mybatis-plus:
   mapper-locations: classpath*:com/gitee/sunchenbin/mybatis/actable/mapping/*/*.xml,classpath*:mapper/*/*.xml
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
   global-config:
     db-config:
       logic-delete-value: 1
@@ -119,4 +119,6 @@ sa-token:
     access-token-timeout: ${sa-token.timeout}
     #    1天
     refresh-token-timeout:  -1
-  timeout:  -1
+  timeout:  -1
+logging:
+  config: classpath:log4j2.xml

+ 47 - 0
tr-test/src/main/resources/log4j2.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN" shutdownHook="disable">
+    <Properties>
+        <Property name="LOG_DIR">./logs</Property>
+        <Property name="FILE_NAME">hdis</Property>
+        <Property name="FILE_PATTERN">${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz</Property>
+    </Properties>
+
+    <Appenders>
+        <Console name="Console" target="SYSTEM_OUT">
+            <PatternLayout
+                    pattern="%style{%d{yyyy-MM-dd hh:mm:ss}}{cyan} %highlight{%-5level}{ERROR=red, WARN=yellow, INFO=green, DEBUG=blue} %style{[%t]}{magenta} %logger{36} - %msg%n%throwable"
+                    disableAnsi="false" />
+        </Console>
+
+        <RollingFile name="RollingFile"
+                     fileName="${LOG_DIR}/${FILE_NAME}.log"
+                     filePattern="${LOG_DIR}/$${date:yyyy-MM}/${FILE_PATTERN}">
+            <PatternLayout>
+                <Pattern>%d{ISO8601} %-5level [%t] %logger{36} - %msg%n%xThrowable{full}</Pattern>
+            </PatternLayout>
+
+            <Policies>
+                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
+                <SizeBasedTriggeringPolicy size="100 MB"/>
+            </Policies>
+
+            <DefaultRolloverStrategy max="100">
+                <Delete basePath="${LOG_DIR}" maxDepth="2" followLinks="true">
+                    <IfFileName glob="**/*.log.gz" />
+                    <IfLastModified age="7d" />
+                </Delete>
+            </DefaultRolloverStrategy>
+        </RollingFile>
+    </Appenders>
+
+    <Loggers>
+        <Logger name="org.springframework" level="INFO" additivity="false">
+            <AppenderRef ref="Console"/>
+        </Logger>
+
+        <Root level="INFO">
+            <AppenderRef ref="Console"/>
+            <AppenderRef ref="RollingFile"/>
+        </Root>
+    </Loggers>
+</Configuration>