|  |  | 
 |  |  | package com.smartor.service.impl; | 
 |  |  |  | 
 |  |  | import cn.hutool.json.JSONUtil; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.alibaba.fastjson2.JSON; | 
 |  |  | import com.fasterxml.jackson.core.JsonProcessingException; | 
 |  |  | import com.fasterxml.jackson.databind.ObjectMapper; | 
 |  |  | import com.google.gson.Gson; | 
 |  |  | import com.ruoyi.common.core.redis.RedisCache; | 
 |  |  | import com.ruoyi.common.enums.HospTypeEnum; | 
 |  |  | import com.ruoyi.common.enums.ServiceTaskTypeEnum; | 
 |  |  | import com.ruoyi.common.enums.TaskTypeEnum; | 
 |  |  | import com.ruoyi.common.exception.base.BaseException; | 
 |  |  | import com.ruoyi.common.utils.*; | 
 |  |  | import com.ruoyi.common.utils.http.HttpEntity; | 
 |  |  | import com.ruoyi.common.utils.http.HttpUtils; | 
 |  |  | import com.smartor.common.LSHospTokenUtil; | 
 |  |  | import com.smartor.common.LyraTokenUtil; | 
 |  |  | import com.smartor.domain.*; | 
 |  |  | import com.smartor.mapper.BaseOrganizationMapper; | 
 |  |  | import com.smartor.mapper.ServiceSubtaskMapper; | 
 |  |  | import com.smartor.service.IServiceTaskService; | 
 |  |  | import com.smartor.service.ISvyTaskSingleService; | 
 |  |  | import com.sun.org.apache.bcel.internal.generic.NEW; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import okhttp3.OkHttpClient; | 
 |  |  | import okhttp3.Request; | 
 |  |  | import okhttp3.Response; | 
 |  |  | import org.apache.commons.collections4.CollectionUtils; | 
 |  |  | import org.apache.commons.lang3.ObjectUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private BaseOrganizationMapper baseOrganizationMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private RedisCache redisCache; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |                 serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); | 
 |  |  |             //修改操作,需要将stopState状态+1 | 
 |  |  |             ServiceTask serviceTask2 = iServiceTaskService.selectServiceTaskByTaskid(serviceTaskVO.getTaskid()); | 
 |  |  |             serviceTask2.setStopState(serviceTask.getStopState() + 1); | 
 |  |  | //            serviceTask2.setStopState(serviceTask.getStopState() + 1); | 
 |  |  |             serviceTask2.setTemplateid(Long.valueOf(serviceTaskVO.getLibtemplateid())); | 
 |  |  |             iServiceTaskService.updateServiceTask(serviceTask2); | 
 |  |  |  | 
 |  |  |             //获取到该任务所有的服务,并从队列里删除 | 
 |  |  |             ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); | 
 |  |  |             serviceSubtaskVO.setTaskid(serviceTask2.getTaskid()); | 
 |  |  |             serviceSubtaskVO.setSendstate(2L); | 
 |  |  |             List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  |             serviceSubtaskVO.setSendstate(1L); | 
 |  |  |             List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); | 
 |  |  |             if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { | 
 |  |  |                 if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1); | 
 |  |  |             } else { | 
 |  |  |                 if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; | 
 |  |  |             } | 
 |  |  |             if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { | 
 |  |  |                 for (ServiceSubtask serviceSubtask : serviceSubtaskList) { | 
 |  |  |                     log.info("insertOrUpdateSvyTask需要移除的subId为:{}", serviceSubtask.getId().toString()); | 
 |  |  |                     serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); | 
 |  |  |                     redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); | 
 |  |  |                     redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); | 
 |  |  |                     redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); | 
 |  |  |                     redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); | 
 |  |  |                     redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); | 
 |  |  |                     redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) { | 
 |  |  |                 for (PatTaskRelevance patTaskRelevance : serviceTaskVO.getPatTaskRelevances()) { | 
 |  |  | 
 |  |  |         if (StringUtils.isNotEmpty(serviceTaskVO.getServicetype())) | 
 |  |  |             type = ServiceTaskTypeEnum.getDescByCode(serviceTaskVO.getServicetype()); | 
 |  |  |         serviceSubtask.setServiceType(type); | 
 |  |  |         String tasktype = "-1"; | 
 |  |  |         if (StringUtils.isNotEmpty(serviceTaskVO.getTasktype())) | 
 |  |  |             tasktype = TaskTypeEnum.getDescByCode(serviceTaskVO.getTasktype()); | 
 |  |  |         serviceSubtask.setType(tasktype); | 
 |  |  |         //第三方传过来的,直接统一定为问卷 | 
 |  |  |         serviceSubtask.setType("2"); | 
 |  |  |         serviceSubtask.setLabelstatus(serviceTaskVO.getTaskstate()); | 
 |  |  |         serviceSubtask.setTaskName(serviceTaskVO.getTaskname()); | 
 |  |  |         serviceSubtask.setTaskDesc(serviceTaskVO.getTaskdesc()); | 
 |  |  |         serviceSubtask.setPreachform(serviceTaskVO.getExemode()); | 
 |  |  |         //第三方传过来的,直接统一定为"人工" | 
 |  |  |         serviceSubtask.setPreachform("1"); | 
 |  |  |         serviceSubtask.setCreateBy(serviceTaskVO.getCreateBy()); | 
 |  |  |         serviceSubtask.setCreateTime(serviceTaskVO.getCreateTime()); | 
 |  |  |         serviceSubtask.setOperatorNo(serviceTaskVO.getOperatorno()); | 
 |  |  | 
 |  |  |         serviceSubtask.setSuggest(serviceTaskVO.getSuggest()); | 
 |  |  |         serviceSubtask.setDelFlag(serviceTaskVO.getDelflag()); | 
 |  |  |         serviceSubtask.setOrgid(serviceTaskVO.getOrgguid()); | 
 |  |  |         serviceSubtask.setPatid(serviceTaskVO.getPatguid()); | 
 |  |  |         serviceSubtask.setPatguid(serviceTaskVO.getPatguid()); | 
 |  |  |         serviceSubtask.setSendname(serviceTaskVO.getPatname()); | 
 |  |  |         if (StringUtils.isNotEmpty(serviceTaskVO.getPatsex()) && serviceTaskVO.getPatsex().equals("男")) | 
 |  |  |             serviceSubtask.setSex(1L); | 
 |  |  | 
 |  |  |         serviceSubtask.setBedNo(serviceTaskVO.getBedno()); | 
 |  |  |         serviceSubtask.setDeptname(serviceTaskVO.getDeptname()); | 
 |  |  |         serviceSubtask.setDeptcode(serviceTaskVO.getDeptcode()); | 
 |  |  |         serviceSubtask.setSendstate(1L); | 
 |  |  |         serviceSubtask.setSendstate(6L); | 
 |  |  |         serviceSubtask.setVisitTime(serviceTaskVO.getVisittime()); | 
 |  |  |         serviceSubtask.setCreateTime(new Date()); | 
 |  |  |         serviceSubtask.setLeavehospitaldistrictcode(serviceTaskVO.getDistrictcode()); | 
 |  |  |         //先查询一遍,该taskGuid是否存在 | 
 |  |  | 
 |  |  |             log.info("360查询条件为空"); | 
 |  |  |             throw new BaseException("360查询条件为空"); | 
 |  |  |         } | 
 |  |  |         String token = null; | 
 |  |  |  | 
 |  |  |         LyraTokenUtil lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13021/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); | 
 |  |  |         try { | 
 |  |  |             token = lyraTokenUtil.getToken(); | 
 |  |  |         } catch (IOException e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |         String token = LSHospTokenUtil.getToken(serviceQueryInfo.getXiaoXiTou().getFaSongJGID(),serviceQueryInfo.getUrl()); | 
 |  |  | //        LyraTokenUtil lyraTokenUtil = null; | 
 |  |  | //        if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47255004333112711A1001"))  //景宁 | 
 |  |  | //            lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13021/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); | 
 |  |  | //        if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47231022633110211A2101"))  //中医院 | 
 |  |  | //            lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13011/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); | 
 |  |  | // | 
 |  |  | //        try { | 
 |  |  | //            token = lyraTokenUtil.getToken(); | 
 |  |  | //        } catch (IOException e) { | 
 |  |  | //            e.printStackTrace(); | 
 |  |  | //        } | 
 |  |  |  | 
 |  |  |         //用户信息,通过ZuZhiJGID去bse_organization中获取机构信息 | 
 |  |  |         if (StringUtils.isBlank(serviceQueryInfo.getYeWuXX().getYongHuXX().getZuZhiJGID())) | 
 |  |  | 
 |  |  |         try { | 
 |  |  |             String jsonString = objectMapper.writeValueAsString(serviceQueryInfo); | 
 |  |  |             log.error("token的值为:{}", token); | 
 |  |  |             result = OkHttpExample.sendPostRequest("https://9.0.124.104:13021/mediinfo-grus-fuwuzxwg/api/esb/lyraSyncRun", jsonString, token); | 
 |  |  |             if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47255004333112711A1001")) {  //景宁 | 
 |  |  |                 result = OkHttpExample.sendPostRequest("https://9.0.124.104:13021/mediinfo-grus-fuwuzxwg/api/esb/lyraSyncRun", jsonString, token); | 
 |  |  |             }else if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47231022633110211A2101")) {  //中医院 | 
 |  |  |                 result = OkHttpExample.sendPostRequest("https://9.0.124.104:13011/mediinfo-grus-fuwuzxwg/api/esb/lyraSyncRun", jsonString, token); | 
 |  |  |             }else if(ObjectUtils.isNotEmpty(serviceQueryInfo.getUrl360())){ | 
 |  |  |                 result = OkHttpExample.sendPostRequest(serviceQueryInfo.getUrl360(), jsonString, token); | 
 |  |  |             } | 
 |  |  |             map = objectMapper.readValue(result, Map.class); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             e.printStackTrace(); | 
 |  |  | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Map focus(ServiceQueryFocus serviceQueryFocus) { | 
 |  |  |         return null; |