ZrzyBgNoticeSchedul.java 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. package com.trs.ggzyexchange.schedul;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.fasterxml.jackson.core.JsonProcessingException;
  5. import com.trs.ggzyexchange.entity.*;
  6. import com.trs.ggzyexchange.enums.ClassIfy;
  7. import com.trs.ggzyexchange.enums.JobLock;
  8. import com.trs.ggzyexchange.service.*;
  9. import com.trs.ggzyexchange.utils.TenderDetailsVoUtils;
  10. import org.apache.commons.lang3.ObjectUtils;
  11. import org.quartz.Job;
  12. import org.quartz.JobExecutionContext;
  13. import org.quartz.JobExecutionException;
  14. import org.slf4j.Logger;
  15. import org.slf4j.LoggerFactory;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Component;
  18. import java.text.SimpleDateFormat;
  19. import java.util.ArrayList;
  20. import java.util.Date;
  21. import java.util.List;
  22. /**
  23. * <p>
  24. * 成交结果公告 定时任务
  25. * </p>
  26. *
  27. * @author trs
  28. * @since 2023-02-24
  29. */
  30. @Component
  31. public class ZrzyBgNoticeSchedul implements Job {
  32. private Logger logger = LoggerFactory.getLogger(ZrzyBgNoticeSchedul.class);
  33. @Autowired
  34. private ZrzyBgNoticeService zrzyBgNoticeService;
  35. @Autowired
  36. private GcNoticeandfileService gcNoticeandfileService;
  37. @Autowired
  38. private TenderDetailsVoService tenderDetailsVoService;
  39. @Autowired
  40. private ScheduledTashService scheduledTashService;
  41. @Autowired
  42. private AreaPlatformService areaPlatformService;
  43. public void queryPageListUpdateEs() throws JsonProcessingException {
  44. /**
  45. * 查询当前在定时任务表当中的最新时间
  46. */
  47. QueryWrapper<ScheduledTash> scheduledTashQueryWrapper = new QueryWrapper<ScheduledTash>();
  48. scheduledTashQueryWrapper.eq("table_name_value","zrzy_bg_notice");
  49. Page<ScheduledTash> pageScheduledTash = new Page<ScheduledTash>(1, 1);
  50. Page<ScheduledTash> page = scheduledTashService.page(pageScheduledTash, scheduledTashQueryWrapper);
  51. List<ScheduledTash> records = page.getRecords();
  52. ScheduledTash scheduledTash = null;
  53. if(records.size() > 0){
  54. scheduledTash = records.get(0);
  55. }
  56. Long time = null;
  57. if(ObjectUtils.isEmpty(scheduledTash)){
  58. try {
  59. /**
  60. * 如果scheduledTash为空,证明没有当前定时任务,设置当前的定时任务的时间为0 查询表gcNoticeandfile表当中的最新时间
  61. */
  62. time = zrzyBgNoticeService.maxDataTimeStamp();
  63. ScheduledTash scheduledTashTash = new ScheduledTash();
  64. scheduledTashTash.setTime(0L);
  65. time = 0L;
  66. scheduledTashTash.setTableNameValue("zrzy_bg_notice");
  67. scheduledTashTash.setUpdateTime(new Date());
  68. scheduledTashTash.setCreateTime(new Date());
  69. scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper);
  70. }catch (Exception e){
  71. e.printStackTrace();
  72. }
  73. }else {
  74. /**
  75. * 如果scheduledTash为空,证明没有当前定时任务,设置当前的定时任务的时间为0 查询表gcNoticeandfile表当中的最新时间
  76. */
  77. time = scheduledTash.getTime();
  78. }
  79. try {
  80. //查询表gcNoticeandfile表当中的最新时间
  81. Long newTime = zrzyBgNoticeService.maxDataTimeStamp();
  82. ScheduledTash scheduledTashTash = new ScheduledTash();
  83. scheduledTashTash.setTime(newTime);
  84. scheduledTashTash.setTableNameValue("zrzy_bg_notice");
  85. scheduledTashTash.setUpdateTime(new Date());
  86. scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper);
  87. }catch (Exception e){
  88. e.printStackTrace();
  89. }
  90. if(!ObjectUtils.isEmpty(time)){
  91. QueryWrapper<ZrzyBgNotice> gcPerformanceQueryWrapper = new QueryWrapper<ZrzyBgNotice>();
  92. gcPerformanceQueryWrapper.gt("DATA_TIMESTAMP",time);
  93. int count = zrzyBgNoticeService.count(gcPerformanceQueryWrapper);
  94. Integer pageSize = 1000;
  95. Integer pageNum = (int)Math.ceil((double)count/pageSize);
  96. for(int i = 1; i <= pageNum;i++){
  97. List<TenderDetailsVo> tenderDetailsVoListAll = getTenderDetailsVoListAll(i, pageSize,time);
  98. gcNoticeandfileService.parseTenderDetailsVo(tenderDetailsVoListAll);
  99. }
  100. }
  101. }
  102. public List<TenderDetailsVo> getTenderDetailsVoListAll(Integer pageNo,Integer pageSize,Long time){
  103. QueryWrapper<ZrzyBgNotice> gcPerformanceQueryWrapper = new QueryWrapper<ZrzyBgNotice>();
  104. gcPerformanceQueryWrapper.gt("ISSUE_TIME",time);
  105. Page<ZrzyBgNotice> page = new Page<ZrzyBgNotice>(pageNo, pageSize);
  106. Page<ZrzyBgNotice> page1 = zrzyBgNoticeService.page(page,gcPerformanceQueryWrapper);
  107. List<ZrzyBgNotice> records = page1.getRecords();
  108. List<TenderDetailsVo> tenderDetailsVos = new ArrayList<TenderDetailsVo>();
  109. for (ZrzyBgNotice record : records) {
  110. TenderDetailsVo tenderDetailsVo = new TenderDetailsVo();
  111. String sourceDataCode = record.getSourceDataCode();
  112. if(!ObjectUtils.isEmpty(sourceDataCode)){
  113. tenderDetailsVo.setProjectCode(sourceDataCode);
  114. }
  115. String noticeName = record.getNoticeName();
  116. if(!ObjectUtils.isEmpty(noticeName)){
  117. tenderDetailsVo.setNoticeName(noticeName);
  118. }
  119. String projectName = record.getProjectName();
  120. if(!ObjectUtils.isEmpty(projectName)){
  121. tenderDetailsVo.setProjectName(projectName);
  122. }
  123. String projectCode = record.getProjectCode();
  124. if(!ObjectUtils.isEmpty(projectCode)){
  125. tenderDetailsVo.setTenderProjectCode(projectCode);
  126. }
  127. String noticeContent = record.getNoticeContent();
  128. if(!ObjectUtils.isEmpty(noticeContent)){
  129. tenderDetailsVo.setNoticeContent(noticeContent);
  130. }
  131. Long noticeSendTime = record.getIssueTime();
  132. Long createDate = record.getCreateDate();
  133. if(false&&!ObjectUtils.isEmpty(createDate)&&0 != createDate){
  134. tenderDetailsVo.setNoticeSendTime(record.getCreateDate().toString());
  135. }else{
  136. if(!ObjectUtils.isEmpty(noticeSendTime)){
  137. tenderDetailsVo.setNoticeSendTime(noticeSendTime.toString());
  138. tenderDetailsVo.setDocGetStartTime(noticeSendTime.toString());
  139. }
  140. }
  141. String regionCode = record.getZone();
  142. if(!ObjectUtils.isEmpty(regionCode)){
  143. tenderDetailsVo.setRegionCode(regionCode);
  144. }
  145. Long noticeEndTime = record.getIssueTime();
  146. if(!ObjectUtils.isEmpty(noticeEndTime)){
  147. tenderDetailsVo.setDocGetEndTime(noticeEndTime.toString());
  148. }
  149. String dataSourceCode = record.getSourceDataCode();
  150. if(!ObjectUtils.isEmpty(dataSourceCode)){
  151. tenderDetailsVo.setDataSourceCode(dataSourceCode);
  152. }
  153. String sourceDataKey = record.getSourceDataKey();
  154. if(!ObjectUtils.isEmpty(sourceDataKey)){
  155. tenderDetailsVo.setSourceDataKey(sourceDataKey+noticeSendTime);
  156. }
  157. tenderDetailsVos.add(tenderDetailsVo);
  158. }
  159. for (TenderDetailsVo record : tenderDetailsVos) {
  160. try {
  161. record.setNoticeTypeCode(ClassIfy.TRANSFER_ANNOUNCEMENT.getCode());
  162. record.setNoticeTypeName(ClassIfy.TRANSFER_ANNOUNCEMENT.getName());
  163. record.setTransactionTypeCode(ClassIfy.NATURAL_RESOURCES.getCode());
  164. record.setTransactionTypeName(ClassIfy.NATURAL_RESOURCES.getName());
  165. record = tenderDetailsVoService.getTenderDetailsVoAllOrther(record);
  166. try {
  167. String regionCode = record.getRegionCode();
  168. AreaPlatform areaPlatformByRegionCode = areaPlatformService.getAreaPlatformByRegionCode(regionCode);
  169. if(!ObjectUtils.isEmpty(areaPlatformByRegionCode)){
  170. record.setPlatformCode(areaPlatformByRegionCode.getPlatformCode());
  171. record.setPlatformName(areaPlatformByRegionCode.getRegionName());
  172. }
  173. record.setIndustriesTypeName(ClassIfy.zrzy_bg.getName());
  174. }catch (Exception e){
  175. e.printStackTrace();
  176. }
  177. TenderDetailsVoUtils.isNull(record);
  178. }catch (Exception e){
  179. e.printStackTrace();
  180. }
  181. }
  182. return tenderDetailsVos;
  183. }
  184. @Override
  185. public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
  186. try {
  187. if(JobLock.ZrzyBgNoticeFlag){
  188. JobLock.ZrzyBgNoticeFlag = false;
  189. logger.info("执行ZrzyTkqNoticeFlag", new SimpleDateFormat().format(new Date()));
  190. try {
  191. queryPageListUpdateEs();
  192. } catch (Exception e) {
  193. e.printStackTrace();
  194. }
  195. JobLock.ZrzyBgNoticeFlag = true;
  196. }else{
  197. logger.info("不执行ZrzyTkqNoticeFlag", new SimpleDateFormat().format(new Date()));
  198. }
  199. }catch (Exception e){
  200. e.printStackTrace();
  201. JobLock.ZrzyBgNoticeFlag = true;
  202. }
  203. }
  204. }