yanderong
2026-07-27 39e943b054a6c62b22a6fe28199f17361807b143
feat: 光伏电站管理、逆变器 删除时增加校验第三方同步数据不能删除
7个文件已修改
72 ■■■■■ 已修改文件
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TStationCollectController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TStationInfoController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TStationCollectService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TStationInfoService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TStationCollectServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TStationInfoServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/task/ExchangeCodeExpireTask.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TStationCollectController.java
@@ -49,6 +49,9 @@
    @Log(title = "【电站逆变器】删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody Long[] ids) {
        if (ids == null || ids.length == 0) return AjaxResult.error("请选择需要删除的数据");
        if(!stationCollectService.validateDelete(ids)) {
            return AjaxResult.error("来源于第三方平台的数据,不允许删除");
        }
        return stationCollectService.removeByIds(Arrays.asList(ids))
                ? AjaxResult.success() : AjaxResult.error("删除失败");
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TStationInfoController.java
@@ -48,6 +48,9 @@
    @Log(title = "【电站信息】删除", businessType = BusinessType.DELETE)
    public AjaxResult delete(@RequestBody Long[] ids) {
        if (ids == null || ids.length == 0) return AjaxResult.error("请选择需要删除的数据");
        if(!stationInfoService.validateDelete(ids)) {
            return AjaxResult.error("来源于第三方平台的数据,不允许删除");
        }
        return stationInfoService.removeByIds(Arrays.asList(ids)) ? AjaxResult.success() : AjaxResult.error("删除失败");
    }
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TStationCollectService.java
@@ -20,4 +20,11 @@
    boolean updateStationCollect(TStationCollect stationCollect);
    TStationCollect getStationCollectDetail(Long id);
    /**
     * 根据ids删除数据时,校验示范存在第三方同步的数据,第三方同步的数据不允许删除
     * @param ids 数据id
     * @return true可以删除,false不可以删除
     */
    Boolean validateDelete(Long[] ids);
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TStationInfoService.java
@@ -31,4 +31,10 @@
     */
    StationInfoStatusVO getStationStatus();
    /**
     * 根据ids删除数据时,校验示范存在第三方同步的数据,第三方同步的数据不允许删除
     * @param ids 数据id
     * @return true可以删除,false不可以删除
     */
    Boolean validateDelete(Long[] ids);
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TStationCollectServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.other.mapper.TStationInfoMapper;
import com.ruoyi.other.query.StationCollectQuery;
import com.ruoyi.other.service.TStationCollectService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -21,11 +22,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -277,4 +274,21 @@
    private String firstNotBlank(String preferred, String fallback) {
        return StringUtils.isNotBlank(preferred) ? preferred : fallback;
    }
    /**
     * 根据ids删除数据时,校验示范存在第三方同步的数据,第三方同步的数据不允许删除
     * @param ids 数据id
     * @return true可以删除,false不可以删除
     */
    public Boolean validateDelete(Long[] ids) {
        if(ids != null && ids.length > 0) {
            List<Long> idList = Arrays.stream(ids).collect(Collectors.toList());
            List<TStationCollect> infoList = lambdaQuery().eq(TStationCollect::getDataSource, 2).in(TStationCollect::getId, idList).list();
            if(CollectionUtils.isNotEmpty(infoList) && !infoList.isEmpty()) {
                return false;
            }
        }
        return true;
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TStationInfoServiceImpl.java
@@ -25,13 +25,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -334,4 +328,21 @@
        }
        return statusVO;
    }
    /**
     * 根据ids删除数据时,校验示范存在第三方同步的数据,第三方同步的数据不允许删除
     * @param ids 数据id
     * @return true可以删除,false不可以删除
     */
    public Boolean validateDelete(Long[] ids) {
        if(ids != null && ids.length > 0) {
            List<Long> idList = Arrays.stream(ids).collect(Collectors.toList());
            List<TStationInfo> infoList = lambdaQuery().eq(TStationInfo::getDataSource, 2).in(TStationInfo::getId, idList).list();
            if(CollectionUtils.isNotEmpty(infoList) && !infoList.isEmpty()) {
                return false;
            }
        }
        return true;
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/task/ExchangeCodeExpireTask.java
@@ -22,9 +22,9 @@
    }
    /**
     * 每天11点执行科士达的数据同步
     * 每2小时执行科士达的数据同步
     */
    @Scheduled(cron = "0 0 23 * * ?")
    @Scheduled(cron = "0 0 */2 * * ?")
    public void syncKsolarDataTask() {
        tStationInfoService.syncKsolarDataTask();
    }