platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java
@@ -552,34 +552,73 @@
   @Override
   public R agingAnalysis(AnalysisCommonDTO commonDTO) {
      if (commonDTO.getAgingType().equals("2")) {
         AgingQueryDTO queryDTO = new AgingQueryDTO();
         List<AgingCompanyVo> companys = contractPaymentScheduleMapper.selectAgingCompanyShip(DataScope.of("comp_id"));
         if (ArrayUtil.isEmpty(companys.toArray())) {
            return R.failed("暂无账龄");
         }
         //合计数据
         List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotalShip(queryDTO);
         agingVoList = completeData(agingVoList);
         List<AgingVo> finalAgingVoList = agingVoList;
         List<Long> compIds = new ArrayList<>();
         compIds.add(Long.valueOf(sgb));
         compIds.add(Long.valueOf(smj));
         compIds.add(Long.valueOf(tfgs));
         compIds.add(Long.valueOf(ymj));
         compIds.add(Long.valueOf(jxc));
         List<AgingAnalysisVo> result = new ArrayList<>();
         companys.stream().forEach(company -> {
            BusinessCustomer businessCustomer = businessCustomerMapper.selectById(company.getCompanyId());
         AgingQueryDTO queryDTO = new AgingQueryDTO();
         List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotalShip(null);
         compIds.stream().forEach(compId->{
            R<SysDept> r = remoteDeptService.getById(compId);
            if (!r.isOk()){
               return;
            }
            SysDept dept = r.getData();
            AgingAnalysisVo agingAnalysisVo = new AgingAnalysisVo();
            agingAnalysisVo.setCompanyName(businessCustomer.getCompanyName());
            queryDTO.setCompanyId(company.getCompanyId());
            agingAnalysisVo.setCompanyName(dept.getOrgName());
            queryDTO.setCompanyId(dept.getDeptId());
            List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotalShip(queryDTO);
            //补全数据
            companyAgingVo = completeData(companyAgingVo);
            if (ArrayUtil.isEmpty(companyAgingVo.toArray())){
               companyAgingVo = new ArrayList<>();
               AgingVo agingVo1 = new AgingVo("0-30天",new BigDecimal("0"),null);
               AgingVo agingVo2 = new AgingVo("31-60天",new BigDecimal("0"),null);
               AgingVo agingVo3 = new AgingVo("61-90天",new BigDecimal("0"),null);
               AgingVo agingVo4 = new AgingVo("91-180天",new BigDecimal("0"),null);
               AgingVo agingVo5 = new AgingVo("181-365天",new BigDecimal("0"),null);
               AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null);
               companyAgingVo.add(agingVo1);
               companyAgingVo.add(agingVo2);
               companyAgingVo.add(agingVo3);
               companyAgingVo.add(agingVo4);
               companyAgingVo.add(agingVo5);
               companyAgingVo.add(agingVo6);
            }else {
               List<String> overdueRanges = companyAgingVo.stream().map(AgingVo::getOverdueRange).collect(Collectors.toList());
               if (!ArrayUtil.contains(overdueRanges.toArray(),"0-30天")){
                  AgingVo agingVo1 = new AgingVo("0-30天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo1);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"31-60天")){
                  AgingVo agingVo2 = new AgingVo("31-60天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo2);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"61-90天")){
                  AgingVo agingVo3 = new AgingVo("61-90天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo3);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"91-180天")){
                  AgingVo agingVo4 = new AgingVo("91-180天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo4);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"181-365天")){
                  AgingVo agingVo5 = new AgingVo("181-365天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo5);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){
                  AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo6);
               }
            }
            agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList()));
            List<AgingVo> finalCompanyAgingVo = companyAgingVo;
            agingAnalysisVo.setPercent(IntStream.range(0, finalAgingVoList.size())
            agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size())
                  .mapToObj(i -> {
                     BigDecimal part = finalCompanyAgingVo.get(i).getTotalAmount();
                     BigDecimal total = finalAgingVoList.get(i).getTotalAmount();
                     BigDecimal total = agingVoList.get(i).getTotalAmount();
                     if (total == null || total.compareTo(BigDecimal.ZERO) == 0) {
                        return null;
                     }
@@ -609,33 +648,73 @@
         return R.ok(result);
      }
      if (commonDTO.getAgingType().equals("3")) {
         AgingQueryDTO queryDTO = new AgingQueryDTO();
         List<AgingCompanyVo> companys = contractPaymentScheduleMapper.selectAgingCompanyInvoice(DataScope.of("comp_id"));
         if (ArrayUtil.isEmpty(companys.toArray())) {
            return R.failed("暂无账龄");
         }
         //合计数据
         List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotalInvoice(queryDTO);
         agingVoList = completeData(agingVoList);
         List<AgingVo> finalAgingVoList = agingVoList;
         List<Long> compIds = new ArrayList<>();
         compIds.add(Long.valueOf(sgb));
         compIds.add(Long.valueOf(smj));
         compIds.add(Long.valueOf(tfgs));
         compIds.add(Long.valueOf(ymj));
         compIds.add(Long.valueOf(jxc));
         List<AgingAnalysisVo> result = new ArrayList<>();
         companys.stream().forEach(company -> {
            BusinessCustomer businessCustomer = businessCustomerMapper.selectById(company.getCompanyId());
         AgingQueryDTO queryDTO = new AgingQueryDTO();
         List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotalInvoice(null);
         compIds.stream().forEach(compId->{
            R<SysDept> r = remoteDeptService.getById(compId);
            if (!r.isOk()){
               return;
            }
            SysDept dept = r.getData();
            AgingAnalysisVo agingAnalysisVo = new AgingAnalysisVo();
            agingAnalysisVo.setCompanyName(businessCustomer.getCompanyName());
            queryDTO.setCompanyId(company.getCompanyId());
            agingAnalysisVo.setCompanyName(dept.getOrgName());
            queryDTO.setCompanyId(dept.getDeptId());
            List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotalInvoice(queryDTO);
            //补全数据
            companyAgingVo = completeData(companyAgingVo);
            if (ArrayUtil.isEmpty(companyAgingVo.toArray())){
               companyAgingVo = new ArrayList<>();
               AgingVo agingVo1 = new AgingVo("0-30天",new BigDecimal("0"),null);
               AgingVo agingVo2 = new AgingVo("31-60天",new BigDecimal("0"),null);
               AgingVo agingVo3 = new AgingVo("61-90天",new BigDecimal("0"),null);
               AgingVo agingVo4 = new AgingVo("91-180天",new BigDecimal("0"),null);
               AgingVo agingVo5 = new AgingVo("181-365天",new BigDecimal("0"),null);
               AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null);
               companyAgingVo.add(agingVo1);
               companyAgingVo.add(agingVo2);
               companyAgingVo.add(agingVo3);
               companyAgingVo.add(agingVo4);
               companyAgingVo.add(agingVo5);
               companyAgingVo.add(agingVo6);
            }else {
               List<String> overdueRanges = companyAgingVo.stream().map(AgingVo::getOverdueRange).collect(Collectors.toList());
               if (!ArrayUtil.contains(overdueRanges.toArray(),"0-30天")){
                  AgingVo agingVo1 = new AgingVo("0-30天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo1);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"31-60天")){
                  AgingVo agingVo2 = new AgingVo("31-60天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo2);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"61-90天")){
                  AgingVo agingVo3 = new AgingVo("61-90天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo3);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"91-180天")){
                  AgingVo agingVo4 = new AgingVo("91-180天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo4);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"181-365天")){
                  AgingVo agingVo5 = new AgingVo("181-365天",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo5);
               }
               if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){
                  AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null);
                  companyAgingVo.add(agingVo6);
               }
            }
            agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList()));
            List<AgingVo> finalCompanyAgingVo = companyAgingVo;
            agingAnalysisVo.setPercent(IntStream.range(0, finalAgingVoList.size())
            agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size())
                  .mapToObj(i -> {
                     BigDecimal part = finalCompanyAgingVo.get(i).getTotalAmount();
                     BigDecimal total = finalAgingVoList.get(i).getTotalAmount();
                     BigDecimal total = agingVoList.get(i).getTotalAmount();
                     if (total == null || total.compareTo(BigDecimal.ZERO) == 0) {
                        return null;
                     }