liujie
2026-07-21 5bc349b0321d6058ea859780de6d1bd5a0ffdb35
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TOrderInvoiceServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.account.api.model.TAppUserCar;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.dto.GetSiteListDTO;
import com.ruoyi.chargingPile.api.model.Partner;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.utils.StringUtils;
@@ -30,6 +31,8 @@
import com.ruoyi.other.api.feignClient.CouponClient;
import com.ruoyi.other.api.feignClient.GoodsClient;
import com.ruoyi.other.api.feignClient.InvoiceTypeClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.domain.SysUser;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
@@ -87,6 +90,9 @@
   private CouponClient couponClient;
   @Resource
   private AppUserClient appUserClient;
   @Resource
   private SysUserClient sysUserClient;
   
   @Resource
   private TChargingOrderAccountingStrategyService chargingOrderAccountingStrategyService;
@@ -375,6 +381,7 @@
   @Override
   public PageInfo<TOrderInvoiceVO> pageList(TOrderInvoiceQuery query) {
      applyPartnerSiteScope(query);
      List<TAppUser> tAppUsers = new ArrayList<>();
      // 查询申请用户
      if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
@@ -446,6 +453,7 @@
   @Override
   public Map<String, Integer> statusCount(TOrderInvoiceQuery query) {
      applyPartnerSiteScope(query);
      Map<String, Integer> map = new HashMap<>();
      List<TAppUser> tAppUsers = new ArrayList<>();
@@ -466,6 +474,7 @@
   @Override
   public List<TOrderInvoiceVO> export(TOrderInvoiceQuery query) {
      applyPartnerSiteScope(query);
      List<TAppUser> tAppUsers = new ArrayList<>();
      // 查询申请用户
      if (org.springframework.util.StringUtils.hasLength(query.getUserPhone())){
@@ -495,6 +504,31 @@
      return list;
   }
   private void applyPartnerSiteScope(TOrderInvoiceQuery query) {
      if (query == null) {
         return;
      }
      Long userId = tokenService.getLoginUser().getUserid();
      SysUser sysUser = sysUserClient.getSysUser(userId).getData();
      if (sysUser == null || !Integer.valueOf(2).equals(sysUser.getRoleType())) {
         return;
      }
      List<GetSiteListDTO> sites = siteClient.getSiteListByUserId(userId).getData();
      List<Integer> siteIds = sites == null ? new ArrayList<>() : sites.stream()
            .map(GetSiteListDTO::getId)
            .filter(Objects::nonNull)
            .collect(Collectors.toList());
      if (query.getSiteId() != null) {
         siteIds = siteIds.contains(query.getSiteId())
               ? Collections.singletonList(query.getSiteId())
               : Collections.singletonList(-1);
      }
      if (siteIds.isEmpty()) {
         siteIds = Collections.singletonList(-1);
      }
      query.setSiteIds(siteIds);
   }
   private void fillInvoiceDetailAmount(TOrderInvoiceVO invoice, List<TOrderInvoiceDetail> details) {
      List<TOrderInvoiceDetail> currentDetails = details.stream()
            .filter(t -> t.getOrderInvoiceId().equals(invoice.getId()))