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 AllianceCityWebsiteSchedul implements Job { private Logger logger = LoggerFactory.getLogger(AllianceCityWebsiteSchedul.class); @Autowired private AllianceCityWebsiteService allianceCityWebsiteService; @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","alliance_city_website"); 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表当中的最新时间 */ ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(0L); time = 0L; scheduledTashTash.setTableNameValue("alliance_city_website"); 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 = allianceCityWebsiteService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(newTime); scheduledTashTash.setTableNameValue("alliance_city_website"); 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 = allianceCityWebsiteService.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("DATA_TIMESTAMP",time); Page page = new Page(pageNo, pageSize); Page page1 = allianceCityWebsiteService.page(page,gcPerformanceQueryWrapper); List records = page1.getRecords(); List tenderDetailsVos = new ArrayList(); for (AllianceCityWebsite record : records) { TenderDetailsVo tenderDetailsVo = new TenderDetailsVo(); String projectCode1 = record.getProjectCode(); if(!ObjectUtils.isEmpty(projectCode1)){ tenderDetailsVo.setProjectCode(projectCode1); } String noticeName = record.getBulletinTitle(); if(!ObjectUtils.isEmpty(noticeName)){ tenderDetailsVo.setNoticeName(noticeName); } String projectName = record.getBulletinTitle(); if(!ObjectUtils.isEmpty(projectName)){ tenderDetailsVo.setProjectName(projectName); } String projectCode = record.getProjectCode(); if(!ObjectUtils.isEmpty(projectCode)){ tenderDetailsVo.setTenderProjectCode(projectCode); } Long noticeSendTime = record.getPublishingTime(); Long createDate = record.getCreateDate(); if(false&&!ObjectUtils.isEmpty(createDate)&&0 != createDate){ tenderDetailsVo.setNoticeSendTime(record.getCreateDate().toString()); }else{ if(!ObjectUtils.isEmpty(noticeSendTime)){ tenderDetailsVo.setNoticeSendTime(noticeSendTime.toString()); tenderDetailsVo.setDocGetStartTime(noticeSendTime.toString()); } } String regionCode = record.getRegionCode(); if(!ObjectUtils.isEmpty(regionCode)){ tenderDetailsVo.setRegionCode(regionCode); } Long noticeEndTime = record.getPublishingTime(); if(!ObjectUtils.isEmpty(noticeEndTime)){ tenderDetailsVo.setDocGetEndTime(noticeEndTime.toString()); } String dataSourceCode = record.getSourceDataKey(); if(!ObjectUtils.isEmpty(dataSourceCode)){ tenderDetailsVo.setDataSourceCode(dataSourceCode); } String sourceDataKey = record.getSourceDataKey(); if(!ObjectUtils.isEmpty(sourceDataKey)){ tenderDetailsVo.setSourceDataKey(sourceDataKey+noticeSendTime); } if(!ObjectUtils.isEmpty(record.getBulletinType())){//1:公告,2:公示 tenderDetailsVo.setTypeName(record.getBulletinType()); } if(!ObjectUtils.isEmpty(record.getIndustryType())){//1:采购需求预公示2:产权类3:权益类 tenderDetailsVo.setTypeCode(record.getIndustryType()); } String finalNoticeContent = ""; String noticeContent = record.getBulletinContent(); if(!ObjectUtils.isEmpty(noticeContent)){ finalNoticeContent = noticeContent; } if(!ObjectUtils.isEmpty(record.getUrl())){ String fileUrl = record.getUrl(); String file = ""; if(!ObjectUtils.isEmpty(fileUrl)){ file = "
附件:
"; file += "附件
"; } finalNoticeContent = finalNoticeContent + file; } tenderDetailsVo.setNoticeContent(finalNoticeContent); tenderDetailsVos.add(tenderDetailsVo); } for (TenderDetailsVo record : tenderDetailsVos) { try { String typeName = record.getTypeName();//1:公告,2:公示 String typeCode = record.getTypeCode();//1:采购需求预公示2:产权类3:权益类 if(!ObjectUtils.isEmpty(typeCode)){ if("1".equals(typeCode)){//采购需求预公示 record.setNoticeTypeCode(ClassIfy.PRE_ANNOUNCEMENT.getCode()); record.setNoticeTypeName(ClassIfy.PRE_ANNOUNCEMENT.getName()); record.setTransactionTypeCode(ClassIfy.GOVERNMENT_PROCUREMENT.getCode()); record.setTransactionTypeName(ClassIfy.GOVERNMENT_PROCUREMENT.getName()); }else if("2".equals(typeCode)){//呼市产权交易 if("1".equals(typeName)){ record.setNoticeTypeCode(ClassIfy.hhht_cq_gg.getCode()); record.setNoticeTypeName(ClassIfy.hhht_cq_gg.getName()); }else if("2".equals(typeName)){ record.setNoticeTypeCode(ClassIfy.hhht_cq_jg.getCode()); record.setNoticeTypeName(ClassIfy.hhht_cq_jg.getName()); } record.setTransactionTypeCode(ClassIfy.HHHT_PROPERTY.getCode()); record.setTransactionTypeName(ClassIfy.HHHT_PROPERTY.getName()); }else if("3".equals(typeCode)){//赤峰资源权益交易 if("1".equals(typeName)){ record.setNoticeTypeCode(ClassIfy.cf_cq_gg.getCode()); record.setNoticeTypeName(ClassIfy.cf_cq_gg.getName()); }else if("2".equals(typeName)){ record.setNoticeTypeCode(ClassIfy.cf_cq_jg.getCode()); record.setNoticeTypeName(ClassIfy.cf_cq_jg.getName()); } record.setTransactionTypeCode(ClassIfy.CF_PROPERTY.getCode()); record.setTransactionTypeName(ClassIfy.CF_PROPERTY.getName()); } }else { continue; } try { String regionCode = record.getRegionCode(); AreaPlatform areaPlatformByRegionCode = areaPlatformService.getAreaPlatformByRegionCode(regionCode); if(!ObjectUtils.isEmpty(areaPlatformByRegionCode)){ record.setPlatformCode(areaPlatformByRegionCode.getPlatformCode()); record.setPlatformName(areaPlatformByRegionCode.getRegionName()); } }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.AllianceCityWebsiteFlag){ JobLock.AllianceCityWebsiteFlag = false; logger.info("执行AllianceCityWebsiteFlag", new SimpleDateFormat().format(new Date())); try { queryPageListUpdateEs(); } catch (Exception e) { e.printStackTrace(); } JobLock.AllianceCityWebsiteFlag = true; }else{ logger.info("不执行AllianceCityWebsiteFlag", new SimpleDateFormat().format(new Date())); } }catch (Exception e){ e.printStackTrace(); JobLock.AllianceCityWebsiteFlag = true; } } }