package com.trs.ggzyexchange.schedul; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; import com.trs.ggzyexchange.entity.*; import com.trs.ggzyexchange.enums.ClassIfy; import com.trs.ggzyexchange.enums.JobLock; import com.trs.ggzyexchange.service.*; import com.trs.ggzyexchange.utils.TenderDetailsVoUtils; import org.apache.commons.lang3.ObjectUtils; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 成交结果公告 定时任务 *

* * @author trs * @since 2023-02-24 */ @Component public class ZrzyCkqBidwinnoticeSchedul implements Job { private Logger logger = LoggerFactory.getLogger(ZrzyCkqBidwinnoticeSchedul.class); @Autowired private ZrzyCkqBidwinnoticeService zrzyCkqBidwinnoticeService; @Autowired private GcNoticeandfileService gcNoticeandfileService; @Autowired private TenderDetailsVoService tenderDetailsVoService; @Autowired private ScheduledTashService scheduledTashService; @Autowired private AreaPlatformService areaPlatformService; public void queryPageListUpdateEs() throws JsonProcessingException { /** * 查询当前在定时任务表当中的最新时间 */ QueryWrapper scheduledTashQueryWrapper = new QueryWrapper(); scheduledTashQueryWrapper.eq("table_name_value","zrzy_ckq_bidwinnotice"); Page pageScheduledTash = new Page(1, 1); Page page = scheduledTashService.page(pageScheduledTash, scheduledTashQueryWrapper); List records = page.getRecords(); ScheduledTash scheduledTash = null; if(records.size() > 0){ scheduledTash = records.get(0); } Long time = null; if(ObjectUtils.isEmpty(scheduledTash)){ try { /** * 如果scheduledTash为空,证明没有当前定时任务,设置当前的定时任务的时间为0 查询表gcNoticeandfile表当中的最新时间 */ time = zrzyCkqBidwinnoticeService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(0L); time = 0L; scheduledTashTash.setTableNameValue("zrzy_ckq_bidwinnotice"); scheduledTashTash.setUpdateTime(new Date()); scheduledTashTash.setCreateTime(new Date()); scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper); }catch (Exception e){ e.printStackTrace(); } }else { /** * 如果scheduledTash为空,证明没有当前定时任务,设置当前的定时任务的时间为0 查询表gcNoticeandfile表当中的最新时间 */ time = scheduledTash.getTime(); } try { //查询表gcNoticeandfile表当中的最新时间 Long newTime = zrzyCkqBidwinnoticeService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(newTime); scheduledTashTash.setTableNameValue("zrzy_ckq_bidwinnotice"); scheduledTashTash.setUpdateTime(new Date()); scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper); }catch (Exception e){ e.printStackTrace(); } if(!ObjectUtils.isEmpty(time)){ QueryWrapper gcPerformanceQueryWrapper = new QueryWrapper(); gcPerformanceQueryWrapper.gt("DATA_TIMESTAMP",time); int count = zrzyCkqBidwinnoticeService.count(gcPerformanceQueryWrapper); Integer pageSize = 1000; Integer pageNum = (int)Math.ceil((double)count/pageSize); for(int i = 1; i <= pageNum;i++){ List tenderDetailsVoListAll = getTenderDetailsVoListAll(i, pageSize,time); gcNoticeandfileService.parseTenderDetailsVo(tenderDetailsVoListAll); } } } public List getTenderDetailsVoListAll(Integer pageNo,Integer pageSize,Long time){ QueryWrapper gcPerformanceQueryWrapper = new QueryWrapper(); gcPerformanceQueryWrapper.gt("PUBLISHING_TIME",time); Page page = new Page(pageNo, pageSize); Page page1 = zrzyCkqBidwinnoticeService.page(page,gcPerformanceQueryWrapper); List records = page1.getRecords(); List tenderDetailsVos = new ArrayList(); for (ZrzyCkqBidwinnotice record : records) { TenderDetailsVo tenderDetailsVo = new TenderDetailsVo(); String naAppCode = record.getNaAppCode(); if(!ObjectUtils.isEmpty(naAppCode)){ tenderDetailsVo.setProjectCode(naAppCode); } String announcementname = record.getAnnouncementName(); if(!ObjectUtils.isEmpty(announcementname)){ tenderDetailsVo.setNoticeName(announcementname); } String naappname = record.getNaAppName(); if(!ObjectUtils.isEmpty(naappname)){ tenderDetailsVo.setProjectName(naappname); } String naappcode = record.getNaAppCode(); if(!ObjectUtils.isEmpty(naappcode)){ tenderDetailsVo.setTenderProjectCode(naappcode); } String announcementConnect = record.getAnnouncementConnect(); if(!ObjectUtils.isEmpty(announcementConnect)){ tenderDetailsVo.setNoticeContent(announcementConnect); } Long createDate = record.getCreateDate(); if(false&&!ObjectUtils.isEmpty(createDate)&&0 != createDate){ tenderDetailsVo.setNoticeSendTime(record.getCreateDate().toString()); }else{ Long publishingTime = record.getPublishingTime(); if(!ObjectUtils.isEmpty(publishingTime)){ tenderDetailsVo.setNoticeSendTime(publishingTime.toString()); tenderDetailsVo.setDocGetStartTime(publishingTime.toString()); } } String regionCode = record.getRegionCode(); if(!ObjectUtils.isEmpty(regionCode)){ tenderDetailsVo.setRegionCode(regionCode); } Long dealTime = record.getDataTimestamp(); if(!ObjectUtils.isEmpty(dealTime)){ tenderDetailsVo.setDocGetEndTime(dealTime.toString()); } String sourceDataKey = record.getSourceDataKey(); if(!ObjectUtils.isEmpty(sourceDataKey)){ tenderDetailsVo.setSourceDataKey(sourceDataKey+tenderDetailsVo.getNoticeSendTime()); } String dataSourceCode = record.getDataSourceCode(); if(!ObjectUtils.isEmpty(dataSourceCode)){ tenderDetailsVo.setDataSourceCode(dataSourceCode); } tenderDetailsVos.add(tenderDetailsVo); } for (TenderDetailsVo record : tenderDetailsVos) { try { record.setNoticeTypeCode(ClassIfy.TRANSACTION_PARCEL.getCode()); record.setNoticeTypeName(ClassIfy.TRANSACTION_PARCEL.getName()); record.setTransactionTypeCode(ClassIfy.NATURAL_RESOURCES.getCode()); record.setTransactionTypeName(ClassIfy.NATURAL_RESOURCES.getName()); record = tenderDetailsVoService.getTenderDetailsVoAllOrther(record); try { String regionCode = record.getRegionCode(); AreaPlatform areaPlatformByRegionCode = areaPlatformService.getAreaPlatformByRegionCode(regionCode); if(!ObjectUtils.isEmpty(areaPlatformByRegionCode)){ record.setPlatformCode(areaPlatformByRegionCode.getPlatformCode()); record.setPlatformName(areaPlatformByRegionCode.getRegionName()); } record.setIndustriesTypeName(ClassIfy.zrzy_ckq.getName()); // record.setIndustriesTypeName(ClassIfy.zrzy_ky.getName()); }catch (Exception e){ e.printStackTrace(); } TenderDetailsVoUtils.isNull(record); }catch (Exception e){ e.printStackTrace(); } } return tenderDetailsVos; } @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { try { if(JobLock.ZrzyCkqBidwinnoticeFlag){ JobLock.ZrzyCkqBidwinnoticeFlag = false; logger.info("执行ZrzyCkqBidwinnotice", new SimpleDateFormat().format(new Date())); try { queryPageListUpdateEs(); } catch (Exception e) { e.printStackTrace(); } JobLock.ZrzyCkqBidwinnoticeFlag = true; }else{ logger.info("不执行ZrzyCkqBidwinnotice", new SimpleDateFormat().format(new Date())); } }catch (Exception e){ e.printStackTrace(); JobLock.ZrzyCkqBidwinnoticeFlag = true; } } }