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); + } } } }