package com.yaochen.boss.job.unuse; import java.util.List; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Service; import com.yaochen.boss.job.component.BusiComponent; import com.yaochen.boss.job.component.JobComponent; import com.yaochen.myquartz.Job2; import com.yaochen.myquartz.Job2ExecutionContext; import com.ycsoft.beans.core.job.JProdNextTariff; import com.ycsoft.business.dto.config.TemplateConfigDto; import com.ycsoft.business.dto.core.prod.CProdDto; import com.ycsoft.commons.helper.DateHelper; /** * 产品自动退订 * * @author Tom */ @Service @Scope("prototype") public class ProdCancelJob implements Job2 { private final Logger logger = LoggerFactory.getLogger(getClass()); private BusiComponent busiComponent; private JobComponent jobComponent; @Override public void execute(Job2ExecutionContext context) throws JobExecutionException { try{ String prodCancelDays = busiComponent.queryTemplateConfig(TemplateConfigDto.Config.PROD_CANCEL_DAYS.toString(), "5001"); //不同周期资费变更,欠费停产品有新资费未生效时修改为产品暂停 List<JProdNextTariff> nextTariffList = jobComponent.queryNextTariffByJobId(); // for(JProdNextTariff nextTariff : nextTariffList){ // busiComponent.execPause(nextTariff.getDone_code(), nextTariff.getJob_id(), nextTariff.getProd_sn(), // nextTariff.getOld_tariff_id(), nextTariff.getTariff_id()); // } logger.info("产品暂停结束:当前时间:"+ DateHelper.formatNowTime()); //查找需要自动退订的产品 while(true){ List<CProdDto> stopJobList = jobComponent.queryProdStopJob(prodCancelDays);//每次取1000条 if (stopJobList.size()==0){ logger.debug("产品自动退订停止"); break; } for (CProdDto prod:stopJobList){ try{ busiComponent.saveProdStop(prod); }catch(Exception e){ e.printStackTrace(); } } } }catch(Exception e){ logger.error("产品自动退订", e); } } public void setBusiComponent(BusiComponent busiComponent) { this.busiComponent = busiComponent; } public void setJobComponent(JobComponent jobComponent) { this.jobComponent = jobComponent; } }