From 777b739a5f9eb87dc094c24ffd26dba84b3dbc66 Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期四, 29 二月 2024 16:48:09 +0800
Subject: [PATCH] 年前未提交的黑河更新,提交

---
 src/main/java/com/whyc/service/BattRtdataService.java |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/whyc/service/BattRtdataService.java b/src/main/java/com/whyc/service/BattRtdataService.java
index 489fce0..493bd22 100644
--- a/src/main/java/com/whyc/service/BattRtdataService.java
+++ b/src/main/java/com/whyc/service/BattRtdataService.java
@@ -1,11 +1,13 @@
 package com.whyc.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageInfo;
 import com.whyc.dto.Response;
 import com.whyc.mapper.BattRtdataMapper;
 import com.whyc.pojo.BattRtdata;
+import com.whyc.pojo.BattRtstate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -86,7 +88,35 @@
         return new Response().setII(1, list.size() > 0 ? true : false, list, "9141鏁版嵁");
     }
 
-    public void addBatch(List<BattRtdata> battDataList) {
+    /*public void addBatch(List<BattRtdata> battDataList) {
         mapper.addBatch(battDataList);
+    }*/
+
+    public void addOrUpdate(List<BattRtdata> battDataList) {
+        List<BattRtdata> updateList = new LinkedList<>();
+        List<BattRtdata> addList = new LinkedList<>();
+
+        //濡傛灉瀛樺湪鐢垫睜缁勫垯鏇存柊鎵�鏈�
+        //涓嶅瓨鍦ㄧ數姹犵粍鍒欐柊澧�
+        //TODO 杩欓噷鏄彁绀�,涓嶆槸寰呭姙.閲嶈!!!!!!濡傛灉鐢垫睜缁勫唴鏂板浜嗗崟浣撴暟,闇�瑕佷复鏃跺垹闄ゆ帀鍗曚綋瀹炴椂琛ㄦ暟鎹�. 杩欐牱浼氬姞杞芥柊鐨勬墍鏈夊崟浣�
+        List<Integer> battGroupIdList = battDataList.stream().map(BattRtdata::getBattGroupId).distinct().collect(Collectors.toList());
+        QueryWrapper<BattRtdata> query = Wrappers.query();
+        query.select("distinct BattGroupId as BattGroupId").in("BattGroupId",battGroupIdList);
+        List<BattRtdata> battStateListInDB = mapper.selectList(query);
+        List<Integer> battGroupIdListInDB = battStateListInDB.stream().map(BattRtdata::getBattGroupId).distinct().collect(Collectors.toList());
+
+        for (BattRtdata battData : battDataList) {
+            if(battGroupIdListInDB.contains(battData.getBattGroupId())){ //鏇存柊
+                updateList.add(battData);
+            }else{ //鏂板
+                addList.add(battData);
+            }
+        }
+        if(updateList.size()>0){
+            mapper.updateBatch(updateList);
+        }
+        if(addList.size()>0) {
+            mapper.addBatch(battDataList);
+        }
     }
 }

--
Gitblit v1.9.1