双重预防项目-国泰新华二开定制版
heheng
6 days ago 7ee844962f050cfc548e5dd661a586a4993cbf89
src/main/java/com/ruoyi/project/tr/specialCheck/scheduleLogTask/SpecialCheckTaskDownload.java
@@ -31,6 +31,8 @@
import java.time.format.DateTimeFormatter;
import java.util.*;
import static com.ruoyi.common.utils.Threads.sleep;
@Component
public class SpecialCheckTaskDownload {
@@ -78,6 +80,7 @@
        }
        return sr;
    }
    public static String decrypt(String encryptedText, byte[] key, byte[] iv) {
        String sr;
        try {
@@ -96,7 +99,7 @@
    }
    @Transactional
  //  @Transactional
//    @Scheduled(cron = "0 0 23 * * ?")    //每天晚上23点执行一次0 0 22,23 * * ?
//    @Scheduled(cron = "0 0 22,23 * * ?")    //每天晚上22、23点执行一次
//    @Scheduled(cron = "0 0/1 * * * ? ")    // 分钟
@@ -114,7 +117,7 @@
        Date date = new Date();
        //格式化时间,作为token的时间戳
        SimpleDateFormat tokenDate= new SimpleDateFormat("yyyyMMddHHmmssSSS");
        SimpleDateFormat tokenDate = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String formatDate = tokenDate.format(date);
        logger.info("【token时间】" + formatDate);
@@ -128,53 +131,56 @@
        //String taskId = "84766708-9b18-4133-8acf-08aba67792c7";
        String taskId = "a8de03f0-4c3e-43fe-a139-0e4ed34edd35";
        String taskId = "47da41f5-c747-4bd3-b4ab-d4d496e31e93";
        int count = 0;
        /**
         * 1
         * */
//        logger.info("【####】拉取专项任务数据开始...");
        logger.info("【####】拉取专项任务数据开始...");
        TbCheckConfig specialCheckConfig = configMapper.getSpecialCheckConfig();
        if (specialCheckConfig.getStatus() == 2){
        if (specialCheckConfig.getStatus() == 2) {
            StringBuffer specialCheckBuffer = null;
            //上报数据
             try {
             URL url = new URL("http://120.71.182.198:9999/v1/data/receive/getCheckTask");
             //得到连接对象
             con = (HttpURLConnection) url.openConnection();
             //设置请求类型
             con.setRequestMethod("POST");
             //允许写出
             con.setDoOutput(true);
             //允许读入
             con.setDoInput(true);
             //不使用缓存
             con.setUseCaches(false);
             con.setInstanceFollowRedirects(true);
             //设置请求头
             con.setRequestProperty("X-Access-Token",token+formatDate.toString());
             //设置Content-Type,此处根据实际情况确定
             con.setRequestProperty("Content-Type", "application/json;charset=utf8");
            try {
                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/getCheckTask");
                //得到连接对象
                con = (HttpURLConnection) url.openConnection();
                //设置请求类型
                con.setRequestMethod("POST");
                //允许写出
                con.setDoOutput(true);
                //允许读入
                con.setDoInput(true);
                //不使用缓存
                con.setUseCaches(false);
                con.setInstanceFollowRedirects(true);
                //设置请求头
                con.setRequestProperty("X-Access-Token", token + formatDate.toString());
                //设置Content-Type,此处根据实际情况确定
                con.setRequestProperty("Content-Type", "application/json;charset=utf8");
             OutputStream os = con.getOutputStream();
                OutputStream os = con.getOutputStream();
                 System.out.println("token:"+token+formatDate.toString());
                System.out.println("token:" + token + formatDate.toString());
            //本段日志,测试成功后,可注释掉
            if (responseCode == HttpURLConnection.HTTP_OK) {
                //得到响应流
                InputStream inputStream = con.getInputStream();
                //将响应流转换成字符串
                specialCheckBuffer = new StringBuffer();
                String line;
                buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                while ((line = buffer.readLine()) != null) {
                    specialCheckBuffer.append(line);
                }
                //本段日志,测试成功后,可注释掉
                if (responseCode == HttpURLConnection.HTTP_OK) {
                    //得到响应流
                    InputStream inputStream = con.getInputStream();
                    //将响应流转换成字符串
                    specialCheckBuffer = new StringBuffer();
                    String line;
                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                    while ((line = buffer.readLine()) != null) {
                        specialCheckBuffer.append(line);
                    }
//                    logger.info("result:" + unitResultBuffer.toString());
                System.out.println("result:" + specialCheckBuffer.toString());
            }
                    System.out.println("result:" + specialCheckBuffer.toString());
                }
            } catch (Exception e) {
                e.printStackTrace();
@@ -184,7 +190,7 @@
            TbBaseCheckTaskDownloadBO checkTaskDownloadDTO = JSONObject.parseObject(specialCheckBuffer.toString(), TbBaseCheckTaskDownloadBO.class);
            //接收返回值,保存返回值
            List<TbBaseCheckTask> tbBaseCheckTasks = JSONArray.parseArray(checkTaskDownloadDTO.getData(), TbBaseCheckTask.class);
            if (tbBaseCheckTasks.size() > 0){
            if (tbBaseCheckTasks.size() > 0) {
                for (TbBaseCheckTask tbBaseCheckTask : tbBaseCheckTasks) {
                    LocalDateTime taskStartTime = tbBaseCheckTask.getTaskStartTime();
                    LocalDate localDate = taskStartTime.toLocalDate();
@@ -202,7 +208,7 @@
            logger.info("【专项检查任务】-读取任务结果:" + checkTaskDownloadDTO.getCode());
            System.out.println("【专项检查任务】-读取任务完成");
        }else {
        } else {
            System.out.println("【专项检查任务】- 不读取任务");
        }
@@ -210,7 +216,7 @@
         * 2
         * */
        logger.info("【####】拉取检查项数据开始...");
        if (specialCheckConfig.getStatus() == 2){
        if (specialCheckConfig.getStatus() == 2) {
            StringBuffer specialCheckBuffer = null;
@@ -225,8 +231,8 @@
            System.out.println("请求参数:" + JSONObject.toJSONString(itemDownloadRespDTO));
            JSONObject itemDownloadRespDTOJson = new JSONObject();
            itemDownloadRespDTOJson.put("taskId",taskId);
            itemDownloadRespDTOJson.put("page",page);
            itemDownloadRespDTOJson.put("taskId", taskId);
            itemDownloadRespDTOJson.put("page", page);
            System.out.println("【【原始数据2】】" + JSONObject.toJSONString(itemDownloadRespDTOJson));
            String encrypted = encrypt(JSONObject.toJSONString(itemDownloadRespDTOJson), key.getBytes(), iv.getBytes());
            System.out.println("【【加密数据2】】" + encrypted);
@@ -248,14 +254,14 @@
                con.setUseCaches(false);
                con.setInstanceFollowRedirects(true);
                //设置请求头
                con.setRequestProperty("X-Access-Token",token+formatDate.toString());
                con.setRequestProperty("X-Access-Token", token + formatDate.toString());
                //设置Content-Type,此处根据实际情况确定
                con.setRequestProperty("Content-Type", "application/json;charset=utf8");
                OutputStream os = con.getOutputStream();
//                Map paraMap = new HashMap();
//                paraMap.put("data", encrypted); /**封装数据*/
               // System.out.println("【【加密请求体】】" +  JSONArray.toJSON(paraMap).toString());
                // System.out.println("【【加密请求体】】" +  JSONArray.toJSON(paraMap).toString());
                //组装入参,设置请求体
                os.write(JSON.toJSONString(itemDownloadRespDTOJson).getBytes());
@@ -282,25 +288,25 @@
            ItemDownloadRespBO itemDownloadRespBO = JSONObject.parseObject(specialCheckBuffer.toString(), ItemDownloadRespBO.class);
            //接收返回值,保存返回值
            String data = itemDownloadRespBO.getData();
            if (ObjectUtils.isNotEmpty(data)){
            if (ObjectUtils.isNotEmpty(data)) {
                JSONObject jsonObject = JSON.parseObject(data);
                String data1 = jsonObject.get("data").toString();
                List<TbBaseCheckItem> tbBaseCheckItems = JSONObject.parseArray(data1, TbBaseCheckItem.class);
                    if (ObjectUtils.isNotEmpty(tbBaseCheckItems)){
                        for (TbBaseCheckItem item : tbBaseCheckItems) {
                            item.setStatus(1);
                            item.setId(item.getCheckItemId());
                            int insert = itemTbRepository.insertBatch(item);
                        }
                if (ObjectUtils.isNotEmpty(tbBaseCheckItems)) {
                    for (TbBaseCheckItem item : tbBaseCheckItems) {
                        item.setStatus(1);
                        item.setId(item.getCheckItemId());
                        int insert = itemTbRepository.insertBatch(item);
                    }
                    count = tbBaseCheckItems.size();
                }
            }
            taskTbRepository.updateStatusById(baseCheckTask.getTaskId());
            logger.info("【专项任务检查项】-读取检查项结果:" + itemDownloadRespBO.getCode());
            System.out.println("【专项任务检查项】-读取检查项完成");
        }else {
        } else {
            System.out.println("【专项任务检查项】- 不读取检查项");
        }
@@ -308,92 +314,105 @@
         * 3
         * */
        logger.info("【####】拉取评分细则开始...");
        if (specialCheckConfig.getStatus() == 2){
        if (specialCheckConfig.getStatus() == 2) {
            if (count <= 0) {
                logger.info("【拉取评分细则开始】-无检查项数据");
                return;
            }
            for (int i = 0; i < count + 20; i++) {
            StringBuffer specialCheckBuffer = null;
            ScoreDownloadRespDTO scoreDownloadRespDTO = new ScoreDownloadRespDTO();
            TbBaseCheckItem baseItemByStatus = itemTbRepository.getBaseItemByStatus(date);
            Page page = new Page();
            page.setCurrent(String.valueOf(1));
            page.setSize(String.valueOf(1000));
                StringBuffer specialCheckBuffer = null;
            scoreDownloadRespDTO.setTaskId(baseItemByStatus.getTaskId());
            scoreDownloadRespDTO.setCheckItemId(baseItemByStatus.getId());
            scoreDownloadRespDTO.setPage(page);
            System.out.println("【【加密前请求体】】" +JSON.toJSONString(scoreDownloadRespDTO));
            //加密请求数据
            String AESReportUnitDate = encrypt(JSON.toJSONString(scoreDownloadRespDTO), key.getBytes(), iv.getBytes());
            System.out.println("【【加密请求体】】" +AESReportUnitDate);
            String decrypt = decrypt(AESReportUnitDate, key.getBytes(), iv.getBytes());
            System.out.println("【【解密请求体】】" +decrypt);
            //上报数据
            try {
                URL url = new URL("http://120.71.182.198:9999/v1/data/receive/getCheckScore");
                //得到连接对象
                con = (HttpURLConnection) url.openConnection();
                //设置请求类型
                con.setRequestMethod("POST");
                //允许写出
                con.setDoOutput(true);
                //允许读入
                con.setDoInput(true);
                //不使用缓存
                con.setUseCaches(false);
                con.setInstanceFollowRedirects(true);
                //设置请求头
                con.setRequestProperty("X-Access-Token",token+formatDate.toString());
                //设置Content-Type,此处根据实际情况确定
                con.setRequestProperty("Content-Type", "application/json;charset=utf8");
                OutputStream os = con.getOutputStream();
                TbBaseCheckItem baseItemByStatus = itemTbRepository.getBaseItemByStatus(date);
                ScoreDownloadRespDTO scoreDownloadRespDTO = new ScoreDownloadRespDTO();
                Page page = new Page();
                page.setCurrent(String.valueOf(1));
                page.setSize(String.valueOf(1000));
                scoreDownloadRespDTO.setTaskId(baseItemByStatus.getTaskId());
                scoreDownloadRespDTO.setCheckItemId(baseItemByStatus.getId());
                scoreDownloadRespDTO.setPage(page);
                System.out.println("【【加密前请求体】】" + JSON.toJSONString(scoreDownloadRespDTO));
                //加密请求数据
                String AESReportUnitDate = encrypt(JSON.toJSONString(scoreDownloadRespDTO), key.getBytes(), iv.getBytes());
                System.out.println("【【加密请求体】】" + AESReportUnitDate);
                String decrypt = decrypt(AESReportUnitDate, key.getBytes(), iv.getBytes());
                System.out.println("【【解密请求体】】" + decrypt);
                //上报数据
                try {
                    URL url = new URL("http://120.71.182.198:9999/v1/data/receive/getCheckScore");
                    //得到连接对象
                    con = (HttpURLConnection) url.openConnection();
                    //设置请求类型
                    con.setRequestMethod("POST");
                    //允许写出
                    con.setDoOutput(true);
                    //允许读入
                    con.setDoInput(true);
                    //不使用缓存
                    con.setUseCaches(false);
                    con.setInstanceFollowRedirects(true);
                    //设置请求头
                    con.setRequestProperty("X-Access-Token", token + formatDate.toString());
                    //设置Content-Type,此处根据实际情况确定
                    con.setRequestProperty("Content-Type", "application/json;charset=utf8");
                    OutputStream os = con.getOutputStream();
//                Map paraMap = new HashMap();
//                paraMap.put("data", AESReportUnitDate); /**封装数据*/
//                System.out.println("【【加密请求体】】" +  JSONArray.toJSON(paraMap).toString());
                //组装入参,设置请求体
                os.write(JSON.toJSONString(scoreDownloadRespDTO).getBytes());
                    //组装入参,设置请求体
                    os.write(JSON.toJSONString(scoreDownloadRespDTO).getBytes());
                //本段日志,测试成功后,可注释掉
                if (responseCode == HttpURLConnection.HTTP_OK) {
                    //得到响应流
                    InputStream inputStream = con.getInputStream();
                    //将响应流转换成字符串
                    specialCheckBuffer = new StringBuffer();
                    String line;
                    buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                    while ((line = buffer.readLine()) != null) {
                        specialCheckBuffer.append(line);
                    }
                    //本段日志,测试成功后,可注释掉
                    if (responseCode == HttpURLConnection.HTTP_OK) {
                        //得到响应流
                        InputStream inputStream = con.getInputStream();
                        //将响应流转换成字符串
                        specialCheckBuffer = new StringBuffer();
                        String line;
                        buffer = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                        while ((line = buffer.readLine()) != null) {
                            specialCheckBuffer.append(line);
                        }
//                    logger.info("result:" + unitResultBuffer.toString());
                    System.out.println("result:" + specialCheckBuffer.toString());
                        System.out.println("result:" + specialCheckBuffer.toString());
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
                //接收返回值,保存返回值
                ScoreDownloadRespBO scoreDownloadRespBO = JSONObject.parseObject(specialCheckBuffer.toString(), ScoreDownloadRespBO.class);
            //接收返回值,保存返回值
            ScoreDownloadRespBO scoreDownloadRespBO = JSONObject.parseObject(specialCheckBuffer.toString(), ScoreDownloadRespBO.class);
            String data = scoreDownloadRespBO.getData();
            if (ObjectUtils.isNotEmpty(data)){
                JSONObject jsonObject = JSON.parseObject(data);
                String data1 = jsonObject.get("data").toString();
                List<TbBaseCheckScore> tbBaseCheckScores = JSONObject.parseArray(data1, TbBaseCheckScore.class);
                    if (ObjectUtils.isNotEmpty(tbBaseCheckScores)){
                String data = scoreDownloadRespBO.getData();
                if (ObjectUtils.isNotEmpty(data)) {
                    JSONObject jsonObject = JSON.parseObject(data);
                    String data1 = jsonObject.get("data").toString();
                    List<TbBaseCheckScore> tbBaseCheckScores = JSONObject.parseArray(data1, TbBaseCheckScore.class);
                    if (ObjectUtils.isNotEmpty(tbBaseCheckScores)) {
                        for (TbBaseCheckScore item : tbBaseCheckScores) {
                            item.setId(item.getScoreId());
                            int insert = scoreTbRepository.save(item);
                        }
                    }
                }
                itemTbRepository.updateStatusById(baseItemByStatus.getId());
                logger.info("【评分细则】-读取结果:" + scoreDownloadRespBO.getCode());
                System.out.println("【评分细则】-读取完成");
                sleep(6000);
            }
            itemTbRepository.updateStatusById(baseItemByStatus.getId());
            logger.info("【评分细则】-读取结果:" + scoreDownloadRespBO.getCode());
            System.out.println("【评分细则】-读取完成");
        }else {
        } else {
            System.out.println("【评分细则】- 不读取");
        }