package com.yaochen.boss.job.unuse;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import com.yaochen.boss.commons.BankFileParser;
import com.yaochen.boss.commons.BankFileUtil;
import com.yaochen.boss.commons.FtpUtilBuilder;
import com.yaochen.boss.job.component.BusiComponent;
import com.yaochen.myquartz.Job2;
import com.yaochen.myquartz.Job2ExecutionContext;
import com.ycsoft.beans.core.bank.CBankAgree;
import com.ycsoft.daos.core.JDBCException;
/**
* <p> 银行签约任务处理</p>
* <p>从FTP服务器获取银行签约记录, 并解析远程调用core保存签约信息</p>
*
* @author Tom
*/
@Service
public class BankAgreeJob implements Job2{
private final Logger logger = LoggerFactory.getLogger(getClass());
private BusiComponent busiComponent;
@Override
public void execute(Job2ExecutionContext context)
throws JobExecutionException {
try {
bankAgree();
} catch (Exception e) {
logger.error("银行签约任务处理出错", e);
}
}
private void bankAgree() throws JDBCException {
List<CBankAgree> bankAgreeList = busiComponent.quertyUnProcBankAgree();
logger.info("银行签约处理:"+bankAgreeList.size());
for (int i = 0; i < bankAgreeList.size(); i++) {
CBankAgree cba = bankAgreeList.get(i);
try{
// 银行签约或换卡
if("01".indexOf(cba.getB_state()) >= 0){
if (busiComponent.saveSignBank(cba)){
busiComponent.successBankAgree(cba.getAgree_id());
}
// 取消银行扣款
}else if("2".equals(cba.getB_state())){
if( busiComponent.saveRemoveSignBank(cba)){
busiComponent.successBankAgree(cba.getAgree_id());
}
}
}catch (Exception e) {
try {
busiComponent.failBankAgree(cba.getAgree_id(),e.getMessage());
} catch (JDBCException e1) {
logger.info("银行签约错误:"+e1.getMessage());
}
logger.info("银行签约失败"+e.getMessage());
}
}
}
public void setBusiComponent(BusiComponent busiComponent) {
this.busiComponent = busiComponent;
}
}