| | |
| | | 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.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.LyraTokenUtil; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.mapper.BaseOrganizationMapper; |
| | |
| | | import com.smartor.service.IServiceTaskService; |
| | | import com.smartor.service.ISvyTaskSingleService; |
| | | 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.error("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()) { |
| | |
| | | patTaskRelevance.setSfzh(serviceSubtask1.getSfzh()); |
| | | patTaskRelevance.setPhone(serviceSubtask1.getPhone()); |
| | | patTaskRelevance.setAddr(serviceSubtask1.getAddr()); |
| | | patTaskRelevance.setDiagname(serviceSubtask1.getDiagname()); |
| | | patTaskRelevance.setDiagname(serviceSubtask1.getLeavediagname()); |
| | | patTaskRelevance.setPatid(serviceSubtask1.getPatid()); |
| | | patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate()); |
| | | patTaskRelevances.add(patTaskRelevance); |
| | |
| | | patTaskRelevance.setAddr(serviceSubtask1.getAddr()); |
| | | patTaskRelevance.setDeptName(serviceSubtask1.getDeptname()); |
| | | patTaskRelevance.setBedNo(serviceSubtask1.getBedNo()); |
| | | patTaskRelevance.setDiagname(serviceSubtask1.getDiagname()); |
| | | patTaskRelevance.setDiagname(serviceSubtask1.getLeavediagname()); |
| | | patTaskRelevance.setPatid(serviceSubtask1.getPatid()); |
| | | patTaskRelevance.setSendStatus(serviceSubtask1.getSendstate()); |
| | | patTaskRelevances.add(patTaskRelevance); |
| | |
| | | else if (isoperation == 3) serviceSubtaskMapper.deleteServiceSubtaskByCondition(taskId, patid); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public int insertTaskInfo(ServiceTaskInfo serviceTaskVO) { |
| | | if (ObjectUtils.isEmpty(serviceTaskVO)) { |
| | | log.info("新增任务入参为空,请检查入参"); |
| | | throw new BaseException("新增任务入参为空,请检查入参"); |
| | | } |
| | | Integer integer = 1; |
| | | //ServiceSubtask serviceTask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class); |
| | | //serviceTask.setTextParam(JSON.toJSONString(serviceTaskVO.getTextParam())); |
| | | //将任务信息放到服务表中 |
| | | ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class); |
| | | serviceSubtask.setTaskid(serviceTaskVO.getTaskguid()); |
| | | ServiceSubtask serviceSubtask = new ServiceSubtask(); |
| | | serviceSubtask.setTaskGuid(serviceTaskVO.getTaskguid()); |
| | | String type = "0"; |
| | | if (serviceTaskVO.getServicetype().equals("监测评估")) { |
| | | type = "1"; |
| | | } else if (serviceTaskVO.getServicetype().equals("出院随访")) { |
| | | type = "2"; |
| | | } else if (serviceTaskVO.getServicetype().equals("门诊随访")) { |
| | | type = "3"; |
| | | } else if (serviceTaskVO.getServicetype().equals("宣教关怀")) { |
| | | type = "4"; |
| | | } else if (serviceTaskVO.getServicetype().equals("复诊通知")) { |
| | | type = "5"; |
| | | } else if (serviceTaskVO.getServicetype().equals("满意度调查")) { |
| | | type = "6"; |
| | | } else if (serviceTaskVO.getServicetype().equals("患者报告")) { |
| | | type = "7"; |
| | | } else if (serviceTaskVO.getServicetype().equals("其他通知")) { |
| | | type = "8"; |
| | | } |
| | | if (type.equals("0")) { |
| | | type = serviceTaskVO.getServicetype(); |
| | | } |
| | | if (StringUtils.isNotEmpty(serviceTaskVO.getServicetype())) |
| | | type = ServiceTaskTypeEnum.getDescByCode(serviceTaskVO.getServicetype()); |
| | | serviceSubtask.setServiceType(type); |
| | | //0、1宣教、2门诊、3出院、4复诊、5体检、6问卷、7医技 |
| | | String tasktype = "-1"; |
| | | if (serviceTaskVO.getTasktype().equals("通知")) { |
| | | tasktype = "0"; |
| | | } else if (serviceTaskVO.getTasktype().equals("宣教")) { |
| | | tasktype = "1"; |
| | | } else if (serviceTaskVO.getTasktype().equals("门诊")) { |
| | | tasktype = "2"; |
| | | } else if (serviceTaskVO.getTasktype().equals("出院")) { |
| | | tasktype = "3"; |
| | | } else if (serviceTaskVO.getTasktype().equals("复诊")) { |
| | | tasktype = "4"; |
| | | } else if (serviceTaskVO.getTasktype().equals("体检")) { |
| | | tasktype = "5"; |
| | | } else if (serviceTaskVO.getTasktype().equals("问卷")) { |
| | | tasktype = "6"; |
| | | } else if (serviceTaskVO.getTasktype().equals("医技")) { |
| | | tasktype = "7"; |
| | | } |
| | | if (tasktype.equals("-1")) { |
| | | tasktype = 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.setUploadTime(serviceTaskVO.setUploadTime()); |
| | | //第三方传过来的,直接统一定为"人工" |
| | | serviceSubtask.setPreachform("1"); |
| | | serviceSubtask.setCreateBy(serviceTaskVO.getCreateBy()); |
| | | serviceSubtask.setCreateTime(serviceTaskVO.getCreateTime()); |
| | | serviceSubtask.setOperatorNo(serviceTaskVO.getOperatorno()); |
| | |
| | | serviceSubtask.setEndtime(serviceTaskVO.getFinishtime()); |
| | | serviceSubtask.setResult(serviceTaskVO.getResult()); |
| | | 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.setWechat(serviceTaskVO.getPatopenid()); |
| | | serviceSubtask.setInhospno(serviceTaskVO.getInhosno()); |
| | | String hosptype = "-1"; |
| | | if (serviceTaskVO.getVisittype().equals("门诊")) { |
| | | hosptype = "1"; |
| | | } else if (serviceTaskVO.getVisittype().equals("出院")) { |
| | | hosptype = "2"; |
| | | } else if (serviceTaskVO.getVisittype().equals("专病")) { |
| | | hosptype = "3"; |
| | | } else if (serviceTaskVO.getVisittype().equals("外部导入")) { |
| | | hosptype = "4"; |
| | | } |
| | | if (hosptype.equals("-1")) { |
| | | hosptype = serviceTaskVO.getVisittype(); |
| | | } |
| | | hosptype = HospTypeEnum.getDescByCode(serviceTaskVO.getVisittype()); |
| | | serviceSubtask.setHospType(hosptype); |
| | | serviceSubtask.setHospno(serviceTaskVO.getVisitno()); |
| | | serviceSubtask.setAdmindate(serviceTaskVO.getVisittime()); |
| | | serviceSubtask.setRoomno(serviceTaskVO.getRoomno()); |
| | | serviceSubtask.setBedNo(serviceTaskVO.getBedno()); |
| | | serviceSubtask.setDeptname(serviceTaskVO.getDeptname()); |
| | | //serviceSubtask.setSendname(serviceTaskVO.gets()); |
| | | //serviceSubtask.setPatid(serviceTaskVO.getPid()); |
| | | serviceSubtask.setDeptcode(serviceTaskVO.getDeptcode()); |
| | | serviceSubtask.setSendstate(1L); |
| | | //serviceSubtask.setHospType(serviceTask.getHospType()); |
| | | serviceSubtask.setCreateTime(new Date()); |
| | | serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); |
| | | integer = serviceSubtask.getId().intValue(); |
| | | serviceSubtask.setLeavehospitaldistrictcode(serviceTaskVO.getDistrictcode()); |
| | | //先查询一遍,该taskGuid是否存在 |
| | | ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); |
| | | serviceSubtaskVO.setTaskGuid(serviceTaskVO.getTaskguid()); |
| | | List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); |
| | | if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { |
| | | serviceSubtask.setId(serviceSubtaskList.get(0).getId()); |
| | | serviceSubtask.setUpdateTime(new Date()); |
| | | serviceSubtaskMapper.updateServiceSubtaskByTaskGuid(serviceSubtask); |
| | | } else { |
| | | serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); |
| | | } |
| | | Integer integer = serviceSubtask.getId().intValue(); |
| | | log.error("插入的ID是:{}", integer); |
| | | return integer; |
| | | } |
| | |
| | | throw new BaseException("360查询条件为空"); |
| | | } |
| | | String token = null; |
| | | 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"); |
| | | |
| | | 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) { |
| | |
| | | List<BaseOrganization> baseOrganizations = baseOrganizationMapper.selectBaseOrganizationList(baseOrganization); |
| | | if (CollectionUtils.isNotEmpty(baseOrganizations)) { |
| | | YongHuXX yongHuXX = serviceQueryInfo.getYeWuXX().getYongHuXX(); |
| | | yongHuXX.setYongHuID(baseOrganizations.get(0).getOrgid()); |
| | | yongHuXX.setZuZhiJGID(baseOrganizations.get(0).getGuid()); |
| | | yongHuXX.setZuZhiJGMC(baseOrganizations.get(0).getOrganizationName()); |
| | | serviceQueryInfo.getYeWuXX().setYongHuXX(yongHuXX); |
| | |
| | | try { |
| | | String jsonString = objectMapper.writeValueAsString(serviceQueryInfo); |
| | | log.error("token的值为:{}", token); |
| | | result = OkHttpExample.sendPostRequest("https://9.0.124.84: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); |
| | | if (serviceQueryInfo.getXiaoXiTou().getFaSongJGID().equals("47231022633110211A2101")) //中医院 |
| | | result = OkHttpExample.sendPostRequest("https://9.0.124.104:13011/mediinfo-grus-fuwuzxwg/api/esb/lyraSyncRun", jsonString, token); |
| | | map = objectMapper.readValue(result, Map.class); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | Integer code = (Integer) map.get("code"); |
| | | if (code != null && code == 0) { |
| | | map.put("code", 200); |
| | | } |
| | | |
| | | return map; |
| | | } |