IClearApiTask.java 3.7 KB
package com.erry.iclear.dateInterface.task;

import com.alibaba.fastjson.JSONObject;
import com.erry.iclear.dateInterface.api.response.TokenResult;
import com.erry.iclear.dateInterface.common.Constants;
import com.erry.iclear.dateInterface.entity.HsCode;
import com.erry.iclear.dateInterface.repository.HsCodeRepository;
import com.erry.iclear.dateInterface.service.ApiService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * @author Administrator
 */
@Component
@Slf4j
public class IClearApiTask {
    @Autowired
    ApiService apiService;
    String token;

    /**
     * TODO 定时任务:每分钟推送: 报关数据、回执
     */
    @Scheduled(cron = "${task.pushCustomsTask}")
    public void pushCustomsTask(){
        try{
            log.info("pushCustomsTask start>>>>>>>>>>>>");
            //获取token
            getToken();
            //获取token成功则进行海关回执推送
            apiService.pushCustoms(this.token);
            log.info("pushCustomsTask end>>>>>>>>>>>>");
        }catch (Exception e){
            log.error("pushCustomsTask() error:" +e.getMessage());
        }
    }

    /**
     * TODO 定时任务:每分钟推送: 完整报文
     */
    @Scheduled(cron = "${task.pushMawbTask}")
    public void pushMawbTask(){
        try{
            log.info("pushMawbTask start>>>>>>>>>>>>");
            //获取token
            getToken();
            //获取token成功则进行海关回执推送
            apiService.pushMawb(this.token);
            log.info("pushMawbTask end>>>>>>>>>>>>");
        }catch (Exception e){
            log.error("pushMawbTask() error:" +e.getMessage());
        }
    }
   /*
   * wy on 2022年1月20日17:50:57
   * 经clj确认,这两个任务没有必要
   *  *//**
     * TODO 定时任务:每分钟推送: 推送失败的回执数据,
     *//*
    @Scheduled(cron = "${task.pushErrorReturnDate}")
    public void pushErrorReturnDate(){
      *//*  try{
            log.info("pushErrorReturnDate start>>>>>>>>>>>>");
            //获取token
            getToken();
            //获取token成功则进行海关回执推送
            apiService.pushErrorReturnDate(this.token);
            log.info("pushErrorReturnDate end>>>>>>>>>>>>");
        }catch (Exception e){
            log.error("pushErrorReturnDate() error:" +e.getMessage());
        }*//*
    }
    *//**
     * TODO 定时任务:每分钟推送: 推送失败的申报数据,
     *//*
    @Scheduled(cron = "${task.pushErrorDeclareDate}")
    public void pushErrorData(){
       *//* try{
            log.info("pushErrorDeclareDate start>>>>>>>>>>>>");
            //获取token
            getToken();
            //获取token成功则进行海关回执推送
            apiService.pushErrorDeclareDate(this.token);
            log.info("pushErrorDeclareDate end>>>>>>>>>>>>");
        }catch (Exception e){
            log.error("pushErrorDeclareDate() error:" +e.getMessage());
        }*//*
    }*/

    /**
     * 获取token
     * @throws Exception
     */
    private void getToken() throws Exception{
        if(token == null){
            try {
                //获取token
                TokenResult tokenResult = apiService.getToken();
                if(tokenResult.getErrorcode().equals(Constants.ApiResponseKeys.SUCCESS)){
                    this.token = tokenResult.getData().getToken();
                }
            }catch(Exception ex){

                log.error(ex.getMessage(),ex);
            }
        }
        if(this.token == null){
            throw new Exception("获取token失败!");
        }
    }
}