Jelajahi Sumber

add
基础表单

18339543638 7 bulan lalu
induk
melakukan
a6fb2ec7c8
91 mengubah file dengan 3953 tambahan dan 10 penghapusan
  1. 3 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/packageInfo.java
  2. 64 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizClinicDTO.java
  3. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizClinicQueryDTO.java
  4. 40 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizHospitalDTO.java
  5. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizHospitalQueryDTO.java
  6. 58 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocDTO.java
  7. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocQueryDTO.java
  8. 67 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocSquareDTO.java
  9. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocSquareQueryDTO.java
  10. 46 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionDTO.java
  11. 40 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupDTO.java
  12. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupQueryDTO.java
  13. 46 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupSquareDTO.java
  14. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupSquareQueryDTO.java
  15. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionQueryDTO.java
  16. 46 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionSquareDTO.java
  17. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionSquareQueryDTO.java
  18. 61 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserDTO.java
  19. 31 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserHospitalDTO.java
  20. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserHospitalQueryDTO.java
  21. 18 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserQueryDTO.java
  22. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizHospitalMapper.java
  23. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizMissionDocMapper.java
  24. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizMissionDocSquareMapper.java
  25. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionGroupMapper.java
  26. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionGroupSquareMapper.java
  27. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionMapper.java
  28. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizQuestionSquareMapper.java
  29. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizWxUserHospitalMapper.java
  30. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/mapper/BizWxUserMapper.java
  31. 3 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/packageInfo.java
  32. 64 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizClinicPO.java
  33. 41 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizHospitalPO.java
  34. 64 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizMissionDocPO.java
  35. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizMissionDocSquarePO.java
  36. 36 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizQuestionGroupPO.java
  37. 37 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizQuestionGroupSquarePO.java
  38. 53 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizQuestionPO.java
  39. 53 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizQuestionSquarePO.java
  40. 36 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizWxUserHospitalPO.java
  41. 72 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/po/BizWxUserPO.java
  42. 2 2
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/register/WxSendTemplateMsgRegister.java
  43. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizClinicRepository.java
  44. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizHospitalRepository.java
  45. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizMissionDocRepository.java
  46. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizMissionDocSquareRepository.java
  47. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizQuestionGroupRepository.java
  48. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizQuestionGroupSquareRepository.java
  49. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizQuestionRepository.java
  50. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizQuestionSquareRepository.java
  51. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizWxUserHospitalRepository.java
  52. 16 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/repository/BizWxUserRepository.java
  53. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/BizQuestionGroupService.java
  54. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicService.java
  55. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizHospitalService.java
  56. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizMissionDocService.java
  57. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizMissionDocSquareService.java
  58. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionGroupService.java
  59. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionGroupSquareService.java
  60. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionService.java
  61. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionSquareService.java
  62. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizWxUserHospitalService.java
  63. 54 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizWxUserService.java
  64. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizClinicServiceImpl.java
  65. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizHospitalServiceImpl.java
  66. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizMissionDocServiceImpl.java
  67. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizMissionDocSquareServiceImpl.java
  68. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionGroupServiceImpl.java
  69. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionGroupSquareServiceImpl.java
  70. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionServiceImpl.java
  71. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizQuestionSquareServiceImpl.java
  72. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizWxUserHospitalServiceImpl.java
  73. 92 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/impl/BizWxUserServiceImpl.java
  74. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizClinicController.java
  75. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizHospitalController.java
  76. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizMissionDocController.java
  77. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizMissionDocSquareController.java
  78. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizQuestionController.java
  79. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizQuestionGroupController.java
  80. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizQuestionGroupSquareController.java
  81. 83 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizQuestionSquareController.java
  82. 84 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/controller/BizWxUserController.java
  83. 1 1
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/dto/WxAppletEncodeInfoDTO.java
  84. 1 1
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/dto/WxTemplateDTO.java
  85. 3 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/packageInfo.java
  86. 1 2
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/WxAppletUserController.java
  87. 28 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/mapper/BizClinicMapper.java
  88. 3 0
      tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/packageInfo.java
  89. 2 0
      tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/LoginTypeConstant.java
  90. 13 3
      tr-test/src/main/resources/application-doc.yml
  91. 1 1
      tr-test/src/main/resources/application.yml

+ 3 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/app/packageInfo.java

@@ -0,0 +1,3 @@
+package cn.tr.module.smart.app;
+
+// 智慧随访的公共服务类

+ 64 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizClinicDTO.java

@@ -0,0 +1,64 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+import java.util.*;
+/**
+ * 手术信息传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Data
+@ApiModel("手术信息传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizClinicDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "年龄", position = 2)
+    private Integer patientAge;
+
+    @ApiModelProperty(value = "科室", position = 3)
+    private String depId;
+
+    @ApiModelProperty(value = "手术名称", position = 4)
+    private String clinicName;
+
+    @ApiModelProperty(value = "手术开始时间", position = 5)
+    private Date clinicStartTime;
+
+    @ApiModelProperty(value = "手术结束时间", position = 6)
+    private Date clinicEndTime;
+
+    @ApiModelProperty(value = "手术状态", position = 7)
+    private String clinicStatus;
+
+    @ApiModelProperty(value = "最后一次随访时间", position = 8)
+    private String lastFollowUpItme;
+
+    @ApiModelProperty(value = "随访次数", position = 9)
+    private Integer followUpCount;
+
+    @ApiModelProperty(value = "是否已随访", position = 10)
+    private Integer followUp;
+
+    @ApiModelProperty(value = "住院号", position = 15)
+    private String hospitalNumber;
+
+    @ApiModelProperty(value = "患者姓名", position = 16)
+    private String patientName;
+
+    @ApiModelProperty(value = "是否为看护中的临床,0、否 1、是", position = 18)
+    private Integer care;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizClinicQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 手术信息查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Data
+@ApiModel("手术信息查询参数")
+@ToString
+public class BizClinicQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 40 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizHospitalDTO.java

@@ -0,0 +1,40 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 医院信息传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 16:33
+ **/
+@Data
+@ApiModel("医院信息传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizHospitalDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "name", position = 2)
+    private String name;
+
+    @ApiModelProperty(value = "镇痛泵的系统编码", position = 3)
+    private String pumpHospitalCode;
+
+    @ApiModelProperty(value = "是否启用", position = 4)
+    private Integer enable;
+
+    @ApiModelProperty(value = "管理员id", position = 9)
+    private String leaderId;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizHospitalQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 医院信息查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 16:33
+ **/
+@Data
+@ApiModel("医院信息查询参数")
+@ToString
+public class BizHospitalQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 58 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocDTO.java

@@ -0,0 +1,58 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 宣教文档传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 16:24
+ **/
+@Data
+@ApiModel("宣教文档传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizMissionDocDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "宣教类型", position = 2)
+    private String type;
+
+    @ApiModelProperty(value = "宣教名称", position = 3)
+    private String title;
+
+    @ApiModelProperty(value = "宣教来源", position = 4)
+    private String source;
+
+    @ApiModelProperty(value = "封面图", position = 5)
+    private String image;
+
+    @ApiModelProperty(value = "宣教内容", position = 6)
+    private String content;
+
+    @ApiModelProperty(value = "宣教阶段", position = 7)
+    private String phase;
+
+    @ApiModelProperty(value = "间隔时间段(最小值),如术前2-6天,即2", position = 8)
+    private String intervalMinDay;
+
+    @ApiModelProperty(value = "间隔时间段(最大值),如术后2-6天,即6", position = 9)
+    private String intervalMaxDay;
+
+    @ApiModelProperty(value = "版本号", position = 15)
+    private Integer version;
+
+    @ApiModelProperty(value = "md5", position = 16)
+    private String md5;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 宣教文档查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 16:24
+ **/
+@Data
+@ApiModel("宣教文档查询参数")
+@ToString
+public class BizMissionDocQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 67 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocSquareDTO.java

@@ -0,0 +1,67 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 宣教文档广场传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:24
+ **/
+@Data
+@ApiModel("宣教文档广场传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizMissionDocSquareDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "宣教类型", position = 2)
+    private String type;
+
+    @ApiModelProperty(value = "宣教名称", position = 3)
+    private String title;
+
+    @ApiModelProperty(value = "宣教来源", position = 4)
+    private String source;
+
+    @ApiModelProperty(value = "封面图", position = 5)
+    private String image;
+
+    @ApiModelProperty(value = "宣教内容", position = 6)
+    private String content;
+
+    @ApiModelProperty(value = "宣教阶段", position = 7)
+    private String phase;
+
+    @ApiModelProperty(value = "间隔时间段(最小值),如术前2-6天,即2", position = 8)
+    private String intervalMinDay;
+
+    @ApiModelProperty(value = "间隔时间段(最大值),如术后2-6天,即6", position = 9)
+    private String intervalMaxDay;
+
+    @ApiModelProperty(value = "引用次数", position = 11)
+    private Integer citationCount;
+
+    @ApiModelProperty(value = "文档归属人", position = 12)
+    private String owner;
+
+    @ApiModelProperty(value = "md5", position = 13)
+    private String md5;
+
+    @ApiModelProperty(value = "version", position = 14)
+    private Integer version;
+
+    @ApiModelProperty(value = "文档由医院上传,此处为医院上传的文档id", position = 15)
+    private String hospitalDocId;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizMissionDocSquareQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 宣教文档广场查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 14:24
+ **/
+@Data
+@ApiModel("宣教文档广场查询参数")
+@ToString
+public class BizMissionDocSquareQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 46 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionDTO.java

@@ -0,0 +1,46 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 问卷调查问题字段传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 17:03
+ **/
+@Data
+@ApiModel("问卷调查问题字段传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "问题组id", position = 2)
+    private String groupId;
+
+    @ApiModelProperty(value = "字段唯一标识", position = 3)
+    private String fieldKey;
+
+    @ApiModelProperty(value = "字段名称", position = 4)
+    private String fieldName;
+
+    @ApiModelProperty(value = "字段类型,字典(input_box_type)", position = 5)
+    private String inputBoxType;
+
+    @ApiModelProperty(value = "options", position = 6)
+    private String options;
+
+    @ApiModelProperty(value = "排序", position = 7)
+    private Integer sort;
+
+}

+ 40 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupDTO.java

@@ -0,0 +1,40 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 医院的问卷组传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+@Data
+@ApiModel("医院的问卷组传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionGroupDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "问卷名称", position = 2)
+    private String name;
+
+    @ApiModelProperty(value = "问卷类型", position = 3)
+    private String type;
+
+    @ApiModelProperty(value = "医院的问卷版本号", position = 8)
+    private Integer verison;
+
+    @ApiModelProperty(value = "md5", position = 9)
+    private String md5;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 医院的问卷组查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+@Data
+@ApiModel("医院的问卷组查询参数")
+@ToString
+public class BizQuestionGroupQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 46 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupSquareDTO.java

@@ -0,0 +1,46 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 问卷组广场传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 16:36
+ **/
+@Data
+@ApiModel("问卷组广场传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionGroupSquareDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "问卷名称", position = 2)
+    private String name;
+
+    @ApiModelProperty(value = "问卷类型", position = 3)
+    private String type;
+
+    @ApiModelProperty(value = "医院的问卷版本号", position = 8)
+    private Integer verison;
+
+    @ApiModelProperty(value = "md5", position = 9)
+    private String md5;
+
+    @ApiModelProperty(value = "问卷由医院上传,此处为医院所配置的问卷id", position = 10)
+    private String hospitalGroupId;
+
+    @ApiModelProperty(value = "引用次数", position = 11)
+    private Integer citationCount;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionGroupSquareQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 问卷组广场查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 16:36
+ **/
+@Data
+@ApiModel("问卷组广场查询参数")
+@ToString
+public class BizQuestionGroupSquareQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 问卷调查问题字段查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 17:03
+ **/
+@Data
+@ApiModel("问卷调查问题字段查询参数")
+@ToString
+public class BizQuestionQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 46 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionSquareDTO.java

@@ -0,0 +1,46 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 问卷调查问题字段传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 16:50
+ **/
+@Data
+@ApiModel("问卷调查问题字段传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionSquareDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "问题组id", position = 1)
+    private String groupId;
+
+    @ApiModelProperty(value = "id", position = 2)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "字段唯一标识", position = 3)
+    private String fieldKey;
+
+    @ApiModelProperty(value = "字段名称", position = 4)
+    private String fieldName;
+
+    @ApiModelProperty(value = "字段类型,字典(input_box_type)", position = 5)
+    private String inputBoxType;
+
+    @ApiModelProperty(value = "options", position = 6)
+    private String options;
+
+    @ApiModelProperty(value = "排序", position = 7)
+    private Integer sort;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizQuestionSquareQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 问卷调查问题字段查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 16:50
+ **/
+@Data
+@ApiModel("问卷调查问题字段查询参数")
+@ToString
+public class BizQuestionSquareQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 61 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserDTO.java

@@ -0,0 +1,61 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+import java.util.*;
+/**
+ * 微信用户传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Data
+@ApiModel("微信用户传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizWxUserDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "微信小程序的union_id", position = 2)
+    private String unionId;
+
+    @ApiModelProperty(value = "电话号码", position = 3)
+    private String phone;
+
+    @ApiModelProperty(value = "昵称", position = 4)
+    private String nickname;
+
+    @ApiModelProperty(value = "头像链接", position = 5)
+    private String avatar;
+
+    @ApiModelProperty(value = "注册时间", position = 6)
+    private Date registerTime;
+
+    @ApiModelProperty(value = "最后登录时间", position = 7)
+    private Date lastLoginTime;
+
+    @ApiModelProperty(value = "最后登录ip", position = 8)
+    private String lastLoginIp;
+
+    @ApiModelProperty(value = "最后登录地址", position = 9)
+    private String lastLoginAddress;
+
+    @ApiModelProperty(value = "公众号的open_id", position = 10)
+    private String openId;
+
+    @ApiModelProperty(value = "小程序的app_id", position = 11)
+    private String appId;
+
+    @ApiModelProperty(value = "最后登陆的医院id", position = 12)
+    private String lastLoginTenantId;
+
+}

+ 31 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserHospitalDTO.java

@@ -0,0 +1,31 @@
+package cn.tr.module.smart.common.dto;
+
+import cn.tr.plugin.mybatis.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Update;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.constraints.*;
+
+/**
+ * 医院和用户的绑定关系传输对象
+ *
+ * @author lf
+ * @date  2025/05/23 14:21
+ **/
+@Data
+@ApiModel("医院和用户的绑定关系传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizWxUserHospitalDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+    @ApiModelProperty(value = "id", position = 1)
+     @NotBlank  (message = "主键不能为空",groups = {Update.class})
+    private String id;
+
+    @ApiModelProperty(value = "微信用户id", position = 2)
+    private String wxUserId;
+
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserHospitalQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 医院和用户的绑定关系查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 14:21
+ **/
+@Data
+@ApiModel("医院和用户的绑定关系查询参数")
+@ToString
+public class BizWxUserHospitalQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

+ 18 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/dto/BizWxUserQueryDTO.java

@@ -0,0 +1,18 @@
+package cn.tr.module.smart.common.dto;
+
+import lombok.ToString;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 微信用户查询参数
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Data
+@ApiModel("微信用户查询参数")
+@ToString
+public class BizWxUserQueryDTO  {
+    private static final long serialVersionUID = 1L;
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizHospitalPO;
+import cn.tr.module.smart.common.dto.BizHospitalDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 医院信息映射工具
+*
+* @author lf
+* @date  2025/05/23 16:33
+**/
+@Mapper
+public interface BizHospitalMapper {
+    BizHospitalMapper INSTANCE = Mappers.getMapper(BizHospitalMapper.class);
+
+    BizHospitalPO convertPO(BizHospitalDTO source);
+
+    BizHospitalDTO convertDto(BizHospitalPO source);
+
+    List<BizHospitalDTO> convertDtoList(List<BizHospitalPO> source);
+
+    List<BizHospitalPO> convertPOList(List<BizHospitalDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizMissionDocPO;
+import cn.tr.module.smart.common.dto.BizMissionDocDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 宣教文档映射工具
+*
+* @author lf
+* @date  2025/05/23 16:24
+**/
+@Mapper
+public interface BizMissionDocMapper {
+    BizMissionDocMapper INSTANCE = Mappers.getMapper(BizMissionDocMapper.class);
+
+    BizMissionDocPO convertPO(BizMissionDocDTO source);
+
+    BizMissionDocDTO convertDto(BizMissionDocPO source);
+
+    List<BizMissionDocDTO> convertDtoList(List<BizMissionDocPO> source);
+
+    List<BizMissionDocPO> convertPOList(List<BizMissionDocDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizMissionDocSquarePO;
+import cn.tr.module.smart.common.dto.BizMissionDocSquareDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 宣教文档广场映射工具
+*
+* @author lf
+* @date  2025/05/23 14:24
+**/
+@Mapper
+public interface BizMissionDocSquareMapper {
+    BizMissionDocSquareMapper INSTANCE = Mappers.getMapper(BizMissionDocSquareMapper.class);
+
+    BizMissionDocSquarePO convertPO(BizMissionDocSquareDTO source);
+
+    BizMissionDocSquareDTO convertDto(BizMissionDocSquarePO source);
+
+    List<BizMissionDocSquareDTO> convertDtoList(List<BizMissionDocSquarePO> source);
+
+    List<BizMissionDocSquarePO> convertPOList(List<BizMissionDocSquareDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizQuestionGroupPO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 医院的问卷组映射工具
+*
+* @author lf
+* @date  2025/05/23 16:45
+**/
+@Mapper
+public interface BizQuestionGroupMapper {
+    BizQuestionGroupMapper INSTANCE = Mappers.getMapper(BizQuestionGroupMapper.class);
+
+    BizQuestionGroupPO convertPO(BizQuestionGroupDTO source);
+
+    BizQuestionGroupDTO convertDto(BizQuestionGroupPO source);
+
+    List<BizQuestionGroupDTO> convertDtoList(List<BizQuestionGroupPO> source);
+
+    List<BizQuestionGroupPO> convertPOList(List<BizQuestionGroupDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizQuestionGroupSquarePO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupSquareDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 问卷组广场映射工具
+*
+* @author lf
+* @date  2025/05/23 16:36
+**/
+@Mapper
+public interface BizQuestionGroupSquareMapper {
+    BizQuestionGroupSquareMapper INSTANCE = Mappers.getMapper(BizQuestionGroupSquareMapper.class);
+
+    BizQuestionGroupSquarePO convertPO(BizQuestionGroupSquareDTO source);
+
+    BizQuestionGroupSquareDTO convertDto(BizQuestionGroupSquarePO source);
+
+    List<BizQuestionGroupSquareDTO> convertDtoList(List<BizQuestionGroupSquarePO> source);
+
+    List<BizQuestionGroupSquarePO> convertPOList(List<BizQuestionGroupSquareDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizQuestionPO;
+import cn.tr.module.smart.common.dto.BizQuestionDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 问卷调查问题字段映射工具
+*
+* @author lf
+* @date  2025/05/23 17:03
+**/
+@Mapper
+public interface BizQuestionMapper {
+    BizQuestionMapper INSTANCE = Mappers.getMapper(BizQuestionMapper.class);
+
+    BizQuestionPO convertPO(BizQuestionDTO source);
+
+    BizQuestionDTO convertDto(BizQuestionPO source);
+
+    List<BizQuestionDTO> convertDtoList(List<BizQuestionPO> source);
+
+    List<BizQuestionPO> convertPOList(List<BizQuestionDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizQuestionSquarePO;
+import cn.tr.module.smart.common.dto.BizQuestionSquareDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 问卷调查问题字段映射工具
+*
+* @author lf
+* @date  2025/05/23 16:50
+**/
+@Mapper
+public interface BizQuestionSquareMapper {
+    BizQuestionSquareMapper INSTANCE = Mappers.getMapper(BizQuestionSquareMapper.class);
+
+    BizQuestionSquarePO convertPO(BizQuestionSquareDTO source);
+
+    BizQuestionSquareDTO convertDto(BizQuestionSquarePO source);
+
+    List<BizQuestionSquareDTO> convertDtoList(List<BizQuestionSquarePO> source);
+
+    List<BizQuestionSquarePO> convertPOList(List<BizQuestionSquareDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizWxUserHospitalPO;
+import cn.tr.module.smart.common.dto.BizWxUserHospitalDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 医院和用户的绑定关系映射工具
+*
+* @author lf
+* @date  2025/05/23 14:21
+**/
+@Mapper
+public interface BizWxUserHospitalMapper {
+    BizWxUserHospitalMapper INSTANCE = Mappers.getMapper(BizWxUserHospitalMapper.class);
+
+    BizWxUserHospitalPO convertPO(BizWxUserHospitalDTO source);
+
+    BizWxUserHospitalDTO convertDto(BizWxUserHospitalPO source);
+
+    List<BizWxUserHospitalDTO> convertDtoList(List<BizWxUserHospitalPO> source);
+
+    List<BizWxUserHospitalPO> convertPOList(List<BizWxUserHospitalDTO> source);
+
+}

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

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.common.mapper;
+
+import cn.tr.module.smart.common.po.BizWxUserPO;
+import cn.tr.module.smart.common.dto.BizWxUserDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 微信用户映射工具
+*
+* @author lf
+* @date  2025/05/23 14:03
+**/
+@Mapper
+public interface BizWxUserMapper {
+    BizWxUserMapper INSTANCE = Mappers.getMapper(BizWxUserMapper.class);
+
+    BizWxUserPO convertPO(BizWxUserDTO source);
+
+    BizWxUserDTO convertDto(BizWxUserPO source);
+
+    List<BizWxUserDTO> convertDtoList(List<BizWxUserPO> source);
+
+    List<BizWxUserPO> convertPOList(List<BizWxUserDTO> source);
+
+}

+ 3 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/packageInfo.java

@@ -0,0 +1,3 @@
+package cn.tr.module.smart.common;
+
+// 医生的app接口

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

@@ -0,0 +1,64 @@
+package cn.tr.module.smart.common.po;
+
+import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.util.*;
+/**
+ * 手术信息实体
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Data
+@TableName(value="biz_clinic",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizClinicPO extends TenantPO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 年龄 */
+    @ApiModelProperty(value = "年龄", position = 2)
+    private Integer patientAge;
+
+    /** 科室 */
+    @ApiModelProperty(value = "科室", position = 3)
+    private String depId;
+
+    /** 手术名称 */
+    @ApiModelProperty(value = "手术名称", position = 4)
+    private String clinicName;
+
+    /** 手术开始时间 */
+    @ApiModelProperty(value = "手术开始时间", position = 5)
+    private Date clinicStartTime;
+
+    /** 手术结束时间 */
+    @ApiModelProperty(value = "手术结束时间", position = 6)
+    private Date clinicEndTime;
+
+    /** 手术状态 */
+    @ApiModelProperty(value = "手术状态", position = 7)
+    private String clinicStatus;
+
+    /** 最后一次随访时间 */
+    @ApiModelProperty(value = "最后一次随访时间", position = 8)
+    private String lastFollowUpItme;
+
+    /** 随访次数 */
+    @ApiModelProperty(value = "随访次数", position = 9)
+    private Integer followUpCount;
+
+    /** 是否已随访 */
+    @ApiModelProperty(value = "是否已随访", position = 10)
+    private Integer followUp;
+
+}

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

@@ -0,0 +1,41 @@
+package cn.tr.module.smart.common.po;
+
+
+import cn.tr.plugin.mybatis.pojo.BasePO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 医院信息实体
+ *
+ * @author lf
+ * @date  2025/05/23 16:33
+ **/
+@Data
+@TableName(value="biz_hospital",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizHospitalPO extends BasePO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** name */
+    @ApiModelProperty(value = "name", position = 2)
+    private String name;
+
+    /** 镇痛泵的系统编码 */
+    @ApiModelProperty(value = "镇痛泵的系统编码", position = 3)
+    private String pumpHospitalCode;
+
+    /** 是否启用 */
+    @ApiModelProperty(value = "是否启用", position = 4)
+    private Integer enable;
+
+}

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

@@ -0,0 +1,64 @@
+package cn.tr.module.smart.common.po;
+
+import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 宣教文档实体
+ *
+ * @author lf
+ * @date  2025/05/23 16:24
+ **/
+@Data
+@TableName(value="biz_mission_doc",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizMissionDocPO extends TenantPO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 宣教类型 */
+    @ApiModelProperty(value = "宣教类型", position = 2)
+    private String type;
+
+    /** 宣教名称 */
+    @ApiModelProperty(value = "宣教名称", position = 3)
+    private String title;
+
+    /** 宣教来源 */
+    @ApiModelProperty(value = "宣教来源", position = 4)
+    private String source;
+
+    /** 封面图 */
+    @ApiModelProperty(value = "封面图", position = 5)
+    private String image;
+
+    /** 宣教内容 */
+    @ApiModelProperty(value = "宣教内容", position = 6)
+    private String content;
+
+    /** 宣教阶段 */
+    @ApiModelProperty(value = "宣教阶段", position = 7)
+    private String phase;
+
+    /** 间隔时间段(最小值),如术前2-6天,即2 */
+    @ApiModelProperty(value = "间隔时间段(最小值),如术前2-6天,即2", position = 8)
+    private String intervalMinDay;
+
+    /** 间隔时间段(最大值),如术后2-6天,即6 */
+    @ApiModelProperty(value = "间隔时间段(最大值),如术后2-6天,即6", position = 9)
+    private String intervalMaxDay;
+
+    /** 医院id(医院上传的自己的文档) */
+    @ApiModelProperty(value = "医院id(医院上传的自己的文档)", position = 10)
+    private String tenantId;
+
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.common.po;
+
+import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 宣教文档广场实体
+ *
+ * @author lf
+ * @date  2025/05/23 14:24
+ **/
+@Data
+@TableName(value="biz_mission_doc_square",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizMissionDocSquarePO extends TenantPO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 宣教类型 */
+    @ApiModelProperty(value = "宣教类型", position = 2)
+    private String type;
+
+    /** 宣教名称 */
+    @ApiModelProperty(value = "宣教名称", position = 3)
+    private String title;
+
+    /** 宣教来源 */
+    @ApiModelProperty(value = "宣教来源", position = 4)
+    private String source;
+
+    /** 封面图 */
+    @ApiModelProperty(value = "封面图", position = 5)
+    private String image;
+
+    /** 宣教内容 */
+    @ApiModelProperty(value = "宣教内容", position = 6)
+    private String content;
+
+    /** 宣教阶段 */
+    @ApiModelProperty(value = "宣教阶段", position = 7)
+    private String phase;
+
+    /** 间隔时间段(最小值),如术前2-6天,即2 */
+    @ApiModelProperty(value = "间隔时间段(最小值),如术前2-6天,即2", position = 8)
+    private String intervalMinDay;
+
+    /** 间隔时间段(最大值),如术后2-6天,即6 */
+    @ApiModelProperty(value = "间隔时间段(最大值),如术后2-6天,即6", position = 9)
+    private String intervalMaxDay;
+
+    /** 医院id(上传医院id) */
+    @ApiModelProperty(value = "医院id(上传医院id)", position = 10)
+    private String tenantId;
+
+    /** 引用次数 */
+    @ApiModelProperty(value = "引用次数", position = 11)
+    private Integer citationCount;
+
+    /** 文档归属人 */
+    @ApiModelProperty(value = "文档归属人", position = 12)
+    private String owner;
+
+    /** md5 */
+    @ApiModelProperty(value = "md5", position = 13)
+    private String md5;
+
+    /** version */
+    @ApiModelProperty(value = "version", position = 14)
+    private Integer version;
+
+    /** 文档由医院上传,此处为医院上传的文档id */
+    @ApiModelProperty(value = "文档由医院上传,此处为医院上传的文档id", position = 15)
+    private String hospitalDocId;
+}

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

@@ -0,0 +1,36 @@
+package cn.tr.module.smart.common.po;
+
+import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 医院的问卷组实体
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+@Data
+@TableName(value="biz_question_group",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionGroupPO extends TenantPO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 问卷名称 */
+    @ApiModelProperty(value = "问卷名称", position = 2)
+    private String name;
+
+    /** 问卷类型 */
+    @ApiModelProperty(value = "问卷类型", position = 3)
+    private String type;
+
+}

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

@@ -0,0 +1,37 @@
+package cn.tr.module.smart.common.po;
+
+
+import cn.tr.plugin.mybatis.pojo.BasePO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 问卷组广场实体
+ *
+ * @author lf
+ * @date  2025/05/23 16:36
+ **/
+@Data
+@TableName(value="biz_question_group_square",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionGroupSquarePO extends BasePO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 问卷名称 */
+    @ApiModelProperty(value = "问卷名称", position = 2)
+    private String name;
+
+    /** 问卷类型 */
+    @ApiModelProperty(value = "问卷类型", position = 3)
+    private String type;
+
+}

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

@@ -0,0 +1,53 @@
+package cn.tr.module.smart.common.po;
+
+
+import cn.tr.plugin.mybatis.pojo.BasePO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 问卷调查问题字段实体
+ *
+ * @author lf
+ * @date  2025/05/23 17:03
+ **/
+@Data
+@TableName(value="biz_question",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionPO extends BasePO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 问题组id */
+    @ApiModelProperty(value = "问题组id", position = 2)
+    private String groupId;
+
+    /** 字段唯一标识 */
+    @ApiModelProperty(value = "字段唯一标识", position = 3)
+    private String fieldKey;
+
+    /** 字段名称 */
+    @ApiModelProperty(value = "字段名称", position = 4)
+    private String fieldName;
+
+    /** 字段类型,字典(input_box_type) */
+    @ApiModelProperty(value = "字段类型,字典(input_box_type)", position = 5)
+    private String inputBoxType;
+
+    /** options */
+    @ApiModelProperty(value = "options", position = 6)
+    private String options;
+
+    /** 排序 */
+    @ApiModelProperty(value = "排序", position = 7)
+    private Integer sort;
+
+}

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

@@ -0,0 +1,53 @@
+package cn.tr.module.smart.common.po;
+
+
+import cn.tr.plugin.mybatis.pojo.BasePO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 问卷调查问题字段实体
+ *
+ * @author lf
+ * @date  2025/05/23 16:50
+ **/
+@Data
+@TableName(value="biz_question_square",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizQuestionSquarePO extends BasePO {
+
+    /** 问题组id */
+    @ApiModelProperty(value = "问题组id", position = 1)
+    private String groupId;
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 2)
+    private String id;
+
+    /** 字段唯一标识 */
+    @ApiModelProperty(value = "字段唯一标识", position = 3)
+    private String fieldKey;
+
+    /** 字段名称 */
+    @ApiModelProperty(value = "字段名称", position = 4)
+    private String fieldName;
+
+    /** 字段类型,字典(input_box_type) */
+    @ApiModelProperty(value = "字段类型,字典(input_box_type)", position = 5)
+    private String inputBoxType;
+
+    /** options */
+    @ApiModelProperty(value = "options", position = 6)
+    private String options;
+
+    /** 排序 */
+    @ApiModelProperty(value = "排序", position = 7)
+    private Integer sort;
+
+}

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

@@ -0,0 +1,36 @@
+package cn.tr.module.smart.common.po;
+
+import cn.tr.plugin.mybatis.pojo.TenantPO;   
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 医院和用户的绑定关系实体
+ *
+ * @author lf
+ * @date  2025/05/23 14:21
+ **/
+@Data
+@TableName(value="biz_wx_user_hospital",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizWxUserHospitalPO extends TenantPO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 微信用户id */
+    @ApiModelProperty(value = "微信用户id", position = 2)
+    private String wxUserId;
+
+    /** 医院id */
+    @ApiModelProperty(value = "医院id", position = 3)
+    private String tenantId;
+
+}

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

@@ -0,0 +1,72 @@
+package cn.tr.module.smart.common.po;
+
+
+import cn.tr.plugin.mybatis.pojo.BasePO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.util.*;
+/**
+ * 微信用户实体
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Data
+@TableName(value="biz_wx_user",autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BizWxUserPO extends BasePO {
+
+    /** id */
+    @TableId
+    @ApiModelProperty(value = "id", position = 1)
+    private String id;
+
+    /** 微信小程序的union_id */
+    @ApiModelProperty(value = "微信小程序的union_id", position = 2)
+    private String unionId;
+
+    /** 电话号码 */
+    @ApiModelProperty(value = "电话号码", position = 3)
+    private String phone;
+
+    /** 昵称 */
+    @ApiModelProperty(value = "昵称", position = 4)
+    private String nickname;
+
+    /** 头像链接 */
+    @ApiModelProperty(value = "头像链接", position = 5)
+    private String avatar;
+
+    /** 注册时间 */
+    @ApiModelProperty(value = "注册时间", position = 6)
+    private Date registerTime;
+
+    /** 最后登录时间 */
+    @ApiModelProperty(value = "最后登录时间", position = 7)
+    private Date lastLoginTime;
+
+    /** 最后登录ip */
+    @ApiModelProperty(value = "最后登录ip", position = 8)
+    private String lastLoginIp;
+
+    /** 最后登录地址 */
+    @ApiModelProperty(value = "最后登录地址", position = 9)
+    private String lastLoginAddress;
+
+    /** 公众号的open_id */
+    @ApiModelProperty(value = "公众号的open_id", position = 10)
+    private String openId;
+
+    /** 小程序的app_id */
+    @ApiModelProperty(value = "小程序的app_id", position = 11)
+    private String appId;
+
+    /** 最后登陆的医院id */
+    @ApiModelProperty(value = "最后登陆的医院id", position = 12)
+    private String lastLoginTenantId;
+}

+ 2 - 2
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/register/WxSendTemplateMsgRegister.java → tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/register/WxSendTemplateMsgRegister.java

@@ -1,8 +1,8 @@
-package cn.tr.module.smart.wx.register;
+package cn.tr.module.smart.common.register;
 
 import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
-import cn.tr.module.smart.wx.dto.WxTemplateDTO;
+import cn.tr.module.smart.web.dto.WxTemplateDTO;
 import cn.tr.module.smart.wx.handler.AbstractWxSendTemplateMsgHandler;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizClinicPO;
+/**
+ * 手术信息Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Repository
+@Mapper
+public interface BizClinicRepository extends BaseMapper<BizClinicPO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizHospitalPO;
+/**
+ * 医院信息Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:33
+ **/
+@Repository
+@Mapper
+public interface BizHospitalRepository extends BaseMapper<BizHospitalPO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizMissionDocPO;
+/**
+ * 宣教文档Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:24
+ **/
+@Repository
+@Mapper
+public interface BizMissionDocRepository extends BaseMapper<BizMissionDocPO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizMissionDocSquarePO;
+/**
+ * 宣教文档广场Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:24
+ **/
+@Repository
+@Mapper
+public interface BizMissionDocSquareRepository extends BaseMapper<BizMissionDocSquarePO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizQuestionGroupPO;
+/**
+ * 医院的问卷组Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+@Repository
+@Mapper
+public interface BizQuestionGroupRepository extends BaseMapper<BizQuestionGroupPO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizQuestionGroupSquarePO;
+/**
+ * 问卷组广场Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:36
+ **/
+@Repository
+@Mapper
+public interface BizQuestionGroupSquareRepository extends BaseMapper<BizQuestionGroupSquarePO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizQuestionPO;
+/**
+ * 问卷调查问题字段Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 17:03
+ **/
+@Repository
+@Mapper
+public interface BizQuestionRepository extends BaseMapper<BizQuestionPO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizQuestionSquarePO;
+/**
+ * 问卷调查问题字段Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:50
+ **/
+@Repository
+@Mapper
+public interface BizQuestionSquareRepository extends BaseMapper<BizQuestionSquarePO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizWxUserHospitalPO;
+/**
+ * 医院和用户的绑定关系Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:21
+ **/
+@Repository
+@Mapper
+public interface BizWxUserHospitalRepository extends BaseMapper<BizWxUserHospitalPO> {
+}

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

@@ -0,0 +1,16 @@
+package cn.tr.module.smart.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+import cn.tr.module.smart.common.po.BizWxUserPO;
+/**
+ * 微信用户Mapper接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Repository
+@Mapper
+public interface BizWxUserRepository extends BaseMapper<BizWxUserPO> {
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/BizQuestionGroupService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.questionGroup.service;
+
+import cn.tr.module.smart.common.questionGroup.dto.BizQuestionGroupDTO;
+import cn.tr.module.smart.common.questionGroup.dto.BizQuestionGroupQueryDTO;
+import java.util.*;
+
+/**
+ * 医院的问卷组Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+public interface IBizQuestionGroupService{
+
+    /**
+     * 根据条件查询医院的问卷组
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:45
+     */
+    List<BizQuestionGroupDTO> selectBizQuestionGroupList(BizQuestionGroupQueryDTO query);
+
+    /**
+     * 根据id查询医院的问卷组
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:45
+     */
+    BizQuestionGroupDTO selectBizQuestionGroupById(String id);
+
+    /**
+     * 编辑医院的问卷组
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:45
+     */
+    boolean updateBizQuestionGroupById(BizQuestionGroupDTO source);
+
+    /**
+     * 新增医院的问卷组
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:45
+     */
+    boolean insertBizQuestionGroup(BizQuestionGroupDTO source);
+
+    /**
+     * 删除医院的问卷组详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:45
+     */
+    int removeBizQuestionGroupByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizClinicService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizClinicDTO;
+import cn.tr.module.smart.common.dto.BizClinicQueryDTO;
+import java.util.*;
+
+/**
+ * 手术信息Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+public interface IBizClinicService{
+
+    /**
+     * 根据条件查询手术信息
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 14:17
+     */
+    List<BizClinicDTO> selectBizClinicList(BizClinicQueryDTO query);
+
+    /**
+     * 根据id查询手术信息
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 14:17
+     */
+    BizClinicDTO selectBizClinicById(String id);
+
+    /**
+     * 编辑手术信息
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 14:17
+     */
+    boolean updateBizClinicById(BizClinicDTO source);
+
+    /**
+     * 新增手术信息
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 14:17
+     */
+    boolean insertBizClinic(BizClinicDTO source);
+
+    /**
+     * 删除手术信息详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 14:17
+     */
+    int removeBizClinicByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizHospitalService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizHospitalDTO;
+import cn.tr.module.smart.common.dto.BizHospitalQueryDTO;
+import java.util.*;
+
+/**
+ * 医院信息Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:33
+ **/
+public interface IBizHospitalService{
+
+    /**
+     * 根据条件查询医院信息
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:33
+     */
+    List<BizHospitalDTO> selectBizHospitalList(BizHospitalQueryDTO query);
+
+    /**
+     * 根据id查询医院信息
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:33
+     */
+    BizHospitalDTO selectBizHospitalById(String id);
+
+    /**
+     * 编辑医院信息
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:33
+     */
+    boolean updateBizHospitalById(BizHospitalDTO source);
+
+    /**
+     * 新增医院信息
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:33
+     */
+    boolean insertBizHospital(BizHospitalDTO source);
+
+    /**
+     * 删除医院信息详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:33
+     */
+    int removeBizHospitalByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizMissionDocService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizMissionDocDTO;
+import cn.tr.module.smart.common.dto.BizMissionDocQueryDTO;
+import java.util.*;
+
+/**
+ * 宣教文档Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:24
+ **/
+public interface IBizMissionDocService{
+
+    /**
+     * 根据条件查询宣教文档
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:24
+     */
+    List<BizMissionDocDTO> selectBizMissionDocList(BizMissionDocQueryDTO query);
+
+    /**
+     * 根据id查询宣教文档
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:24
+     */
+    BizMissionDocDTO selectBizMissionDocById(String id);
+
+    /**
+     * 编辑宣教文档
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:24
+     */
+    boolean updateBizMissionDocById(BizMissionDocDTO source);
+
+    /**
+     * 新增宣教文档
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:24
+     */
+    boolean insertBizMissionDoc(BizMissionDocDTO source);
+
+    /**
+     * 删除宣教文档详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:24
+     */
+    int removeBizMissionDocByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizMissionDocSquareService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizMissionDocSquareDTO;
+import cn.tr.module.smart.common.dto.BizMissionDocSquareQueryDTO;
+import java.util.*;
+
+/**
+ * 宣教文档广场Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:24
+ **/
+public interface IBizMissionDocSquareService{
+
+    /**
+     * 根据条件查询宣教文档广场
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 14:24
+     */
+    List<BizMissionDocSquareDTO> selectBizMissionDocSquareList(BizMissionDocSquareQueryDTO query);
+
+    /**
+     * 根据id查询宣教文档广场
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 14:24
+     */
+    BizMissionDocSquareDTO selectBizMissionDocSquareById(String id);
+
+    /**
+     * 编辑宣教文档广场
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 14:24
+     */
+    boolean updateBizMissionDocSquareById(BizMissionDocSquareDTO source);
+
+    /**
+     * 新增宣教文档广场
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 14:24
+     */
+    boolean insertBizMissionDocSquare(BizMissionDocSquareDTO source);
+
+    /**
+     * 删除宣教文档广场详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 14:24
+     */
+    int removeBizMissionDocSquareByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionGroupService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizQuestionGroupDTO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupQueryDTO;
+import java.util.*;
+
+/**
+ * 医院的问卷组Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+public interface IBizQuestionGroupService{
+
+    /**
+     * 根据条件查询医院的问卷组
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:45
+     */
+    List<BizQuestionGroupDTO> selectBizQuestionGroupList(BizQuestionGroupQueryDTO query);
+
+    /**
+     * 根据id查询医院的问卷组
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:45
+     */
+    BizQuestionGroupDTO selectBizQuestionGroupById(String id);
+
+    /**
+     * 编辑医院的问卷组
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:45
+     */
+    boolean updateBizQuestionGroupById(BizQuestionGroupDTO source);
+
+    /**
+     * 新增医院的问卷组
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:45
+     */
+    boolean insertBizQuestionGroup(BizQuestionGroupDTO source);
+
+    /**
+     * 删除医院的问卷组详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:45
+     */
+    int removeBizQuestionGroupByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionGroupSquareService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizQuestionGroupSquareDTO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupSquareQueryDTO;
+import java.util.*;
+
+/**
+ * 问卷组广场Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:36
+ **/
+public interface IBizQuestionGroupSquareService{
+
+    /**
+     * 根据条件查询问卷组广场
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:36
+     */
+    List<BizQuestionGroupSquareDTO> selectBizQuestionGroupSquareList(BizQuestionGroupSquareQueryDTO query);
+
+    /**
+     * 根据id查询问卷组广场
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:36
+     */
+    BizQuestionGroupSquareDTO selectBizQuestionGroupSquareById(String id);
+
+    /**
+     * 编辑问卷组广场
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:36
+     */
+    boolean updateBizQuestionGroupSquareById(BizQuestionGroupSquareDTO source);
+
+    /**
+     * 新增问卷组广场
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:36
+     */
+    boolean insertBizQuestionGroupSquare(BizQuestionGroupSquareDTO source);
+
+    /**
+     * 删除问卷组广场详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:36
+     */
+    int removeBizQuestionGroupSquareByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizQuestionDTO;
+import cn.tr.module.smart.common.dto.BizQuestionQueryDTO;
+import java.util.*;
+
+/**
+ * 问卷调查问题字段Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 17:03
+ **/
+public interface IBizQuestionService{
+
+    /**
+     * 根据条件查询问卷调查问题字段
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 17:03
+     */
+    List<BizQuestionDTO> selectBizQuestionList(BizQuestionQueryDTO query);
+
+    /**
+     * 根据id查询问卷调查问题字段
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 17:03
+     */
+    BizQuestionDTO selectBizQuestionById(String id);
+
+    /**
+     * 编辑问卷调查问题字段
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 17:03
+     */
+    boolean updateBizQuestionById(BizQuestionDTO source);
+
+    /**
+     * 新增问卷调查问题字段
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 17:03
+     */
+    boolean insertBizQuestion(BizQuestionDTO source);
+
+    /**
+     * 删除问卷调查问题字段详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 17:03
+     */
+    int removeBizQuestionByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizQuestionSquareService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizQuestionSquareDTO;
+import cn.tr.module.smart.common.dto.BizQuestionSquareQueryDTO;
+import java.util.*;
+
+/**
+ * 问卷调查问题字段Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 16:50
+ **/
+public interface IBizQuestionSquareService{
+
+    /**
+     * 根据条件查询问卷调查问题字段
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:50
+     */
+    List<BizQuestionSquareDTO> selectBizQuestionSquareList(BizQuestionSquareQueryDTO query);
+
+    /**
+     * 根据id查询问卷调查问题字段
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:50
+     */
+    BizQuestionSquareDTO selectBizQuestionSquareById(String id);
+
+    /**
+     * 编辑问卷调查问题字段
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:50
+     */
+    boolean updateBizQuestionSquareById(BizQuestionSquareDTO source);
+
+    /**
+     * 新增问卷调查问题字段
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:50
+     */
+    boolean insertBizQuestionSquare(BizQuestionSquareDTO source);
+
+    /**
+     * 删除问卷调查问题字段详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:50
+     */
+    int removeBizQuestionSquareByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizWxUserHospitalService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizWxUserHospitalDTO;
+import cn.tr.module.smart.common.dto.BizWxUserHospitalQueryDTO;
+import java.util.*;
+
+/**
+ * 医院和用户的绑定关系Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:21
+ **/
+public interface IBizWxUserHospitalService{
+
+    /**
+     * 根据条件查询医院和用户的绑定关系
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 14:21
+     */
+    List<BizWxUserHospitalDTO> selectBizWxUserHospitalList(BizWxUserHospitalQueryDTO query);
+
+    /**
+     * 根据id查询医院和用户的绑定关系
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 14:21
+     */
+    BizWxUserHospitalDTO selectBizWxUserHospitalById(String id);
+
+    /**
+     * 编辑医院和用户的绑定关系
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 14:21
+     */
+    boolean updateBizWxUserHospitalById(BizWxUserHospitalDTO source);
+
+    /**
+     * 新增医院和用户的绑定关系
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 14:21
+     */
+    boolean insertBizWxUserHospital(BizWxUserHospitalDTO source);
+
+    /**
+     * 删除医院和用户的绑定关系详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 14:21
+     */
+    int removeBizWxUserHospitalByIds(Collection<String> ids);
+}

+ 54 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/common/service/IBizWxUserService.java

@@ -0,0 +1,54 @@
+package cn.tr.module.smart.common.service;
+
+import cn.tr.module.smart.common.dto.BizWxUserDTO;
+import cn.tr.module.smart.common.dto.BizWxUserQueryDTO;
+import java.util.*;
+
+/**
+ * 微信用户Service接口
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+public interface IBizWxUserService{
+
+    /**
+     * 根据条件查询微信用户
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 14:03
+     */
+    List<BizWxUserDTO> selectBizWxUserList(BizWxUserQueryDTO query);
+
+    /**
+     * 根据id查询微信用户
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 14:03
+     */
+    BizWxUserDTO selectBizWxUserById(String id);
+
+    /**
+     * 编辑微信用户
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 14:03
+     */
+    boolean updateBizWxUserById(BizWxUserDTO source);
+
+    /**
+     * 新增微信用户
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 14:03
+     */
+    boolean insertBizWxUser(BizWxUserDTO source);
+
+    /**
+     * 删除微信用户详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 14:03
+     */
+    int removeBizWxUserByIds(Collection<String> ids);
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizClinicRepository;
+import cn.tr.module.smart.common.po.BizClinicPO;
+import cn.tr.module.smart.common.dto.BizClinicDTO;
+import cn.tr.module.smart.common.dto.BizClinicQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizClinicService;
+import cn.tr.module.smart.wx.mapper.BizClinicMapper;
+/**
+ * 手术信息Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 14:17
+ **/
+@Service
+public class BizClinicServiceImpl implements IBizClinicService {
+    @Autowired
+    private BizClinicRepository baseRepository;
+
+
+    /**
+    * 根据条件查询手术信息
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 14:17
+    */
+    @Override
+    public List<BizClinicDTO> selectBizClinicList(BizClinicQueryDTO query){
+        return BizClinicMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizClinicPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询手术信息
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 14:17
+    */
+    @Override
+    public BizClinicDTO selectBizClinicById(String id){
+        return BizClinicMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑手术信息
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 14:17
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizClinicById(BizClinicDTO source){
+            return baseRepository.updateById(BizClinicMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增手术信息
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 14:17
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizClinic(BizClinicDTO source){
+        return baseRepository.insert(BizClinicMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除手术信息详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 14:17
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizClinicByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizHospitalRepository;
+import cn.tr.module.smart.common.po.BizHospitalPO;
+import cn.tr.module.smart.common.dto.BizHospitalDTO;
+import cn.tr.module.smart.common.dto.BizHospitalQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizHospitalService;
+import cn.tr.module.smart.common.mapper.BizHospitalMapper;
+/**
+ * 医院信息Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 16:33
+ **/
+@Service
+public class BizHospitalServiceImpl implements IBizHospitalService {
+    @Autowired
+    private BizHospitalRepository baseRepository;
+
+
+    /**
+    * 根据条件查询医院信息
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 16:33
+    */
+    @Override
+    public List<BizHospitalDTO> selectBizHospitalList(BizHospitalQueryDTO query){
+        return BizHospitalMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizHospitalPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询医院信息
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 16:33
+    */
+    @Override
+    public BizHospitalDTO selectBizHospitalById(String id){
+        return BizHospitalMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑医院信息
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 16:33
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizHospitalById(BizHospitalDTO source){
+            return baseRepository.updateById(BizHospitalMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增医院信息
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 16:33
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizHospital(BizHospitalDTO source){
+        return baseRepository.insert(BizHospitalMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除医院信息详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 16:33
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizHospitalByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizMissionDocRepository;
+import cn.tr.module.smart.common.po.BizMissionDocPO;
+import cn.tr.module.smart.common.dto.BizMissionDocDTO;
+import cn.tr.module.smart.common.dto.BizMissionDocQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizMissionDocService;
+import cn.tr.module.smart.common.mapper.BizMissionDocMapper;
+/**
+ * 宣教文档Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 16:24
+ **/
+@Service
+public class BizMissionDocServiceImpl implements IBizMissionDocService {
+    @Autowired
+    private BizMissionDocRepository baseRepository;
+
+
+    /**
+    * 根据条件查询宣教文档
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 16:24
+    */
+    @Override
+    public List<BizMissionDocDTO> selectBizMissionDocList(BizMissionDocQueryDTO query){
+        return BizMissionDocMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizMissionDocPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询宣教文档
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 16:24
+    */
+    @Override
+    public BizMissionDocDTO selectBizMissionDocById(String id){
+        return BizMissionDocMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑宣教文档
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 16:24
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizMissionDocById(BizMissionDocDTO source){
+            return baseRepository.updateById(BizMissionDocMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增宣教文档
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 16:24
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizMissionDoc(BizMissionDocDTO source){
+        return baseRepository.insert(BizMissionDocMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除宣教文档详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 16:24
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizMissionDocByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizMissionDocSquareRepository;
+import cn.tr.module.smart.common.po.BizMissionDocSquarePO;
+import cn.tr.module.smart.common.dto.BizMissionDocSquareDTO;
+import cn.tr.module.smart.common.dto.BizMissionDocSquareQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizMissionDocSquareService;
+import cn.tr.module.smart.common.mapper.BizMissionDocSquareMapper;
+/**
+ * 宣教文档广场Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 14:24
+ **/
+@Service
+public class BizMissionDocSquareServiceImpl implements IBizMissionDocSquareService {
+    @Autowired
+    private BizMissionDocSquareRepository baseRepository;
+
+
+    /**
+    * 根据条件查询宣教文档广场
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 14:24
+    */
+    @Override
+    public List<BizMissionDocSquareDTO> selectBizMissionDocSquareList(BizMissionDocSquareQueryDTO query){
+        return BizMissionDocSquareMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizMissionDocSquarePO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询宣教文档广场
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 14:24
+    */
+    @Override
+    public BizMissionDocSquareDTO selectBizMissionDocSquareById(String id){
+        return BizMissionDocSquareMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑宣教文档广场
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 14:24
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizMissionDocSquareById(BizMissionDocSquareDTO source){
+            return baseRepository.updateById(BizMissionDocSquareMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增宣教文档广场
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 14:24
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizMissionDocSquare(BizMissionDocSquareDTO source){
+        return baseRepository.insert(BizMissionDocSquareMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除宣教文档广场详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 14:24
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizMissionDocSquareByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizQuestionGroupRepository;
+import cn.tr.module.smart.common.po.BizQuestionGroupPO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupDTO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizQuestionGroupService;
+import cn.tr.module.smart.common.mapper.BizQuestionGroupMapper;
+/**
+ * 医院的问卷组Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 16:45
+ **/
+@Service
+public class BizQuestionGroupServiceImpl implements IBizQuestionGroupService {
+    @Autowired
+    private BizQuestionGroupRepository baseRepository;
+
+
+    /**
+    * 根据条件查询医院的问卷组
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 16:45
+    */
+    @Override
+    public List<BizQuestionGroupDTO> selectBizQuestionGroupList(BizQuestionGroupQueryDTO query){
+        return BizQuestionGroupMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizQuestionGroupPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询医院的问卷组
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 16:45
+    */
+    @Override
+    public BizQuestionGroupDTO selectBizQuestionGroupById(String id){
+        return BizQuestionGroupMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑医院的问卷组
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 16:45
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizQuestionGroupById(BizQuestionGroupDTO source){
+            return baseRepository.updateById(BizQuestionGroupMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增医院的问卷组
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 16:45
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizQuestionGroup(BizQuestionGroupDTO source){
+        return baseRepository.insert(BizQuestionGroupMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除医院的问卷组详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 16:45
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizQuestionGroupByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizQuestionGroupSquareRepository;
+import cn.tr.module.smart.common.po.BizQuestionGroupSquarePO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupSquareDTO;
+import cn.tr.module.smart.common.dto.BizQuestionGroupSquareQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizQuestionGroupSquareService;
+import cn.tr.module.smart.common.mapper.BizQuestionGroupSquareMapper;
+/**
+ * 问卷组广场Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 16:36
+ **/
+@Service
+public class BizQuestionGroupSquareServiceImpl implements IBizQuestionGroupSquareService {
+    @Autowired
+    private BizQuestionGroupSquareRepository baseRepository;
+
+
+    /**
+    * 根据条件查询问卷组广场
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 16:36
+    */
+    @Override
+    public List<BizQuestionGroupSquareDTO> selectBizQuestionGroupSquareList(BizQuestionGroupSquareQueryDTO query){
+        return BizQuestionGroupSquareMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizQuestionGroupSquarePO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询问卷组广场
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 16:36
+    */
+    @Override
+    public BizQuestionGroupSquareDTO selectBizQuestionGroupSquareById(String id){
+        return BizQuestionGroupSquareMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑问卷组广场
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 16:36
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizQuestionGroupSquareById(BizQuestionGroupSquareDTO source){
+            return baseRepository.updateById(BizQuestionGroupSquareMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增问卷组广场
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 16:36
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizQuestionGroupSquare(BizQuestionGroupSquareDTO source){
+        return baseRepository.insert(BizQuestionGroupSquareMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除问卷组广场详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 16:36
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizQuestionGroupSquareByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizQuestionRepository;
+import cn.tr.module.smart.common.po.BizQuestionPO;
+import cn.tr.module.smart.common.dto.BizQuestionDTO;
+import cn.tr.module.smart.common.dto.BizQuestionQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizQuestionService;
+import cn.tr.module.smart.common.mapper.BizQuestionMapper;
+/**
+ * 问卷调查问题字段Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 17:03
+ **/
+@Service
+public class BizQuestionServiceImpl implements IBizQuestionService {
+    @Autowired
+    private BizQuestionRepository baseRepository;
+
+
+    /**
+    * 根据条件查询问卷调查问题字段
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 17:03
+    */
+    @Override
+    public List<BizQuestionDTO> selectBizQuestionList(BizQuestionQueryDTO query){
+        return BizQuestionMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizQuestionPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询问卷调查问题字段
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 17:03
+    */
+    @Override
+    public BizQuestionDTO selectBizQuestionById(String id){
+        return BizQuestionMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑问卷调查问题字段
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 17:03
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizQuestionById(BizQuestionDTO source){
+            return baseRepository.updateById(BizQuestionMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增问卷调查问题字段
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 17:03
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizQuestion(BizQuestionDTO source){
+        return baseRepository.insert(BizQuestionMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除问卷调查问题字段详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 17:03
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizQuestionByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizQuestionSquareRepository;
+import cn.tr.module.smart.common.po.BizQuestionSquarePO;
+import cn.tr.module.smart.common.dto.BizQuestionSquareDTO;
+import cn.tr.module.smart.common.dto.BizQuestionSquareQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizQuestionSquareService;
+import cn.tr.module.smart.common.mapper.BizQuestionSquareMapper;
+/**
+ * 问卷调查问题字段Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 16:50
+ **/
+@Service
+public class BizQuestionSquareServiceImpl implements IBizQuestionSquareService {
+    @Autowired
+    private BizQuestionSquareRepository baseRepository;
+
+
+    /**
+     * 根据条件查询问卷调查问题字段
+     * @param    query 查询参数
+     * @author   lf
+     * @date      2025/05/23 16:50
+     */
+    @Override
+    public List<BizQuestionSquareDTO> selectBizQuestionSquareList(BizQuestionSquareQueryDTO query){
+        return BizQuestionSquareMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizQuestionSquarePO>()
+                )
+        );
+    };
+
+    /**
+     * 根据id查询问卷调查问题字段
+     * @param    id 主键id
+     * @author   lf
+     * @date      2025/05/23 16:50
+     */
+    @Override
+    public BizQuestionSquareDTO selectBizQuestionSquareById(String id){
+        return BizQuestionSquareMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+     * 编辑问卷调查问题字段
+     * @param   source 编辑实体类
+     * @author  lf
+     * @date     2025/05/23 16:50
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizQuestionSquareById(BizQuestionSquareDTO source){
+        return baseRepository.updateById(BizQuestionSquareMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+     * 新增问卷调查问题字段
+     * @param   source 新增实体类
+     * @author lf
+     * @date  2025/05/23 16:50
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizQuestionSquare(BizQuestionSquareDTO source){
+        return baseRepository.insert(BizQuestionSquareMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+     * 删除问卷调查问题字段详情
+     * @param  ids 删除主键集合
+     * @author lf
+     * @date    2025/05/23 16:50
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizQuestionSquareByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizWxUserHospitalRepository;
+import cn.tr.module.smart.common.po.BizWxUserHospitalPO;
+import cn.tr.module.smart.common.dto.BizWxUserHospitalDTO;
+import cn.tr.module.smart.common.dto.BizWxUserHospitalQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizWxUserHospitalService;
+import cn.tr.module.smart.common.mapper.BizWxUserHospitalMapper;
+/**
+ * 医院和用户的绑定关系Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 14:21
+ **/
+@Service
+public class BizWxUserHospitalServiceImpl implements IBizWxUserHospitalService {
+    @Autowired
+    private BizWxUserHospitalRepository baseRepository;
+
+
+    /**
+    * 根据条件查询医院和用户的绑定关系
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 14:21
+    */
+    @Override
+    public List<BizWxUserHospitalDTO> selectBizWxUserHospitalList(BizWxUserHospitalQueryDTO query){
+        return BizWxUserHospitalMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizWxUserHospitalPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询医院和用户的绑定关系
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 14:21
+    */
+    @Override
+    public BizWxUserHospitalDTO selectBizWxUserHospitalById(String id){
+        return BizWxUserHospitalMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑医院和用户的绑定关系
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 14:21
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizWxUserHospitalById(BizWxUserHospitalDTO source){
+            return baseRepository.updateById(BizWxUserHospitalMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增医院和用户的绑定关系
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 14:21
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizWxUserHospital(BizWxUserHospitalDTO source){
+        return baseRepository.insert(BizWxUserHospitalMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除医院和用户的绑定关系详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 14:21
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizWxUserHospitalByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,92 @@
+package cn.tr.module.smart.common.service.impl;
+
+import cn.tr.core.exception.TRExcCode;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.tr.module.smart.common.repository.BizWxUserRepository;
+import cn.tr.module.smart.common.po.BizWxUserPO;
+import cn.tr.module.smart.common.dto.BizWxUserDTO;
+import cn.tr.module.smart.common.dto.BizWxUserQueryDTO;
+import java.util.*;
+import cn.tr.module.smart.common.service.IBizWxUserService;
+import cn.tr.module.smart.common.mapper.BizWxUserMapper;
+/**
+ * 微信用户Service接口实现类
+ *
+ * @author lf
+ * @date  2025/05/23 14:03
+ **/
+@Service
+public class BizWxUserServiceImpl implements IBizWxUserService {
+    @Autowired
+    private BizWxUserRepository baseRepository;
+
+
+    /**
+    * 根据条件查询微信用户
+    * @param    query 查询参数
+    * @author   lf
+    * @date      2025/05/23 14:03
+    */
+    @Override
+    public List<BizWxUserDTO> selectBizWxUserList(BizWxUserQueryDTO query){
+        return BizWxUserMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BizWxUserPO>()
+                )
+        );
+    };
+
+    /**
+    * 根据id查询微信用户
+    * @param    id 主键id
+    * @author   lf
+    * @date      2025/05/23 14:03
+    */
+    @Override
+    public BizWxUserDTO selectBizWxUserById(String id){
+        return BizWxUserMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑微信用户
+    * @param   source 编辑实体类
+    * @author  lf
+    * @date     2025/05/23 14:03
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBizWxUserById(BizWxUserDTO source){
+            return baseRepository.updateById(BizWxUserMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增微信用户
+    * @param   source 新增实体类
+    * @author lf
+    * @date  2025/05/23 14:03
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBizWxUser(BizWxUserDTO source){
+        return baseRepository.insert(BizWxUserMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除微信用户详情
+    * @param  ids 删除主键集合
+    * @author lf
+    * @date    2025/05/23 14:03
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBizWxUserByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteBatchIds(ids);
+    };
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizClinicDTO;
+import cn.tr.module.smart.common.service.IBizClinicService;
+import cn.tr.module.smart.common.dto.BizClinicQueryDTO;
+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/05/23 14:17
+ */
+@Api(tags = "手术信息")
+@RestController
+@RequestMapping("/web/clinic")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizClinicController extends BaseController{
+
+    private final IBizClinicService bizClinicService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询手术信息",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizClinicDTO> selectList(@RequestBody BizClinicQueryDTO query) {
+        startPage();
+        return getDataTable(bizClinicService.selectBizClinicList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询手术信息",notes = "权限: wx:clinic:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("wx:clinic:query")
+    public CommonResult<BizClinicDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizClinicService.selectBizClinicById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加手术信息",notes = "权限: wx:clinic:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("wx:clinic:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizClinicDTO source) {
+        return CommonResult.success(bizClinicService.insertBizClinic(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑手术信息",notes = "权限: wx:clinic:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("wx:clinic:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizClinicDTO source) {
+        return CommonResult.success(bizClinicService.updateBizClinicById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除手术信息",notes = "权限: wx:clinic:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("wx:clinic:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizClinicService.removeBizClinicByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizHospitalDTO;
+import cn.tr.module.smart.common.service.IBizHospitalService;
+import cn.tr.module.smart.common.dto.BizHospitalQueryDTO;
+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/05/23 16:33
+ */
+@Api(tags = "医院信息")
+@RestController
+@RequestMapping("/web/hospital")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizHospitalController extends BaseController{
+
+    private final IBizHospitalService bizHospitalService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询医院信息",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizHospitalDTO> selectList(@RequestBody BizHospitalQueryDTO query) {
+        startPage();
+        return getDataTable(bizHospitalService.selectBizHospitalList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询医院信息",notes = "权限: common:hospital:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:hospital:query")
+    public CommonResult<BizHospitalDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizHospitalService.selectBizHospitalById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加医院信息",notes = "权限: common:hospital:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:hospital:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizHospitalDTO source) {
+        return CommonResult.success(bizHospitalService.insertBizHospital(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑医院信息",notes = "权限: common:hospital:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:hospital:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizHospitalDTO source) {
+        return CommonResult.success(bizHospitalService.updateBizHospitalById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除医院信息",notes = "权限: common:hospital:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:hospital:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizHospitalService.removeBizHospitalByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizMissionDocDTO;
+import cn.tr.module.smart.common.service.IBizMissionDocService;
+import cn.tr.module.smart.common.dto.BizMissionDocQueryDTO;
+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/05/23 16:24
+ */
+@Api(tags = "宣教文档")
+@RestController
+@RequestMapping("/web/missionDoc")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizMissionDocController extends BaseController{
+
+    private final IBizMissionDocService bizMissionDocService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询宣教文档",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizMissionDocDTO> selectList(@RequestBody BizMissionDocQueryDTO query) {
+        startPage();
+        return getDataTable(bizMissionDocService.selectBizMissionDocList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询宣教文档",notes = "权限: common:missionDoc:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:missionDoc:query")
+    public CommonResult<BizMissionDocDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizMissionDocService.selectBizMissionDocById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加宣教文档",notes = "权限: common:missionDoc:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:missionDoc:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizMissionDocDTO source) {
+        return CommonResult.success(bizMissionDocService.insertBizMissionDoc(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑宣教文档",notes = "权限: common:missionDoc:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:missionDoc:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizMissionDocDTO source) {
+        return CommonResult.success(bizMissionDocService.updateBizMissionDocById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除宣教文档",notes = "权限: common:missionDoc:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:missionDoc:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizMissionDocService.removeBizMissionDocByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizMissionDocSquareDTO;
+import cn.tr.module.smart.common.service.IBizMissionDocSquareService;
+import cn.tr.module.smart.common.dto.BizMissionDocSquareQueryDTO;
+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/05/23 14:24
+ */
+@Api(tags = "宣教文档广场")
+@RestController
+@RequestMapping("/web/missionDocSquare")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizMissionDocSquareController extends BaseController{
+
+    private final IBizMissionDocSquareService bizMissionDocSquareService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询宣教文档广场",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizMissionDocSquareDTO> selectList(@RequestBody BizMissionDocSquareQueryDTO query) {
+        startPage();
+        return getDataTable(bizMissionDocSquareService.selectBizMissionDocSquareList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询宣教文档广场",notes = "权限: common:missionDocSquare:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:missionDocSquare:query")
+    public CommonResult<BizMissionDocSquareDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizMissionDocSquareService.selectBizMissionDocSquareById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加宣教文档广场",notes = "权限: common:missionDocSquare:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:missionDocSquare:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizMissionDocSquareDTO source) {
+        return CommonResult.success(bizMissionDocSquareService.insertBizMissionDocSquare(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑宣教文档广场",notes = "权限: common:missionDocSquare:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:missionDocSquare:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizMissionDocSquareDTO source) {
+        return CommonResult.success(bizMissionDocSquareService.updateBizMissionDocSquareById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除宣教文档广场",notes = "权限: common:missionDocSquare:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:missionDocSquare:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizMissionDocSquareService.removeBizMissionDocSquareByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizQuestionDTO;
+import cn.tr.module.smart.common.service.IBizQuestionService;
+import cn.tr.module.smart.common.dto.BizQuestionQueryDTO;
+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/05/23 17:03
+ */
+@Api(tags = "问卷调查问题字段")
+@RestController
+@RequestMapping("/web/question")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizQuestionController extends BaseController{
+
+    private final IBizQuestionService bizQuestionService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询问卷调查问题字段",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizQuestionDTO> selectList(@RequestBody BizQuestionQueryDTO query) {
+        startPage();
+        return getDataTable(bizQuestionService.selectBizQuestionList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询问卷调查问题字段",notes = "权限: common:question:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:question:query")
+    public CommonResult<BizQuestionDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizQuestionService.selectBizQuestionById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加问卷调查问题字段",notes = "权限: common:question:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:question:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizQuestionDTO source) {
+        return CommonResult.success(bizQuestionService.insertBizQuestion(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑问卷调查问题字段",notes = "权限: common:question:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:question:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizQuestionDTO source) {
+        return CommonResult.success(bizQuestionService.updateBizQuestionById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除问卷调查问题字段",notes = "权限: common:question:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:question:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizQuestionService.removeBizQuestionByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizQuestionGroupDTO;
+import cn.tr.module.smart.common.service.IBizQuestionGroupService;
+import cn.tr.module.smart.common.dto.BizQuestionGroupQueryDTO;
+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/05/23 16:45
+ */
+@Api(tags = "医院的问卷组")
+@RestController
+@RequestMapping("/web/questionGroup")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizQuestionGroupController extends BaseController{
+
+    private final IBizQuestionGroupService bizQuestionGroupService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询医院的问卷组",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizQuestionGroupDTO> selectList(@RequestBody BizQuestionGroupQueryDTO query) {
+        startPage();
+        return getDataTable(bizQuestionGroupService.selectBizQuestionGroupList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询医院的问卷组",notes = "权限: common:questionGroup:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:questionGroup:query")
+    public CommonResult<BizQuestionGroupDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizQuestionGroupService.selectBizQuestionGroupById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加医院的问卷组",notes = "权限: common:questionGroup:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:questionGroup:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizQuestionGroupDTO source) {
+        return CommonResult.success(bizQuestionGroupService.insertBizQuestionGroup(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑医院的问卷组",notes = "权限: common:questionGroup:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:questionGroup:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizQuestionGroupDTO source) {
+        return CommonResult.success(bizQuestionGroupService.updateBizQuestionGroupById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除医院的问卷组",notes = "权限: common:questionGroup:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:questionGroup:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizQuestionGroupService.removeBizQuestionGroupByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizQuestionGroupSquareDTO;
+import cn.tr.module.smart.common.service.IBizQuestionGroupSquareService;
+import cn.tr.module.smart.common.dto.BizQuestionGroupSquareQueryDTO;
+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/05/23 16:36
+ */
+@Api(tags = "问卷组广场")
+@RestController
+@RequestMapping("/web/questionGroupSquare")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizQuestionGroupSquareController extends BaseController{
+
+    private final IBizQuestionGroupSquareService bizQuestionGroupSquareService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询问卷组广场",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizQuestionGroupSquareDTO> selectList(@RequestBody BizQuestionGroupSquareQueryDTO query) {
+        startPage();
+        return getDataTable(bizQuestionGroupSquareService.selectBizQuestionGroupSquareList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询问卷组广场",notes = "权限: common:questionGroupSquare:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:questionGroupSquare:query")
+    public CommonResult<BizQuestionGroupSquareDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizQuestionGroupSquareService.selectBizQuestionGroupSquareById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加问卷组广场",notes = "权限: common:questionGroupSquare:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:questionGroupSquare:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizQuestionGroupSquareDTO source) {
+        return CommonResult.success(bizQuestionGroupSquareService.insertBizQuestionGroupSquare(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑问卷组广场",notes = "权限: common:questionGroupSquare:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:questionGroupSquare:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizQuestionGroupSquareDTO source) {
+        return CommonResult.success(bizQuestionGroupSquareService.updateBizQuestionGroupSquareById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除问卷组广场",notes = "权限: common:questionGroupSquare:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:questionGroupSquare:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizQuestionGroupSquareService.removeBizQuestionGroupSquareByIds(ids));
+    }
+}

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

@@ -0,0 +1,83 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizQuestionSquareDTO;
+import cn.tr.module.smart.common.service.IBizQuestionSquareService;
+import cn.tr.module.smart.common.dto.BizQuestionSquareQueryDTO;
+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/05/23 16:50
+ */
+@Api(tags = "问卷调查问题字段广场")
+@RestController
+@RequestMapping("/web/questionSquare")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizQuestionSquareController extends BaseController{
+
+    private final IBizQuestionSquareService bizQuestionSquareService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询问卷调查问题字段",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizQuestionSquareDTO> selectList(@RequestBody BizQuestionSquareQueryDTO query) {
+        startPage();
+        return getDataTable(bizQuestionSquareService.selectBizQuestionSquareList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询问卷调查问题字段",notes = "权限: common:questionSquare:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("common:questionSquare:query")
+    public CommonResult<BizQuestionSquareDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizQuestionSquareService.selectBizQuestionSquareById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加问卷调查问题字段",notes = "权限: common:questionSquare:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("common:questionSquare:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizQuestionSquareDTO source) {
+        return CommonResult.success(bizQuestionSquareService.insertBizQuestionSquare(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑问卷调查问题字段",notes = "权限: common:questionSquare:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("common:questionSquare:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizQuestionSquareDTO source) {
+        return CommonResult.success(bizQuestionSquareService.updateBizQuestionSquareById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除问卷调查问题字段",notes = "权限: common:questionSquare:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("common:questionSquare:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizQuestionSquareService.removeBizQuestionSquareByIds(ids));
+    }
+}

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

@@ -0,0 +1,84 @@
+package cn.tr.module.smart.web.controller;
+
+import cn.dev33.satoken.annotation.SaCheckLogin;
+import cn.tr.module.api.sys.log.enums.LoginType;
+import cn.tr.module.sys.oauth2.LoginTypeConstant;
+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.BizWxUserDTO;
+import cn.tr.module.smart.common.service.IBizWxUserService;
+import cn.tr.module.smart.common.dto.BizWxUserQueryDTO;
+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/05/23 14:03
+ */
+@Api(tags = "微信用户")
+@RestController
+@RequestMapping("/web/wxUser")
+@AllArgsConstructor
+@SaCheckLogin(type = LoginTypeConstant.WEB)
+public class BizWxUserController extends BaseController{
+
+    private final IBizWxUserService bizWxUserService;
+
+    @ApiOperationSupport(author = "lf",order = 1)
+    @ApiOperation(value="根据条件查询微信用户",notes = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BizWxUserDTO> selectList(@RequestBody BizWxUserQueryDTO query) {
+        startPage();
+        return getDataTable(bizWxUserService.selectBizWxUserList(query));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 2)
+    @ApiOperation(value = "根据id查询微信用户",notes = "权限: wx:wxuser:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("wx:wxuser:query")
+    public CommonResult<BizWxUserDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(bizWxUserService.selectBizWxUserById(id));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 3)
+    @ApiOperation(value="添加微信用户",notes = "权限: wx:wxuser:add")
+    @PostMapping("/add")
+    @OperateLog
+    @SaCheckPermission("wx:wxuser:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BizWxUserDTO source) {
+        return CommonResult.success(bizWxUserService.insertBizWxUser(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 4)
+    @ApiOperation(value="通过主键id编辑微信用户",notes = "权限: wx:wxuser:edit")
+    @PostMapping("/edit")
+    @OperateLog
+    @SaCheckPermission("wx:wxuser:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BizWxUserDTO source) {
+        return CommonResult.success(bizWxUserService.updateBizWxUserById(source));
+    }
+
+    @ApiOperationSupport(author = "lf",order = 5)
+    @ApiOperation(value="删除微信用户",notes = "权限: wx:wxuser:remove")
+    @PostMapping("/removeByIds")
+    @OperateLog
+    @SaCheckPermission("wx:wxuser:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(bizWxUserService.removeBizWxUserByIds(ids));
+    }
+}

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

@@ -1,4 +1,4 @@
-package cn.tr.module.smart.wx.dto;
+package cn.tr.module.smart.web.dto;
 
 import io.swagger.annotations.ApiModel;
 import lombok.Data;

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

@@ -1,4 +1,4 @@
-package cn.tr.module.smart.wx.dto;
+package cn.tr.module.smart.web.dto;
 
 import io.swagger.annotations.ApiModel;
 import lombok.Data;

+ 3 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/web/packageInfo.java

@@ -0,0 +1,3 @@
+package cn.tr.module.smart.web;
+
+// Web端接口

+ 1 - 2
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/controller/WxAppletUserController.java

@@ -1,13 +1,12 @@
 package cn.tr.module.smart.wx.controller;
 
 import cn.binarywang.wx.miniapp.api.WxMaService;
-import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
 import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
 import cn.tr.core.exception.ServiceException;
 import cn.tr.core.exception.TRExcCode;
 import cn.tr.core.pojo.CommonResult;
-import cn.tr.module.smart.wx.dto.WxAppletEncodeInfoDTO;
+import cn.tr.module.smart.web.dto.WxAppletEncodeInfoDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;

+ 28 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/mapper/BizClinicMapper.java

@@ -0,0 +1,28 @@
+package cn.tr.module.smart.wx.mapper;
+
+import cn.tr.module.smart.common.po.BizClinicPO;
+import cn.tr.module.smart.common.dto.BizClinicDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 手术信息映射工具
+*
+* @author lf
+* @date  2025/05/23 14:17
+**/
+@Mapper
+public interface BizClinicMapper {
+    BizClinicMapper INSTANCE = Mappers.getMapper(BizClinicMapper.class);
+
+    BizClinicPO convertPO(BizClinicDTO source);
+
+    BizClinicDTO convertDto(BizClinicPO source);
+
+    List<BizClinicDTO> convertDtoList(List<BizClinicPO> source);
+
+    List<BizClinicPO> convertPOList(List<BizClinicDTO> source);
+
+}

+ 3 - 0
tr-modules/tr-module-smartFollowUp/src/main/java/cn/tr/module/smart/wx/packageInfo.java

@@ -0,0 +1,3 @@
+package cn.tr.module.smart.wx;
+
+// 微信小程序接口

+ 2 - 0
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/oauth2/LoginTypeConstant.java

@@ -9,4 +9,6 @@ package cn.tr.module.sys.oauth2;
 
 public interface  LoginTypeConstant {
      String WX_APPLET="WxApplet";
+
+     String WEB="Login";
 }

+ 13 - 3
tr-test/src/main/resources/application-doc.yml

@@ -20,11 +20,21 @@ knife4j:
         api-rule-resources:
           - cn.tr.module.gen.modular.basic
           - cn.tr.module.gen.modular.config
-      smart:
-        group-name: 智慧随访
+      smartWeb:
+        group-name: 智慧随访-Web端
         api-rule: package
         api-rule-resources:
-          - cn.tr.module.smart
+          - cn.tr.module.smart.web
+      smartApplet:
+        group-name: 智慧随访-小程序端
+        api-rule: package
+        api-rule-resources:
+          - cn.tr.module.smart.wx
+      smartDoctor:
+        group-name: 智慧随访-医生端
+        api-rule: package
+        api-rule-resources:
+          - cn.tr.module.smart.app
   setting:
     enable-footer: false
     enable-footer-custom: true

+ 1 - 1
tr-test/src/main/resources/application.yml

@@ -97,7 +97,7 @@ tr:
     ignore-urls:
       - /oauth2/psw/token
       - /sys/log/**
-    enable: false
+    enable: true
 sa-token:
   is-read-header: true
   # token名称 (同时也是cookie名称)