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