Selaa lähdekoodia

新增电力交易相关内容

蓝盒子itbluebox 1 vuosi sitten
vanhempi
commit
27c7b88b4b

+ 1 - 1
src/main/java/com/trs/ggzyexchange/CodeGenerator.java

@@ -53,7 +53,7 @@ public class CodeGenerator {
         // 数据源配置
         DataSourceConfig dsc = new DataSourceConfig();
         //jdbc:mysql://www.nmsuny.com:53306/webharvy?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
-        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/ggzytest?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
+        dsc.setUrl("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai");
         // dsc.setSchemaName("public");bulletin  ChangeItemBulletin
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");

+ 39 - 0
src/main/java/com/trs/ggzyexchange/config/QuartzConfig.java

@@ -419,4 +419,43 @@ public class QuartzConfig {
                 .forJob(jobZrzyJyzbBidwinNoticeSchedul())
                 .build();
     }
+
+    /**
+     * 创建Job实例
+     * 定时任务 电力交易 招标公告与资格预审公告 NM_NOTICE
+     */
+    @Bean
+    public JobDetail jobNmNoticeSchedul() {
+        return JobBuilder.newJob(NmNoticeSchedul.class).storeDurably().build();
+    }
+    //触发器
+    @Bean
+    public Trigger triggerNmNoticeSchedul() {
+        return TriggerBuilder.newTrigger()
+                .withIdentity("triggerNmNoticeSchedul", "groupTriggerNmNoticeSchedul")
+                .withSchedule(CronScheduleBuilder.cronSchedule(this.strSron))
+                .forJob(jobNmNoticeSchedul())
+                .build();
+    }
+
+    /**
+     * 创建Job实例
+     * 定时任务 电力交易  中标结果公示 NM_RESULT_NOTICE
+     */
+    @Bean
+    public JobDetail jobNmResultNoticeSchedul() {
+        return JobBuilder.newJob(NmResultNoticeSchedul.class).storeDurably().build();
+    }
+    //触发器
+    @Bean
+    public Trigger triggerNmResultNoticeSchedul() {
+        return TriggerBuilder.newTrigger()
+                .withIdentity("triggerNmResultNoticeSchedul", "groupTriggerNmResultNoticeSchedul")
+                .withSchedule(CronScheduleBuilder.cronSchedule(this.strSron))
+                .forJob(jobNmResultNoticeSchedul())
+                .build();
+    }
+
+
+
 }

+ 2 - 1
src/main/java/com/trs/ggzyexchange/enums/ClassIfy.java

@@ -59,7 +59,8 @@ public enum ClassIfy {
     VACCINUM_TRANSACTION_RESULTS("vaccinum_transaction_results", "交易结果"),
 
     ELECTRICITY("electricity", "电力交易"),
-    ELECTRICITY_TRANSACTION_ANNOUNCEMENT("electricity_transaction_announcement", "交易公告"),
+    ELECTRICITY_TENDER_ANNOUNCEMENT("electricity_tender_announcement", "招标公告"),
+    ELECTRICITY_NMRESULT_NOTICE("electricity_nmresult_notice", "交易结果"),
 
     MEDICAL("medical", "医疗交易"),
     MEDICAL_TRANSACTION_ANNOUNCEMENT("medical_transaction_announcement", "交易公告"),

+ 2 - 0
src/main/java/com/trs/ggzyexchange/enums/JobLock.java

@@ -26,5 +26,7 @@ public class JobLock {
     public static  boolean ZrzyDkNoticeFlag = true;
     public static  boolean ZrzyBgNoticeFlag = true;
     public static  boolean ZrzyJyzbNoticeFlag = true;
+    public static  boolean NmNoticeFlag = true;
+    public static  boolean NmResultNoticeFlag = true;
 
 }

+ 172 - 0
src/main/java/com/trs/ggzyexchange/schedul/NmNoticeSchedul.java

@@ -0,0 +1,172 @@
+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.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;
+
+@Component
+public class NmNoticeSchedul implements Job {
+
+    @Autowired
+    private ScheduledTashService scheduledTashService;
+
+
+    @Autowired
+    private GcTenderbidfileService gcTenderbidfileService;
+
+    @Autowired
+    private TRegionService tRegionService;
+
+    @Autowired
+    private GcNoticeandfileService gcNoticeandfileService;
+
+    @Autowired
+    private NmNoticeService nmNoticeService;
+
+    private Logger logger = LoggerFactory.getLogger(NmNotice.class);
+
+    public void queryPageListUpdateEs() throws JsonProcessingException {
+        /**
+         * 查询当前在定时任务表当中的最新时间
+         */
+        QueryWrapper<ScheduledTash> scheduledTashQueryWrapper = new QueryWrapper<ScheduledTash>();
+        scheduledTashQueryWrapper.eq("table_name_value","nm_notice");
+        Page<ScheduledTash> pageScheduledTash = new Page<ScheduledTash>(1, 1);
+        Page<ScheduledTash> page = scheduledTashService.page(pageScheduledTash, scheduledTashQueryWrapper);
+        List<ScheduledTash> 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 = nmNoticeService.maxDataTimeStamp();
+                ScheduledTash scheduledTashTash = new ScheduledTash();
+                scheduledTashTash.setTime(0L);
+                time = 0L;
+                scheduledTashTash.setTableNameValue("nm_notice");
+                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 = nmNoticeService.maxDataTimeStamp();
+            ScheduledTash scheduledTashTash = new ScheduledTash();
+            scheduledTashTash.setTime(newTime);
+            scheduledTashTash.setTableNameValue("nm_notice");
+            scheduledTashTash.setUpdateTime(new Date());
+            scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        if(!ObjectUtils.isEmpty(time)){
+            try {
+                QueryWrapper<NmNotice> nmNoticeQueryWrapper = new QueryWrapper<NmNotice>();
+                nmNoticeQueryWrapper.gt("DATA_TIMESTAMP",time);
+                int count = nmNoticeService.count(nmNoticeQueryWrapper);
+                Integer pageSize = 1000;
+                Integer pageNum = (int)Math.ceil((double)count/pageSize);
+                for(int i = 1; i <= pageNum;i++){
+                    try {
+                        List<TenderDetailsVo> tenderDetailsVoListAll = getTenderDetailsVoListAll(i, pageSize,time);
+                        Boolean aBoolean = gcNoticeandfileService.parseTenderDetailsVo(tenderDetailsVoListAll);
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public List<TenderDetailsVo> getTenderDetailsVoListAll(Integer pageNo,Integer pageSize,Long time){
+        Page<NmNotice> page = new Page<NmNotice>(pageNo, pageSize);
+        IPage<TenderDetailsVo> tenderDetailsVoIPage = nmNoticeService.queryNmNoticeAllListByTime(page,time);
+        for (TenderDetailsVo record : tenderDetailsVoIPage.getRecords()) {
+            record.setTransactionTypeCode(ClassIfy.ELECTRICITY_TRADING.getCode());
+            record.setTransactionTypeName(ClassIfy.ELECTRICITY_TRADING.getName());
+            record.setNoticeTypeCode(ClassIfy.ELECTRICITY_TENDER_ANNOUNCEMENT.getCode());
+            record.setNoticeTypeName(ClassIfy.ELECTRICITY_TENDER_ANNOUNCEMENT.getName());
+            record.setPlatformName("内蒙古公共资源交易平台");
+            //获取国标区域名称
+            QueryWrapper<TRegion> tRegionQueryWrapper = new QueryWrapper<TRegion>();
+            String TregionCode = record.getRegionCode();
+            if(TregionCode.equals("150000")){
+                record.setRegionName("内蒙古自治区本级");
+            }
+            Page<TRegion> pageTRegion = new Page<TRegion>(1, 1);
+            if(!ObjectUtils.isEmpty(TregionCode)){
+                tRegionQueryWrapper.eq("code",TregionCode+"000000");
+                List<TRegion> records = tRegionService.page(pageTRegion, tRegionQueryWrapper).getRecords();
+                if(records.size() >= 1){
+                    try {
+                        String name = records.get(0).getName();
+                        if(!ObjectUtils.isEmpty(name)){
+                            record.setRegionName(name);
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            }
+            TenderDetailsVoUtils.isNull(record);
+        }
+        return tenderDetailsVoIPage.getRecords();
+    }
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        try {
+            if(JobLock.NmNoticeFlag){
+                JobLock.NmNoticeFlag = false;
+                logger.info("执行NmNotice", new SimpleDateFormat().format(new Date()));
+                try {
+                    queryPageListUpdateEs();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                JobLock.NmNoticeFlag = true;
+            }else{
+                logger.info("不执行NmNotice", new SimpleDateFormat().format(new Date()));
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            JobLock.NmNoticeFlag = true;
+        }
+    }
+}
+

+ 170 - 0
src/main/java/com/trs/ggzyexchange/schedul/NmResultNoticeSchedul.java

@@ -0,0 +1,170 @@
+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.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.Date;
+import java.util.List;
+
+@Component
+public class NmResultNoticeSchedul implements Job {
+
+    @Autowired
+    private ScheduledTashService scheduledTashService;
+
+    @Autowired
+    private GcNoticeandfileService gcNoticeandfileService;
+
+    @Autowired
+    private GcTenderbidfileService gcTenderbidfileService;
+
+    @Autowired
+    private NmResultNoticeService nmResultNoticeService;
+
+
+    @Autowired
+    private TRegionService tRegionService;
+
+    private Logger logger = LoggerFactory.getLogger(NmResultNotice.class);
+
+    public void queryPageListUpdateEs() throws JsonProcessingException {
+        /**
+         * 查询当前在定时任务表当中的最新时间
+         */
+        QueryWrapper<ScheduledTash> scheduledTashQueryWrapper = new QueryWrapper<ScheduledTash>();
+        scheduledTashQueryWrapper.eq("table_name_value","nm_result_notice");
+        Page<ScheduledTash> pageScheduledTash = new Page<ScheduledTash>(1, 1);
+        Page<ScheduledTash> page = scheduledTashService.page(pageScheduledTash, scheduledTashQueryWrapper);
+        List<ScheduledTash> 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 = nmResultNoticeService.maxDataTimeStamp();
+                ScheduledTash scheduledTashTash = new ScheduledTash();
+                scheduledTashTash.setTime(0L);
+                time = 0L;
+                scheduledTashTash.setTableNameValue("nm_result_notice");
+                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 = nmResultNoticeService.maxDataTimeStamp();
+            ScheduledTash scheduledTashTash = new ScheduledTash();
+            scheduledTashTash.setTime(newTime);
+            scheduledTashTash.setTableNameValue("nm_result_notice");
+            scheduledTashTash.setUpdateTime(new Date());
+            scheduledTashService.saveOrUpdate(scheduledTashTash,scheduledTashQueryWrapper);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        if(!ObjectUtils.isEmpty(time)){
+            try {
+                QueryWrapper<NmResultNotice> gcPerformanceQueryWrapper = new QueryWrapper<NmResultNotice>();
+                gcPerformanceQueryWrapper.gt("DATA_TIMESTAMP",time);
+                int count = nmResultNoticeService.count(gcPerformanceQueryWrapper);
+                Integer pageSize = 1000;
+                Integer pageNum = (int)Math.ceil((double)count/pageSize);
+                for(int i = 1; i <= pageNum;i++){
+                    try {
+                        List<TenderDetailsVo> tenderDetailsVoListAll = getTenderDetailsVoListAll(i, pageSize,time);
+                        Boolean aBoolean = gcNoticeandfileService.parseTenderDetailsVo(tenderDetailsVoListAll);
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public List<TenderDetailsVo> getTenderDetailsVoListAll(Integer pageNo,Integer pageSize,Long time){
+        Page<GcTenderbidfile> page = new Page<GcTenderbidfile>(pageNo, pageSize);
+        IPage<TenderDetailsVo> tenderDetailsVoIPage =   nmResultNoticeService.queryNmResultNoticeAllListByTime(page,time);
+        for (TenderDetailsVo record : tenderDetailsVoIPage.getRecords()) {
+            record.setTransactionTypeCode(ClassIfy.ELECTRICITY_TRADING.getCode());
+            record.setTransactionTypeName(ClassIfy.ELECTRICITY_TRADING.getName());
+            record.setNoticeTypeCode(ClassIfy.ELECTRICITY_NMRESULT_NOTICE.getCode());
+            record.setNoticeTypeName(ClassIfy.ELECTRICITY_NMRESULT_NOTICE.getName());
+            record.setPlatformName("内蒙古公共资源交易平台");
+            //获取国标区域名称
+            QueryWrapper<TRegion> tRegionQueryWrapper = new QueryWrapper<TRegion>();
+            String TregionCode = record.getRegionCode();
+            Page<TRegion> pageTRegion = new Page<TRegion>(1, 1);
+            if(!ObjectUtils.isEmpty(TregionCode)){
+                if(TregionCode.equals("150000")){
+                    record.setRegionName("内蒙古自治区本级");
+                }
+                tRegionQueryWrapper.eq("code",TregionCode+"000000");
+                List<TRegion> records = tRegionService.page(pageTRegion, tRegionQueryWrapper).getRecords();
+                if(records.size() >= 1){
+                    try {
+                        String name = records.get(0).getName();
+                        if(!ObjectUtils.isEmpty(name)){
+                            record.setRegionName(name);
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            }
+            TenderDetailsVoUtils.isNull(record);
+        }
+        return tenderDetailsVoIPage.getRecords();
+    }
+
+    @Override
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        try {
+            if(JobLock.NmResultNoticeFlag){
+                JobLock.NmResultNoticeFlag = false;
+                logger.info("执行NmResultNotice", new SimpleDateFormat().format(new Date()));
+                try {
+                    queryPageListUpdateEs();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                JobLock.NmResultNoticeFlag = true;
+            }else{
+                logger.info("不执行NmResultNotice", new SimpleDateFormat().format(new Date()));
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            JobLock.NmResultNoticeFlag = true;
+        }
+    }
+}

+ 5 - 12
src/test/java/com/trs/ggzyexchange/GgzyExchangeApplicationTests.java

@@ -33,6 +33,7 @@ import java.nio.charset.CharsetDecoder;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
 
@@ -42,20 +43,12 @@ class GgzyExchangeApplicationTests {
 
 
     @Autowired
-    private ZrzyCkqNoticeSchedul zrzyCkqNoticeSchedul;
+    private NmNoticeSchedul nmResultNoticeSchedul;
 
-    @Autowired
-    private ZrzyBgNoticeSchedul zrzyBgNoticeSchedul;
+    @Test
+    void test111(){
 
-    @Autowired
-    private ZrzyBgBidwinNoticeSchedul zrzyBgBidwinNoticeSchedul;
+    }
 
-    @Autowired
-    private RestHighLevelClientUtils restHighLevelClientUtils;
 
-    @Test
-    void test001() throws Exception{
-        /*restHighLevelClientUtils.deleteDoc(ClassIfy.ES_INDEX_SEARCH_PUBLIC_RESOURCE_DEAL.getCode(),"00192743816f474badd6df832a357b3e");
-        //zrzyBgBidwinNoticeSchedul.execute();*/
-    }
 }