package com.uas.eis.task; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.uas.eis.dto.stksto.QueryAccountantProjectDto; import com.uas.eis.dto.stksto.QueryCashFlowItemsDto; import com.uas.eis.dto.stksto.QueryTravellingMerchantDto; import com.uas.eis.dto.stksto.StkCommonDto; import com.uas.eis.sdk.dto.CustvendDTO; import com.uas.eis.service.RequestSTKService; import com.uas.eis.service.STKService; import com.uas.eis.vo.stkVo.AccountantProjectVo; import com.uas.eis.vo.stkVo.CashFlowItemsVo; import com.uas.eis.vo.stkVo.HttpResultResponse; import com.uas.eis.vo.stkVo.TravellingMerchantVo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.ResponseBody; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Set; @Slf4j @Component public class STKTask { /** * 获取客商状态反馈信息 * */ @Value("${STK.get_travelling_merchant_status}") private String GET_TRAVELLING_MERCHANT_STATUS; @Autowired RequestSTKService requestSTKService; @Autowired private STKService stkService; /*@Scheduled(cron = "0 55 22 * * ?") public void getSellerOrders(){ log.info("开始获取深投控客商状态信息=========start============="); Date date = new Date(); QueryTravellingMerchantDto dto = new QueryTravellingMerchantDto(); dto.setCode(GET_TRAVELLING_MERCHANT); dto.setPage(1); dto.setSize(500); TravellingMerchantVo travellingMerchantVo = new TravellingMerchantVo(); Boolean exception = false; try{ travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto,COMPLEXITY_QUERY_URL); }catch (Exception e){ log.info("获取客商信息数据异常:{}",e.getMessage()); exception = true; } log.info("定时任务获取深投控客商信息数据结果:{}", JSONObject.toJSONString(travellingMerchantVo)); //第一次删除STK_CUSTVEND的数据 stkService.getCustvend(travellingMerchantVo, true); if (travellingMerchantVo.getData().getHasNextPage()){ Boolean isBreak = true; while(isBreak) { if(!exception){ dto.setPage(travellingMerchantVo.getData().getNextPage()); } log.info("while循环获取客商数据,查询参数:{}",JSONObject.toJSONString(dto)); try{ travellingMerchantVo = requestSTKService.selectTravellingMerchantList(dto, COMPLEXITY_QUERY_URL); }catch (Exception e){ log.info("获取客商信息数据异常:{}",e.getMessage()); exception = true; } stkService.getCustvend(travellingMerchantVo, false); if (!travellingMerchantVo.getData().getHasNextPage() || dto.getSize() > travellingMerchantVo.getData().getEndRow()){ isBreak = false; } } } log.info("定时任务获取深投控客商信息数据结果2:{}", JSONObject.toJSONString(travellingMerchantVo)); log.info("开始获取深投控客商状态信息,结束:"+((System.currentTimeMillis()-date.getTime())/1000)); }*/ //客商获取 @Scheduled(cron = "0 39 18 * * ?") public void queryCustVendQuartz(){ log.info("开始获取深投控客商状态信息=========start============="); Date date = new Date(); QueryTravellingMerchantDto dto = new QueryTravellingMerchantDto(); dto.setPage(118); dto.setSize(1000); //第一次删除STK_CUSTVEND的数据 //stkService.delete(); //是否跳出循环 Boolean isBreak = true; //是否发生异常 Boolean exception = false; //异常跳过次数 Integer num = 0; while(isBreak) { if(num >=5){ break; } log.info("while循环获取客商数据,查询参数:{}",JSONObject.toJSONString(dto)); TravellingMerchantVo travellingMerchantVo = new TravellingMerchantVo(); try{ travellingMerchantVo = requestSTKService.queryTravelingMerchantList(dto); if(travellingMerchantVo.getCode() != 200){ num = num +1; continue; } //获取到客商数据,数据入库 stkService.getCustvend(travellingMerchantVo, false); exception = false; }catch (Exception e){ log.info("获取客商信息数据异常:{}",e.getMessage()); exception = true; num = num +1; } //判断没发生异常,且是最后一页条件判断==》没有下页编码,或者返回的数据量小于每次查询的每页数量 if (!exception && null != travellingMerchantVo && null != travellingMerchantVo.getData() && dto.getSize() > travellingMerchantVo.getData().getEndRow()){ isBreak = false; } if(!exception){ dto.setPage(travellingMerchantVo.getData().getNextPage()); } //log.info("定时任务获取深投控客商信息数据结果2:{}", JSONObject.toJSONString(travellingMerchantVo)); } log.info("isBreak,结束:"+isBreak); log.info("num,结束:"+num); log.info("开始获取深投控客商状态信息,结束:"+((System.currentTimeMillis()-date.getTime())/1000)); } //客商获取(当天) //@Scheduled(cron = "0 41 18 * * ?") public void queryCustVendDayQuartz(){ log.info("开始获取深投控客商状态信息=========start============="); Date date = new Date(); Calendar start=Calendar.getInstance(); int month=start.get(Calendar.MONTH) + 1; log.info("开始时间:"+start.get(Calendar.YEAR)+"-"+month+"-"+start.get(Calendar.DAY_OF_MONTH)+" 00:00:00"); log.info("结束时间:"+start.get(Calendar.YEAR)+"-"+month+"-"+start.get(Calendar.DAY_OF_MONTH)+" 23:59:59"); QueryTravellingMerchantDto dto = new QueryTravellingMerchantDto(); dto.setPage(1); dto.setSize(500); dto.setStart_time(start.get(Calendar.YEAR)+"-"+month+"-"+start.get(Calendar.DAY_OF_MONTH)+" 00:00:00"); dto.setEnd_time(start.get(Calendar.YEAR)+"-"+month+"-"+start.get(Calendar.DAY_OF_MONTH)+" 23:59:59"); //是否跳出循环 Boolean isBreak = true; //是否发生异常 Boolean exception = false; //异常跳过次数 Integer num = 0; while(isBreak) { if(num >=5){ break; } log.info("while循环获取客商数据,查询参数:{}",JSONObject.toJSONString(dto)); TravellingMerchantVo travellingMerchantVo = new TravellingMerchantVo(); try{ travellingMerchantVo = requestSTKService.queryTravelingMerchantList(dto); if(travellingMerchantVo.getCode() != 200){ num = num +1; continue; } //获取到客商数据,数据入库 stkService.getCustvendDay(travellingMerchantVo, false); exception = false; }catch (Exception e){ log.info("获取客商信息数据异常:{}",e.getMessage()); exception = true; num = num +1; } //判断没发生异常,且是最后一页条件判断==》没有下页编码,或者返回的数据量小于每次查询的每页数量 if (!exception && null != travellingMerchantVo && null != travellingMerchantVo.getData() && dto.getSize() > travellingMerchantVo.getData().getEndRow()){ isBreak = false; } if(!exception){ dto.setPage(travellingMerchantVo.getData().getNextPage()); } log.info("定时任务获取深投控客商信息数据结果2:{}", JSONObject.toJSONString(travellingMerchantVo)); } log.info("开始获取深投控客商状态信息,结束:"+((System.currentTimeMillis()-date.getTime())/1000)); } //现金流项目 //@Scheduled(cron = "0 35 23 * * ?") public void queryCashFlowItems(){ //StkCommonDto dto = new StkCommonDto(); QueryCashFlowItemsDto dtoParam = new QueryCashFlowItemsDto(); /*dto.setPage(String.valueOf(pageXjl)); dto.setSize("500"); dto.setParam(dtoParam);*/ Integer page = 1; Integer size = 1000; //是否跳出循环 Boolean isBreak = true; //是否发生异常 Boolean exception = false; //异常跳过次数 Integer num = 0; while(isBreak) { if (num >= 5) { break; } CashFlowItemsVo cashFlowItemsVo = new CashFlowItemsVo(); try { HttpResultResponse resultResponse = requestSTKService.buildPostParam(page,size,dtoParam); cashFlowItemsVo = JSONObject.parseObject(resultResponse.getBody(),CashFlowItemsVo.class); if (cashFlowItemsVo.getCode() != 200) { num = num + 1; continue; } //获取到现金流项目,数据入库 stkService.getCashFlowItems(cashFlowItemsVo, true); exception = false; }catch (Exception e){ log.info("获取现金流异常:{}",e.getMessage()); exception = true; num = num +1; } //判断没发生异常,且是最后一页条件判断==》没有下页编码,或者当前页数等于返回页数 if (!exception && null != cashFlowItemsVo && page >= cashFlowItemsVo.getPages()){ isBreak = false; } if(!exception){ page = page +1; } } } //获取会计科目 //@Scheduled(cron = "0 05 01 * * ?") public void queryAccountantProject() { QueryAccountantProjectDto dto = new QueryAccountantProjectDto(); Integer page = 1; Integer size = 1000; //是否跳出循环 Boolean isBreak = true; //是否发生异常 Boolean exception = false; //异常跳过次数 Integer num = 0; while (isBreak) { if (num >= 5) { break; } log.info("while循环会计科目,查询参数:{}", JSONObject.toJSONString(dto)); HttpResultResponse resultResponse = new HttpResultResponse(); AccountantProjectVo accountantProjectVo = null; try { resultResponse = requestSTKService.buildKMPostParam(page, size ,dto); accountantProjectVo = JSONObject.parseObject(resultResponse.getBody(),AccountantProjectVo.class); if (accountantProjectVo.getCode() != 200) { num = num + 1; continue; } //获取到现金流项目,数据入库 stkService.getAccountantProject(accountantProjectVo, true); exception = false; } catch (Exception e) { log.info("获取现金流异常:{}", e.getMessage()); exception = true; num = num + 1; } //判断没发生异常,且是最后一页条件判断==》没有下页编码,或者当前页数等于返回页数 if (!exception && null != accountantProjectVo && null != accountantProjectVo.getData() && page >= accountantProjectVo.getPages()) { isBreak = false; } if (!exception) { page = page + 1; } } } }