ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -217,5 +217,36 @@ return AjaxResult.success(sendMsg); } /** * @param * @return */ @ApiOperation("çæå¤é¾") @PostMapping("/getUrl") public AjaxResult getUrl(@RequestBody smsVO vo) throws UnsupportedEncodingException { String content = ""; if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) { RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key); String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key); String subId = rsaPublicKeyExample.encryptedData(vo.getSubId().toString(), pub_key); Integer radix = iServiceOutPathService.selectAutoId(); String format = String.format("%03X", radix); ServiceOutPath serviceOutPath = new ServiceOutPath(); serviceOutPath.setParam1(taskId); serviceOutPath.setParam2(patid); serviceOutPath.setParam3(vo.getTaskName()); serviceOutPath.setParam6(subId); serviceOutPath.setRadix(format); serviceOutPath.setCreateTime(new Date()); serviceOutPath.setOrgid(vo.getOrgid()); String url = ip + ":" + req_path + "/wt?p=" + format; // content = "æ¨å¥½ï¼é请æ¨å¡«ååºé¢è°æ¥è¡¨ï¼è¯·ç¹å»" + url + "å¡«åãæè°¢æ¨é åï¼"; content = url; serviceOutPath.setUrl(url); iServiceOutPathService.insertServiceOutPath(serviceOutPath); } return AjaxResult.success(content); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -48,6 +48,8 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static com.ruoyi.common.utils.SecurityUtils.getLoginUser; /** * åä¸ä»»å¡ï¼é访ï¼Controller * @@ -87,6 +89,12 @@ @Value("${spring.profiles.active}") private String active; @Value("${localIP}") private String localIP; @Value("${req_path}") private String req_path; @Value("${isAdmin}") private List<Long> isAdmin; @@ -914,6 +922,29 @@ return serviceSubtaskService.smsSubTask(subid); } /** * 跳转ä¸é´é¡µ * * @param taskId * @return */ @PostMapping(value = "/goSfRelay") public AjaxResult goSfRelay(@RequestParam("taskId") Long taskId) { String url = localIP + ":" + req_path + "/SfRelay?taskid=" + taskId; return AjaxResult.success(url); } /** * æ«ç çæåä»»å¡ * * @param serviceTask * @return */ @PostMapping(value = "/scanGenerateSubtask") public AjaxResult scanGenerateSubtask(@RequestBody ServiceTask serviceTask) { return AjaxResult.success(serviceSubtaskService.scanGenerateSubtask(serviceTask)); } @PostMapping("/test") public void test() { @@ -945,4 +976,6 @@ int result = ryTask.qwenLLMTest(questionText, voiceText, value, regexText); return result; } } smartor/src/main/java/com/smartor/DeepSeekApi.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package com.smartor; ; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import okhttp3.*; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class DeepSeekApi { // æ¿æ¢ä¸ºä½ èªå·±çkey private static final String API_KEY = "sk-"; private static final String API_URL = "https://api.deepseek.com/v1/chat/completions"; public static void main(String[] args) { String resp = chatCompletion("ç¨Javaåä¸ä¸ªå泡æåº"); System.out.println("DeepSeekè¿åç»æï¼\n" + resp); } public static String chatCompletion(String userPrompt) { OkHttpClient client = new OkHttpClient(); // 1. ç»è£ æ¶æ¯ä½ List<Map<String, String>> messages = new ArrayList<>(); // ç³»ç»è§è²ï¼å¯éï¼ç¨äºè®¾å®AIèº«ä»½ï¼ Map<String, String> sysMsg = new HashMap<>(); sysMsg.put("role", "system"); sysMsg.put("content", "ä½ æ¯ä¸ä¸Javaå¼åå·¥ç¨å¸ï¼åçç®æ´è§è"); messages.add(sysMsg); // ç¨æ·æé® Map<String, String> userMsg = new HashMap<>(); userMsg.put("role", "user"); userMsg.put("content", userPrompt); messages.add(userMsg); // 2. 请æ±åæ° Map<String, Object> requestBody = new HashMap<>(); requestBody.put("model", "deepseek-chat"); requestBody.put("messages", messages); requestBody.put("temperature", 0.7); // éæºæ§0~1ï¼è¶ä½è¶ä¸¥è°¨ requestBody.put("max_tokens", 1024); // 3. æå»ºè¯·æ± String jsonBody = JSON.toJSONString(requestBody); RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonBody); Request request = new Request.Builder() .url(API_URL) .header("Authorization", "Bearer " + API_KEY) .header("Content-Type", "application/json") .post(body) .build(); // 4. åéè¯·æ± try (Response response = client.newCall(request).execute()) { if (!response.isSuccessful()) { return "请æ±å¤±è´¥ï¼ç¶æç ï¼" + response.code() + "ï¼é误信æ¯ï¼" + response.body().string(); } String resJson = response.body().string(); JSONObject jsonObj = JSON.parseObject(resJson); // æåAIåçå 容 return jsonObj.getJSONArray("choices") .getJSONObject(0) .getJSONObject("message") .getString("content"); } catch (IOException e) { e.printStackTrace(); return "æ¥å£è°ç¨å¼å¸¸ï¼" + e.getMessage(); } } } smartor/src/main/java/com/smartor/domain/PatArchive.java
@@ -336,8 +336,8 @@ /** * ä¼å屿§:0éä¼åï¼1ä¸è¬ä¼åã2éè¦ä¼å */ @ApiModelProperty("ä¼å屿§:0éä¼åï¼1ä¸è¬ä¼åã2éè¦ä¼å") @Excel(name = " ä¼å屿§:0éä¼åï¼1ä¸è¬ä¼åã2éè¦ä¼å ") @ApiModelProperty("ä¼å屿§:0éä¼åï¼1ä¸è¬ä¼åã2éè¦ä¼å -1èææ£è ") @Excel(name = " ä¼å屿§:0éä¼åï¼1ä¸è¬ä¼åã2éè¦ä¼å -1èææ£è ") private String viptype; @ApiModelProperty("åºé¢ç åºåç§°") smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -451,7 +451,7 @@ * å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ï¼ */ @Excel(name = " å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ï¼") @ApiModelProperty(value = "å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ 3.ä¸ç 4.å¤é¨å¯¼å ¥ 5æ¥è¯ã6ä½é¢ã7使£ï¼") @ApiModelProperty(value = "å°±è¯ç±»åï¼1é¨è¯ 2åºé¢ 3.ä¸ç 4.å¤é¨å¯¼å ¥ 5æ¥è¯ã6ä½é¢ã7使£ã8æ«ç ï¼") private String hospType; smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -123,4 +123,6 @@ * @return ç»æ */ public void addOperationSubTask(String config); public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type); } smartor/src/main/java/com/smartor/service/IPatMedOperationService.java
@@ -1,6 +1,9 @@ package com.smartor.service; import com.smartor.domain.PatArchive; import com.smartor.domain.PatMedOperation; import com.smartor.domain.ServiceSubtask; import com.smartor.domain.ServiceTask; import java.util.List; @@ -65,4 +68,6 @@ * @return */ public int dealOperationInfo(); public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive); } smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
@@ -3,9 +3,7 @@ import java.util.List; import com.ruoyi.common.core.page.TableDataInfo; import com.smartor.domain.PatMedOuthosp; import com.smartor.domain.PatMedReq; import com.smartor.domain.PatMedRes; import com.smartor.domain.*; import org.springframework.web.bind.annotation.RequestBody; /** @@ -69,4 +67,6 @@ public PatMedOuthosp getDeptCodeByPatId(PatMedOuthosp patMedOuthosp); public Integer dealOutpatientInfo(); public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive); } smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -198,4 +198,6 @@ * @return */ public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime); public String scanGenerateSubtask(ServiceTask serviceTaskVo); } smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -935,7 +935,8 @@ //å°è£ serviceSubtask private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) { @Override public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) { //å¢å serviceTaskå¤ç©º // if(Objects.isNull(serviceTask)){ // return null; smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java
@@ -185,7 +185,8 @@ } //å°è£ serviceSubtask private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive) { @Override public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOperation patMedOperation1, PatArchive patArchive) { ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); serviceSubtask.setTaskid(serviceTask.getTaskid()); if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid())) smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -475,7 +475,8 @@ } //å°è£ serviceSubtask private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) { @Override public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedOuthosp patMedOuthosp, PatArchive patArchive) { ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); serviceSubtask.setTaskid(serviceTask.getTaskid()); if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid())) smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.dx.MessageSend; @@ -131,6 +132,9 @@ @Autowired private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper; @Autowired private IPatMedInhospService patMedInhospService; @Value("${pri_key}") private String pri_key; @@ -4765,4 +4769,107 @@ } } public String scanGenerateSubtask(ServiceTask serviceTaskVo){ String content = ""; String ip = localIP; ServiceTask serviceTask = new ServiceTask(); serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceTaskVo.getTaskid()); if(ObjectUtils.isNotEmpty(serviceTask)){ try { ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); if(ObjectUtils.isNotEmpty(serviceTaskVo.getDeptcode())){ serviceTaskdept.setDeptType("1"); serviceTaskdept.setDeptCode(serviceTask.getDeptcode()); } if(ObjectUtils.isNotEmpty(serviceTaskVo.getLeavehospitaldistrictcode())){ serviceTaskdept.setDeptType("2"); serviceTaskdept.setDeptCode(serviceTaskVo.getLeavehospitaldistrictcode()); } serviceTaskdept.setServiceType(serviceTask.getServiceType()); serviceTaskdept.setOrgid(serviceTask.getOrgid()); serviceTaskdept.setTaskId(serviceTaskVo.getTaskid()); List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptService.selectServiceTaskdeptList(serviceTaskdept); if (!CollectionUtils.isEmpty(serviceTaskdepts)) { PatArchive patArchive = new PatArchive(); patArchive.setId(-1L); patArchive.setName("èææ£è "); //å°è£ serviceSubtask ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patArchive); int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); //æ ¹æ®çæå¤é¾ if (ObjectUtils.isNotEmpty(serviceSubtask.getTaskid()) && ObjectUtils.isNotEmpty(serviceSubtask.getPatid()) && ObjectUtils.isNotEmpty(serviceSubtask.getId())) { RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key); String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); ServiceOutPath serviceOutPath = new ServiceOutPath(); serviceOutPath.setParam1(taskId); serviceOutPath.setParam2(patid); serviceOutPath.setParam3(serviceTask.getTaskName()); serviceOutPath.setParam6(subId); serviceOutPath.setCreateTime(new Date()); serviceOutPath.setOrgid(serviceTask.getOrgid()); iServiceOutPathService.insertServiceOutPath(serviceOutPath); String format = String.format("%03X", serviceOutPath.getId()); serviceOutPath.setRadix(format); serviceOutPath.setUpdateTime(new Date()); String url = ip + ":" + req_path + "/wt?p=" + format; content = url; serviceOutPath.setUrl(url); iServiceOutPathService.updateServiceOutPath(serviceOutPath); } } } catch (Exception e) { e.printStackTrace(); log.error("ãæ«ç çæä»»å¡ãå¤çå¼å¸¸ï¼{}", e.getMessage()); } } return content; } public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatArchive patArchive) { ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); serviceSubtask.setTaskid(serviceTask.getTaskid()); if (StringUtils.isNotEmpty(serviceTask.getLibtemplateid())) serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid())); // serviceSubtask.setNurseId(patMedInhosp1.getNurseId()); // serviceSubtask.setNurseName(patMedInhosp1.getNurseName()); // serviceSubtask.setDrcode(patMedInhosp1.getDrcode()); // serviceSubtask.setDrname(patMedInhosp1.getDrname()); serviceSubtask.setDeptcode(serviceTask.getDeptcode()); serviceSubtask.setDeptname(serviceTask.getDeptname()); serviceSubtask.setLeavehospitaldistrictcode(serviceTask.getLeavehospitaldistrictcode()); serviceSubtask.setLeavehospitaldistrictname(serviceTask.getLeavehospitaldistrictname()); serviceSubtask.setTemplateid(serviceTask.getTemplateid()); serviceSubtask.setTemplatename(serviceTask.getTemplatename()); serviceSubtask.setPatid(patArchive.getId()); serviceSubtask.setSendname(patArchive.getName()); serviceSubtask.setSfzh(patArchive.getIdcardno()); serviceSubtask.setPhone(patArchive.getTelcode()); if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode()); serviceSubtask.setSex(patArchive.getSex()); serviceSubtask.setAge(patArchive.getAge()); serviceSubtask.setSendstate(3L); // serviceSubtask.setManagementDoctor(patMedInhosp1.getManagementDoctor()); // serviceSubtask.setManagementDoctorCode(patMedInhosp1.getManagementDoctorCode()); serviceSubtask.setServiceType(serviceTask.getServiceType()); serviceSubtask.setPreachform(serviceTask.getPreachform()); serviceSubtask.setHospType("8"); serviceSubtask.setCreateTime(new Date()); serviceSubtask.setUpdateTime(new Date()); // serviceSubtask.setCreateBy(patMedInhosp1.getNurseName()); // serviceSubtask.setLeavehospitaldistrictcode(patMedInhosp1.getLeavehospitaldistrictcode()); // serviceSubtask.setLeavehospitaldistrictname(patMedInhosp1.getLeavehospitaldistrictname()); serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); serviceSubtask.setUpdateTime(new Date()); serviceTask.setSendDay(1L); Date newDate = new Date(); serviceSubtask.setLongSendTime(newDate); serviceSubtask.setVisitTime(newDate); return serviceSubtask; } } smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -229,7 +229,7 @@ FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'service_out_path' AND table_schema = DATABASE() and onorgid -- and onorgid </select> </mapper>