package com.hxjt.dataupload.jobhandler.doubleprevent; import com.alibaba.fastjson.JSONObject; import com.hxjt.dataupload.model.entity.doubleprevent.Fxfxdx; import com.hxjt.dataupload.model.entity.doubleprevent.Fxfxdy; import com.hxjt.dataupload.service.FxfxdxService; import com.hxjt.dataupload.utils.HttpUtils; import com.xxl.job.core.context.XxlJobHelper; import com.xxl.job.core.handler.annotation.XxlJob; import org.apache.commons.lang3.StringUtils; import org.apache.http.protocol.HTTP; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.concurrent.TimeUnit; @Component public class FxfxdyJobHandler { private Logger log = LoggerFactory.getLogger(FxfxdyJobHandler.class); @Autowired FxfxdxService fxfxdxService; @XxlJob(value = "FxfxdyJobHandler", init = "init", destroy = "destroy") public void execute(String param) { ArrayList fxfxdxs = fxfxdxService.getFxfxdys(); ArrayList zdwxys = fxfxdxService.getZdwxys(); for (int i = 0; i < fxfxdxs.size(); i++) { //System.out.println(fxfxdxs.get(i)); String HAZARD_NAME = fxfxdxs.get(i).getFengxianfenxiduixian(); for (int j = 0; j < zdwxys.size(); j++) { String DANGESOURCE_NAME = zdwxys.get(j).getZhongdaweixianyuanmi(); switch (HAZARD_NAME) { case "甲醇中间罐区": if (DANGESOURCE_NAME.equals("甲醇中间罐区")) { fxfxdxs.get(i).setZhongdaweixianyuanmi(DANGESOURCE_NAME); //fxfxdxs.get(i).setZhongdaweixianyuande(zdwxys.get(j).getZhongdaweixianyuande()); } break; case "化产粗苯储存区": if (DANGESOURCE_NAME.equals("化产粗苯储存区")) { fxfxdxs.get(i).setZhongdaweixianyuanmi(DANGESOURCE_NAME); //fxfxdxs.get(i).setZhongdaweixianyuande(zdwxys.get(j).getZhongdaweixianyuande()); } break; case "甲醇罐区": if (DANGESOURCE_NAME.equals("甲醇罐区")) { fxfxdxs.get(i).setZhongdaweixianyuanmi(DANGESOURCE_NAME); //fxfxdxs.get(i).setZhongdaweixianyuande(zdwxys.get(j).getZhongdaweixianyuande()); } break; case "空分站": if (DANGESOURCE_NAME.equals("空分站")) { fxfxdxs.get(i).setZhongdaweixianyuanmi(DANGESOURCE_NAME); //fxfxdxs.get(i).setZhongdaweixianyuande(zdwxys.get(j).getZhongdaweixianyuande()); } break; case "气柜储存单元": if (DANGESOURCE_NAME.equals("气柜储存单元")) { fxfxdxs.get(i).setZhongdaweixianyuanmi(DANGESOURCE_NAME); //fxfxdxs.get(i).setZhongdaweixianyuande(zdwxys.get(j).getZhongdaweixianyuande()); } break; case "粗苯蒸馏单元": if (DANGESOURCE_NAME.equals("粗苯蒸馏单元")) { fxfxdxs.get(i).setZhongdaweixianyuanmi(DANGESOURCE_NAME); //fxfxdxs.get(i).setZhongdaweixianyuande(zdwxys.get(j).getZhongdaweixianyuande()); } break; } } //System.out.println(fxfxdxs.get(i)); } int success = 0; int fail = 0; for (int i = 0; i < fxfxdxs.size(); i++) { String company = fxfxdxs.get(i).getQiyemingcheng(); String url = "https://ny-fxfk.com/space-ningyanghuagongchany/sapi/qpaas/tiga/dys/keyAuthentication/fengxianfenxidanyuan/v1/fengxianfenxidanyuan"; switch (company) { case "山东恒信高科能源有限公司": case "恒信中碳氢能源科技(山东)有限公司": JSONObject jsonObject = (JSONObject) JSONObject.toJSON(fxfxdxs.get(i)); String post = null; try { post = HttpUtils.sendDataUpload(url, jsonObject, HTTP.UTF_8, "RZdFEDt03BmZvGwkuL6KAE15B7F9249CFBE9"); boolean thisFailFlag = false; boolean postIsNull = false; boolean postNoMsgs = false; if(!StringUtils.isBlank(post)){ JSONObject postJsonObj = JSONObject.parseObject(post); if(postJsonObj.get("msg")!=null && postJsonObj.get("code")!=null && postJsonObj.get("status")!=null && !StringUtils.isBlank(postJsonObj.get("msg").toString())&&!StringUtils.isBlank(postJsonObj.get("code").toString())&&!StringUtils.isBlank(postJsonObj.get("status").toString())){ if(postJsonObj.get("msg").equals("成功")&&postJsonObj.get("code").toString().equals("1000000")&&postJsonObj.get("status").toString().equals("200")){//status //成功 System.out.println("成功"+(i+1)+","); //System.out.println(jsonObject); //System.out.println("post:" + post.toString()); //XxlJobHelper.log("执行日志:" + company + post.toString()); success++; }else{ thisFailFlag = true; } }else{ thisFailFlag = true; postNoMsgs = true; } }else{ postIsNull = true; thisFailFlag = true; } if(thisFailFlag){//异常情况 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDate = LocalDateTime.now().format(formatter); System.out.println(" 当前时间: " + formattedDate); // 示例输出:2025-03-12 08:29:25 System.out.println("失败"+(i+1)+",隐患排查任务"); if(!postIsNull){ System.out.println("post:" + post.toString()); XxlJobHelper.log("执行日志:" + company + post.toString()); } System.out.println(jsonObject); fail++; Thread.sleep(120000); } } catch (Exception e) { e.printStackTrace(); XxlJobHelper.log("错误信息:" + e); XxlJobHelper.log("请求体:" + jsonObject); try { TimeUnit.MINUTES.sleep(2); // 直接指定分钟 } catch (InterruptedException ie) { Thread.currentThread().interrupt(); } } break; //System.out.println("post:"+post1.toString()); } } if(fxfxdxs.size()>0){ XxlJobHelper.log("执行日志:本次有"+fxfxdxs.size()+"条需要上传,成功上传"+success+"条,失败"+fail+"条"); }else{ XxlJobHelper.log("执行日志:本次无新数据需上传"); } } private void init() { log.info("init 方法调用成功"); } private void destroy() { log.info("destroy 方法调用成功"); } }