From 8831100cc4464ce60761819ba39464eeb7680a28 Mon Sep 17 00:00:00 2001 From: MerCry Date: Mon, 9 Feb 2026 10:39:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=8D=E5=A4=8D=E6=8F=92?= =?UTF-8?q?=E5=85=A5=E6=9C=BA=E5=88=B6=20=E5=85=81=E8=AE=B8=20=E5=A4=9A?= =?UTF-8?q?=E6=AC=A1=E9=87=8D=E5=A4=8D=E6=89=A7=E8=A1=8C=20=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=E6=95=B0=E6=8D=AE=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../excel/wecom/helper/HandleAllData.java | 31 +++++++++++++++++-- .../excel/wecom/service/WecomTagService.java | 17 ++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/excel-handle/src/main/java/com/ruoyi/excel/wecom/helper/HandleAllData.java b/excel-handle/src/main/java/com/ruoyi/excel/wecom/helper/HandleAllData.java index 0e0b23c..5c0e148 100644 --- a/excel-handle/src/main/java/com/ruoyi/excel/wecom/helper/HandleAllData.java +++ b/excel-handle/src/main/java/com/ruoyi/excel/wecom/helper/HandleAllData.java @@ -239,6 +239,13 @@ import java.util.concurrent.atomic.AtomicInteger; * @param date 统计日期 */ public void createReportData(String corpId,Date date) { + // 先删除当天已存在的数据,避免重复 + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); + deleteWrapper.eq(CustomerStatisticsData::getCorpId, corpId) + .eq(CustomerStatisticsData::getCurDate, date); + dataMapper.delete(deleteWrapper); + + // 重新计算并插入当天数据 List oneDateData = calculateStatistics(corpId,date); oneDateData.forEach(item->{ dataMapper.insert(item); @@ -267,8 +274,13 @@ import java.util.concurrent.atomic.AtomicInteger; item.setCorpId(corpId); // 设置企业ID cacheDepartMap.put(item.getId(), departmentDetail); parentCacheMap.put(item.getId(), item.getParentid()); - //保存部门数据 - departmentMapper.insert(item); + //保存部门数据(支持重复调用:存在则更新,不存在则插入) + CorpDepartment existingDept = departmentMapper.selectById(item.getId()); + if (existingDept != null) { + departmentMapper.updateById(item); + } else { + departmentMapper.insert(item); + } } } catch (Exception e) { throw new RuntimeException("存储部门数据失败!"); @@ -283,7 +295,13 @@ import java.util.concurrent.atomic.AtomicInteger; oneUser.setDepartId(item.getId()); oneUser.setDepartmentName(getDepartmentFullPath(item.getId(), cacheDepartMap, parentCacheMap)); oneUser.setCorpId(corpId); // 设置企业ID - userMapper.insert(oneUser); + //保存用户数据(支持重复调用:存在则更新,不存在则插入) + CorpUser existingUser = userMapper.selectById(oneUser.getUserid()); + if (existingUser != null) { + userMapper.updateById(oneUser); + } else { + userMapper.insert(oneUser); + } }); } catch (IOException e) { throw new RuntimeException(e); @@ -317,6 +335,13 @@ import java.util.concurrent.atomic.AtomicInteger; * @param date 统计日期 */ public void createDepartmentReportData(String corpId,Date date) { + // 先删除当天已存在的数据,避免重复 + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); + deleteWrapper.eq(DepartmentStatisticsData::getCorpId, corpId) + .eq(DepartmentStatisticsData::getStatDate, date); + departmentStatisticsDataMapper.delete(deleteWrapper); + + // 重新计算并插入当天数据 List oneDateData = calculateDepartmentStatistics(corpId,date); oneDateData.forEach(item -> { departmentStatisticsDataMapper.insert(item); diff --git a/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/WecomTagService.java b/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/WecomTagService.java index 11965b9..99facd9 100644 --- a/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/WecomTagService.java +++ b/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/WecomTagService.java @@ -53,7 +53,13 @@ public class WecomTagService { groupDomain.setCreateTime(new Date(tagGroup.getCreateTime() * 1000)); groupDomain.setOrderNo(tagGroup.getOrder()); groupDomain.setCorpId(corpId); // 设置企业ID - wecomTagGroupMapper.insert(groupDomain); + //保存标签组(支持重复调用:存在则更新,不存在则插入) + WecomTagGroupDomain existingGroup = wecomTagGroupMapper.selectById(groupDomain.getTagGroupId()); + if (existingGroup != null) { + wecomTagGroupMapper.updateById(groupDomain); + } else { + wecomTagGroupMapper.insert(groupDomain); + } // 保存标签 List tagList = tagGroup.getTag(); if (tagList != null && !tagList.isEmpty()) { @@ -67,8 +73,13 @@ public class WecomTagService { tagDomain.setSyncTime(new Date()); tagDomain.setCorpId(corpId); // 设置企业ID - // 插入标签 - wecomTagMapper.insert(tagDomain); + // 插入标签(支持重复调用:存在则更新,不存在则插入) + WecomTagDomain existingTag = wecomTagMapper.selectById(tagDomain.getTagId()); + if (existingTag != null) { + wecomTagMapper.updateById(tagDomain); + } else { + wecomTagMapper.insert(tagDomain); + } } } }