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