瀏覽代碼

add
待办事项

lifang 2 月之前
父節點
當前提交
ee1c3cbc47
共有 13 個文件被更改,包括 152 次插入35 次删除
  1. 3 3
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/vo/BizReasearchQueueClinicVO.java
  2. 4 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/vo/BizReasearchQueuePushVO.java
  3. 6 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRoomUndoRepository.java
  4. 0 2
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizReasearchQueueClinicRepository.java
  5. 9 3
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicRoomUndoService.java
  6. 12 6
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicRoomUndoServiceImpl.java
  7. 1 1
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizPainAssessmentServiceImpl.java
  8. 16 9
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionAnswerServiceImpl.java
  9. 17 1
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizReasearchQueueClinicServiceImpl.java
  10. 10 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/BizWXAppletUndoController.java
  11. 39 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/vo/BizClinicRoomUndoVO.java
  12. 30 0
      tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicRoomUndoMapper.xml
  13. 5 10
      tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizReasearchQueueClinicMapper.xml

+ 3 - 3
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/vo/BizReasearchQueueClinicVO.java

@@ -52,15 +52,15 @@ public class BizReasearchQueueClinicVO implements Serializable {
     private String queueId;
 
     @ApiModelProperty(value = "上一次推送的时间间隔", position = 4)
-    private Integer lastPushInterval;
+    private Long lastPushInterval;
 
     @ApiModelProperty(value = "推送次数", position = 6)
-    private Integer pushCount;
+    private Long pushCount;
 
     @ApiModelProperty(value = "上一次的推送时间", position = 7)
     private Date lastPushTime;
 
     @ApiModelProperty(value = "回答次数", position = 8)
-    private Integer answerCount;
+    private Long answerCount;
 
 }

+ 4 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/controller/vo/BizReasearchQueuePushVO.java

@@ -37,4 +37,8 @@ public class BizReasearchQueuePushVO implements Serializable {
 
     /** 手术结束时间 */
     private Date clinicEndTime;
+
+    private String queueId;
+
+    private String createBy;
 }

+ 6 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRoomUndoRepository.java

@@ -1,9 +1,14 @@
 package cn.tr.module.smart.common.repository;
 
+import cn.tr.module.smart.wx.controller.vo.BizClinicRoomUndoVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 import cn.tr.module.smart.common.po.BizClinicRoomUndoPO;
+
+import java.util.List;
+
 /**
  * 待办事项Mapper接口
  *
@@ -13,4 +18,5 @@ import cn.tr.module.smart.common.po.BizClinicRoomUndoPO;
 @Repository
 @Mapper
 public interface BizClinicRoomUndoRepository extends BaseMapper<BizClinicRoomUndoPO> {
+    List<BizClinicRoomUndoVO> stdSelectBizClinicRoomUndoList(@Param("clinicId") String clinicId);
 }

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

@@ -2,9 +2,7 @@ package cn.tr.module.smart.common.repository;
 
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueuePushVO;
-import cn.tr.module.smart.common.controller.vo.BizReasearchQueueQuestionAnswerVO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQueryDTO;
-import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQuestionAnswerRecordQueryDTO;
 import cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;

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

@@ -1,6 +1,7 @@
 package cn.tr.module.smart.common.service;
 
 import cn.tr.module.smart.common.dto.BizClinicRoomUndoDTO;
+import cn.tr.module.smart.wx.controller.vo.BizClinicRoomUndoVO;
 
 import java.util.*;
 
@@ -17,6 +18,7 @@ public interface IBizClinicRoomUndoService{
      * @author   lf
      * @date      2025/07/28 11:27
      */
+    @Deprecated
     List<BizClinicRoomUndoDTO> selectBizClinicRoomUndoList(String id);
 
 
@@ -24,9 +26,13 @@ public interface IBizClinicRoomUndoService{
 
     /**
      * 完成待办事项
-     * @param type {@link  cn.tr.module.smart.common.enums.ClinicUndoType}
-     * @param clinicId  手术id
+     *
+     * @param type     {@link  cn.tr.module.smart.common.enums.ClinicUndoType}
+     * @param clinicId 手术id
+     * @param queueId
      * @return
      */
-    Boolean doneBizClinicRoom(String type,String clinicId);
+    Boolean doneBizClinicRoom(String type, String clinicId, String queueId);
+
+    List<BizClinicRoomUndoVO> stdSelectBizClinicRoomUndoList(String clinicId);
 }

+ 12 - 6
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicRoomUndoServiceImpl.java

@@ -1,5 +1,7 @@
 package cn.tr.module.smart.common.service.impl;
 
+import cn.hutool.core.util.StrUtil;
+import cn.tr.module.smart.wx.controller.vo.BizClinicRoomUndoVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -25,10 +27,10 @@ public class BizClinicRoomUndoServiceImpl implements IBizClinicRoomUndoService {
 
 
     /**
-    * 根据条件查询待办事项
-    * @author   lf
-    * @date      2025/07/28 11:27
-    */
+     * 根据条件查询待办事项
+     * @author   lf
+     * @date      2025/07/28 11:27
+     */
     @Override
     public List<BizClinicRoomUndoDTO> selectBizClinicRoomUndoList(String clinicId){
         return BizClinicRoomUndoMapper.INSTANCE.convertDtoList(
@@ -50,11 +52,15 @@ public class BizClinicRoomUndoServiceImpl implements IBizClinicRoomUndoService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Boolean doneBizClinicRoom(String type, String clinicId) {
+    public Boolean doneBizClinicRoom(String type, String clinicId, String queueId) {
         return  baseRepository.delete(new LambdaQueryWrapper<BizClinicRoomUndoPO>()
                 .eq(BizClinicRoomUndoPO::getClinicRoomId,clinicId)
+                .eq(StrUtil.isNotBlank(queueId),BizClinicRoomUndoPO::getLinkId,queueId)
                 .eq(BizClinicRoomUndoPO::getType,type))!=0;
     }
 
-    ;
+    @Override
+    public List<BizClinicRoomUndoVO> stdSelectBizClinicRoomUndoList(String clinicId) {
+        return baseRepository.stdSelectBizClinicRoomUndoList(clinicId);
+    }
 }

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

@@ -119,7 +119,7 @@ public class BizPainAssessmentServiceImpl implements IBizPainAssessmentService {
             clinicRoom.setLastPainAssessmentTime(new Date());
             clinicRoomRepository.updateById(clinicRoom);
             //消除镇痛提醒
-            clinicRoomUndoService.doneBizClinicRoom(ClinicUndoType.assessment,source.getClinicId());
+            clinicRoomUndoService.doneBizClinicRoom(ClinicUndoType.assessment,source.getClinicId(),null);
             return Boolean.TRUE;
         }
         return Boolean.FALSE;

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

@@ -13,14 +13,8 @@ import cn.tr.module.smart.common.enums.ClinicPhaseEnums;
 import cn.tr.module.smart.common.enums.ClinicUndoType;
 import cn.tr.module.smart.common.mapper.BizQuestionAnswerMapper;
 import cn.tr.module.smart.common.mapper.BizQuestionMapper;
-import cn.tr.module.smart.common.po.BizClinicRoomPO;
-import cn.tr.module.smart.common.po.BizQuestionAnswerPO;
-import cn.tr.module.smart.common.po.BizQuestionGroupPO;
-import cn.tr.module.smart.common.po.BizQuestionPO;
-import cn.tr.module.smart.common.repository.BizClinicRoomRepository;
-import cn.tr.module.smart.common.repository.BizQuestionAnswerRepository;
-import cn.tr.module.smart.common.repository.BizQuestionGroupRepository;
-import cn.tr.module.smart.common.repository.BizQuestionRepository;
+import cn.tr.module.smart.common.po.*;
+import cn.tr.module.smart.common.repository.*;
 import cn.tr.module.smart.common.service.*;
 import cn.tr.module.smart.web.dto.BizWebQuestionAnswerByClinicIdDTO;
 import cn.tr.module.smart.web.dto.BizWebQuestionAnswerDTO;
@@ -31,6 +25,7 @@ import cn.tr.module.smart.wx.controller.vo.BizWebQuestionGroupVO;
 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 com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
@@ -76,6 +71,9 @@ public class BizQuestionAnswerServiceImpl implements IBizQuestionAnswerService {
     @Autowired
     @Lazy
     private IBizClinicRoomService clinicRoomService;
+
+    @Autowired
+    private BizReasearchQueueClinicRepository queueClinicRepository;
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean stdWxAppletCommitPreSurgeryQuestionnaireAnswer(BizWxAppletCommitSurgeryQuestionDTO source) {
@@ -188,7 +186,16 @@ public class BizQuestionAnswerServiceImpl implements IBizQuestionAnswerService {
         clinicRoom.setAnswerCount(++answerCount);
         clinicRoomRepository.updateById(clinicRoom);
         //消除术后问卷
-        clinicRoomUndoService.doneBizClinicRoom(ClinicUndoType.questionGroup,clinicRoom.getId());
+        clinicRoomUndoService.doneBizClinicRoom(ClinicUndoType.questionGroup,clinicRoom.getId(),source.getQueueId());
+
+        //研究队列应答+1
+        if (StrUtil.isNotEmpty(source.getQueueId())) {
+            queueClinicRepository.update(null,new LambdaUpdateWrapper<BizReasearchQueueClinicPO>()
+                    .eq(BizReasearchQueueClinicPO::getQueueId,source.getQueueId())
+                    .eq(BizReasearchQueueClinicPO::getClinicRoomId,clinicRoom.getId())
+                    .setSql("answer_count = answer_count+1")
+            );
+        }
     }
 
     @Override

+ 17 - 1
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizReasearchQueueClinicServiceImpl.java

@@ -8,14 +8,17 @@ import cn.tr.core.exception.TRExcCode;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueClinicVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueuePushVO;
 import cn.tr.module.smart.common.controller.vo.BizReasearchQueueQuestionAnswerVO;
+import cn.tr.module.smart.common.dto.BizClinicRoomUndoDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueAddClinicDTO;
 import cn.tr.module.smart.common.dto.BizReasearchQueueClinicQuestionAnswerRecordQueryDTO;
+import cn.tr.module.smart.common.enums.ClinicUndoType;
 import cn.tr.module.smart.common.enums.MpPublishTaskTypeEnums;
 import cn.tr.module.smart.common.enums.RabbitMQConstant;
 import cn.tr.module.smart.common.enums.ReasearchQueueStatusEnums;
 import cn.tr.module.smart.common.mapper.BizQuestionAnswerMapper;
 import cn.tr.module.smart.common.po.*;
 import cn.tr.module.smart.common.repository.*;
+import cn.tr.module.smart.common.service.IBizClinicRoomUndoService;
 import cn.tr.module.smart.wx.config.WxTemplateSendHelper;
 import cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -23,6 +26,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import cn.hutool.core.collection.CollectionUtil;
 import org.springframework.transaction.annotation.Transactional;
@@ -57,6 +61,9 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
     private BizMpPublishTaskRepository bizMpPublishTaskRepository;
     @Autowired
     private BizClinicRoomUndoRepository clinicRoomUndoRepository;
+    @Autowired
+    @Lazy
+    private IBizClinicRoomUndoService clinicRoomUndoService;
     /**
      * 根据条件查询队列-临床手术关联表
      * @param    query 查询参数
@@ -144,7 +151,7 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
     @Override
     public List<BizReasearchQueueQuestionAnswerVO> stdSelectQuestionAnswerList(BizReasearchQueueClinicQuestionAnswerRecordQueryDTO query){
         return BizQuestionAnswerMapper.INSTANCE.convertCommonVOList(questionAnswerRepository.selectList(new LambdaQueryWrapper<BizQuestionAnswerPO>()
-                .eq(BizQuestionAnswerPO::getClinicId, query.getClinicId())
+                .eq(StrUtil.isNotBlank(query.getClinicId()),BizQuestionAnswerPO::getClinicId, query.getClinicId())
                 .eq(BizQuestionAnswerPO::getReasearchQueueId, query.getQueueId())
                 .orderByDesc(BizQuestionAnswerPO::getAnswerTime)));
     }
@@ -242,6 +249,15 @@ public class BizReasearchQueueClinicServiceImpl extends ServiceImpl<BizReasearch
                 .set(BizReasearchQueueClinicPO::getLastPushInterval, nextPushInterval)
                 .setSql("push_count = push_count + 1")
                 .set(BizReasearchQueueClinicPO::getLastPushTime, new Date()));
+        //设置待办事项
+        clinicRoomUndoService.insertBizClinicRoomUndo( BizClinicRoomUndoDTO.builder()
+                .clinicRoomId(source.getClinicRoomId())
+                .publishUserId(source.getCreateBy())
+                .type(ClinicUndoType.questionGroup)
+                .linkId(source.getQueueId())
+                .publishTime(new Date())
+                .createTime(new Date())
+                .build());
         try {
             BizMpPublishInfoDTO publishInfo = baseMapper.selectPushInfo(source.getId());
             wxTemplateSendHelper.sendMsg(publishInfo, MpPublishTaskTypeEnums.AFTER_QUESTION.getType());

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

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.tr.module.smart.common.dto.BizClinicRoomUndoDTO;
 import cn.tr.module.smart.common.enums.ClinicUndoType;
+import cn.tr.module.smart.wx.controller.vo.BizClinicRoomUndoVO;
 import cn.tr.module.smart.wx.controller.vo.BizClinicUndoVO;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import cn.tr.core.pojo.CommonResult;
@@ -34,6 +35,7 @@ public class BizWXAppletUndoController extends BaseController{
     @ApiOperationSupport(author = "lf",order = 1)
     @ApiOperation(value="查询手术的待办事项",notes = "权限: 无")
     @GetMapping("/query/{clinicId}")
+    @Deprecated
     public CommonResult<BizClinicUndoVO> selectList(@PathVariable("clinicId")String clinicId) {
         BizClinicUndoVO result = new BizClinicUndoVO();
         List<BizClinicRoomUndoDTO> undoList = bizClinicRoomUndoService.selectBizClinicRoomUndoList(clinicId);
@@ -50,4 +52,12 @@ public class BizWXAppletUndoController extends BaseController{
         }
         return CommonResult.success(result);
     }
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="查询手术的待办术后问卷",notes = "权限: 无")
+    @GetMapping("/queryList/{clinicId}")
+    @Deprecated
+    public CommonResult<List<BizClinicRoomUndoVO>> selectUnDoList(@PathVariable("clinicId")String clinicId) {
+        return CommonResult.success(bizClinicRoomUndoService.stdSelectBizClinicRoomUndoList(clinicId));
+    }
 }

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

@@ -0,0 +1,39 @@
+package cn.tr.module.smart.wx.controller.vo;
+
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 待办事项传输对象
+ *
+ * @author lf
+ * @date  2025/07/28 11:27
+ **/
+@Data
+@ApiModel("待办事项传输对象")
+public class BizClinicRoomUndoVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    @ApiModelProperty("问卷名称")
+    private String questionGroupName;
+
+    @ApiModelProperty("手术id")
+    private String clinicRoomId;
+
+    @ApiModelProperty(value = "问卷id", position = 5)
+    private String questionGroupId;
+
+    @ApiModelProperty("研究队列id")
+    private String queueId;
+
+    @ApiModelProperty(value = "发起时间", position = 6)
+    private Date publishTime;
+}

+ 30 - 0
tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizClinicRoomUndoMapper.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.tr.module.smart.common.repository.BizClinicRoomUndoRepository">
+
+    <resultMap id="stdResult" type="cn.tr.module.smart.wx.controller.vo.BizClinicRoomUndoVO">
+        <id property="id" column="id"/>
+        <result property="questionGroupName" column="question_group_name"/>
+        <result property="clinicRoomId" column="clinic_room_id"/>
+        <result property="questionGroupId" column="question_group_id"/>
+        <result property="queueId" column="queue_id"/>
+        <result property="publishTime" column="publish_time"/>
+    </resultMap>
+
+    <select id="stdSelectBizClinicRoomUndoList" resultMap="stdResult">
+        select
+        bcru.id,
+        bqg.name as question_group_name,
+        bcru.clinic_room_id,
+        bqg.id as question_group_id,
+        brq.id as queue_id,
+        bcru.publish_time
+        from
+        biz_clinic_room_undo as bcru
+        join biz_reasearch_queue as brq on bcru.link_id = brq.id
+        join biz_question_group bqg on bqg.id = brq.bind_question_id
+        where bcru.clinic_room_id = #{clinicId}
+    </select>
+</mapper>

+ 5 - 10
tr-modules/tr-module-smartFollowUp/src/main/resources/mapper/smart/BizReasearchQueueClinicMapper.xml

@@ -27,15 +27,6 @@
         <result property="answerTime" column="answer_time" />
     </resultMap>
 
-    <resultMap id="stdPushResult" type="cn.tr.module.smart.common.controller.vo.BizReasearchQueuePushVO">
-        <result property="id" column="id" />
-        <result property="clinicRoomId" column="clinic_room_id" />
-        <result property="status" column="status" />
-        <result property="timePointsFormat" column="time_points_format" typeHandler="cn.tr.module.smart.common.config.handler.JsonbLongListTypeHandler"/>
-        <result property="lastPushInterval" column="last_push_interval"/>
-        <result property="clinicEndTime" column="clinic_end_time"/>
-    </resultMap>
-
     <resultMap id="pushInfo" type="cn.tr.module.smart.wx.dto.BizMpPublishInfoDTO">
         <result property="openId" column="open_id" />
         <result property="clinicId" column="clinic_id" />
@@ -56,6 +47,8 @@
         <result property="timePointsFormat" column="time_points_format" typeHandler="cn.tr.module.smart.common.config.handler.JsonbLongListTypeHandler"/>
         <result property="lastPushInterval" column="last_push_interval"/>
         <result property="clinicEndTime" column="clinic_end_time"/>
+        <result property="queueId" column="queue_id" />
+        <result property="createBy" column="create_by" />
     </resultMap>
 
     <select id="stdSelectBizReasearchQueueClinicList" resultMap="stdResult">
@@ -114,7 +107,9 @@
         brqc.push_count,
         brqc.last_push_time,
         brqc.last_push_interval,
-        bcr.clinic_end_time
+        bcr.clinic_end_time,
+        brqc.create_by,
+        brqc.queue_id
         FROM
         biz_reasearch_queue_clinic brqc
         JOIN biz_reasearch_queue brq ON brq.id = brqc.queue_id