From 2f55cebbad3dea187a5f91d16ec80a9677dab699 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 13 十一月 2024 11:16:53 +0800
Subject: [PATCH] 1

---
 src/main/java/com/yssh/utils/VocParser.java |   74 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/yssh/utils/VocParser.java b/src/main/java/com/yssh/utils/VocParser.java
new file mode 100644
index 0000000..500bc18
--- /dev/null
+++ b/src/main/java/com/yssh/utils/VocParser.java
@@ -0,0 +1,74 @@
+package com.yssh.utils;
+
+import com.github.biyanwen.impl.AbstractCsvFileParser;
+import com.yssh.entity.VocVals;
+import com.yssh.service.VocValsService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.math.BigInteger;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class VocParser extends AbstractCsvFileParser<VocVals> {
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    private final SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHH0000");
+
+    public static final int BATCH_COUNT = 100000;
+
+    private BigInteger startId;
+
+    private VocValsService vocValsService;
+
+    private Date date;
+
+    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
+    protected void doAfterAllAnalysed() {
+        inserts();
+    }
+
+    @Override
+    protected void invoke(VocVals vv) {
+        if (null == vv.getX() || vv.getX() < 0 || null == vv.getY() || vv.getY() < 0 || null == vv.getVal() || vv.getVal() <= 0) {
+            return;
+        }
+
+        vv.setCreateTime(this.date);
+        vv.setId(getId());
+        list.add(vv);
+
+        if (list.size() >= BATCH_COUNT) {
+            inserts();
+            list = new ArrayList<>(BATCH_COUNT);
+        }
+    }
+
+    private void inserts() {
+        try {
+            if (list.size() > 0) {
+                //this.vocValsService.insertVocVals(list);
+                this.vocValsService.insertVocSync(list);
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+            e.printStackTrace();
+        }
+    }
+}

--
Gitblit v1.9.3