吉安感知网项目-后端
rain
2026-02-09 66bfbdb9251c22ffa2b5f05595a76a3547a2f5eb
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;
      }