From 25971ce968a1a25273e90838aa18fa77a0e8b622 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期三, 06 五月 2026 16:20:17 +0800
Subject: [PATCH] #地图保存优化
---
src/main/java/com/zy/asrs/service/impl/BasMapServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/BasMapServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasMapServiceImpl.java
index d8d8e92..1e3b7b6 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasMapServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasMapServiceImpl.java
@@ -65,6 +65,65 @@
@Override
@Transactional
+ public void saveMapPayloadInBatches(Integer lev, String data, String originData, Date updateTime) {
+ if (lev == null || lev <= 0) {
+ throw new CoolException("妤煎眰涓嶈兘涓虹┖");
+ }
+ Date now = updateTime == null ? new Date() : updateTime;
+ BasMap basMap = this.getOne(new QueryWrapper<BasMap>().select("id", "data").eq("lev", lev));
+ boolean existingMap = basMap != null;
+ if (basMap == null) {
+ basMap = insertLightMap(lev, now);
+ }
+
+ if (existingMap) {
+ updateLastDataOnly(basMap.getId(), basMap.getData());
+ }
+ updateDataOnly(basMap.getId(), data, now);
+ updateOriginDataOnly(basMap.getId(), originData);
+ }
+
+ private BasMap insertLightMap(Integer lev, Date now) {
+ BasMap insertMap = new BasMap();
+ insertMap.setLev(lev);
+ insertMap.setCreateTime(now);
+ insertMap.setUpdateTime(now);
+ if (!this.save(insertMap)) {
+ throw new CoolException("鍦板浘鍩虹淇℃伅淇濆瓨澶辫触");
+ }
+ return insertMap;
+ }
+
+ private void updateLastDataOnly(Integer id, String lastData) {
+ UpdateWrapper<BasMap> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", id)
+ .set("last_data", lastData);
+ if (!this.update(updateWrapper)) {
+ throw new CoolException("鍦板浘鍘嗗彶鏁版嵁淇濆瓨澶辫触");
+ }
+ }
+
+ private void updateDataOnly(Integer id, String data, Date updateTime) {
+ UpdateWrapper<BasMap> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", id)
+ .set("data", data)
+ .set("update_time", updateTime);
+ if (!this.update(updateWrapper)) {
+ throw new CoolException("鍦板浘杩愯鏁版嵁淇濆瓨澶辫触");
+ }
+ }
+
+ private void updateOriginDataOnly(Integer id, String originData) {
+ UpdateWrapper<BasMap> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("id", id)
+ .set("origin_data", originData);
+ if (!this.update(updateWrapper)) {
+ throw new CoolException("鍦板浘缂栬緫鏁版嵁淇濆瓨澶辫触");
+ }
+ }
+
+ @Override
+ @Transactional
public int syncLocMastByMap(Integer lev) {
if (lev == null || lev <= 0) {
throw new CoolException("璇疯緭鍏ユ湁鏁堟ゼ灞�");
--
Gitblit v1.9.1