ZrzyJyzbBidwinNoticeSchedul.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  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 ZrzyJyzbBidwinNoticeSchedul implements Job {
  32. private Logger logger = LoggerFactory.getLogger(ZrzyJyzbBidwinNoticeSchedul.class);
  33. @Autowired
  34. private ZrzyJyzbBidwinNoticeService zrzyJyzbBidwinNoticeService;
  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. @Autowired
  44. private ZrzyJyzbNoticeService zrzyJyzbNoticeService;
  45. public void queryPageListUpdateEs() throws JsonProcessingException {
  46. //查询当前在定时任务表当中的时间
  47. QueryWrapper<ScheduledTash> scheduledTashQueryWrapper = new QueryWrapper<ScheduledTash>();
  48. scheduledTashQueryWrapper.eq("table_name_value","zrzy_jyzb_bidwin_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. //查询表gcNoticeandfile表当中的最新时间
  60. time = zrzyJyzbBidwinNoticeService.maxDataTimeStamp();
  61. ScheduledTash scheduledTashTash = new ScheduledTash();
  62. scheduledTashTash.setTime(0L);
  63. time = 0L;
  64. scheduledTashTash.setTableNameValue("zrzy_jyzb_bidwin_notice");
  65. scheduledTashTash.setUpdateTime(new Date());
  66. scheduledTashTash.setCreateTime(new Date());
  67. scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper);
  68. }catch (Exception e){
  69. e.printStackTrace();
  70. }
  71. }else {
  72. time = scheduledTash.getTime();
  73. }
  74. try {
  75. //查询表gcNoticeandfile表当中的最新时间
  76. Long newTime = zrzyJyzbBidwinNoticeService.maxDataTimeStamp();
  77. ScheduledTash scheduledTashTash = new ScheduledTash();
  78. scheduledTashTash.setTime(newTime);
  79. scheduledTashTash.setTableNameValue("zrzy_jyzb_bidwin_notice");
  80. scheduledTashTash.setUpdateTime(new Date());
  81. scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper);
  82. }catch (Exception e){
  83. e.printStackTrace();
  84. }
  85. if(!ObjectUtils.isEmpty(time)){
  86. QueryWrapper<ZrzyJyzbBidwinNotice> gcPerformanceQueryWrapper = new QueryWrapper<ZrzyJyzbBidwinNotice>();
  87. gcPerformanceQueryWrapper.gt("DATA_TIMESTAMP",time);
  88. int count = zrzyJyzbBidwinNoticeService.count(gcPerformanceQueryWrapper);
  89. Integer pageSize = 1000;
  90. Integer pageNum = (int)Math.ceil((double)count/pageSize);
  91. for(int i = 1; i <= pageNum;i++){
  92. List<TenderDetailsVo> tenderDetailsVoListAll = getTenderDetailsVoListAll(i, pageSize,time);
  93. gcNoticeandfileService.parseTenderDetailsVo(tenderDetailsVoListAll);
  94. }
  95. }
  96. }
  97. public List<TenderDetailsVo> getTenderDetailsVoListAll(Integer pageNo,Integer pageSize,Long time){
  98. QueryWrapper<ZrzyJyzbBidwinNotice> gcPerformanceQueryWrapper = new QueryWrapper<ZrzyJyzbBidwinNotice>();
  99. gcPerformanceQueryWrapper.gt("ISSUE_TIME",time);
  100. Page<ZrzyJyzbBidwinNotice> page = new Page<ZrzyJyzbBidwinNotice>(pageNo, pageSize);
  101. Page<ZrzyJyzbBidwinNotice> page1 = zrzyJyzbBidwinNoticeService.page(page,gcPerformanceQueryWrapper);
  102. List<ZrzyJyzbBidwinNotice> records = page1.getRecords();
  103. List<TenderDetailsVo> tenderDetailsVos = new ArrayList<TenderDetailsVo>();
  104. for (ZrzyJyzbBidwinNotice record : records) {
  105. TenderDetailsVo tenderDetailsVo = new TenderDetailsVo();
  106. String projectCode = record.getProjectCode();
  107. if(!ObjectUtils.isEmpty(projectCode)){
  108. tenderDetailsVo.setProjectCode(projectCode);
  109. }
  110. String noticeName = record.getNoticeNane();
  111. if(!ObjectUtils.isEmpty(noticeName)){
  112. tenderDetailsVo.setNoticeName(noticeName);
  113. }
  114. String projectName = record.getProjectName();
  115. if(!ObjectUtils.isEmpty(projectName)){
  116. tenderDetailsVo.setProjectName(projectName);
  117. }
  118. String unifiedDealCode = record.getUnifiedDealCode();
  119. if(!ObjectUtils.isEmpty(unifiedDealCode)){
  120. tenderDetailsVo.setTenderProjectCode(unifiedDealCode);
  121. }
  122. String noticeContent = record.getNoticeContent();
  123. if(!ObjectUtils.isEmpty(noticeContent)){
  124. tenderDetailsVo.setNoticeContent(noticeContent);
  125. }
  126. Long getIssueTime = record.getIssueTime();
  127. if(!ObjectUtils.isEmpty(getIssueTime)){
  128. tenderDetailsVo.setNoticeSendTime(getIssueTime.toString());
  129. tenderDetailsVo.setDocGetStartTime(getIssueTime.toString());
  130. }
  131. String projectCode1 = record.getProjectCode();
  132. if (!ObjectUtils.isEmpty(projectCode1)) {
  133. String regionCode = getRegionCode(projectCode1);
  134. if(!ObjectUtils.isEmpty(regionCode)){
  135. tenderDetailsVo.setRegionCode(regionCode);
  136. }
  137. }
  138. Long dealTime = record.getDataTimestamp();
  139. if(!ObjectUtils.isEmpty(dealTime)){
  140. tenderDetailsVo.setDocGetEndTime(dealTime.toString());
  141. }
  142. String sourceDataKey = record.getSourceDataKey();
  143. if(!ObjectUtils.isEmpty(sourceDataKey)){
  144. tenderDetailsVo.setSourceDataKey(sourceDataKey+getIssueTime);
  145. }
  146. String dataSourceCode = record.getSourceDataCode();
  147. if(!ObjectUtils.isEmpty(dataSourceCode)){
  148. tenderDetailsVo.setDataSourceCode(dataSourceCode);
  149. }
  150. tenderDetailsVos.add(tenderDetailsVo);
  151. }
  152. for (TenderDetailsVo record : tenderDetailsVos) {
  153. try {
  154. record.setNoticeTypeCode(ClassIfy.TRANSACTION_PARCEL.getCode());
  155. record.setNoticeTypeName(ClassIfy.TRANSACTION_PARCEL.getName());
  156. record.setTransactionTypeCode(ClassIfy.NATURAL_RESOURCES.getCode());
  157. record.setTransactionTypeName(ClassIfy.NATURAL_RESOURCES.getName());
  158. record = tenderDetailsVoService.getTenderDetailsVoAllOrther(record);
  159. try {
  160. String regionCode = record.getRegionCode();
  161. AreaPlatform areaPlatformByRegionCode = areaPlatformService.getAreaPlatformByRegionCode(regionCode);
  162. if(!ObjectUtils.isEmpty(areaPlatformByRegionCode)){
  163. record.setPlatformCode(areaPlatformByRegionCode.getPlatformCode());
  164. record.setPlatformName(areaPlatformByRegionCode.getRegionName());
  165. }
  166. }catch (Exception e){
  167. e.printStackTrace();
  168. }
  169. TenderDetailsVoUtils.isNull(record);
  170. }catch (Exception e){
  171. e.printStackTrace();
  172. }
  173. }
  174. return tenderDetailsVos;
  175. }
  176. @Override
  177. public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
  178. try {
  179. if(JobLock.zrzyJyzbBidwinNoticeFlag){
  180. JobLock.zrzyJyzbBidwinNoticeFlag = false;
  181. logger.info("执行ZrzyCkqBidwinnotice", new SimpleDateFormat().format(new Date()));
  182. try {
  183. queryPageListUpdateEs();
  184. } catch (Exception e) {
  185. e.printStackTrace();
  186. }
  187. JobLock.zrzyJyzbBidwinNoticeFlag = true;
  188. }else{
  189. logger.info("不执行zrzyJyzbBidwinNotice", new SimpleDateFormat().format(new Date()));
  190. }
  191. }catch (Exception e){
  192. e.printStackTrace();
  193. JobLock.zrzyJyzbBidwinNoticeFlag = true;
  194. }
  195. }
  196. public void execute() throws JobExecutionException {
  197. try {
  198. if(JobLock.zrzyJyzbBidwinNoticeFlag){
  199. JobLock.zrzyJyzbBidwinNoticeFlag = false;
  200. logger.info("执行zrzyJyzbBidwinNotice", new SimpleDateFormat().format(new Date()));
  201. try {
  202. queryPageListUpdateEs();
  203. } catch (Exception e) {
  204. e.printStackTrace();
  205. }
  206. JobLock.zrzyJyzbBidwinNoticeFlag = true;
  207. }else{
  208. logger.info("不执行zrzyJyzbBidwinNotice", new SimpleDateFormat().format(new Date()));
  209. }
  210. }catch (Exception e){
  211. e.printStackTrace();
  212. JobLock.zrzyJyzbBidwinNoticeFlag = true;
  213. }
  214. }
  215. public String getRegionCode(String projectCode){
  216. String zone = null;
  217. if(!ObjectUtils.isEmpty(projectCode)){
  218. QueryWrapper<ZrzyJyzbNotice> zrzyJyzbNoticeQueryWrapper = new QueryWrapper<ZrzyJyzbNotice>();
  219. zrzyJyzbNoticeQueryWrapper.gt("PROJECT_CODE",projectCode);
  220. Page<ZrzyJyzbNotice> page = new Page<ZrzyJyzbNotice>(1, 1);
  221. Page<ZrzyJyzbNotice> page1 = zrzyJyzbNoticeService.page(page,zrzyJyzbNoticeQueryWrapper);
  222. List<ZrzyJyzbNotice> records = page1.getRecords();
  223. if(!ObjectUtils.isEmpty(records)){
  224. if(records.size() >= 1){
  225. ZrzyJyzbNotice zrzyJyzbNotice = records.get(0);
  226. zone = zrzyJyzbNotice.getZone();
  227. }
  228. }
  229. }
  230. return zone;
  231. }
  232. }