| | |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.*; |
| | | |
| | | import static com.ruoyi.common.utils.Threads.sleep; |
| | | |
| | | @Component |
| | | public class SpecialCheckTaskDownload { |
| | | |
| | |
| | | } |
| | | return sr; |
| | | } |
| | | |
| | | public static String decrypt(String encryptedText, byte[] key, byte[] iv) { |
| | | String sr; |
| | | try { |
| | |
| | | } |
| | | |
| | | |
| | | @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 * * * ? ") // 分钟 |
| | |
| | | |
| | | Date date = new Date(); |
| | | //格式化时间,作为token的时间戳 |
| | | SimpleDateFormat tokenDate= new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | SimpleDateFormat tokenDate = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | String formatDate = tokenDate.format(date); |
| | | |
| | | logger.info("【token时间】" + formatDate); |
| | |
| | | |
| | | //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(); |
| | |
| | | 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(); |
| | |
| | | |
| | | logger.info("【专项检查任务】-读取任务结果:" + checkTaskDownloadDTO.getCode()); |
| | | System.out.println("【专项检查任务】-读取任务完成"); |
| | | }else { |
| | | } else { |
| | | System.out.println("【专项检查任务】- 不读取任务"); |
| | | } |
| | | |
| | |
| | | * 2 |
| | | * */ |
| | | logger.info("【####】拉取检查项数据开始..."); |
| | | if (specialCheckConfig.getStatus() == 2){ |
| | | if (specialCheckConfig.getStatus() == 2) { |
| | | |
| | | StringBuffer specialCheckBuffer = null; |
| | | |
| | |
| | | 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); |
| | |
| | | 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()); |
| | | |
| | |
| | | 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("【专项任务检查项】- 不读取检查项"); |
| | | } |
| | | |
| | |
| | | * 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("【评分细则】- 不读取"); |
| | | } |
| | | |