From 1198ea43ca127f0a14968d5d57b544a7a2d0cde7 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 05 六月 2023 20:45:53 +0800
Subject: [PATCH] 修改Voc入库的id模式

---
 src/main/java/com/yssh/entity/VocVals.java        |    7 ++++---
 src/main/resources/mapping/VocValsMapper.xml      |   12 ++++++------
 src/main/java/com/yssh/run/InitDataRunner.java    |   10 +++++++++-
 src/main/resources/application-scheduled.yml      |    2 +-
 src/main/java/com/yssh/scheduled/ReadCsvTask.java |    2 +-
 src/main/java/com/yssh/utils/VocParser.java       |   24 ++++++++++++++++++++----
 6 files changed, 41 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/yssh/entity/VocVals.java b/src/main/java/com/yssh/entity/VocVals.java
index c5a6868..40c8db7 100644
--- a/src/main/java/com/yssh/entity/VocVals.java
+++ b/src/main/java/com/yssh/entity/VocVals.java
@@ -4,13 +4,14 @@
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
+import java.math.BigInteger;
 import java.util.Date;
 
 public class VocVals implements Serializable {
     private static final long serialVersionUID = -20230605145412000L;
 
     @ApiModelProperty(value = "涓婚敭")
-    private Integer id;
+    private BigInteger id;
 
     @CsvProperty(index = 0)
     @ApiModelProperty(value = "X")
@@ -30,11 +31,11 @@
     public VocVals() {
     }
 
-    public Integer getId() {
+    public BigInteger getId() {
         return id;
     }
 
-    public void setId(Integer id) {
+    public void setId(BigInteger id) {
         this.id = id;
     }
 
diff --git a/src/main/java/com/yssh/run/InitDataRunner.java b/src/main/java/com/yssh/run/InitDataRunner.java
index 99aca83..12dc4f4 100644
--- a/src/main/java/com/yssh/run/InitDataRunner.java
+++ b/src/main/java/com/yssh/run/InitDataRunner.java
@@ -1,5 +1,6 @@
 package com.yssh.run;
 
+import com.yssh.scheduled.ReadCsvTask;
 import com.yssh.utils.CacheUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -13,6 +14,8 @@
 import com.yssh.service.ICommonService;
 import com.yssh.service.IDictRecordService;
 
+import javax.annotation.Resource;
+
 @Component
 public class InitDataRunner implements ApplicationRunner {
     //protected final Log logger = LogFactory.getLog(this.getClass());
@@ -24,6 +27,9 @@
     @Autowired
     private IDictRecordService dictRecordService;
 
+    @Resource
+    ReadCsvTask task;
+
     @Override
     public void run(ApplicationArguments args) throws Exception {
         CacheUtils.init();
@@ -32,9 +38,11 @@
         if (!tableExists) {
             dictRecordService.createDictRecoTable();
         }
-        //璇诲彇dat鏁版嵁
+        // 璇诲彇dat鏁版嵁
         commonService.readDatData();
 
+        //task.corpReserveDataSync();
+
         logger.info("***************** 绯荤粺鍚姩瀹屾瘯 *****************" + "\n");
     }
 }
diff --git a/src/main/java/com/yssh/scheduled/ReadCsvTask.java b/src/main/java/com/yssh/scheduled/ReadCsvTask.java
index 97cf133..d4b0e51 100644
--- a/src/main/java/com/yssh/scheduled/ReadCsvTask.java
+++ b/src/main/java/com/yssh/scheduled/ReadCsvTask.java
@@ -71,7 +71,7 @@
 
 			int count = vocValsService.countByTime(time);
 			if (count > 0) {
-				continue;
+				//continue;
 			}
 
 			EasyCsv.read(filePath, VocVals.class, new VocParser(vocValsService, calendar.getTime())).doRead();
diff --git a/src/main/java/com/yssh/utils/VocParser.java b/src/main/java/com/yssh/utils/VocParser.java
index bd29fe3..a18645c 100644
--- a/src/main/java/com/yssh/utils/VocParser.java
+++ b/src/main/java/com/yssh/utils/VocParser.java
@@ -6,6 +6,8 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import java.math.BigInteger;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -18,20 +20,31 @@
 public class VocParser extends AbstractCsvFileParser<VocVals> {
     protected final Log logger = LogFactory.getLog(this.getClass());
 
+    private final SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH0000");
+
     /**
      * 姣忛殧5000鏉″叆搴撲竴娆�
      */
-    public static final int BATCH_COUNT = 5000;
+    public static final int BATCH_COUNT = 100000;
+
+    private BigInteger startId;
 
     private VocValsService vocValsService;
 
     private Date date;
 
-    private List<VocVals> list = new ArrayList<>();
+    private List<VocVals> list = new ArrayList<>(BATCH_COUNT);
 
     public VocParser(VocValsService vocValsService, Date date) {
         this.vocValsService = vocValsService;
         this.date = date;
+        this.startId = new BigInteger(format.format(date));
+    }
+
+    public BigInteger getId() {
+        startId = startId.add(BigInteger.valueOf(1));
+
+        return startId;
     }
 
     @Override
@@ -46,17 +59,20 @@
         }
 
         vv.setCreateTime(this.date);
+        vv.setId(getId());
         list.add(vv);
 
         if (list.size() >= BATCH_COUNT) {
             inserts();
-            list = new ArrayList<>();
+            list = new ArrayList<>(BATCH_COUNT);
         }
     }
 
     private void inserts() {
         try {
-            this.vocValsService.insertVocVals(list);
+            if (list.size() > 0) {
+                this.vocValsService.insertVocVals(list);
+            }
         } catch (Exception e) {
             logger.error(e.getMessage());
             e.printStackTrace();
diff --git a/src/main/resources/application-scheduled.yml b/src/main/resources/application-scheduled.yml
index 1844271..e2610dd 100644
--- a/src/main/resources/application-scheduled.yml
+++ b/src/main/resources/application-scheduled.yml
@@ -1,2 +1,2 @@
 csv: 
-  cron: '0 1 * * * ? '
+  cron: '0 5 * * * ? '
diff --git a/src/main/resources/mapping/VocValsMapper.xml b/src/main/resources/mapping/VocValsMapper.xml
index cad3a40..e522f24 100644
--- a/src/main/resources/mapping/VocValsMapper.xml
+++ b/src/main/resources/mapping/VocValsMapper.xml
@@ -26,15 +26,15 @@
         where date_format(create_time, '%Y%m%d%H') = ${time};
     </select>
 
-    <insert id="insert" parameterType="com.yssh.entity.VocVals" useGeneratedKeys="true" keyProperty="id">
-        insert into voc_vals (x, y, val, create_time) values
-        (${x}, ${y}, ${val}, ${createTime});
+    <insert id="insert" parameterType="com.yssh.entity.VocVals" useGeneratedKeys="false" keyProperty="id">
+        insert into voc_vals (id, x, y, val, create_time) values
+        (${id}, ${x}, ${y}, ${val}, ${createTime});
     </insert>
 
-    <insert id="inserts" parameterType="com.yssh.entity.VocVals" useGeneratedKeys="true" keyProperty="id">
-        insert into voc_vals (x, y, val, create_time) values
+    <insert id="inserts" parameterType="com.yssh.entity.VocVals" useGeneratedKeys="false" keyProperty="id">
+        insert into voc_vals (id, x, y, val, create_time) values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.x},#{item.y},#{item.val},#{item.createTime})
+            (${item.id}, #{item.x},#{item.y},#{item.val},#{item.createTime})
         </foreach>
     </insert>
 

--
Gitblit v1.9.3