GetTimeQuartz.java 3.66 KB
package com.xiniunet.quartz;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.xiniunet.framework.base.BaseRequest;
import com.xiniunet.framework.cache.CacheManager;
import com.xiniunet.framework.constant.CacheTimeEnum;
import com.xiniunet.framework.log.LogUtil;
import com.xiniunet.framework.security.Passport;
import com.xiniunet.framework.util.DateUtil;
import com.xiniunet.framework.util.EncryptUtil;
import com.xiniunet.framework.util.SpringContext;
import com.xiniunet.railway.domain.Organization;
import com.xiniunet.railway.request.OrganizationGetRequest;
import com.xiniunet.railway.request.OrganizationUpdateRequest;
import com.xiniunet.railway.response.OrganizationGetResponse;
import com.xiniunet.railway.response.OrganizationUpdateResponse;
import com.xiniunet.railway.service.RailwayService;
import com.xiniunet.service.railway.Constant;
import com.xiniunet.service.railway.util.RailwayThirdTools;
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.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by 胡 on 2016/12/30.
 * 每一分钟造一个时间
 */
@Component
public class GetTimeQuartz {
    @Autowired
    private RailwayService railwayService;
    /**
     * 执行定时器,每1分钟执行一次
     */
    public void execute() {
        LogUtil.warnLog("每一分钟造一个时间开始==========================");
        Passport passport = new Passport();
        passport.setTenantId(Constant.RAILWAY_TENANT_ID);
        passport.setUserId(Constant.RAILWAY_USER_ID);
        OrganizationGetRequest organizationGetRequest = new OrganizationGetRequest();
        organizationGetRequest.setId(0L);
        OrganizationGetResponse organizationGetResponse = railwayService.getOrganization(organizationGetRequest,passport);
        if(organizationGetResponse.hasError()){
            return;
        }
        //假数据的开始时间点、结束时间点,当前时间点
        String currentTime;
        Organization organization = organizationGetResponse.getOrganization();
        if(organization != null){
            currentTime = organization.getName();
            //如果当前时间等于结束时间,则重新循环
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
            try {
                if( (long)Long.valueOf(currentTime )>= (long)Long.valueOf(organization.getCode() )|| (long)Long.valueOf(currentTime ) <(long)organization.getPid() ){
                    currentTime =  String.valueOf(organization.getPid()) ;
                }else {
                    currentTime = sdf.format(new Date((sdf.parse(currentTime).getTime() + 60000))) ;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            OrganizationUpdateRequest organizationUpdateRequest = new OrganizationUpdateRequest();
            organizationUpdateRequest.setId(0L);
            organizationUpdateRequest.setPid(organization.getPid());
            organizationUpdateRequest.setCode(organization.getCode());
            organizationUpdateRequest.setName(String.valueOf(currentTime));
            organizationUpdateRequest.setRowVersion(organization.getRowVersion());
            OrganizationUpdateResponse organizationUpdateResponse = railwayService.updateOrganization(organizationUpdateRequest,passport);
            if(organizationUpdateResponse.hasError()){
                return;
            }
        }

        LogUtil.warnLog("每一分钟造一个时间结束====================");
    }

}