소스 검색

添加光疗仪项目

zhouzeyu 2 주 전
부모
커밋
6e3feaa683
70개의 변경된 파일3694개의 추가작업 그리고 13개의 파일을 삭제
  1. 1 1
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/config/MqttConfiguration.java
  2. 0 2
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/config/MqttInboundConfiguration.java
  3. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusDeviceAlarmController.java
  4. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusDeviceController.java
  5. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusDeviceHistoryController.java
  6. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusHospitalConfigController.java
  7. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusHospitalController.java
  8. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusPatientController.java
  9. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusTherapyPlanController.java
  10. 71 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusTherapyRecordController.java
  11. 57 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceAlarmDTO.java
  12. 49 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceAlarmQueryDTO.java
  13. 73 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceDTO.java
  14. 76 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceHistoryDTO.java
  15. 66 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceHistoryQueryDTO.java
  16. 59 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceQueryDTO.java
  17. 47 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalConfigDTO.java
  18. 39 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalConfigQueryDTO.java
  19. 35 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalDTO.java
  20. 29 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalQueryDTO.java
  21. 70 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusPatientDTO.java
  22. 54 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusPatientQueryDTO.java
  23. 63 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyPlanDTO.java
  24. 49 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyPlanQueryDTO.java
  25. 72 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyRecordDTO.java
  26. 60 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyRecordQueryDTO.java
  27. 33 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/enums/DeviceAlarmEnum.java
  28. 36 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/enums/DeviceStatusEnum.java
  29. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusDeviceAlarmMapper.java
  30. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusDeviceHistoryMapper.java
  31. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusDeviceMapper.java
  32. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusHospitalConfigMapper.java
  33. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusHospitalMapper.java
  34. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusPatientMapper.java
  35. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusTherapyPlanMapper.java
  36. 27 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusTherapyRecordMapper.java
  37. 63 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusDeviceAlarmPO.java
  38. 88 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusDeviceHistoryPO.java
  39. 81 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusDevicePO.java
  40. 49 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusHospitalConfigPO.java
  41. 31 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusHospitalPO.java
  42. 69 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusPatientPO.java
  43. 66 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusTherapyPlanPO.java
  44. 75 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusTherapyRecordPO.java
  45. 1 1
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/properties/MqttProperties.java
  46. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusDeviceAlarmRepository.java
  47. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusDeviceHistoryRepository.java
  48. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusDeviceRepository.java
  49. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusHospitalConfigRepository.java
  50. 15 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusHospitalRepository.java
  51. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusPatientRepository.java
  52. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusTherapyPlanRepository.java
  53. 17 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusTherapyRecordRepository.java
  54. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusDeviceAlarmService.java
  55. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusDeviceHistoryService.java
  56. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusDeviceService.java
  57. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusHospitalConfigService.java
  58. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusHospitalService.java
  59. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusPatientService.java
  60. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusTherapyPlanService.java
  61. 55 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusTherapyRecordService.java
  62. 102 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusDeviceAlarmServiceImpl.java
  63. 108 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusDeviceHistoryServiceImpl.java
  64. 106 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusDeviceServiceImpl.java
  65. 104 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusHospitalConfigServiceImpl.java
  66. 97 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusHospitalServiceImpl.java
  67. 105 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusPatientServiceImpl.java
  68. 103 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusTherapyPlanServiceImpl.java
  69. 107 0
      tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusTherapyRecordServiceImpl.java
  70. 13 9
      tr-test/src/main/resources/application.yml

+ 1 - 1
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/config/MqttConfiguration.java

@@ -11,7 +11,7 @@ import tr.cn.module.phototherapy.common.properties.MqttProperties;
 /**
  * @author zzy
  * @version 1.0
- * @description: TODO
+ * @description: MQTT工厂连接配置
  * @date 2026/1/7 9:08
  */
 @Configuration

+ 0 - 2
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/config/MqttInboundConfiguration.java

@@ -42,8 +42,6 @@ public class MqttInboundConfiguration {
     //配置入站设备器  作用 设置订阅主题,指定消息的相关属性
     @Bean
     public MessageProducer messageProducer() {
-        //MqttPahoMessageDrivenChannelAdapter(String url, String clientId, MqttPahoClientFactory clientFactory,
-        //			String... topic)
         MqttPahoMessageDrivenChannelAdapter messageProducer =
                 new MqttPahoMessageDrivenChannelAdapter(
                         mqttProperties.getUrl(),

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusDeviceAlarmController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusDeviceAlarmDTO;
+import tr.cn.module.phototherapy.common.service.IBusDeviceAlarmService;
+import tr.cn.module.phototherapy.common.dto.BusDeviceAlarmQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 设备报警表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "设备报警表")
+@RestController
+@RequestMapping("/bus/device/alarm")
+@AllArgsConstructor
+public class BusDeviceAlarmController extends BaseController{
+
+    private final IBusDeviceAlarmService busDeviceAlarmService;
+
+    @Operation(summary = "根据条件查询设备报警表", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusDeviceAlarmDTO> selectList(@RequestBody BusDeviceAlarmQueryDTO query) {
+        startPage();
+        return getDataTable(busDeviceAlarmService.selectBusDeviceAlarmList(query));
+    }
+
+    @Operation(summary = "根据id查询设备报警表", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusDeviceAlarmDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(busDeviceAlarmService.selectBusDeviceAlarmById(id));
+    }
+
+    @Operation(summary = "添加设备报警表", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusDeviceAlarmDTO source) {
+        return CommonResult.success(busDeviceAlarmService.insertBusDeviceAlarm(source));
+    }
+
+    @Operation(summary = "通过主键id编辑设备报警表", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusDeviceAlarmDTO source) {
+        return CommonResult.success(busDeviceAlarmService.updateBusDeviceAlarmById(source));
+    }
+
+    @Operation(summary = "删除设备报警表", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busDeviceAlarmService.removeBusDeviceAlarmByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusDeviceController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusDeviceDTO;
+import tr.cn.module.phototherapy.common.service.IBusDeviceService;
+import tr.cn.module.phototherapy.common.dto.BusDeviceQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 设备表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "设备表")
+@RestController
+@RequestMapping("/bus/device")
+@AllArgsConstructor
+public class BusDeviceController extends BaseController{
+
+    private final IBusDeviceService busDeviceService;
+
+    @Operation(summary = "根据条件查询设备表", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusDeviceDTO> selectList(@RequestBody BusDeviceQueryDTO query) {
+        startPage();
+        return getDataTable(busDeviceService.selectBusDeviceList(query));
+    }
+
+    @Operation(summary = "根据id查询设备表", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusDeviceDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(busDeviceService.selectBusDeviceById(id));
+    }
+
+    @Operation(summary = "添加设备表", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusDeviceDTO source) {
+        return CommonResult.success(busDeviceService.insertBusDevice(source));
+    }
+
+    @Operation(summary = "通过主键id编辑设备表", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusDeviceDTO source) {
+        return CommonResult.success(busDeviceService.updateBusDeviceById(source));
+    }
+
+    @Operation(summary = "删除设备表", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busDeviceService.removeBusDeviceByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusDeviceHistoryController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusDeviceHistoryDTO;
+import tr.cn.module.phototherapy.common.service.IBusDeviceHistoryService;
+import tr.cn.module.phototherapy.common.dto.BusDeviceHistoryQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 设备历史控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "设备历史")
+@RestController
+@RequestMapping("/bus/device/history")
+@AllArgsConstructor
+public class BusDeviceHistoryController extends BaseController{
+
+    private final IBusDeviceHistoryService busDeviceHistoryService;
+
+    @Operation(summary = "根据条件查询设备历史", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusDeviceHistoryDTO> selectList(@RequestBody BusDeviceHistoryQueryDTO query) {
+        startPage();
+        return getDataTable(busDeviceHistoryService.selectBusDeviceHistoryList(query));
+    }
+
+    @Operation(summary = "根据id查询设备历史", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusDeviceHistoryDTO> findById(@PathVariable("id") Long id){
+        return CommonResult.success(busDeviceHistoryService.selectBusDeviceHistoryById(id));
+    }
+
+    @Operation(summary = "添加设备历史", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusDeviceHistoryDTO source) {
+        return CommonResult.success(busDeviceHistoryService.insertBusDeviceHistory(source));
+    }
+
+    @Operation(summary = "通过主键id编辑设备历史", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusDeviceHistoryDTO source) {
+        return CommonResult.success(busDeviceHistoryService.updateBusDeviceHistoryById(source));
+    }
+
+    @Operation(summary = "删除设备历史", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<Long> ids) {
+        return CommonResult.success(busDeviceHistoryService.removeBusDeviceHistoryByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusHospitalConfigController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusHospitalConfigDTO;
+import tr.cn.module.phototherapy.common.service.IBusHospitalConfigService;
+import tr.cn.module.phototherapy.common.dto.BusHospitalConfigQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 医院-系统配置表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "医院-系统配置表")
+@RestController
+@RequestMapping("/bus/hospital/config")
+@AllArgsConstructor
+public class BusHospitalConfigController extends BaseController{
+
+    private final IBusHospitalConfigService busHospitalConfigService;
+
+    @Operation(summary = "根据条件查询医院-系统配置表", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusHospitalConfigDTO> selectList(@RequestBody BusHospitalConfigQueryDTO query) {
+        startPage();
+        return getDataTable(busHospitalConfigService.selectBusHospitalConfigList(query));
+    }
+
+    @Operation(summary = "根据id查询医院-系统配置表", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusHospitalConfigDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(busHospitalConfigService.selectBusHospitalConfigById(id));
+    }
+
+    @Operation(summary = "添加医院-系统配置表", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusHospitalConfigDTO source) {
+        return CommonResult.success(busHospitalConfigService.insertBusHospitalConfig(source));
+    }
+
+    @Operation(summary = "通过主键id编辑医院-系统配置表", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusHospitalConfigDTO source) {
+        return CommonResult.success(busHospitalConfigService.updateBusHospitalConfigById(source));
+    }
+
+    @Operation(summary = "删除医院-系统配置表", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busHospitalConfigService.removeBusHospitalConfigByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusHospitalController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusHospitalDTO;
+import tr.cn.module.phototherapy.common.service.IBusHospitalService;
+import tr.cn.module.phototherapy.common.dto.BusHospitalQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 医院信息表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ */
+@Tag(name = "医院信息表")
+@RestController
+@RequestMapping("/hospital")
+@AllArgsConstructor
+public class BusHospitalController extends BaseController{
+
+    private final IBusHospitalService busHospitalService;
+
+    @Operation(summary = "根据条件查询医院信息表", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusHospitalDTO> selectList(@RequestBody BusHospitalQueryDTO query) {
+        startPage();
+        return getDataTable(busHospitalService.selectBusHospitalList(query));
+    }
+
+    @Operation(summary = "根据id查询医院信息表", description = "权限: phototherapy:hospital:query")
+    @GetMapping("/detail/{tenantId}")
+    @SaCheckPermission("phototherapy:hospital:query")
+    public CommonResult<BusHospitalDTO> findById(@PathVariable("tenantId") String tenantId){
+        return CommonResult.success(busHospitalService.selectBusHospitalById(tenantId));
+    }
+
+    @Operation(summary = "添加医院信息表", description = "权限: phototherapy:hospital:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:hospital:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusHospitalDTO source) {
+        return CommonResult.success(busHospitalService.insertBusHospital(source));
+    }
+
+    @Operation(summary = "通过主键id编辑医院信息表", description = "权限: phototherapy:hospital:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:hospital:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusHospitalDTO source) {
+        return CommonResult.success(busHospitalService.updateBusHospitalById(source));
+    }
+
+    @Operation(summary = "删除医院信息表", description = "权限: phototherapy:hospital:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:hospital:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busHospitalService.removeBusHospitalByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusPatientController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusPatientDTO;
+import tr.cn.module.phototherapy.common.service.IBusPatientService;
+import tr.cn.module.phototherapy.common.dto.BusPatientQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 患者表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "患者表")
+@RestController
+@RequestMapping("/bus/patient")
+@AllArgsConstructor
+public class BusPatientController extends BaseController{
+
+    private final IBusPatientService busPatientService;
+
+    @Operation(summary = "根据条件查询患者表", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusPatientDTO> selectList(@RequestBody BusPatientQueryDTO query) {
+        startPage();
+        return getDataTable(busPatientService.selectBusPatientList(query));
+    }
+
+    @Operation(summary = "根据id查询患者表", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusPatientDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(busPatientService.selectBusPatientById(id));
+    }
+
+    @Operation(summary = "添加患者表", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusPatientDTO source) {
+        return CommonResult.success(busPatientService.insertBusPatient(source));
+    }
+
+    @Operation(summary = "通过主键id编辑患者表", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusPatientDTO source) {
+        return CommonResult.success(busPatientService.updateBusPatientById(source));
+    }
+
+    @Operation(summary = "删除患者表", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busPatientService.removeBusPatientByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusTherapyPlanController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusTherapyPlanDTO;
+import tr.cn.module.phototherapy.common.service.IBusTherapyPlanService;
+import tr.cn.module.phototherapy.common.dto.BusTherapyPlanQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 治疗方案表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "设计方案")
+@RestController
+@RequestMapping("/bus/therapyPlan")
+@AllArgsConstructor
+public class BusTherapyPlanController extends BaseController{
+
+    private final IBusTherapyPlanService busTherapyPlanService;
+
+    @Operation(summary = "根据条件查询设计方案", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusTherapyPlanDTO> selectList(@RequestBody BusTherapyPlanQueryDTO query) {
+        startPage();
+        return getDataTable(busTherapyPlanService.selectBusTherapyPlanList(query));
+    }
+
+    @Operation(summary = "根据id查询设计方案", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusTherapyPlanDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(busTherapyPlanService.selectBusTherapyPlanById(id));
+    }
+
+    @Operation(summary = "添加设计方案", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusTherapyPlanDTO source) {
+        return CommonResult.success(busTherapyPlanService.insertBusTherapyPlan(source));
+    }
+
+    @Operation(summary = "通过主键id编辑设计方案", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusTherapyPlanDTO source) {
+        return CommonResult.success(busTherapyPlanService.updateBusTherapyPlanById(source));
+    }
+
+    @Operation(summary = "删除设计方案", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busTherapyPlanService.removeBusTherapyPlanByIds(ids));
+    }
+}

+ 71 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/controller/BusTherapyRecordController.java

@@ -0,0 +1,71 @@
+package tr.cn.module.phototherapy.common.controller;
+
+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.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+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 tr.cn.module.phototherapy.common.dto.BusTherapyRecordDTO;
+import tr.cn.module.phototherapy.common.service.IBusTherapyRecordService;
+import tr.cn.module.phototherapy.common.dto.BusTherapyRecordQueryDTO;
+import java.util.*;
+import cn.tr.core.context.BaseController;
+import org.springframework.web.bind.annotation.*;
+import cn.tr.core.pojo.TableDataInfo;
+
+/**
+ * 治疗记录表控制器
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Tag(name = "治疗记录")
+@RestController
+@RequestMapping("/bus/therapyRecord")
+@AllArgsConstructor
+public class BusTherapyRecordController extends BaseController{
+
+    private final IBusTherapyRecordService busTherapyRecordService;
+
+    @Operation(summary = "根据条件查询治疗记录", description = "权限: 无")
+    @PostMapping("/query/page")
+    public TableDataInfo<BusTherapyRecordDTO> selectList(@RequestBody BusTherapyRecordQueryDTO query) {
+        startPage();
+        return getDataTable(busTherapyRecordService.selectBusTherapyRecordList(query));
+    }
+
+    @Operation(summary = "根据id查询治疗记录", description = "权限: phototherapy:common:query")
+    @GetMapping("/detail/{id}")
+    @SaCheckPermission("phototherapy:common:query")
+    public CommonResult<BusTherapyRecordDTO> findById(@PathVariable("id") String id){
+        return CommonResult.success(busTherapyRecordService.selectBusTherapyRecordById(id));
+    }
+
+    @Operation(summary = "添加治疗记录", description = "权限: phototherapy:common:add")
+    @PostMapping("/add")
+    @SaCheckPermission("phototherapy:common:add")
+    public CommonResult<Boolean> add(@RequestBody@Validated(Insert.class) BusTherapyRecordDTO source) {
+        return CommonResult.success(busTherapyRecordService.insertBusTherapyRecord(source));
+    }
+
+    @Operation(summary = "通过主键id编辑治疗记录", description = "权限: phototherapy:common:edit")
+    @PostMapping("/edit")
+    @SaCheckPermission("phototherapy:common:edit")
+    public CommonResult<Boolean> edit(@RequestBody@Validated(Update.class) BusTherapyRecordDTO source) {
+        return CommonResult.success(busTherapyRecordService.updateBusTherapyRecordById(source));
+    }
+
+    @Operation(summary = "删除治疗记录", description = "权限: phototherapy:common:remove")
+    @PostMapping("/removeByIds")
+    @SaCheckPermission("phototherapy:common:remove")
+    public CommonResult<Integer> delete(@RequestBody Collection<String> ids) {
+        return CommonResult.success(busTherapyRecordService.removeBusTherapyRecordByIds(ids));
+    }
+}

+ 57 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceAlarmDTO.java

@@ -0,0 +1,57 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * 设备报警表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设备报警表传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusDeviceAlarmDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键id")
+    @NotBlank(message = "主键id不能为空", groups = {Update.class})
+    private String id;
+
+    @Schema(description = "设备唯一编码")
+    @NotBlank(message = "设备唯一编码不能为空", groups = {Update.class, Insert.class})
+    private String deviceId;
+
+    @Schema(description = "设备数据上传时间")
+    private LocalDateTime uploadTime;
+
+    @Schema(description = "报警类型")
+    @NotNull(message = "报警类型不能为空", groups = {Update.class, Insert.class})
+    private Integer deviceAlarm;
+
+    @Schema(description = "对应报警的历史记录")
+    @NotBlank(message = "对应报警的历史记录不能为空", groups = {Update.class, Insert.class})
+    private String historyId;
+
+    @Schema(description = "治疗记录表id")
+    @NotBlank(message = "治疗记录表id不能为空", groups = {Update.class, Insert.class})
+    private String therapyId;
+
+    @Schema(description = "设备运行状态")
+    @NotNull(message = "设备运行状态不能为空", groups = {Update.class, Insert.class})
+    private Integer runState;
+
+    @Schema(description = "报警时间")
+    private LocalDateTime alarmTime;
+
+}

+ 49 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceAlarmQueryDTO.java

@@ -0,0 +1,49 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 设备报警表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设备报警表查询参数")
+@ToString
+public class BusDeviceAlarmQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键id")
+    private String id;
+
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    @Schema(description = "设备数据上传时间")
+    private LocalDateTime uploadTime;
+
+    @Schema(description = "报警类型")
+    private Integer deviceAlarm;
+
+    @Schema(description = "对应报警的历史记录")
+    private String historyId;
+
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    @Schema(description = "设备运行状态")
+    private Integer runState;
+
+
+    @Schema(description = "报警时间")
+    private LocalDateTime alarmTime;
+
+}

+ 73 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceDTO.java

@@ -0,0 +1,73 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * 设备表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设备表传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusDeviceDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键id")
+    @NotBlank(message = "主键id不能为空", groups = {Update.class})
+    private String id;
+
+    @Schema(description = "设备唯一编码")
+    @NotBlank(message = "设备唯一编码不能为空", groups = {Update.class, Insert.class})
+    private String deviceId;
+
+    @Schema(description = "治疗记录表id")
+    @NotBlank(message = "治疗记录表id不能为空", groups = {Update.class, Insert.class})
+    private String therapyId;
+
+    @Schema(description = "sim卡卡号")
+    private String simIccid;
+
+    @Schema(description = "移动网络运营商")
+    private String simMno;
+
+    @Schema(description = "是否启用(0启用 1关闭)")
+    @NotNull(message = "是否启用不能为空", groups = {Update.class, Insert.class})
+    private Integer enable;
+
+
+    @Schema(description = "删除标志(0代表存在 1代表删除)")
+    @NotNull(message = "删除标志不能为空", groups = {Update.class, Insert.class})
+    private Integer isDelete;
+
+    @Schema(description = "设备状态(0开机 1关机 3无设备)")
+    @NotNull(message = "设备状态不能为空", groups = {Update.class, Insert.class})
+    private Integer deviceStatus;
+
+    @Schema(description = "设备上传数据时间")
+    private LocalDateTime uploadTime;
+
+    @Schema(description = "设备运行时间")
+    @NotNull(message = "设备运行时间不能为空", groups = {Update.class, Insert.class})
+    private LocalDateTime runTime;
+
+    @Schema(description = "设备关闭时间")
+    @NotNull(message = "设备关闭时间不能为空", groups = {Update.class, Insert.class})
+    private LocalDateTime closeTime;
+
+    @Schema(description = "患者唯一标识")
+    @NotBlank(message = "患者唯一标识不能为空", groups = {Update.class, Insert.class})
+    private String patientUniqueId;
+
+}

+ 76 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceHistoryDTO.java

@@ -0,0 +1,76 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * 设备历史传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设备历史传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusDeviceHistoryDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键")
+    @NotNull(message = "主键不能为空", groups = {Update.class})
+    private Long id;
+
+    @Schema(description = "设备唯一编码")
+    @NotBlank(message = "设备唯一编码不能为空", groups = {Update.class, Insert.class})
+    private String deviceId;
+
+    @Schema(description = "患者唯一标识")
+    @NotBlank(message = "患者唯一标识不能为空", groups = {Update.class, Insert.class})
+    private String patientUniqueId;
+
+    @Schema(description = "治疗记录表id")
+    @NotBlank(message = "治疗记录表id不能为空", groups = {Update.class, Insert.class})
+    private String therapyId;
+
+    @Schema(description = "设备数据标识")
+    private String classification;
+
+    @Schema(description = "数据编码")
+    private Integer dataNumber;
+
+    @Schema(description = "光疗开始时间")
+    private LocalDateTime therapyStartTime;
+
+    @Schema(description = "光疗结束时间")
+    private LocalDateTime therapyEndTime;
+
+    @Schema(description = "治疗时长")
+    @NotNull(message = "治疗时长不能为空", groups = {Update.class, Insert.class})
+    private Integer therapyDuration;
+
+    @Schema(description = "设备上传数据时间")
+    private LocalDateTime uploadTime;
+
+    @Schema(description = "设备运行状态(0关机 1开机 2治疗中)")
+    @NotNull(message = "设备运行状态不能为空", groups = {Update.class, Insert.class})
+    private Integer runState;
+
+    @Schema(description = "设备报警状态")
+    @NotNull(message = "设备报警状态不能为空", groups = {Update.class, Insert.class})
+    private Integer alarmState;
+
+    @Schema(description = "低电量提醒")
+    private Integer warnLowBattery;
+
+    @Schema(description = "报警详情")
+    private String alarmDesc;
+
+}

+ 66 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceHistoryQueryDTO.java

@@ -0,0 +1,66 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 设备历史查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设备历史查询参数")
+@ToString
+public class BusDeviceHistoryQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键")
+    private Long id;
+
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    @Schema(description = "患者唯一标识")
+    private String patientUniqueId;
+
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    @Schema(description = "设备数据标识")
+    private String classification;
+
+    @Schema(description = "数据编码")
+    private Integer dataNumber;
+
+    @Schema(description = "光疗开始时间")
+    private LocalDateTime therapyStartTime;
+
+    @Schema(description = "光疗结束时间")
+    private LocalDateTime therapyEndTime;
+
+    @Schema(description = "治疗时长")
+    private Integer therapyDuration;
+
+    @Schema(description = "设备上传数据时间")
+    private LocalDateTime uploadTime;
+
+    @Schema(description = "设备运行状态(0关机 1开机 2治疗中)")
+    private Integer runState;
+
+    @Schema(description = "设备报警状态")
+    private Integer alarmState;
+
+    @Schema(description = "低电量提醒")
+    private Integer warnLowBattery;
+
+    @Schema(description = "报警详情")
+    private String alarmDesc;
+
+}

+ 59 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusDeviceQueryDTO.java

@@ -0,0 +1,59 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serializable;
+
+/**
+ * 设备表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设备表查询参数")
+@ToString
+public class BusDeviceQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键id")
+    private String id;
+
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    @Schema(description = "sim卡卡号")
+    private String simIccid;
+
+    @Schema(description = "移动网络运营商")
+    private String simMno;
+
+    @Schema(description = "是否启用(0启用 1关闭)")
+    private Integer enable;
+
+
+    @Schema(description = "删除标志(0代表存在 1代表删除)")
+    private Integer isDelete;
+
+    @Schema(description = "设备状态(0开机 1关机 3无设备)")
+    private Integer deviceStatus;
+
+    @Schema(description = "设备上传数据时间")
+    private LocalDateTime uploadTime;
+
+    @Schema(description = "设备运行时间")
+    private LocalDateTime runTime;
+
+    @Schema(description = "设备关闭时间")
+    private LocalDateTime closeTime;
+
+    @Schema(description = "患者唯一标识")
+    private String patientUniqueId;
+
+}

+ 47 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalConfigDTO.java

@@ -0,0 +1,47 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * 医院-系统配置表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "医院-系统配置表传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusHospitalConfigDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键")
+    @NotBlank(message = "主键不能为空", groups = {Update.class})
+    private String id;
+
+    @Schema(description = "依从性阈值(%)")
+    @NotNull(message = "依从性阈值不能为空", groups = {Update.class, Insert.class})
+    private BigDecimal complianceThreshold;
+
+    @Schema(description = "偏离计划时间(小时)")
+    @NotNull(message = "偏离计划时间不能为空", groups = {Update.class, Insert.class})
+    private Integer deviationPlanTime;
+
+    @Schema(description = "强化期时间(天)")
+    @NotNull(message = "强化期时间不能为空", groups = {Update.class, Insert.class})
+    private Integer strongPeriodDays;
+
+    @Schema(description = "维持期时间(天)")
+    @NotNull(message = "维持期时间不能为空", groups = {Update.class, Insert.class})
+    private Integer maintenancePeriodDays;
+
+}

+ 39 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalConfigQueryDTO.java

@@ -0,0 +1,39 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serializable;
+
+/**
+ * 医院-系统配置表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "医院-系统配置表查询参数")
+@ToString
+public class BusHospitalConfigQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键")
+    private String id;
+
+    @Schema(description = "依从性阈值(%)")
+    private BigDecimal complianceThreshold;
+
+    @Schema(description = "偏离计划时间(小时)")
+    private Integer deviationPlanTime;
+
+    @Schema(description = "强化期时间(天)")
+    private Integer strongPeriodDays;
+
+    @Schema(description = "维持期时间(天)")
+    private Integer maintenancePeriodDays;
+
+
+}

+ 35 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalDTO.java

@@ -0,0 +1,35 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 医院信息表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ **/
+@Data
+@Schema(description = "医院信息表传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusHospitalDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "医院编号")
+    @NotBlank(message = "医院编号不能为空", groups = {Update.class, Insert.class})
+    private String tenantId;
+
+    @Schema(description = "医院名称")
+    @NotBlank(message = "医院名称不能为空", groups = {Update.class, Insert.class})
+    private String hospitalName;
+
+    @Schema(description = "logo文件")
+    private String logoPath;
+}

+ 29 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusHospitalQueryDTO.java

@@ -0,0 +1,29 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 医院信息表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ **/
+@Data
+@Schema(description = "医院信息表查询参数")
+@ToString
+public class BusHospitalQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "医院编号")
+    private String tenantId;
+
+    @Schema(description = "医院名称")
+    private String hospitalName;
+
+    @Schema(description = "logo文件")
+    private String logoPath;
+}

+ 70 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusPatientDTO.java

@@ -0,0 +1,70 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import java.time.LocalDateTime;
+
+/**
+ * 患者表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "患者表传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusPatientDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "患者唯一编码")
+    @NotBlank(message = "患者唯一编码不能为空", groups = {Update.class})
+    private String id;
+
+    @Schema(description = "患者姓名")
+    private String name;
+
+    @Schema(description = "患者性别")
+    private String gender;
+
+    @Schema(description = "治疗记录表id")
+    @NotBlank(message = "治疗记录表id不能为空", groups = {Update.class, Insert.class})
+    private String therapyId;
+
+    @Schema(description = "记录开始时间")
+    private LocalDateTime createTime;
+
+    @Schema(description = "记录添加人")
+    private String createBy;
+
+    @Schema(description = "记录结束时间")
+    private LocalDateTime updateTime;
+
+    @Schema(description = "记录修改人")
+    private String updateBy;
+
+    @Schema(description = "删除标志(0代表存在 1代表删除)")
+    private Integer isDelete;
+
+    @Schema(description = "设备id")
+    private String deviceId;
+
+    @Schema(description = "患者年龄")
+    private Integer age;
+
+    @Schema(description = "患者联系电话")
+    private String phone;
+
+    @Schema(description = "关联治疗方案表id")
+    private String therapyPlanId;
+
+    @Schema(description = "患者唯一编码")
+    private String patientUniqueId;
+
+}

+ 54 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusPatientQueryDTO.java

@@ -0,0 +1,54 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 患者表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "患者表查询参数")
+@ToString
+public class BusPatientQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "患者唯一编码")
+    private String id;
+
+    @Schema(description = "患者姓名")
+    private String name;
+
+    @Schema(description = "患者性别")
+    private String gender;
+
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    @Schema(description = "删除标志(0代表存在 1代表删除)")
+    private Integer isDelete;
+
+    @Schema(description = "设备id")
+    private String deviceId;
+
+    @Schema(description = "患者年龄")
+    private Integer age;
+
+    @Schema(description = "患者联系电话")
+    private String phone;
+
+    @Schema(description = "关联治疗方案表id")
+    private String therapyPlanId;
+
+    @Schema(description = "患者唯一编码")
+    private String patientUniqueId;
+
+}

+ 63 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyPlanDTO.java

@@ -0,0 +1,63 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * 治疗方案表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设计方案传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusTherapyPlanDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "方案主键")
+    @NotBlank(message = "方案主键不能为空", groups = {Update.class})
+    private String id;
+
+    @Schema(description = "方案医生")
+    @NotBlank(message = "方案医生不能为空", groups = {Update.class, Insert.class})
+    private String planDoctor;
+
+    @Schema(description = "方案名称")
+    @NotBlank(message = "方案名称不能为空", groups = {Update.class, Insert.class})
+    private String planName;
+
+    @Schema(description = "阶段类型")
+    @NotBlank(message = "阶段类型不能为空", groups = {Update.class, Insert.class})
+    private String phaseType;
+
+    @Schema(description = "阶段目标次数")
+    @NotNull(message = "阶段目标次数不能为空", groups = {Update.class, Insert.class})
+    private Integer phaseTargetTimes;
+
+    @Schema(description = "阶段频率(如每日1次/隔日1次/每周3次)")
+    @NotBlank(message = "阶段频率不能为空", groups = {Update.class, Insert.class})
+    private String phaseFreq;
+
+    @Schema(description = "阶段建议时长")
+    @NotNull(message = "阶段建议时长不能为空", groups = {Update.class, Insert.class})
+    private Integer phaseDurationMin;
+
+    @Schema(description = "方案状态(0启用 1等待启用 2终止)")
+    @NotNull(message = "方案状态不能为空", groups = {Update.class, Insert.class})
+    private Integer therapyStatus;
+
+    @Schema(description = "逻辑删除(0存在 1删除)")
+    @NotNull(message = "逻辑删除不能为空", groups = {Update.class, Insert.class})
+    private Integer isDelete;
+
+}

+ 49 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyPlanQueryDTO.java

@@ -0,0 +1,49 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 治疗方案表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "设计方案查询参数")
+@ToString
+public class BusTherapyPlanQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "方案主键")
+    private String id;
+
+    @Schema(description = "方案医生")
+    private String planDoctor;
+
+    @Schema(description = "方案名称")
+    private String planName;
+
+    @Schema(description = "阶段类型")
+    private String phaseType;
+
+    @Schema(description = "阶段目标次数")
+    private Integer phaseTargetTimes;
+
+    @Schema(description = "阶段频率(如每日1次/隔日1次/每周3次)")
+    private String phaseFreq;
+
+    @Schema(description = "阶段建议时长")
+    private Integer phaseDurationMin;
+
+    @Schema(description = "方案状态(0启用 1等待启用 2终止)")
+    private Integer therapyStatus;
+
+    @Schema(description = "逻辑删除(0存在 1删除)")
+    private Integer isDelete;
+
+}

+ 72 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyRecordDTO.java

@@ -0,0 +1,72 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import cn.tr.core.pojo.BaseDTO;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import cn.tr.core.validation.Insert;
+import cn.tr.core.validation.Update;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * 治疗记录表传输对象
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "治疗记录传输对象")
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusTherapyRecordDTO extends BaseDTO  {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键id")
+    @NotBlank(message = "主键id不能为空", groups = {Update.class})
+    private String id;
+
+    @Schema(description = "设备唯一编码")
+    @NotBlank(message = "设备唯一编码不能为空", groups = {Update.class, Insert.class})
+    private String deviceId;
+
+    @Schema(description = "所绑定的临床id")
+    @NotBlank(message = "所绑定的临床id不能为空", groups = {Update.class, Insert.class})
+    private String clinicId;
+
+    @Schema(description = "光疗开始时间")
+    private LocalDateTime therapyStartTime;
+
+    @Schema(description = "光疗结束时间")
+    private LocalDateTime therapyEndTime;
+
+    @Schema(description = "累计治疗时长(不用实时)")
+    @NotNull(message = "累计治疗时长不能为空", groups = {Update.class, Insert.class})
+    private Integer therapyDuration;
+
+    @Schema(description = "治疗状态( 0=进行中 1=治疗结束 2=未进行)")
+    @NotNull(message = "治疗状态不能为空", groups = {Update.class, Insert.class})
+    private Integer therapyStatus;
+
+    @Schema(description = "治疗备注")
+    private String remark;
+
+    @Schema(description = "患者唯一标识")
+    @NotBlank(message = "患者唯一标识不能为空", groups = {Update.class, Insert.class})
+    private String patientUniqueId;
+
+    @Schema(description = "间断超过72小时未治疗(0未显示  1显示)")
+    @NotNull(message = "间断超过72小时未治疗不能为空", groups = {Update.class, Insert.class})
+    private Integer overTherapy;
+
+    @Schema(description = "依从性报警(0未显示  1显示)")
+    @NotNull(message = "依从性报警不能为空", groups = {Update.class, Insert.class})
+    private Integer complianceAlarm;
+
+    @Schema(description = "删除标志(0存在  1删除)")
+    @NotNull(message = "删除标志不能为空", groups = {Update.class, Insert.class})
+    private Integer isDelete;
+
+}

+ 60 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/dto/BusTherapyRecordQueryDTO.java

@@ -0,0 +1,60 @@
+package tr.cn.module.phototherapy.common.dto;
+
+import lombok.ToString;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 治疗记录表查询参数
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@Schema(description = "治疗记录查询参数")
+@ToString
+public class BusTherapyRecordQueryDTO  implements Serializable{
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "主键id")
+    private String id;
+
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    @Schema(description = "所绑定的临床id")
+    private String clinicId;
+
+    @Schema(description = "光疗开始时间")
+    private LocalDateTime therapyStartTime;
+
+    @Schema(description = "光疗结束时间")
+    private LocalDateTime therapyEndTime;
+
+    @Schema(description = "累计治疗时长(不用实时)")
+    private Integer therapyDuration;
+
+    @Schema(description = "治疗状态( 0=进行中 1=治疗结束 2=未进行)")
+    private Integer therapyStatus;
+
+    @Schema(description = "治疗备注")
+    private String remark;
+
+    @Schema(description = "患者唯一标识")
+    private String patientUniqueId;
+
+    @Schema(description = "间断超过72小时未治疗(0未显示  1显示)")
+    private Integer overTherapy;
+
+    @Schema(description = "依从性报警(0未显示  1显示)")
+    private Integer complianceAlarm;
+
+    @Schema(description = "删除标志(0存在  1删除)")
+    private Integer isDelete;
+
+}

+ 33 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/enums/DeviceAlarmEnum.java

@@ -0,0 +1,33 @@
+package tr.cn.module.phototherapy.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AlarmEnum.java
+ * @Description 光疗仪报警类型
+ * @createTime 2022年03月27日 09:49:00
+ */
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum DeviceAlarmEnum implements IEnum<Integer> {
+
+    //    以下为报警信息状态
+    None(0,"无报警"),
+    TamperAlarm(1,"脱离报警");
+
+
+
+    @Getter
+    @Schema(defaultValue = "报警编码")
+    private Integer value;
+    @Getter
+    @Schema(defaultValue = "报警内容")
+    private String text;
+
+}

+ 36 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/enums/DeviceStatusEnum.java

@@ -0,0 +1,36 @@
+package tr.cn.module.phototherapy.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AlarmEnum.java
+ * @Description 光疗仪状态类型
+ * @createTime 2022年03月27日 09:49:00
+ */
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum DeviceStatusEnum implements IEnum<Integer> {
+
+    Shutdown(0,"在线"),
+    StartUp(1,"离线"),
+    NoDevice(2,"无设备");
+
+
+
+    /**
+     * 与枚举ordinal保持一致
+     */
+    @Getter
+    @Schema(defaultValue = "运行状态编码")
+    private Integer value;
+    @Getter
+    @Schema(defaultValue = "运行状态内容")
+    private String text;
+
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusDeviceAlarmMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusDeviceAlarmPO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceAlarmDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 设备报警表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusDeviceAlarmMapper {
+    BusDeviceAlarmMapper INSTANCE = Mappers.getMapper(BusDeviceAlarmMapper.class);
+
+    BusDeviceAlarmPO convertPO(BusDeviceAlarmDTO source);
+
+    BusDeviceAlarmDTO convertDto(BusDeviceAlarmPO source);
+
+    List<BusDeviceAlarmDTO> convertDtoList(List<BusDeviceAlarmPO> source);
+
+    List<BusDeviceAlarmPO> convertPOList(List<BusDeviceAlarmDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusDeviceHistoryMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusDeviceHistoryPO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceHistoryDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 设备历史映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusDeviceHistoryMapper {
+    BusDeviceHistoryMapper INSTANCE = Mappers.getMapper(BusDeviceHistoryMapper.class);
+
+    BusDeviceHistoryPO convertPO(BusDeviceHistoryDTO source);
+
+    BusDeviceHistoryDTO convertDto(BusDeviceHistoryPO source);
+
+    List<BusDeviceHistoryDTO> convertDtoList(List<BusDeviceHistoryPO> source);
+
+    List<BusDeviceHistoryPO> convertPOList(List<BusDeviceHistoryDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusDeviceMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusDevicePO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 设备表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusDeviceMapper {
+    BusDeviceMapper INSTANCE = Mappers.getMapper(BusDeviceMapper.class);
+
+    BusDevicePO convertPO(BusDeviceDTO source);
+
+    BusDeviceDTO convertDto(BusDevicePO source);
+
+    List<BusDeviceDTO> convertDtoList(List<BusDevicePO> source);
+
+    List<BusDevicePO> convertPOList(List<BusDeviceDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusHospitalConfigMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusHospitalConfigPO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalConfigDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 医院-系统配置表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusHospitalConfigMapper {
+    BusHospitalConfigMapper INSTANCE = Mappers.getMapper(BusHospitalConfigMapper.class);
+
+    BusHospitalConfigPO convertPO(BusHospitalConfigDTO source);
+
+    BusHospitalConfigDTO convertDto(BusHospitalConfigPO source);
+
+    List<BusHospitalConfigDTO> convertDtoList(List<BusHospitalConfigPO> source);
+
+    List<BusHospitalConfigPO> convertPOList(List<BusHospitalConfigDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusHospitalMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusHospitalPO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 医院信息表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-12
+**/
+@Mapper
+public interface BusHospitalMapper {
+    BusHospitalMapper INSTANCE = Mappers.getMapper(BusHospitalMapper.class);
+
+    BusHospitalPO convertPO(BusHospitalDTO source);
+
+    BusHospitalDTO convertDto(BusHospitalPO source);
+
+    List<BusHospitalDTO> convertDtoList(List<BusHospitalPO> source);
+
+    List<BusHospitalPO> convertPOList(List<BusHospitalDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusPatientMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusPatientPO;
+import tr.cn.module.phototherapy.common.dto.BusPatientDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 患者表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusPatientMapper {
+    BusPatientMapper INSTANCE = Mappers.getMapper(BusPatientMapper.class);
+
+    BusPatientPO convertPO(BusPatientDTO source);
+
+    BusPatientDTO convertDto(BusPatientPO source);
+
+    List<BusPatientDTO> convertDtoList(List<BusPatientPO> source);
+
+    List<BusPatientPO> convertPOList(List<BusPatientDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusTherapyPlanMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusTherapyPlanPO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyPlanDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 治疗方案表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusTherapyPlanMapper {
+    BusTherapyPlanMapper INSTANCE = Mappers.getMapper(BusTherapyPlanMapper.class);
+
+    BusTherapyPlanPO convertPO(BusTherapyPlanDTO source);
+
+    BusTherapyPlanDTO convertDto(BusTherapyPlanPO source);
+
+    List<BusTherapyPlanDTO> convertDtoList(List<BusTherapyPlanPO> source);
+
+    List<BusTherapyPlanPO> convertPOList(List<BusTherapyPlanDTO> source);
+}

+ 27 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/mapper/BusTherapyRecordMapper.java

@@ -0,0 +1,27 @@
+package tr.cn.module.phototherapy.common.mapper;
+
+import tr.cn.module.phototherapy.common.po.BusTherapyRecordPO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyRecordDTO;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+* 治疗记录表映射工具
+*
+* @author CodeGenerator
+* @date 2026-01-13
+**/
+@Mapper
+public interface BusTherapyRecordMapper {
+    BusTherapyRecordMapper INSTANCE = Mappers.getMapper(BusTherapyRecordMapper.class);
+
+    BusTherapyRecordPO convertPO(BusTherapyRecordDTO source);
+
+    BusTherapyRecordDTO convertDto(BusTherapyRecordPO source);
+
+    List<BusTherapyRecordDTO> convertDtoList(List<BusTherapyRecordPO> source);
+
+    List<BusTherapyRecordPO> convertPOList(List<BusTherapyRecordDTO> source);
+}

+ 63 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusDeviceAlarmPO.java

@@ -0,0 +1,63 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 设备报警表实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@TableName(value = "bus_device_alarm", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusDeviceAlarmPO extends TenantPO {
+
+    /** 主键id */
+    @TableId
+    @Schema(description = "主键id")
+    private String id;
+
+    /** 设备唯一编码 */
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    /** 设备数据上传时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "设备数据上传时间")
+    private LocalDateTime uploadTime;
+
+    /** 报警类型 */
+    @Schema(description = "报警类型")
+    private Integer deviceAlarm;
+
+    /** 对应报警的历史记录 */
+    @Schema(description = "对应报警的历史记录")
+    private String historyId;
+
+    /** 治疗记录表id */
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    /** 设备运行状态 */
+    @Schema(description = "设备运行状态")
+    private Integer runState;
+
+    /** 报警时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "报警时间")
+    private LocalDateTime alarmTime;
+
+}

+ 88 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusDeviceHistoryPO.java

@@ -0,0 +1,88 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 设备历史实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@TableName(value = "bus_device_history", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusDeviceHistoryPO extends TenantPO {
+
+    /** 主键 */
+    @TableId
+    @Schema(description = "主键")
+    private Long id;
+
+    /** 设备唯一编码 */
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    /** 患者唯一标识 */
+    @Schema(description = "患者唯一标识")
+    private String patientUniqueId;
+
+    /** 治疗记录表id */
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    /** 设备数据标识 */
+    @Schema(description = "设备数据标识")
+    private String classification;
+
+    /** 数据编码 */
+    @Schema(description = "数据编码")
+    private Integer dataNumber;
+
+    /** 光疗开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "光疗开始时间")
+    private LocalDateTime therapyStartTime;
+
+    /** 光疗结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "光疗结束时间")
+    private LocalDateTime therapyEndTime;
+
+    /** 治疗时长 */
+    @Schema(description = "治疗时长")
+    private Integer therapyDuration;
+
+    /** 设备上传数据时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "设备上传数据时间")
+    private LocalDateTime uploadTime;
+
+    /** 设备运行状态(0关机 1开机 2治疗中) */
+    @Schema(description = "设备运行状态(0关机 1开机 2治疗中)")
+    private Integer runState;
+
+    /** 设备报警状态 */
+    @Schema(description = "设备报警状态")
+    private Integer alarmState;
+
+    /** 低电量提醒 */
+    @Schema(description = "低电量提醒")
+    private Integer warnLowBattery;
+
+    /** 报警详情 */
+    @Schema(description = "报警详情")
+    private String alarmDesc;
+
+}

+ 81 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusDevicePO.java

@@ -0,0 +1,81 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 设备表实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@TableName(value = "bus_device", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusDevicePO extends TenantPO {
+
+    /** 主键id */
+    @TableId
+    @Schema(description = "主键id")
+    private String id;
+
+    /** 设备唯一编码 */
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    /** 治疗记录表id */
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    /** sim卡卡号 */
+    @Schema(description = "sim卡卡号")
+    private String simIccid;
+
+    /** 移动网络运营商 */
+    @Schema(description = "移动网络运营商")
+    private String simMno;
+
+    /** 是否启用(0启用 1关闭) */
+    @Schema(description = "是否启用(0启用 1关闭)")
+    private Integer enable;
+
+
+    /** 删除标志(0代表存在 1代表删除) */
+    @Schema(description = "删除标志(0代表存在 1代表删除)")
+    private Integer isDelete;
+
+    /** 设备状态(0开机 1关机 3无设备) */
+    @Schema(description = "设备状态(0开机 1关机 3无设备)")
+    private Integer deviceStatus;
+
+    /** 设备上传数据时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "设备上传数据时间")
+    private LocalDateTime uploadTime;
+
+    /** 设备运行时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "设备运行时间")
+    private LocalDateTime runTime;
+
+    /** 设备关闭时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "设备关闭时间")
+    private LocalDateTime closeTime;
+
+    /** 患者唯一标识 */
+    @Schema(description = "患者唯一标识")
+    private String patientUniqueId;
+
+}

+ 49 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusHospitalConfigPO.java

@@ -0,0 +1,49 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 医院-系统配置表实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@TableName(value = "bus_hospital_config", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusHospitalConfigPO extends TenantPO {
+
+    /** 主键 */
+    @TableId
+    @Schema(description = "主键")
+    private String id;
+
+    /** 依从性阈值(%) */
+    @Schema(description = "依从性阈值(%)")
+    private BigDecimal complianceThreshold;
+
+    /** 偏离计划时间(小时) */
+    @Schema(description = "偏离计划时间(小时)")
+    private Integer deviationPlanTime;
+
+    /** 强化期时间(天) */
+    @Schema(description = "强化期时间(天)")
+    private Integer strongPeriodDays;
+
+    /** 维持期时间(天) */
+    @Schema(description = "维持期时间(天)")
+    private Integer maintenancePeriodDays;
+
+}

+ 31 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusHospitalPO.java

@@ -0,0 +1,31 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 医院信息表实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ **/
+@Data
+@TableName(value = "bus_hospital", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusHospitalPO extends TenantPO {
+
+
+    /** 医院名称 */
+    @Schema(description = "医院名称")
+    private String hospitalName;
+
+    /** logo文件 */
+    @Schema(description = "logo文件")
+    private String logoPath;
+}

+ 69 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusPatientPO.java

@@ -0,0 +1,69 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 患者表实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@TableName(value = "bus_patient", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusPatientPO extends TenantPO {
+
+    /** 患者唯一编码 */
+    @TableId
+    @Schema(description = "患者唯一编码")
+    private String id;
+
+    /** 患者姓名 */
+    @Schema(description = "患者姓名")
+    private String name;
+
+    /** 患者性别 */
+    @Schema(description = "患者性别")
+    private String gender;
+
+    /** 治疗记录表id */
+    @Schema(description = "治疗记录表id")
+    private String therapyId;
+
+    /** 删除标志(0代表存在 1代表删除) */
+    @Schema(description = "删除标志(0代表存在 1代表删除)")
+    private Integer isDelete;
+
+    /** 设备id */
+    @Schema(description = "设备id")
+    private String deviceId;
+
+    /** 患者年龄 */
+    @Schema(description = "患者年龄")
+    private Integer age;
+
+    /** 患者联系电话 */
+    @Schema(description = "患者联系电话")
+    private String phone;
+
+    /** 关联治疗方案表id */
+    @Schema(description = "关联治疗方案表id")
+    private String therapyPlanId;
+
+    /** 患者唯一编码 */
+    @Schema(description = "患者唯一编码")
+    private String patientUniqueId;
+
+}

+ 66 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusTherapyPlanPO.java

@@ -0,0 +1,66 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 治疗方案表实体
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Data
+@TableName(value = "bus_therapy_plan", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusTherapyPlanPO extends TenantPO {
+
+    /** 方案主键 */
+    @TableId
+    @Schema(description = "方案主键")
+    private String id;
+
+    /** 方案医生 */
+    @Schema(description = "方案医生")
+    private String planDoctor;
+
+    /** 方案名称 */
+    @Schema(description = "方案名称")
+    private String planName;
+
+    /** 阶段类型 */
+    @Schema(description = "阶段类型")
+    private String phaseType;
+
+    /** 阶段目标次数 */
+    @Schema(description = "阶段目标次数")
+    private Integer phaseTargetTimes;
+
+    /** 阶段频率(如每日1次/隔日1次/每周3次) */
+    @Schema(description = "阶段频率(如每日1次/隔日1次/每周3次)")
+    private String phaseFreq;
+
+    /** 阶段建议时长 */
+    @Schema(description = "阶段建议时长")
+    private Integer phaseDurationMin;
+
+    /** 方案状态(0启用 1等待启用 2终止) */
+    @Schema(description = "方案状态(0启用 1等待启用 2终止)")
+    private Integer therapyStatus;
+
+
+    /** 逻辑删除(0存在 1删除) */
+    @Schema(description = "逻辑删除(0存在 1删除)")
+    private Integer isDelete;
+
+}

+ 75 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/po/BusTherapyRecordPO.java

@@ -0,0 +1,75 @@
+package tr.cn.module.phototherapy.common.po;
+
+import cn.tr.core.pojo.TenantPO;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import java.time.LocalDateTime;
+
+/**
+ * 治疗记录表
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ */
+@Data
+@TableName(value = "bus_therapy_record", autoResultMap = true)
+@EqualsAndHashCode(callSuper = true)
+@ToString
+public class BusTherapyRecordPO extends TenantPO {
+
+    /** 主键id */
+    @TableId(type = IdType.ASSIGN_ID)
+    @Schema(description = "主键id")
+    private String id;
+
+    /** 设备唯一编码 */
+    @Schema(description = "设备唯一编码")
+    private String deviceId;
+
+    /** 所绑定的临床id */
+    @Schema(description = "所绑定的临床id")
+    private String clinicId;
+
+    /** 光疗开始时间 */
+    @Schema(description = "光疗开始时间")
+    private LocalDateTime therapyStartTime;
+
+    /** 光疗结束时间 */
+    @Schema(description = "光疗结束时间")
+    private LocalDateTime therapyEndTime;
+
+    /** 累计治疗时长(不用实时) */
+    @Schema(description = "累计治疗时长(不用实时)")
+    private Integer therapyDuration;
+
+    /** 治疗状态( 0=进行中 1=治疗结束 2=未进行) */
+    @Schema(description = "治疗状态( 0=进行中 1=治疗结束 2=未进行)")
+    private Integer therapyStatus;
+
+    /** 治疗备注 */
+    @Schema(description = "治疗备注")
+    private String remark;
+
+    /** 患者唯一标识 */
+    @Schema(description = "患者唯一标识")
+    private String patientUniqueId;
+
+    /** 间断超过72小时未治疗(0未显示  1显示) */
+    @Schema(description = "间断超过72小时未治疗(0未显示  1显示)")
+    private Integer overTherapy;
+
+    /** 依从性报警(0未显示  1显示) */
+    @Schema(description = "依从性报警(0未显示  1显示)")
+    private Integer complianceAlarm;
+
+
+    /** 删除标志(0存在  1删除) */
+    @Schema(description = "删除标志(0存在  1删除)")
+    private Integer isDelete;
+}

+ 1 - 1
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/properties/MqttProperties.java

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
  */
 @Data
 @Component
-@ConfigurationProperties(prefix = "spring.mqtt")
+@ConfigurationProperties(prefix = "spring.integration.mqtt")
 public class MqttProperties {
     private String username;
     private String password;

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusDeviceAlarmRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusDeviceAlarmPO;
+
+/**
+ * 设备报警表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusDeviceAlarmRepository extends BaseMapper<BusDeviceAlarmPO> {
+}

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusDeviceHistoryRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusDeviceHistoryPO;
+
+/**
+ * 设备历史Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusDeviceHistoryRepository extends BaseMapper<BusDeviceHistoryPO> {
+}

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusDeviceRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusDevicePO;
+
+/**
+ * 设备表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusDeviceRepository extends BaseMapper<BusDevicePO> {
+}

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusHospitalConfigRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusHospitalConfigPO;
+
+/**
+ * 医院-系统配置表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusHospitalConfigRepository extends BaseMapper<BusHospitalConfigPO> {
+}

+ 15 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusHospitalRepository.java

@@ -0,0 +1,15 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import tr.cn.module.phototherapy.common.po.BusHospitalPO;
+
+/**
+ * 医院信息表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ **/
+@Mapper
+public interface BusHospitalRepository extends BaseMapper<BusHospitalPO> {
+}

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusPatientRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusPatientPO;
+
+/**
+ * 患者表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusPatientRepository extends BaseMapper<BusPatientPO> {
+}

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusTherapyPlanRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusTherapyPlanPO;
+
+/**
+ * 治疗方案表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusTherapyPlanRepository extends BaseMapper<BusTherapyPlanPO> {
+}

+ 17 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/repository/BusTherapyRecordRepository.java

@@ -0,0 +1,17 @@
+package tr.cn.module.phototherapy.common.repository;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.*;
+import tr.cn.module.phototherapy.common.po.BusTherapyRecordPO;
+
+/**
+ * 治疗记录表Mapper接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Mapper
+public interface BusTherapyRecordRepository extends BaseMapper<BusTherapyRecordPO> {
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusDeviceAlarmService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusDeviceAlarmDTO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceAlarmQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 设备报警表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusDeviceAlarmService{
+
+    /**
+     * 根据条件查询设备报警表
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusDeviceAlarmDTO> selectBusDeviceAlarmList(BusDeviceAlarmQueryDTO query);
+
+    /**
+     * 根据id查询设备报警表
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusDeviceAlarmDTO selectBusDeviceAlarmById(String id);
+
+    /**
+     * 编辑设备报警表
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusDeviceAlarmById(BusDeviceAlarmDTO source);
+
+    /**
+     * 新增设备报警表
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusDeviceAlarm(BusDeviceAlarmDTO source);
+
+    /**
+     * 删除设备报警表详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusDeviceAlarmByIds(Collection<String> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusDeviceHistoryService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusDeviceHistoryDTO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceHistoryQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 设备历史Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusDeviceHistoryService{
+
+    /**
+     * 根据条件查询设备历史
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusDeviceHistoryDTO> selectBusDeviceHistoryList(BusDeviceHistoryQueryDTO query);
+
+    /**
+     * 根据id查询设备历史
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusDeviceHistoryDTO selectBusDeviceHistoryById(Long id);
+
+    /**
+     * 编辑设备历史
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusDeviceHistoryById(BusDeviceHistoryDTO source);
+
+    /**
+     * 新增设备历史
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusDeviceHistory(BusDeviceHistoryDTO source);
+
+    /**
+     * 删除设备历史详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusDeviceHistoryByIds(Collection<Long> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusDeviceService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusDeviceDTO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 设备表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusDeviceService{
+
+    /**
+     * 根据条件查询设备表
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusDeviceDTO> selectBusDeviceList(BusDeviceQueryDTO query);
+
+    /**
+     * 根据id查询设备表
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusDeviceDTO selectBusDeviceById(String id);
+
+    /**
+     * 编辑设备表
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusDeviceById(BusDeviceDTO source);
+
+    /**
+     * 新增设备表
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusDevice(BusDeviceDTO source);
+
+    /**
+     * 删除设备表详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusDeviceByIds(Collection<String> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusHospitalConfigService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusHospitalConfigDTO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalConfigQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 医院-系统配置表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusHospitalConfigService{
+
+    /**
+     * 根据条件查询医院-系统配置表
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusHospitalConfigDTO> selectBusHospitalConfigList(BusHospitalConfigQueryDTO query);
+
+    /**
+     * 根据id查询医院-系统配置表
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusHospitalConfigDTO selectBusHospitalConfigById(String id);
+
+    /**
+     * 编辑医院-系统配置表
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusHospitalConfigById(BusHospitalConfigDTO source);
+
+    /**
+     * 新增医院-系统配置表
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusHospitalConfig(BusHospitalConfigDTO source);
+
+    /**
+     * 删除医院-系统配置表详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusHospitalConfigByIds(Collection<String> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusHospitalService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusHospitalDTO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 医院信息表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ **/
+public interface IBusHospitalService{
+
+    /**
+     * 根据条件查询医院信息表
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-12
+     */
+    List<BusHospitalDTO> selectBusHospitalList(BusHospitalQueryDTO query);
+
+    /**
+     * 根据id查询医院信息表
+     * @param    tenantId 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-12
+     */
+    BusHospitalDTO selectBusHospitalById(String tenantId);
+
+    /**
+     * 编辑医院信息表
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-12
+     */
+    boolean updateBusHospitalById(BusHospitalDTO source);
+
+    /**
+     * 新增医院信息表
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-12
+     */
+    boolean insertBusHospital(BusHospitalDTO source);
+
+    /**
+     * 删除医院信息表详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-12
+     */
+    int removeBusHospitalByIds(Collection<String> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusPatientService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusPatientDTO;
+import tr.cn.module.phototherapy.common.dto.BusPatientQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 患者表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusPatientService{
+
+    /**
+     * 根据条件查询患者表
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusPatientDTO> selectBusPatientList(BusPatientQueryDTO query);
+
+    /**
+     * 根据id查询患者表
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusPatientDTO selectBusPatientById(String id);
+
+    /**
+     * 编辑患者表
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusPatientById(BusPatientDTO source);
+
+    /**
+     * 新增患者表
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusPatient(BusPatientDTO source);
+
+    /**
+     * 删除患者表详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusPatientByIds(Collection<String> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusTherapyPlanService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusTherapyPlanDTO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyPlanQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 治疗方案表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusTherapyPlanService{
+
+    /**
+     * 根据条件查询设计方案
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusTherapyPlanDTO> selectBusTherapyPlanList(BusTherapyPlanQueryDTO query);
+
+    /**
+     * 根据id查询设计方案
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusTherapyPlanDTO selectBusTherapyPlanById(String id);
+
+    /**
+     * 编辑设计方案
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusTherapyPlanById(BusTherapyPlanDTO source);
+
+    /**
+     * 新增设计方案
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusTherapyPlan(BusTherapyPlanDTO source);
+
+    /**
+     * 删除设计方案详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusTherapyPlanByIds(Collection<String> ids);
+}

+ 55 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/IBusTherapyRecordService.java

@@ -0,0 +1,55 @@
+package tr.cn.module.phototherapy.common.service;
+
+import tr.cn.module.phototherapy.common.dto.BusTherapyRecordDTO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyRecordQueryDTO;
+import java.util.*;
+import java.util.Collection;
+
+/**
+ * 治疗记录表Service接口
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+public interface IBusTherapyRecordService{
+
+    /**
+     * 根据条件查询治疗记录
+     * @param    query 查询参数
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    List<BusTherapyRecordDTO> selectBusTherapyRecordList(BusTherapyRecordQueryDTO query);
+
+    /**
+     * 根据id查询治疗记录
+     * @param    id 主键id
+     * @author   CodeGenerator
+     * @date     2026-01-13
+     */
+    BusTherapyRecordDTO selectBusTherapyRecordById(String id);
+
+    /**
+     * 编辑治疗记录
+     * @param   source 编辑实体类
+     * @author  CodeGenerator
+     * @date    2026-01-13
+     */
+    boolean updateBusTherapyRecordById(BusTherapyRecordDTO source);
+
+    /**
+     * 新增治疗记录
+     * @param   source 新增实体类
+     * @author CodeGenerator
+     * @date 2026-01-13
+     */
+    boolean insertBusTherapyRecord(BusTherapyRecordDTO source);
+
+    /**
+     * 删除治疗记录详情
+     * @param  ids 删除主键集合
+     * @author CodeGenerator
+     * @date   2026-01-13
+     */
+    int removeBusTherapyRecordByIds(Collection<String> ids);
+}

+ 102 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusDeviceAlarmServiceImpl.java

@@ -0,0 +1,102 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusDeviceAlarmRepository;
+import tr.cn.module.phototherapy.common.po.BusDeviceAlarmPO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceAlarmDTO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceAlarmQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusDeviceAlarmService;
+import tr.cn.module.phototherapy.common.mapper.BusDeviceAlarmMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 设备报警表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusDeviceAlarmServiceImpl implements IBusDeviceAlarmService {
+    @Resource
+    private BusDeviceAlarmRepository baseRepository;
+
+
+    /**
+    * 根据条件查询设备报警表
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusDeviceAlarmDTO> selectBusDeviceAlarmList(BusDeviceAlarmQueryDTO query){
+        return BusDeviceAlarmMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusDeviceAlarmPO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusDeviceAlarmPO::getId, query.getId())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceId()), BusDeviceAlarmPO::getDeviceId, query.getDeviceId())
+                    .eq(ObjectUtil.isNotNull(query.getUploadTime()), BusDeviceAlarmPO::getUploadTime, query.getUploadTime())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceAlarm()), BusDeviceAlarmPO::getDeviceAlarm, query.getDeviceAlarm())
+                    .eq(ObjectUtil.isNotNull(query.getHistoryId()), BusDeviceAlarmPO::getHistoryId, query.getHistoryId())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyId()), BusDeviceAlarmPO::getTherapyId, query.getTherapyId())
+                    .eq(ObjectUtil.isNotNull(query.getRunState()), BusDeviceAlarmPO::getRunState, query.getRunState())
+                    .eq(ObjectUtil.isNotNull(query.getAlarmTime()), BusDeviceAlarmPO::getAlarmTime, query.getAlarmTime())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询设备报警表
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusDeviceAlarmDTO selectBusDeviceAlarmById(String id){
+        return BusDeviceAlarmMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑设备报警表
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusDeviceAlarmById(BusDeviceAlarmDTO source){
+            return baseRepository.updateById(BusDeviceAlarmMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增设备报警表
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusDeviceAlarm(BusDeviceAlarmDTO source){
+        return baseRepository.insert(BusDeviceAlarmMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除设备报警表详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusDeviceAlarmByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 108 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusDeviceHistoryServiceImpl.java

@@ -0,0 +1,108 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusDeviceHistoryRepository;
+import tr.cn.module.phototherapy.common.po.BusDeviceHistoryPO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceHistoryDTO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceHistoryQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusDeviceHistoryService;
+import tr.cn.module.phototherapy.common.mapper.BusDeviceHistoryMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 设备历史Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusDeviceHistoryServiceImpl implements IBusDeviceHistoryService {
+    @Resource
+    private BusDeviceHistoryRepository baseRepository;
+
+
+    /**
+    * 根据条件查询设备历史
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusDeviceHistoryDTO> selectBusDeviceHistoryList(BusDeviceHistoryQueryDTO query){
+        return BusDeviceHistoryMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusDeviceHistoryPO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusDeviceHistoryPO::getId, query.getId())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceId()), BusDeviceHistoryPO::getDeviceId, query.getDeviceId())
+                    .eq(ObjectUtil.isNotNull(query.getPatientUniqueId()), BusDeviceHistoryPO::getPatientUniqueId, query.getPatientUniqueId())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyId()), BusDeviceHistoryPO::getTherapyId, query.getTherapyId())
+                    .like(ObjectUtil.isNotNull(query.getClassification()), BusDeviceHistoryPO::getClassification, query.getClassification())
+                    .eq(ObjectUtil.isNotNull(query.getDataNumber()), BusDeviceHistoryPO::getDataNumber, query.getDataNumber())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyStartTime()), BusDeviceHistoryPO::getTherapyStartTime, query.getTherapyStartTime())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyEndTime()), BusDeviceHistoryPO::getTherapyEndTime, query.getTherapyEndTime())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyDuration()), BusDeviceHistoryPO::getTherapyDuration, query.getTherapyDuration())
+                    .eq(ObjectUtil.isNotNull(query.getUploadTime()), BusDeviceHistoryPO::getUploadTime, query.getUploadTime())
+                    .eq(ObjectUtil.isNotNull(query.getRunState()), BusDeviceHistoryPO::getRunState, query.getRunState())
+                    .eq(ObjectUtil.isNotNull(query.getAlarmState()), BusDeviceHistoryPO::getAlarmState, query.getAlarmState())
+                    .eq(ObjectUtil.isNotNull(query.getWarnLowBattery()), BusDeviceHistoryPO::getWarnLowBattery, query.getWarnLowBattery())
+                    .like(ObjectUtil.isNotNull(query.getAlarmDesc()), BusDeviceHistoryPO::getAlarmDesc, query.getAlarmDesc())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询设备历史
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusDeviceHistoryDTO selectBusDeviceHistoryById(Long id){
+        return BusDeviceHistoryMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑设备历史
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusDeviceHistoryById(BusDeviceHistoryDTO source){
+            return baseRepository.updateById(BusDeviceHistoryMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增设备历史
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusDeviceHistory(BusDeviceHistoryDTO source){
+        return baseRepository.insert(BusDeviceHistoryMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除设备历史详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusDeviceHistoryByIds(Collection<Long> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 106 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusDeviceServiceImpl.java

@@ -0,0 +1,106 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusDeviceRepository;
+import tr.cn.module.phototherapy.common.po.BusDevicePO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceDTO;
+import tr.cn.module.phototherapy.common.dto.BusDeviceQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusDeviceService;
+import tr.cn.module.phototherapy.common.mapper.BusDeviceMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 设备表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusDeviceServiceImpl implements IBusDeviceService {
+    @Resource
+    private BusDeviceRepository baseRepository;
+
+
+    /**
+    * 根据条件查询设备表
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusDeviceDTO> selectBusDeviceList(BusDeviceQueryDTO query){
+        return BusDeviceMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusDevicePO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusDevicePO::getId, query.getId())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceId()), BusDevicePO::getDeviceId, query.getDeviceId())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyId()), BusDevicePO::getTherapyId, query.getTherapyId())
+                    .like(ObjectUtil.isNotNull(query.getSimIccid()), BusDevicePO::getSimIccid, query.getSimIccid())
+                    .eq(ObjectUtil.isNotNull(query.getSimMno()), BusDevicePO::getSimMno, query.getSimMno())
+                    .eq(ObjectUtil.isNotNull(query.getEnable()), BusDevicePO::getEnable, query.getEnable())
+                    .eq(ObjectUtil.isNotNull(query.getIsDelete()), BusDevicePO::getIsDelete, query.getIsDelete())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceStatus()), BusDevicePO::getDeviceStatus, query.getDeviceStatus())
+                    .eq(ObjectUtil.isNotNull(query.getUploadTime()), BusDevicePO::getUploadTime, query.getUploadTime())
+                    .eq(ObjectUtil.isNotNull(query.getRunTime()), BusDevicePO::getRunTime, query.getRunTime())
+                    .eq(ObjectUtil.isNotNull(query.getCloseTime()), BusDevicePO::getCloseTime, query.getCloseTime())
+                    .eq(ObjectUtil.isNotNull(query.getPatientUniqueId()), BusDevicePO::getPatientUniqueId, query.getPatientUniqueId())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询设备表
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusDeviceDTO selectBusDeviceById(String id){
+        return BusDeviceMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑设备表
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusDeviceById(BusDeviceDTO source){
+            return baseRepository.updateById(BusDeviceMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增设备表
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusDevice(BusDeviceDTO source){
+        return baseRepository.insert(BusDeviceMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除设备表详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusDeviceByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 104 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusHospitalConfigServiceImpl.java

@@ -0,0 +1,104 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusHospitalConfigRepository;
+import tr.cn.module.phototherapy.common.po.BusHospitalConfigPO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalConfigDTO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalConfigQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusHospitalConfigService;
+import tr.cn.module.phototherapy.common.mapper.BusHospitalConfigMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 医院-系统配置表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusHospitalConfigServiceImpl implements IBusHospitalConfigService {
+    @Resource
+    private BusHospitalConfigRepository baseRepository;
+
+
+    /**
+    * 根据条件查询医院-系统配置表
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusHospitalConfigDTO> selectBusHospitalConfigList(BusHospitalConfigQueryDTO query){
+        return BusHospitalConfigMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusHospitalConfigPO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusHospitalConfigPO::getId, query.getId())
+                    .eq(ObjectUtil.isNotNull(query.getTenantId()), BusHospitalConfigPO::getTenantId, query.getTenantId())
+                    .eq(ObjectUtil.isNotNull(query.getComplianceThreshold()), BusHospitalConfigPO::getComplianceThreshold, query.getComplianceThreshold())
+                    .eq(ObjectUtil.isNotNull(query.getDeviationPlanTime()), BusHospitalConfigPO::getDeviationPlanTime, query.getDeviationPlanTime())
+                    .eq(ObjectUtil.isNotNull(query.getStrongPeriodDays()), BusHospitalConfigPO::getStrongPeriodDays, query.getStrongPeriodDays())
+                    .eq(ObjectUtil.isNotNull(query.getMaintenancePeriodDays()), BusHospitalConfigPO::getMaintenancePeriodDays, query.getMaintenancePeriodDays())
+                    .eq(ObjectUtil.isNotNull(query.getCreateTime()), BusHospitalConfigPO::getCreateTime, query.getCreateTime())
+                    .eq(ObjectUtil.isNotNull(query.getCreateBy()), BusHospitalConfigPO::getCreateBy, query.getCreateBy())
+                    .eq(ObjectUtil.isNotNull(query.getUpdateTime()), BusHospitalConfigPO::getUpdateTime, query.getUpdateTime())
+                    .eq(ObjectUtil.isNotNull(query.getUpdateBy()), BusHospitalConfigPO::getUpdateBy, query.getUpdateBy())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询医院-系统配置表
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusHospitalConfigDTO selectBusHospitalConfigById(String id){
+        return BusHospitalConfigMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑医院-系统配置表
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusHospitalConfigById(BusHospitalConfigDTO source){
+            return baseRepository.updateById(BusHospitalConfigMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增医院-系统配置表
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusHospitalConfig(BusHospitalConfigDTO source){
+        return baseRepository.insert(BusHospitalConfigMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除医院-系统配置表详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusHospitalConfigByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 97 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusHospitalServiceImpl.java

@@ -0,0 +1,97 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusHospitalRepository;
+import tr.cn.module.phototherapy.common.po.BusHospitalPO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalDTO;
+import tr.cn.module.phototherapy.common.dto.BusHospitalQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusHospitalService;
+import tr.cn.module.phototherapy.common.mapper.BusHospitalMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 医院信息表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-12
+ **/
+@Service
+public class BusHospitalServiceImpl implements IBusHospitalService {
+    @Resource
+    private BusHospitalRepository baseRepository;
+
+
+    /**
+    * 根据条件查询医院信息表
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-12
+    */
+    @Override
+    public List<BusHospitalDTO> selectBusHospitalList(BusHospitalQueryDTO query){
+        return BusHospitalMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusHospitalPO>()
+                    .eq(ObjectUtil.isNotNull(query.getTenantId()), BusHospitalPO::getTenantId, query.getTenantId())
+                    .like(ObjectUtil.isNotNull(query.getHospitalName()), BusHospitalPO::getHospitalName, query.getHospitalName())
+                    .eq(ObjectUtil.isNotNull(query.getLogoPath()), BusHospitalPO::getLogoPath, query.getLogoPath())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询医院信息表
+    * @param    tenantId 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-12
+    */
+    @Override
+    public BusHospitalDTO selectBusHospitalById(String tenantId){
+        return BusHospitalMapper.INSTANCE.convertDto(baseRepository.selectById(tenantId));
+    };
+
+    /**
+    * 编辑医院信息表
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-12
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusHospitalById(BusHospitalDTO source){
+            return baseRepository.updateById(BusHospitalMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增医院信息表
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-12
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusHospital(BusHospitalDTO source){
+        return baseRepository.insert(BusHospitalMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除医院信息表详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-12
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusHospitalByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 105 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusPatientServiceImpl.java

@@ -0,0 +1,105 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusPatientRepository;
+import tr.cn.module.phototherapy.common.po.BusPatientPO;
+import tr.cn.module.phototherapy.common.dto.BusPatientDTO;
+import tr.cn.module.phototherapy.common.dto.BusPatientQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusPatientService;
+import tr.cn.module.phototherapy.common.mapper.BusPatientMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 患者表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusPatientServiceImpl implements IBusPatientService {
+    @Resource
+    private BusPatientRepository baseRepository;
+
+
+    /**
+    * 根据条件查询患者表
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusPatientDTO> selectBusPatientList(BusPatientQueryDTO query){
+        return BusPatientMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusPatientPO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusPatientPO::getId, query.getId())
+                    .like(ObjectUtil.isNotNull(query.getName()), BusPatientPO::getName, query.getName())
+                    .eq(ObjectUtil.isNotNull(query.getGender()), BusPatientPO::getGender, query.getGender())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyId()), BusPatientPO::getTherapyId, query.getTherapyId())
+                    .eq(ObjectUtil.isNotNull(query.getIsDelete()), BusPatientPO::getIsDelete, query.getIsDelete())
+                    .eq(ObjectUtil.isNotNull(query.getTenantId()), BusPatientPO::getTenantId, query.getTenantId())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceId()), BusPatientPO::getDeviceId, query.getDeviceId())
+                    .eq(ObjectUtil.isNotNull(query.getAge()), BusPatientPO::getAge, query.getAge())
+                    .like(ObjectUtil.isNotNull(query.getPhone()), BusPatientPO::getPhone, query.getPhone())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyPlanId()), BusPatientPO::getTherapyPlanId, query.getTherapyPlanId())
+                    .eq(ObjectUtil.isNotNull(query.getPatientUniqueId()), BusPatientPO::getPatientUniqueId, query.getPatientUniqueId())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询患者表
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusPatientDTO selectBusPatientById(String id){
+        return BusPatientMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑患者表
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusPatientById(BusPatientDTO source){
+            return baseRepository.updateById(BusPatientMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增患者表
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusPatient(BusPatientDTO source){
+        return baseRepository.insert(BusPatientMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除患者表详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusPatientByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 103 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusTherapyPlanServiceImpl.java

@@ -0,0 +1,103 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusTherapyPlanRepository;
+import tr.cn.module.phototherapy.common.po.BusTherapyPlanPO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyPlanDTO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyPlanQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusTherapyPlanService;
+import tr.cn.module.phototherapy.common.mapper.BusTherapyPlanMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 治疗方案表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusTherapyPlanServiceImpl implements IBusTherapyPlanService {
+    @Resource
+    private BusTherapyPlanRepository baseRepository;
+
+
+    /**
+    * 根据条件查询设计方案
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusTherapyPlanDTO> selectBusTherapyPlanList(BusTherapyPlanQueryDTO query){
+        return BusTherapyPlanMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusTherapyPlanPO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusTherapyPlanPO::getId, query.getId())
+                    .eq(ObjectUtil.isNotNull(query.getPlanDoctor()), BusTherapyPlanPO::getPlanDoctor, query.getPlanDoctor())
+                    .like(ObjectUtil.isNotNull(query.getPlanName()), BusTherapyPlanPO::getPlanName, query.getPlanName())
+                    .eq(ObjectUtil.isNotNull(query.getPhaseType()), BusTherapyPlanPO::getPhaseType, query.getPhaseType())
+                    .eq(ObjectUtil.isNotNull(query.getPhaseTargetTimes()), BusTherapyPlanPO::getPhaseTargetTimes, query.getPhaseTargetTimes())
+                    .eq(ObjectUtil.isNotNull(query.getPhaseFreq()), BusTherapyPlanPO::getPhaseFreq, query.getPhaseFreq())
+                    .eq(ObjectUtil.isNotNull(query.getPhaseDurationMin()), BusTherapyPlanPO::getPhaseDurationMin, query.getPhaseDurationMin())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyStatus()), BusTherapyPlanPO::getTherapyStatus, query.getTherapyStatus())
+                    .eq(ObjectUtil.isNotNull(query.getIsDelete()), BusTherapyPlanPO::getIsDelete, query.getIsDelete())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询设计方案
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusTherapyPlanDTO selectBusTherapyPlanById(String id){
+        return BusTherapyPlanMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑设计方案
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusTherapyPlanById(BusTherapyPlanDTO source){
+            return baseRepository.updateById(BusTherapyPlanMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增设计方案
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusTherapyPlan(BusTherapyPlanDTO source){
+        return baseRepository.insert(BusTherapyPlanMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除设计方案详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusTherapyPlanByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

+ 107 - 0
tr-modules/tr-modules-phototherapy/src/main/java/tr/cn/module/phototherapy/common/service/impl/BusTherapyRecordServiceImpl.java

@@ -0,0 +1,107 @@
+package tr.cn.module.phototherapy.common.service.impl;
+
+import org.springframework.stereotype.Service;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
+import org.springframework.transaction.annotation.Transactional;
+import cn.tr.core.exception.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import tr.cn.module.phototherapy.common.repository.BusTherapyRecordRepository;
+import tr.cn.module.phototherapy.common.po.BusTherapyRecordPO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyRecordDTO;
+import tr.cn.module.phototherapy.common.dto.BusTherapyRecordQueryDTO;
+import java.util.*;
+import tr.cn.module.phototherapy.common.service.IBusTherapyRecordService;
+import tr.cn.module.phototherapy.common.mapper.BusTherapyRecordMapper;
+import jakarta.annotation.Resource;
+import cn.tr.core.exception.TRExcCode;
+
+/**
+ * 治疗记录表Service接口实现类
+ *
+ * @author CodeGenerator
+ * @date 2026-01-13
+ **/
+@Service
+public class BusTherapyRecordServiceImpl implements IBusTherapyRecordService {
+    @Resource
+    private BusTherapyRecordRepository baseRepository;
+
+
+    /**
+    * 根据条件查询治疗记录
+    * @param    query 查询参数
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public List<BusTherapyRecordDTO> selectBusTherapyRecordList(BusTherapyRecordQueryDTO query){
+        return BusTherapyRecordMapper.INSTANCE.convertDtoList(
+                baseRepository.selectList(new LambdaQueryWrapper<BusTherapyRecordPO>()
+                    .eq(ObjectUtil.isNotNull(query.getId()), BusTherapyRecordPO::getId, query.getId())
+                    .eq(ObjectUtil.isNotNull(query.getDeviceId()), BusTherapyRecordPO::getDeviceId, query.getDeviceId())
+                    .eq(ObjectUtil.isNotNull(query.getClinicId()), BusTherapyRecordPO::getClinicId, query.getClinicId())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyStartTime()), BusTherapyRecordPO::getTherapyStartTime, query.getTherapyStartTime())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyEndTime()), BusTherapyRecordPO::getTherapyEndTime, query.getTherapyEndTime())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyDuration()), BusTherapyRecordPO::getTherapyDuration, query.getTherapyDuration())
+                    .eq(ObjectUtil.isNotNull(query.getTherapyStatus()), BusTherapyRecordPO::getTherapyStatus, query.getTherapyStatus())
+                    .like(ObjectUtil.isNotNull(query.getRemark()), BusTherapyRecordPO::getRemark, query.getRemark())
+                    .eq(ObjectUtil.isNotNull(query.getPatientUniqueId()), BusTherapyRecordPO::getPatientUniqueId, query.getPatientUniqueId())
+                    .eq(ObjectUtil.isNotNull(query.getOverTherapy()), BusTherapyRecordPO::getOverTherapy, query.getOverTherapy())
+                    .eq(ObjectUtil.isNotNull(query.getComplianceAlarm()), BusTherapyRecordPO::getComplianceAlarm, query.getComplianceAlarm())
+                    .eq(ObjectUtil.isNotNull(query.getTenantId()), BusTherapyRecordPO::getTenantId, query.getTenantId())
+                    .eq(ObjectUtil.isNotNull(query.getIsDelete()), BusTherapyRecordPO::getIsDelete, query.getIsDelete())
+                )
+        );
+    };
+
+    /**
+    * 根据id查询治疗记录
+    * @param    id 主键id
+    * @author   CodeGenerator
+    * @date     2026-01-13
+    */
+    @Override
+    public BusTherapyRecordDTO selectBusTherapyRecordById(String id){
+        return BusTherapyRecordMapper.INSTANCE.convertDto(baseRepository.selectById(id));
+    };
+
+    /**
+    * 编辑治疗记录
+    * @param   source 编辑实体类
+    * @author  CodeGenerator
+    * @date    2026-01-13
+    */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public boolean updateBusTherapyRecordById(BusTherapyRecordDTO source){
+            return baseRepository.updateById(BusTherapyRecordMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 新增治疗记录
+    * @param   source 新增实体类
+    * @author CodeGenerator
+    * @date 2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean insertBusTherapyRecord(BusTherapyRecordDTO source){
+        return baseRepository.insert(BusTherapyRecordMapper.INSTANCE.convertPO(source))!=0;
+    };
+
+    /**
+    * 删除治疗记录详情
+    * @param  ids 删除主键集合
+    * @author CodeGenerator
+    * @date   2026-01-13
+    */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int removeBusTherapyRecordByIds(Collection<String> ids){
+        if(CollectionUtil.isEmpty(ids)){
+            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"请选择要删除的数据");
+        }
+        return baseRepository.deleteByIds(ids);
+    };
+}

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

@@ -59,14 +59,18 @@ spring:
   profiles:
     active: flyway,sys
 
-#MQTT配置
-    mqtt:
-      username: admin
-      password: tr123456.
-      url: tcp://192.168.100.102:1883
-      subClientId: sub_client_id_123
-      subTopic: atguigu/iot/lamp/line
-      pubClientId: pub_client_id_123
+    # MQTT配置(spring-integration-mqtt专用)
+    integration:
+      mqtt:
+        default:
+          url: tcp://192.168.100.102:1883 # MQTT服务器地址
+          username: admin # 可选:MQTT用户名
+          password: tr123456. # 可选:MQTT密码
+          subClientId: spring-integration-mqtt-client # 客户端ID(保证唯一)
+        inbound:
+          subTopic: device/data/+ # 订阅的主题(支持多主题,用逗号分隔)
+          qos: 1 # QoS级别(0/1/2)
+    # Redis、PostgreSQL配置(同之前)
 
 #mybatis配置
 mybatis-plus:
@@ -76,7 +80,7 @@ mybatis-plus:
   global-config:
     db-config:
       logic-delete-value: 1
-      logic-delete-field: deleted
+      logic-delete-field: isDeleted
       logic-not-delete-value: 0
 langchain4j:
   open-ai: