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 5c0e148..cbd6f3c 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 @@ -11,7 +11,6 @@ import com.ruoyi.excel.wecom.model.WecomTagGroup; import com.ruoyi.excel.wecom.service.CustomerExportService; import com.ruoyi.excel.wecom.service.WecomContactService; import com.ruoyi.excel.wecom.service.WecomTagService; -import com.ruoyi.common.utils.CorpContextHolder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -98,9 +97,6 @@ import java.util.concurrent.atomic.AtomicInteger; processBatch(batch,finalCorpId); } catch (IOException e) { throw new RuntimeException("处理批次数据失败: " + e.getMessage(), e); - } finally { - // 清理子线程的上下文 - CorpContextHolder.clear(); } }, executorService); @@ -115,7 +111,6 @@ import java.util.concurrent.atomic.AtomicInteger; } } catch (IOException e) { throw new RuntimeException(e); - } finally { } }); @@ -316,7 +311,7 @@ import java.util.concurrent.atomic.AtomicInteger; List tagGroupList = wecomContactService.getCorpTagList(corpId); // 同步标签库到数据库 - wecomTagService.syncCorpTagList(tagGroupList); + wecomTagService.syncCorpTagList(tagGroupList,corpId); } catch (Exception e) { throw new RuntimeException("存储标签数据失败!"); } diff --git a/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerDataChangeTrackingService.java b/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerDataChangeTrackingService.java index 251593a..478115e 100644 --- a/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerDataChangeTrackingService.java +++ b/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerDataChangeTrackingService.java @@ -177,7 +177,7 @@ public class CustomerDataChangeTrackingService { * @return 历史记录ID */ @Transactional(rollbackFor = Exception.class) - public Long saveDataChange(Long customerId, CustomerExportData newData, String changeType) { + public Long saveDataChange(String cropId,Long customerId, CustomerExportData newData, String changeType) { if (customerId == null || newData == null) { return null; } @@ -192,6 +192,7 @@ public class CustomerDataChangeTrackingService { // 3. 创建历史记录 CustomerExportDataHistory history = new CustomerExportDataHistory(); BeanUtils.copyProperties(newData, history); + history.setCorpId(cropId); history.setHistoryId(null); // 清除ID,让数据库自动生成 history.setCustomerId(customerId); history.setVersion(newVersion); @@ -208,7 +209,7 @@ public class CustomerDataChangeTrackingService { CustomerExportDataHistory previousHistory = historyMapper.selectByCustomerIdAndVersion(customerId, newVersion - 1); if (previousHistory != null) { // 比较字段变更 - List changeLogs = compareAndGenerateChangeLogs( + List changeLogs = compareAndGenerateChangeLogs(cropId, history.getHistoryId(), customerId, newVersion, previousHistory, history); // 批量保存变更日志 @@ -231,7 +232,7 @@ public class CustomerDataChangeTrackingService { * @param newData 新数据 * @return 变更日志列表 */ - private List compareAndGenerateChangeLogs( + private List compareAndGenerateChangeLogs(String corpId, Long historyId, Long customerId, Integer version, CustomerExportDataHistory oldData, CustomerExportDataHistory newData) { @@ -265,6 +266,7 @@ public class CustomerDataChangeTrackingService { changeLog.setNewValue(newValue != null ? newValue.toString() : null); changeLog.setChangeTime(changeTime); changeLog.setVersion(version); + changeLog.setCorpId(corpId); changeLogs.add(changeLog); } diff --git a/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerExportService.java b/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerExportService.java index cfc50ba..d0d5e50 100644 --- a/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerExportService.java +++ b/excel-handle/src/main/java/com/ruoyi/excel/wecom/service/CustomerExportService.java @@ -126,7 +126,7 @@ public class CustomerExportService { customerExportDataMapper.insert(exportData); // 保存新增记录到历史表 - changeTrackingService.saveDataChange(exportData.getId(), exportData, "INSERT"); + changeTrackingService.saveDataChange(corpId,exportData.getId(), exportData, "INSERT"); insertCount++; successCount++; @@ -141,7 +141,7 @@ public class CustomerExportService { customerExportDataMapper.updateById(exportData); // 保存变更记录到历史表和变更日志表 - changeTrackingService.saveDataChange(existingData.getId(), exportData, "UPDATE"); + changeTrackingService.saveDataChange(corpId,existingData.getId(), exportData, "UPDATE"); updateCount++; successCount++; 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 99facd9..b3fb907 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 @@ -7,7 +7,6 @@ import com.ruoyi.excel.wecom.mapper.WecomTagGroupMapper; import com.ruoyi.excel.wecom.mapper.WecomTagMapper; import com.ruoyi.excel.wecom.model.WecomTag; import com.ruoyi.excel.wecom.model.WecomTagGroup; -import com.ruoyi.common.utils.CorpContextHolder; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,14 +34,7 @@ public class WecomTagService { * @param tagGroupList 标签库列表 * @return 同步结果 */ - public boolean syncCorpTagList(List tagGroupList) { - // 从 Redis 获取当前企业ID并设置到上下文 - String corpId = redisCache.getCacheObject("current_corp_id"); - if (corpId == null || corpId.trim().isEmpty()) { - throw new RuntimeException("未找到当前企业ID,请先切换企业"); - } - CorpContextHolder.setCurrentCorpId(corpId); - + public boolean syncCorpTagList(List tagGroupList,String corpId) { try { // 遍历标签组列表 for (WecomTagGroup tagGroup : tagGroupList) { @@ -87,9 +79,6 @@ public class WecomTagService { } catch (Exception e) { e.printStackTrace(); return false; - } finally { - // 清理上下文 - CorpContextHolder.clear(); } } diff --git a/excel-handle/src/main/resources/mapper/wecom/CustomerDataChangeLogMapper.xml b/excel-handle/src/main/resources/mapper/wecom/CustomerDataChangeLogMapper.xml index 963c373..d10d771 100644 --- a/excel-handle/src/main/resources/mapper/wecom/CustomerDataChangeLogMapper.xml +++ b/excel-handle/src/main/resources/mapper/wecom/CustomerDataChangeLogMapper.xml @@ -29,11 +29,12 @@ INSERT INTO customer_data_change_log ( + corp_id, history_id, customer_id, version, field_name, field_label, old_value, new_value, change_time ) VALUES - - ( + + (#{item.corpId}, #{item.historyId}, #{item.customerId}, #{item.version}, #{item.fieldName}, #{item.fieldLabel}, #{item.oldValue}, #{item.newValue}, #{item.changeTime}