From 25cc1b887f5421353d94c5e6be0fca56b3f2e668 Mon Sep 17 00:00:00 2001
From: zhanghl <253316343@qq.com>
Date: 星期三, 21 五月 2025 16:29:24 +0800
Subject: [PATCH] 优化Job
---
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java | 46 ++++++++++++++++++++++++----------------------
1 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
index f6e3a61..f4715e4 100644
--- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
+++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
@@ -22,6 +22,7 @@
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
/**
@@ -112,9 +113,9 @@
int rows = sheet.getLastRowNum();
if (rows > 0) {
List<ApsGasPipelinePrediction> list = new ArrayList<>();
-
- /*鏁版嵁鍒椾粠1寮�濮�*/
- for (int i = 1; i <= rows; i++) {
+ Set<String> keys = new HashSet<>();
+ /*鏁版嵁琛屼粠1寮�濮�*/
+ for (int i = rows; i > 0; --i) {
Row row = sheet.getRow(i);
if (row.getCell(0) == null) {
continue;
@@ -137,32 +138,33 @@
item.setCreateTime(DateUtils.getNowDate());
item.setPredictQuantity(new BigDecimal(quantity));
item.setPredictDate(new Timestamp(date.getTime()));
- list.add(item);
+ if (!keys.contains(item.getKey())) {
+ keys.add(item.getKey());
+ list.add(item);
+ }
}
}
if (!list.isEmpty()) {
-
- List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(
- list.stream().map(ApsGasPipelinePrediction::getFactory).collect(Collectors.toSet()),
- list.stream().map(ApsGasPipelinePrediction::getMaterialCode).collect(Collectors.toSet())
- );
+ List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys);
if (!facCodeKey.isEmpty()) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Iterator<ApsGasPipelinePrediction> it = list.iterator();
while (it.hasNext()) {
ApsGasPipelinePrediction item = it.next();
- String key = item.getFactory() + "##" + item.getMaterialCode() + "##" + sdf.format(item.getPredictDate());
- facCodeKey.stream()
- .filter(map -> map.get("key").equals(key))
- .forEach(row -> {
- item.setId((Long) row.get("id"));
- item.setCreateBy(null);
- item.setCreateTime(null);
- item.setUpdateBy(SecurityUtils.getUsername());
- item.setUpdateTime(new Timestamp(System.currentTimeMillis()));
- apsGasPipelinePredictionMapper.updateById(item);
- it.remove();
- });
+ int count = 0;
+ for (Map<String, Object> map : facCodeKey) {
+ if (map.get("key").equals(item.getKey())) {
+ item.setId((Long) map.get("id"));
+ item.setCreateBy(null);
+ item.setCreateTime(null);
+ item.setUpdateBy(SecurityUtils.getUsername());
+ item.setUpdateTime(new Timestamp(System.currentTimeMillis()));
+ apsGasPipelinePredictionMapper.updateById(item);
+ count++;
+ }
+ }
+ if (count > 0){
+ it.remove();
+ }
}
}
if (!list.isEmpty()) {
--
Gitblit v1.9.3