From 766c2b5c6940fb4373b7b8097b31d2b03aa49ac2 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期一, 10 十一月 2025 21:22:16 +0800
Subject: [PATCH] fix:优化小程序人员加载和后台用户管理中的用户加载
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskAttachmentSyncServiceImpl.java | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 105 insertions(+), 2 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskAttachmentSyncServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskAttachmentSyncServiceImpl.java
index 4b4ea83..19ceac4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskAttachmentSyncServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TaskAttachmentSyncServiceImpl.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.ImageData;
import com.ruoyi.system.domain.SysTaskAttachment;
+import com.ruoyi.system.domain.SysTaskEmergency;
import com.ruoyi.system.file.FileUploadResponse;
import com.ruoyi.system.file.IFileUploadService;
import com.ruoyi.system.imagedata.IImageDataService;
@@ -29,12 +30,13 @@
* @author ruoyi
*/
@Service
-@DataSource(DataSourceType.SQLSERVER)
public class TaskAttachmentSyncServiceImpl implements ITaskAttachmentSyncService {
private static final Logger log = LoggerFactory.getLogger(TaskAttachmentSyncServiceImpl.class);
-
+ @Autowired
+ private SysTaskAttachmentMapper taskAttachmentMapper;
+
@Autowired
private IImageDataService imageDataService;
@@ -166,6 +168,107 @@
return null;
}
+ /**
+ * 鎵归噺鍚屾寰呭悓姝ョ殑浠诲姟闄勪欢鍒癐mageData
+ */
+ @Override
+ public int batchSyncPendingAttachments() {
+ log.info("寮�濮嬫墽琛屾壒閲忛檮浠跺悓姝ヤ换鍔�");
+
+ try {
+ // 鏌ヨ寰呭悓姝ョ殑闄勪欢鍒楄〃
+ List<SysTaskAttachment> pendingAttachments = taskAttachmentMapper.selectPendingSyncAttachments();
+
+ if (pendingAttachments == null || pendingAttachments.isEmpty()) {
+ log.info("娌℃湁寰呭悓姝ョ殑闄勪欢");
+ return 0;
+ }
+
+ log.info("鏌ヨ鍒� {} 涓緟鍚屾鐨勯檮浠�", pendingAttachments.size());
+
+ // 鎸変换鍔D鍒嗙粍鍚屾
+ int successCount = 0;
+ Long currentTaskId = null;
+ Long serviceOrderId = null;
+ Long dispatchOrdId = null;
+ Integer oaUserId = null;
+
+ for (SysTaskAttachment attachment : pendingAttachments) {
+ try {
+ // 濡傛灉鏄柊浠诲姟锛岄渶瑕佽幏鍙栦换鍔′俊鎭�
+ if (!attachment.getTaskId().equals(currentTaskId)) {
+ currentTaskId = attachment.getTaskId();
+ // 閫氳繃鑱旇〃鏌ヨ宸茬粡鍖呭惈浜嗕换鍔′俊鎭紝杩欓噷闇�瑕佸崟鐙煡璇�
+ SysTaskEmergency emergencyInfo = getEmergencyInfoByTaskId(currentTaskId);
+ if (emergencyInfo != null) {
+ serviceOrderId = emergencyInfo.getLegacyServiceOrdId();
+ dispatchOrdId = emergencyInfo.getLegacyDispatchOrdId();
+ // 鑾峰彇浠诲姟鍒涘缓浜虹殑OA鐢ㄦ埛ID
+ oaUserId = getCreatorOaUserId(currentTaskId);
+ } else {
+ log.warn("浠诲姟ID={} 鐨勬�ユ晳杞繍淇℃伅涓虹┖锛岃烦杩�", currentTaskId);
+ continue;
+ }
+ }
+
+ // 鍚屾鍗曚釜闄勪欢
+ Long imageDataId = syncAttachmentToImageData(attachment, serviceOrderId, dispatchOrdId, oaUserId);
+
+ if (imageDataId != null && imageDataId > 0) {
+ // 鏇存柊闄勪欢鍚屾鐘舵��
+ attachment.setSyncedToImageData(1);
+ attachment.setSyncTime(new Date());
+ attachment.setImageDataId(imageDataId);
+ taskAttachmentMapper.updateSysTaskAttachment(attachment);
+
+ successCount++;
+ log.info("闄勪欢ID={} 鍚屾鎴愬姛锛孖mageDataId={}",
+ attachment.getAttachmentId(), imageDataId);
+ }
+ } catch (Exception e) {
+ log.error("鍚屾闄勪欢ID={} 澶辫触", attachment.getAttachmentId(), e);
+ // 缁х画澶勭悊涓嬩竴涓檮浠�
+ }
+ }
+
+ log.info("闄勪欢鍚屾瀹屾垚锛屾垚鍔熷悓姝� {}/{} 涓檮浠�", successCount, pendingAttachments.size());
+ return successCount;
+
+ } catch (Exception e) {
+ log.error("鎵归噺闄勪欢鍚屾寮傚父", e);
+ return 0;
+ }
+ }
+
+ /**
+ * 鏍规嵁浠诲姟ID鑾峰彇鎬ユ晳杞繍淇℃伅
+ */
+ @Autowired
+ private com.ruoyi.system.mapper.SysTaskEmergencyMapper taskEmergencyMapper;
+
+ private SysTaskEmergency getEmergencyInfoByTaskId(Long taskId) {
+ return taskEmergencyMapper.selectSysTaskEmergencyByTaskId(taskId);
+ }
+
+ /**
+ * 鑾峰彇浠诲姟鍒涘缓浜虹殑OA鐢ㄦ埛ID
+ */
+ @Autowired
+ private com.ruoyi.system.mapper.SysTaskMapper taskMapper;
+
+ @Autowired
+ private com.ruoyi.system.mapper.SysUserMapper userMapper;
+
+ private Integer getCreatorOaUserId(Long taskId) {
+ com.ruoyi.system.domain.SysTask task = taskMapper.selectSysTaskByTaskId(taskId);
+ if (task != null && task.getCreatorId() != null) {
+ com.ruoyi.common.core.domain.entity.SysUser user = userMapper.selectUserById(task.getCreatorId());
+ if (user != null) {
+ return user.getOaUserId();
+ }
+ }
+ return null;
+ }
/**
--
Gitblit v1.9.1