From 3d8e6a16f98bc01d3cee3a2733fa9a4eff8db2c7 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 06 一月 2026 16:52:34 +0800
Subject: [PATCH] 海诊通AI对接,双屏仪报告推送存储
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java | 50 +++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java
index e32a12d..a8fc87e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java
@@ -7,8 +7,11 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.common.constant.WxConstant;
+import com.ruoyi.common.core.controller.FileController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.WebUtils;
@@ -23,20 +26,31 @@
import com.ruoyi.system.query.TCrmChangePointsQuery;
import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.service.*;
+import com.ruoyi.system.utils.util.ObsUploadUtil;
+import com.ruoyi.system.utils.wx.model.WeixinProperties;
+import com.ruoyi.system.utils.wx.tools.WxAppletTools;
+import com.ruoyi.system.utils.xiMaUtil.XimaAIUtil;
import com.ruoyi.system.vo.TCrmClinicVO;
import com.ruoyi.system.vo.TSysAppUserVO;
import com.ruoyi.web.controller.tool.MsgUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.http.entity.ContentType;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.*;
+import org.springframework.mock.web.MockMultipartFile;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.time.LocalDateTime;
@@ -51,6 +65,7 @@
* @author xiaochen
* @since 2025-08-20
*/
+@Slf4j
@Api(tags = "crm诊所管理")
@RestController
@RequestMapping("/t-crm-clinic")
@@ -66,8 +81,11 @@
private final TokenService tokenService;
private final MsgUtils msgUtils;
private final TSysMessageTemplateService sysMessageTemplateService;
+ private final RedisCache redisCache;
+ private final RestTemplate restTemplate;
+ private final WeixinProperties wxConfig;
@Autowired
- public TCrmClinicController(TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService, TCrmBranchService crmBranchService, TCrmWarehouseService crmWarehouseService, TCrmSalespersonService crmSalespersonService, ISysUserService sysUserService, TCrmDeviceService crmDeviceService, TokenService tokenService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService) {
+ public TCrmClinicController(TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService, TCrmBranchService crmBranchService, TCrmWarehouseService crmWarehouseService, TCrmSalespersonService crmSalespersonService, ISysUserService sysUserService, TCrmDeviceService crmDeviceService, TokenService tokenService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService, RedisCache redisCache, RestTemplate restTemplate, WeixinProperties wxConfig) {
this.crmClinicService = crmClinicService;
this.crmSupplierService = crmSupplierService;
this.crmBranchService = crmBranchService;
@@ -78,6 +96,9 @@
this.tokenService = tokenService;
this.msgUtils = msgUtils;
this.sysMessageTemplateService = sysMessageTemplateService;
+ this.redisCache = redisCache;
+ this.restTemplate = restTemplate;
+ this.wxConfig = wxConfig;
}
/**
@@ -180,14 +201,37 @@
@Log(title = "crm诊所管理信息-新增crm诊所管理", businessType = BusinessType.INSERT)
@ApiOperation(value = "添加crm诊所管理")
@PostMapping(value = "/add")
- public R<Boolean> add(@Validated @RequestBody TCrmClinicDTO dto) {
+ public R<String> add(@Validated @RequestBody TCrmClinicDTO dto) {
Integer roleType = tokenService.getLoginUser().getUser().getRoleType();
if (roleType == 1){
dto.setStatus(3);
}else {
dto.setStatus(1);
}
- return crmClinicService.addClinic(dto);
+ WxAppletTools wxAppletTools = new WxAppletTools(restTemplate, wxConfig, redisCache);
+ // 获取access_token
+ String accessToken = wxAppletTools.getAccessToken();
+ // 替换CREATE_CODE_URL
+ String url = WxConstant.CREATE_CODE_URL.replace("ACCESS_TOKEN", accessToken);
+ // 发送请求
+ try {
+ HashMap<String, String> map = new HashMap<>();
+ map.put("path", "");
+ map.put("scene", "clinicId=" + dto.getId());
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ HttpEntity requestEntity = new HttpEntity(map, headers);
+ ResponseEntity<byte[]> rep = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class);
+ byte[] bytes = rep.getBody();
+ ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
+ MultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), byteArrayInputStream);
+ String stringApiResult = ObsUploadUtil.obsUpload(file);
+ dto.setQrCode(stringApiResult);
+ } catch (Exception e) {
+ log.error("生成小程序码失败:{}", e.getMessage());
+ }
+ crmClinicService.addClinic(dto);
+ return R.ok();
}
/**
--
Gitblit v1.7.1