package com.trs.ggzyexchange.schedul; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; import com.trs.ggzyexchange.api.vo.Result; import com.trs.ggzyexchange.controller.BaseController; 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 org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** *

* 合同签订 定时任务 *

* * @author trs * @since 2023-02-23 */ @Component public class GcPubContractSchedul implements Job { private Logger logger = LoggerFactory.getLogger(GcPubContractSchedul.class); @Autowired private GcPubContractService gcPubContractService; @Autowired private TenderDetailsVoService tenderDetailsVoService; @Autowired private GcNoticeandfileService gcNoticeandfileService; @Autowired private ScheduledTashService scheduledTashService; @Autowired private GcAttachmentService gcAttachmentService; public void queryPageListUpdateEs() throws JsonProcessingException { /** * 查询当前在定时任务表当中的最新时间 */ QueryWrapper scheduledTashQueryWrapper = new QueryWrapper(); scheduledTashQueryWrapper.eq("table_name_value","gc_pub_contract"); 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 = gcPubContractService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(0L); time = 0L; scheduledTashTash.setTableNameValue("gc_pub_contract"); 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 = gcPubContractService.maxDataTimeStamp(); ScheduledTash scheduledTashTash = new ScheduledTash(); scheduledTashTash.setTime(newTime); scheduledTashTash.setTableNameValue("gc_pub_contract"); 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 = gcPubContractService.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){ Page page = new Page(pageNo, pageSize); IPage tenderDetailsVoIPage = gcPubContractService.queryGcBidcandidateAllListByTime(page,time); for (TenderDetailsVo record : tenderDetailsVoIPage.getRecords()) { try { record.setNoticeTypeCode(ClassIfy.CONTRACT_PUBLICITY.getCode()); record.setNoticeTypeName(ClassIfy.CONTRACT_PUBLICITY.getName()); //电力交易 if(!ObjectUtils.isEmpty(record.getSourceDataCode()) && "7089bc24".equals(record.getSourceDataCode())) { record.setTransactionTypeCode(ClassIfy.ELECTRICITY.getCode()); record.setTransactionTypeName(ClassIfy.ELECTRICITY.getName()); }else if(!ObjectUtils.isEmpty(record.getSourceDataCode()) && "d844782a".equals(record.getSourceDataCode())) { record.setTransactionTypeCode(ClassIfy.WEITUO.getCode()); record.setTransactionTypeName(ClassIfy.WEITUO.getName()); }else { record.setTransactionTypeCode(ClassIfy.ENGINEERING_CONSTRUCTION.getCode()); record.setTransactionTypeName(ClassIfy.ENGINEERING_CONSTRUCTION.getName()); } List attachmentList = new ArrayList(); //通过标包编号查询对应的附件信息 QueryWrapper gcAttachmentQueryWrapper = new QueryWrapper(); gcAttachmentQueryWrapper.eq("ASSOCIATION_CODE", record.getSourceDataKey()); List list = gcAttachmentService.list(gcAttachmentQueryWrapper); if (!CollectionUtils.isEmpty(list)) { attachmentList.addAll(list); } String noticeContent = record.getNoticeContent(); String file = ""; if(!CollectionUtils.isEmpty(attachmentList)){ if(attachmentList.size() > 0){ file = "
附件:
"; } } for (GcAttachment gcAttachment : attachmentList) { try{ String attachmentName = gcAttachment.getAttachmentName(); String url = gcAttachment.getUrl(); file += ""+ attachmentName +"
"; }catch (Exception e){ e.printStackTrace(); } } //招标文件拼接地址 if(!ObjectUtils.isEmpty(noticeContent) && noticeContent != ""){ file = noticeContent + file; } record.setNoticeContent(file); record.setSourceDataKey("pubc-"+record.getSourceDataKey()); record = tenderDetailsVoService.getTenderDetailsVoAllOrther(record); TenderDetailsVoUtils.isNull(record); }catch (Exception e){ e.printStackTrace(); } } return tenderDetailsVoIPage.getRecords(); } @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { try { if(JobLock.GcPubContractFlag){ JobLock.GcPubContractFlag = false; logger.info("执行GcPubContract", new SimpleDateFormat().format(new Date())); try { queryPageListUpdateEs(); } catch (Exception e) { e.printStackTrace(); } JobLock.GcPubContractFlag = true; }else{ logger.info("不执行GcPubContract", new SimpleDateFormat().format(new Date())); } }catch (Exception e){ e.printStackTrace(); JobLock.GcPubContractFlag = true; } } }