From 66bfbdb9251c22ffa2b5f05595a76a3547a2f5eb Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Mon, 09 Feb 2026 11:00:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java |   53 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 43 insertions(+), 10 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java b/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java
index ff4b4e3..096eda7 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/orderdata/service/impl/GdDataObjectionServiceImpl.java
@@ -16,25 +16,30 @@
  */
 package org.sxkj.gd.orderdata.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import org.sxkj.gd.orderdata.dto.GdDataObjectionDTO;
 import org.sxkj.gd.orderdata.entity.GdDataObjectionAttachmentEntity;
 import org.sxkj.gd.orderdata.entity.GdDataObjectionEntity;
+import org.sxkj.gd.orderdata.excel.GdDataObjectionExcel;
+import org.sxkj.gd.orderdata.mapper.GdDataObjectionMapper;
 import org.sxkj.gd.orderdata.param.GdDataObjectionDetailParam;
 import org.sxkj.gd.orderdata.param.GdDataObjectionPageParam;
 import org.sxkj.gd.orderdata.service.IGdDataObjectionAttachmentService;
-import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
-import org.sxkj.gd.orderdata.excel.GdDataObjectionExcel;
-import org.sxkj.gd.orderdata.mapper.GdDataObjectionMapper;
 import org.sxkj.gd.orderdata.service.IGdDataObjectionService;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.core.mp.base.BaseServiceImpl;
+import org.sxkj.gd.orderdata.vo.GdDataObjectionVO;
 import org.sxkj.gd.orderdata.wrapper.GdDataObjectionWrapper;
 import org.sxkj.gd.orderdata.wrapper.GdSupplyDemandAuditAttachmentWrapper;
+import org.sxkj.system.cache.SysCache;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 数据异议申请表 服务实现类
@@ -50,6 +55,11 @@
 
 	@Override
 	public IPage<GdDataObjectionVO> selectGdDataObjectionPage(IPage<GdDataObjectionVO> page, GdDataObjectionPageParam gdDataObjection) {
+		List<Long> deptList = new ArrayList<>();
+		if (!AuthUtil.isAdministrator()) {
+			deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
+		}
+		gdDataObjection.setDeptList(deptList);
 		return page.setRecords(baseMapper.selectGdDataObjectionPage(page, gdDataObjection));
 	}
 
@@ -66,14 +76,37 @@
 	@Override
 	public boolean saveOrUpdateDataObjection(GdDataObjectionDTO gdDataEvaluationDTO) {
 		GdDataObjectionEntity gdDataObjectionEntity = GdDataObjectionWrapper.build().entityDTO(gdDataEvaluationDTO);
+		if(gdDataObjectionEntity.getObjectionStatus().equals("2")){
+			String deptName = SysCache.getDeptName(Long.valueOf(AuthUtil.getDeptId()));
+			gdDataObjectionEntity.setHandleUnit(deptName);
+		}
 		boolean result = saveOrUpdate(gdDataObjectionEntity);
 		if (result) {
 			if (gdDataEvaluationDTO.getAttachmentList() != null) {
-				List<GdDataObjectionAttachmentEntity> gdDataObjectionAttachmentEntities = GdSupplyDemandAuditAttachmentWrapper.build().entityDTO(gdDataEvaluationDTO.getAttachmentList());
-				gdDataObjectionAttachmentEntities.forEach(gdDataObjectionAttachmentEntity -> {
+				List<GdDataObjectionAttachmentEntity> entityList = GdSupplyDemandAuditAttachmentWrapper.build().entityDTO(gdDataEvaluationDTO.getAttachmentList());
+
+				List<GdDataObjectionAttachmentEntity> list = gdDataObjectionAttachmentService.list(Wrappers.<GdDataObjectionAttachmentEntity>lambdaQuery()
+					.eq(GdDataObjectionAttachmentEntity::getObjectionId, gdDataObjectionEntity.getId())
+					.eq(GdDataObjectionAttachmentEntity::getIsDeleted, 0));
+
+				// 过滤出list中存在但entityList不包含的数据(根据ID进行比较)
+				List<GdDataObjectionAttachmentEntity> toDeleteList = list.stream()
+					.filter(item -> !entityList.stream()
+						.anyMatch(entityItem -> item.getId() != null && entityItem.getId() != null && item.getId().equals(entityItem.getId())))
+					.collect(Collectors.toList());
+
+				// 删除过滤出的数据
+				if (!toDeleteList.isEmpty()) {
+					List<Long> idsToDelete = toDeleteList.stream()
+						.map(GdDataObjectionAttachmentEntity::getId)
+						.collect(Collectors.toList());
+					gdDataObjectionAttachmentService.deleteLogic(idsToDelete);
+				}
+
+				entityList.forEach(gdDataObjectionAttachmentEntity -> {
 					gdDataObjectionAttachmentEntity.setObjectionId(gdDataObjectionEntity.getId());
 				});
-				return gdDataObjectionAttachmentService.saveOrUpdateBatch(gdDataObjectionAttachmentEntities);
+				return gdDataObjectionAttachmentService.saveOrUpdateBatch(entityList);
 			}
 			return true;
 		}

--
Gitblit v1.9.3