From 8a0bbe1ffb7cd41664aa2240130c5d4abbc7dd9b Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 21 一月 2026 10:28:58 +0800
Subject: [PATCH] 双屏仪硬件回调信息添加诊所账号

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java
index fa25ff3..1ebce1b 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/H5AICallbackController.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.service.*;
 import com.ruoyi.system.utils.util.AesSimpleUtil;
@@ -47,6 +48,12 @@
     private TSysInspectionRiskEstimateService sysInspectionRiskEstimateService;
     @Autowired
     private TSysChronicDiseaseService sysChronicDiseaseService;
+    @Autowired
+    private TSysAiMessageService sysAiMessageService;
+    @Autowired
+    private ISysUserService sysUserService;
+    @Autowired
+    private TCrmClinicService crmClinicService;
 
 //    @PostMapping("/reportReturn")
 //    public String reportReturn(String encryptedJson, String signEncryptedJson) throws Exception {
@@ -146,6 +153,10 @@
         // 解密
         String raw = AesUtil.decrypt(clientKey, clientIV , data);
         log.info("H5舌面报告推送,解密后:{}",raw);
+        TSysAiMessage tSysAiMessage = new TSysAiMessage();
+        tSysAiMessage.setCommitType(1);
+        tSysAiMessage.setContent(raw);
+        tSysAiMessage.setCreateTime(LocalDateTime.now());
 
         JSONObject jsonObject = JSONObject.parseObject(raw);
 
@@ -175,7 +186,10 @@
             if(Objects.nonNull(vipEndTime) && vipEndTime.isAfter(LocalDateTime.now())){
                 sysInspection.setIsPay(1);
             }
+        }else {
+            tSysAiMessage.setErrorMessage("未查询到患者");
         }
+        sysAiMessageService.save(tSysAiMessage);
         sysInspection.setOutUserId(outUserId);
         sysInspection.setBirthday(birthday);
         sysInspection.setSex("0".equals(gender)?1:2);
@@ -220,6 +234,10 @@
     @PostMapping("/xiMaDoubleScreenReportPush")
     public JSONObject xiMaDoubleScreenReportPush(@RequestBody JSONObject jsonObject){
         log.info("双屏仪报告推送:{}",jsonObject);
+        TSysAiMessage tSysAiMessage = new TSysAiMessage();
+        tSysAiMessage.setCommitType(1);
+        tSysAiMessage.setContent(jsonObject.toJSONString());
+        tSysAiMessage.setCreateTime(LocalDateTime.now());
         // 主体信息
         String reportTime = jsonObject.getString("report_time"); // 报告时间
         String report_print_url = jsonObject.getString("report_print_url"); // 报告H5页面地址
@@ -244,6 +262,7 @@
         Long device_account_id = userInfo.getLong("device_account_id"); // 设备账号ID
         String sex = userInfo.getString("sex"); // 性别
         String age = userInfo.getString("age"); // 年龄
+        String device_account = userInfo.getString("device_account"); // 诊所账号
 
         sysInspection.setThreeUserId(id);
         sysInspection.setPhone(phone);
@@ -275,6 +294,24 @@
             sysAppUser.setSex("男".equals(sex) ? 1 : 2);
         }
 
+        // 查询诊所账号
+        SysUser sysUser = sysUserService.selectByPhone(device_account);
+        if(Objects.nonNull(sysUser)){
+            // 通过账号查询诊所信息
+            TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+                    .eq(TCrmClinic::getUserId, sysUser.getUserId())
+                    .last("LIMIT 1"));
+            if(Objects.nonNull(crmClinic)){
+                sysAppUser.setClinicId(crmClinic.getId());
+            }else {
+                tSysAiMessage.setErrorMessage("未查询到诊所信息");
+                sysAiMessageService.save(tSysAiMessage);
+            }
+        }else {
+            tSysAiMessage.setErrorMessage("未查询到诊所绑定账号");
+            sysAiMessageService.save(tSysAiMessage);
+        }
+
         sysInspectionService.save(sysInspection);
 
         // 指脉结果

--
Gitblit v1.7.1