From a962579b636b055bb70ae2233787d42483eb4b3b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 14 四月 2026 15:20:22 +0800
Subject: [PATCH] feat(config): 添加部门ID字段到Mybatis处理器

---
 src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
index 8c30cb3..b15c7c6 100644
--- a/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/inspectiontask/service/impl/InspectionTaskServiceImpl.java
@@ -16,6 +16,10 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.device.mapper.DeviceAreaMapper;
+import com.ruoyi.device.mapper.DeviceLedgerMapper;
+import com.ruoyi.device.pojo.DeviceArea;
+import com.ruoyi.device.pojo.DeviceLedger;
 import com.ruoyi.inspectiontask.dto.InspectionTaskDto;
 import com.ruoyi.inspectiontask.mapper.InspectionTaskMapper;
 import com.ruoyi.inspectiontask.pojo.InspectionTask;
@@ -72,12 +76,21 @@
     @Autowired
     private CommonFileServiceImpl commonFileService;
 
+    @Autowired
+    private DeviceLedgerMapper deviceLedgerMapper;
+
+    @Autowired
+    private DeviceAreaMapper deviceAreaMapper;
+
     @Override
     public IPage<InspectionTaskDto> selectInspectionTaskList(Page<InspectionTask> page, InspectionTaskDto inspectionTaskDto) {
         LambdaQueryWrapper<InspectionTask> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.orderByDesc(InspectionTask::getCreateTime);
         if (StringUtils.isNotBlank(inspectionTaskDto.getTaskName())) {
             queryWrapper.like(InspectionTask::getTaskName, inspectionTaskDto.getTaskName());
+        }
+        if (inspectionTaskDto.getAreaId() != null) {
+            queryWrapper.eq(InspectionTask::getAreaId, inspectionTaskDto.getAreaId());
         }
         IPage<InspectionTask> entityPage = inspectionTaskMapper.selectPage(page, queryWrapper);
 
@@ -87,6 +100,10 @@
         }
         // 鑾峰彇id闆嗗悎
         List<Long> ids = entityPage.getRecords().stream().map(InspectionTask::getId).collect(Collectors.toList());
+        Map<Long, String> areaNameMap = buildAreaNameMap(entityPage.getRecords().stream()
+                .map(InspectionTask::getAreaId)
+                .filter(Objects::nonNull)
+                .collect(Collectors.toSet()));
         //鐧昏浜篿ds
         List<Long> registrantIds = entityPage.getRecords().stream().map(InspectionTask::getRegistrantId).collect(Collectors.toList());
         // 鎵归噺鏌ヨ鐧昏浜�
@@ -143,6 +160,7 @@
             if (sysUser != null) {
                 dto.setRegistrant(sysUser.getNickName());
             }
+            dto.setAreaName(areaNameMap.get(inspectionTask.getAreaId()));
             // 澶勭悊宸℃浜哄悕绉�
             if (StringUtils.isNotBlank(inspectionTask.getInspectorId())) {
                 String inspectorNames = Arrays.stream(inspectionTask.getInspectorId().split(","))
@@ -177,6 +195,14 @@
         return resultPage;
     }
 
+    private Map<Long, String> buildAreaNameMap(Set<Long> areaIds) {
+        if (areaIds == null || areaIds.isEmpty()) {
+            return Collections.emptyMap();
+        }
+        return deviceAreaMapper.selectBatchIds(new ArrayList<>(areaIds)).stream()
+                .collect(Collectors.toMap(DeviceArea::getId, DeviceArea::getAreaName, (left, right) -> left));
+    }
+
     // 鎻愬彇鍒涘缓BlobDTO鐨勫叕鍏辨柟娉�
     private StorageBlobDTO createBlobDto(StorageBlob blob) {
         StorageBlobDTO dto = new StorageBlobDTO();
@@ -204,6 +230,12 @@
     public int addOrEditInspectionTask(InspectionTaskDto inspectionTaskDto) throws IOException {
         InspectionTask inspectionTask = new InspectionTask();
         BeanUtils.copyProperties(inspectionTaskDto, inspectionTask);
+        if (inspectionTask.getAreaId() == null && inspectionTask.getTaskId() != null) {
+            DeviceLedger deviceLedger = deviceLedgerMapper.selectById(Long.valueOf(inspectionTask.getTaskId()));
+            if (deviceLedger != null) {
+                inspectionTask.setAreaId(deviceLedger.getAreaId());
+            }
+        }
         inspectionTask.setRegistrantId(SecurityUtils.getLoginUser().getUserId());
         inspectionTask.setRegistrant(SecurityUtils.getLoginUser().getUsername());
         int i;

--
Gitblit v1.9.3