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 ZrzyJyzbBidwinNoticeSchedul implements Job { private Logger logger = LoggerFactory.getLogger(ZrzyJyzbBidwinNoticeSchedul.class); @Autowired private ZrzyJyzbBidwinNoticeService zrzyJyzbBidwinNoticeService; @Autowired private GcNoticeandfileService gcNoticeandfileService; @Autowired private TenderDetailsVoService tenderDetailsVoService; @Autowired private ScheduledTashService scheduledTashService; @Autowired private AreaPlatformService areaPlatformService; @Autowired private ZrzyJyzbNoticeService zrzyJyzbNoticeService; public void queryPageListUpdateEs() throws JsonProcessingException { //查询当前在定时任务表当中的时间 QueryWrapper scheduledTashQueryWrapper = new QueryWrapper(); scheduledTashQueryWrapper.eq("table_name_value","zrzy_jyzb_bidwin_notice"); 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 { //查询表gcNoticeandfile表当中的最新时间 time = zrzyJyzbBidwinNoticeService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(0L); time = 0L; scheduledTashTash.setTableNameValue("zrzy_jyzb_bidwin_notice"); scheduledTashTash.setUpdateTime(new Date()); scheduledTashTash.setCreateTime(new Date()); scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper); }catch (Exception e){ e.printStackTrace(); } }else { time = scheduledTash.getTime(); } try { //查询表gcNoticeandfile表当中的最新时间 Long newTime = zrzyJyzbBidwinNoticeService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(newTime); scheduledTashTash.setTableNameValue("zrzy_jyzb_bidwin_notice"); 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 = zrzyJyzbBidwinNoticeService.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("ISSUE_TIME",time); Page page = new Page(pageNo, pageSize); Page page1 = zrzyJyzbBidwinNoticeService.page(page,gcPerformanceQueryWrapper); List records = page1.getRecords(); List tenderDetailsVos = new ArrayList(); for (ZrzyJyzbBidwinNotice record : records) { TenderDetailsVo tenderDetailsVo = new TenderDetailsVo(); String projectCode = record.getProjectCode(); if(!ObjectUtils.isEmpty(projectCode)){ tenderDetailsVo.setProjectCode(projectCode); } String noticeName = record.getNoticeNane(); if(!ObjectUtils.isEmpty(noticeName)){ tenderDetailsVo.setNoticeName(noticeName); } String projectName = record.getProjectName(); if(!ObjectUtils.isEmpty(projectName)){ tenderDetailsVo.setProjectName(projectName); } String unifiedDealCode = record.getUnifiedDealCode(); if(!ObjectUtils.isEmpty(unifiedDealCode)){ tenderDetailsVo.setTenderProjectCode(unifiedDealCode); } String noticeContent = record.getNoticeContent(); if(!ObjectUtils.isEmpty(noticeContent)){ tenderDetailsVo.setNoticeContent(noticeContent); } Long getIssueTime = record.getIssueTime(); if(!ObjectUtils.isEmpty(getIssueTime)){ tenderDetailsVo.setNoticeSendTime(getIssueTime.toString()); tenderDetailsVo.setDocGetStartTime(getIssueTime.toString()); } String projectCode1 = record.getProjectCode(); if (!ObjectUtils.isEmpty(projectCode1)) { String regionCode = getRegionCode(projectCode1); 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+getIssueTime); } String dataSourceCode = record.getSourceDataCode(); 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()); } }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.zrzyJyzbBidwinNoticeFlag){ JobLock.zrzyJyzbBidwinNoticeFlag = false; logger.info("执行ZrzyCkqBidwinnotice", new SimpleDateFormat().format(new Date())); try { queryPageListUpdateEs(); } catch (Exception e) { e.printStackTrace(); } JobLock.zrzyJyzbBidwinNoticeFlag = true; }else{ logger.info("不执行zrzyJyzbBidwinNotice", new SimpleDateFormat().format(new Date())); } }catch (Exception e){ e.printStackTrace(); JobLock.zrzyJyzbBidwinNoticeFlag = true; } } public void execute() throws JobExecutionException { try { if(JobLock.zrzyJyzbBidwinNoticeFlag){ JobLock.zrzyJyzbBidwinNoticeFlag = false; logger.info("执行zrzyJyzbBidwinNotice", new SimpleDateFormat().format(new Date())); try { queryPageListUpdateEs(); } catch (Exception e) { e.printStackTrace(); } JobLock.zrzyJyzbBidwinNoticeFlag = true; }else{ logger.info("不执行zrzyJyzbBidwinNotice", new SimpleDateFormat().format(new Date())); } }catch (Exception e){ e.printStackTrace(); JobLock.zrzyJyzbBidwinNoticeFlag = true; } } public String getRegionCode(String projectCode){ String zone = null; if(!ObjectUtils.isEmpty(projectCode)){ QueryWrapper zrzyJyzbNoticeQueryWrapper = new QueryWrapper(); zrzyJyzbNoticeQueryWrapper.gt("PROJECT_CODE",projectCode); Page page = new Page(1, 1); Page page1 = zrzyJyzbNoticeService.page(page,zrzyJyzbNoticeQueryWrapper); List records = page1.getRecords(); if(!ObjectUtils.isEmpty(records)){ if(records.size() >= 1){ ZrzyJyzbNotice zrzyJyzbNotice = records.get(0); zone = zrzyJyzbNotice.getZone(); } } } return zone; } }