liusheng
2025-04-16 4613099dca2d4e1c7b46a69a98bb4c210312ac57
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -1,29 +1,21 @@
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.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;
@@ -51,6 +43,9 @@
    @Autowired
    private BaseOrganizationMapper baseOrganizationMapper;
    @Autowired
    private RedisCache redisCache;
    @Override
@@ -97,9 +92,35 @@
                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()) {
@@ -218,14 +239,13 @@
        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());
@@ -236,7 +256,7 @@
        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);
@@ -317,11 +337,15 @@
        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);
            result = OkHttpExample.sendPostRequest("https://9.0.124.104:13021/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;
    }