TianRangTask.java 2.46 KB
package com.viontech.tvp.task;

import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;

import java.util.Date;

/**
 * 同步天壤平台Task
 * @author msl
 * @date 2022/10/17
 */
@Slf4j
public class TianRangTask implements Runnable {
    private final JSONObject fxData;
    private final String url;

    public TianRangTask(JSONObject fxData, String url) {
        this.fxData = fxData;
        this.url = url;
    }

    @Override
    public void run() {
        //构造请求参数
        String params = buildParam(fxData);
        log.info("发送tianrang参数:{}", params);
        //发送请求
        String sendResult = HttpUtil.post(url, params, 20000);
        log.info("发送tianrang结果:{}", sendResult);
    }

    public String buildParam(JSONObject fxData) {
        long startTime = 0;
        long endTime = 0;
        String eventId = "";
        String illegalCode = "";
        String deviceCode = "";
        String deviceName = "";
        try {
            JSONObject eventData = fxData.getJSONObject("event_data");
            String startDt = eventData.getStr("start_dt").replaceAll("T", " ");
            Date startParse = DateUtil.parse(startDt, "yyyy-MM-dd HH:mm:ss.SSS");
            startTime = DateUtil.offsetHour(startParse, 8).getTime();
            String endDt = eventData.getStr("end_dt").replaceAll("T", " ");
            Date endParse = DateUtil.parse(endDt, "yyyy-MM-dd HH:mm:ss.SSS");
            endTime = DateUtil.offsetHour(endParse, 8).getTime();

            eventId = eventData.getStr("ID");
            JSONObject illegal = eventData.getJSONObject("illegal");
            illegalCode = illegal.getStr("code");
            deviceCode = eventData.getJSONObject("device").getStr("code");
            deviceName = eventData.getJSONObject("device").getStr("name");
        } catch (Exception e) {
            log.error("buildParam.Exception:{}", e.getMessage(), e);
        }

        JSONArray result = new JSONArray();
        JSONObject obj = new JSONObject();
        obj.set("targetType", "cross");
        obj.set("targetId", deviceCode);
        obj.set("targetName", deviceName);
        obj.set("eventId", eventId);
        obj.set("eventCode", illegalCode);
//        obj.set("eventName", "压线");
        obj.set("startTime", startTime);
        obj.set("endTime", endTime);
        result.add(obj);
        return result.toString();
    }
}