| | |
| | | package com.by4cloud.platformx.business.service.impl; |
| | | |
| | | import cn.hutool.core.util.ArrayUtil; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import java.time.LocalDateTime; |
| | | import java.time.LocalTime; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.IntStream; |
| | |
| | | compIds.add(Long.valueOf(ymj)); |
| | | compIds.add(Long.valueOf(jxc)); |
| | | List<ContractIncomeAnalysisVo> contractIncomeAnalysisVoList = contractMapper.contractIncomeAnalysis(commonDTO,compIds); |
| | | if (ArrayUtil.isNotEmpty(contractIncomeAnalysisVoList.toArray())){ |
| | | if (CollUtil.isNotEmpty(contractIncomeAnalysisVoList)){ |
| | | contractIncomeAnalysisVoList.stream().forEach(contractIncomeAnalysisVo -> { |
| | | if(StrUtil.equals(contractIncomeAnalysisVo.getCompId(),sgb)){ |
| | | contractIncomeAnalysisVo.setCompName("石工泵"); |
| | |
| | | public R contractAmountAnalysisByArea(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("company_area"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("地区字典分类获取异常"); |
| | | } |
| | | List<Long> compIds = new ArrayList<>(); |
| | |
| | | public R contractAmountAnalysisByIndustry(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("industry_sector"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("行业字典分类获取异常"); |
| | | } |
| | | List<Long> compIds = new ArrayList<>(); |
| | |
| | | public R contractAmountAnalysisByMarket(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("market_type"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("市场类型字典分类获取异常"); |
| | | } |
| | | List<Long> compIds = new ArrayList<>(); |
| | |
| | | public R contractAmountAnalysisBySpcBus(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("supply_attribute"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("供应属性字典分类获取异常"); |
| | | } |
| | | List<Long> compIds = new ArrayList<>(); |
| | |
| | | public R contractAmountAnalysisByExportBus(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("export_attr"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("区域字段获取异常"); |
| | | } |
| | | List<Long> compIds = new ArrayList<>(); |
| | |
| | | public R contractAmountAnalysisBySaleModel(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("sales_model"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("销售模式字典分类获取异常"); |
| | | } |
| | | List<Long> compIds = new ArrayList<>(); |
| | |
| | | public R agingAnalysisByArea(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("company_area"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("地区字典分类获取异常"); |
| | | } |
| | | // List<AgingCompanyVo> companys = contractPaymentScheduleMapper.selectAgingCompany(DataScope.of("comp_id")); |
| | | // if (ArrayUtil.isEmpty(companys.toArray())){ |
| | | // if (CollUtil.isEmpty(companys)){ |
| | | // return R.failed("暂无账龄"); |
| | | // } |
| | | 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<>(); |
| | | AgingQueryDTO queryDTO = new AgingQueryDTO(); |
| | | List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotal(null); |
| | | if (CollUtil.contains(compIds,SecurityUtils.getUser().getCompId())){ |
| | | queryDTO.setCompanyId(SecurityUtils.getUser().getCompId()); |
| | | } |
| | | List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotal(queryDTO); |
| | | items.stream().forEach(item->{ |
| | | AgingAnalysisVo agingAnalysisVo = new AgingAnalysisVo(); |
| | | agingAnalysisVo.setCompanyName(item.getLabel()); |
| | | queryDTO.setAreaId(item.getItemValue()); |
| | | List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotal(queryDTO); |
| | | //补全数据 |
| | | if (ArrayUtil.isEmpty(companyAgingVo.toArray())){ |
| | | if (CollUtil.isEmpty(companyAgingVo)){ |
| | | 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); |
| | | AgingVo agingVo1 = new AgingVo(1L,"0-30天",new BigDecimal("0"),null); |
| | | AgingVo agingVo2 = new AgingVo(2L,"31-60天",new BigDecimal("0"),null); |
| | | AgingVo agingVo3 = new AgingVo(3L,"61-90天",new BigDecimal("0"),null); |
| | | AgingVo agingVo4 = new AgingVo(4L,"91-180天",new BigDecimal("0"),null); |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo1); |
| | | companyAgingVo.add(agingVo2); |
| | | companyAgingVo.add(agingVo3); |
| | |
| | | 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); |
| | | if (!CollUtil.contains(overdueRanges,"0-30天")){ |
| | | AgingVo agingVo1 = new AgingVo(1L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"31-60天")){ |
| | | AgingVo agingVo2 = new AgingVo(2L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"61-90天")){ |
| | | AgingVo agingVo3 = new AgingVo(3L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"91-180天")){ |
| | | AgingVo agingVo4 = new AgingVo(4L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"181-365天")){ |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo5); |
| | | } |
| | | if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null); |
| | | if (!CollUtil.contains(overdueRanges,"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo6); |
| | | } |
| | | } |
| | | companyAgingVo.sort(Comparator.comparing(AgingVo::getSort)); |
| | | agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList())); |
| | | List<AgingVo> finalCompanyAgingVo = companyAgingVo; |
| | | agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size()) |
| | |
| | | public R agingAnalysisByIndustry(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("industry_sector"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("行业字典分类获取异常"); |
| | | } |
| | | 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<>(); |
| | | AgingQueryDTO queryDTO = new AgingQueryDTO(); |
| | | List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotal(null); |
| | | if (CollUtil.contains(compIds,SecurityUtils.getUser().getCompId())){ |
| | | queryDTO.setCompanyId(SecurityUtils.getUser().getCompId()); |
| | | } |
| | | List<AgingVo> agingVoList = contractPaymentScheduleMapper.selectAgingTotal(queryDTO); |
| | | items.stream().forEach(item->{ |
| | | AgingAnalysisVo agingAnalysisVo = new AgingAnalysisVo(); |
| | | agingAnalysisVo.setCompanyName(item.getLabel()); |
| | | queryDTO.setIndustryId(item.getItemValue()); |
| | | List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotal(queryDTO); |
| | | //补全数据 |
| | | if (ArrayUtil.isEmpty(companyAgingVo.toArray())){ |
| | | if (CollUtil.isEmpty(companyAgingVo)){ |
| | | 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); |
| | | AgingVo agingVo1 = new AgingVo(1L,"0-30天",new BigDecimal("0"),null); |
| | | AgingVo agingVo2 = new AgingVo(2L,"31-60天",new BigDecimal("0"),null); |
| | | AgingVo agingVo3 = new AgingVo(3L,"61-90天",new BigDecimal("0"),null); |
| | | AgingVo agingVo4 = new AgingVo(4L,"91-180天",new BigDecimal("0"),null); |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo1); |
| | | companyAgingVo.add(agingVo2); |
| | | companyAgingVo.add(agingVo3); |
| | |
| | | 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); |
| | | if (!CollUtil.contains(overdueRanges,"0-30天")){ |
| | | AgingVo agingVo1 = new AgingVo(1L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"31-60天")){ |
| | | AgingVo agingVo2 = new AgingVo(2L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"61-90天")){ |
| | | AgingVo agingVo3 = new AgingVo(3L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"91-180天")){ |
| | | AgingVo agingVo4 = new AgingVo(4L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"181-365天")){ |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo5); |
| | | } |
| | | if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null); |
| | | if (!CollUtil.contains(overdueRanges,"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo6); |
| | | } |
| | | } |
| | | companyAgingVo.sort(Comparator.comparing(AgingVo::getSort)); |
| | | agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList())); |
| | | List<AgingVo> finalCompanyAgingVo = companyAgingVo; |
| | | agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size()) |
| | |
| | | queryDTO.setCompanyId(dept.getDeptId()); |
| | | List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotalShip(queryDTO); |
| | | //补全数据 |
| | | if (ArrayUtil.isEmpty(companyAgingVo.toArray())){ |
| | | if (CollUtil.isEmpty(companyAgingVo)){ |
| | | 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); |
| | | AgingVo agingVo1 = new AgingVo(1L,"0-30天",new BigDecimal("0"),null); |
| | | AgingVo agingVo2 = new AgingVo(2L,"31-60天",new BigDecimal("0"),null); |
| | | AgingVo agingVo3 = new AgingVo(3L,"61-90天",new BigDecimal("0"),null); |
| | | AgingVo agingVo4 = new AgingVo(4L,"91-180天",new BigDecimal("0"),null); |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo1); |
| | | companyAgingVo.add(agingVo2); |
| | | companyAgingVo.add(agingVo3); |
| | |
| | | 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); |
| | | if (!CollUtil.contains(overdueRanges,"0-30天")){ |
| | | AgingVo agingVo1 = new AgingVo(1L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"31-60天")){ |
| | | AgingVo agingVo2 = new AgingVo(2L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"61-90天")){ |
| | | AgingVo agingVo3 = new AgingVo(3L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"91-180天")){ |
| | | AgingVo agingVo4 = new AgingVo(4L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"181-365天")){ |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo5); |
| | | } |
| | | if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null); |
| | | if (!CollUtil.contains(overdueRanges,"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo6); |
| | | } |
| | | } |
| | | companyAgingVo.sort(Comparator.comparing(AgingVo::getSort)); |
| | | agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList())); |
| | | List<AgingVo> finalCompanyAgingVo = companyAgingVo; |
| | | agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size()) |
| | |
| | | queryDTO.setCompanyId(dept.getDeptId()); |
| | | List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotalInvoice(queryDTO); |
| | | //补全数据 |
| | | if (ArrayUtil.isEmpty(companyAgingVo.toArray())){ |
| | | if (CollUtil.isEmpty(companyAgingVo)){ |
| | | 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); |
| | | AgingVo agingVo1 = new AgingVo(1L,"0-30天",new BigDecimal("0"),null); |
| | | AgingVo agingVo2 = new AgingVo(2L,"31-60天",new BigDecimal("0"),null); |
| | | AgingVo agingVo3 = new AgingVo(3L,"61-90天",new BigDecimal("0"),null); |
| | | AgingVo agingVo4 = new AgingVo(4L,"91-180天",new BigDecimal("0"),null); |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo1); |
| | | companyAgingVo.add(agingVo2); |
| | | companyAgingVo.add(agingVo3); |
| | |
| | | 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); |
| | | if (!CollUtil.contains(overdueRanges,"0-30天")){ |
| | | AgingVo agingVo1 = new AgingVo(1L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"31-60天")){ |
| | | AgingVo agingVo2 = new AgingVo(2L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"61-90天")){ |
| | | AgingVo agingVo3 = new AgingVo(3L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"91-180天")){ |
| | | AgingVo agingVo4 = new AgingVo(4L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"181-365天")){ |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo5); |
| | | } |
| | | if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null); |
| | | if (!CollUtil.contains(overdueRanges,"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo6); |
| | | } |
| | | } |
| | | companyAgingVo.sort(Comparator.comparing(AgingVo::getSort)); |
| | | agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList())); |
| | | List<AgingVo> finalCompanyAgingVo = companyAgingVo; |
| | | agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size()) |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | private List<AgingVo> completeData(List<AgingVo> 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); |
| | | } |
| | | } |
| | | return companyAgingVo; |
| | | } |
| | | |
| | | @Override |
| | | public R agingAnalysisByMarket(AnalysisCommonDTO commonDTO) { |
| | | R<List<SysDictItem>> r = remoteDictService.getDictByType("market_type"); |
| | | List<SysDictItem> items = r.getData(); |
| | | if (ArrayUtil.isEmpty(items.toArray())){ |
| | | if (CollUtil.isEmpty(items)){ |
| | | return R.failed("市场类型字典分类获取异常"); |
| | | } |
| | | List<AgingAnalysisVo> result = new ArrayList<>(); |
| | |
| | | queryDTO.setClassId(item.getItemValue()); |
| | | List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotal(queryDTO); |
| | | //补全数据 |
| | | if (ArrayUtil.isEmpty(companyAgingVo.toArray())){ |
| | | if (CollUtil.isEmpty(companyAgingVo)){ |
| | | 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); |
| | | AgingVo agingVo1 = new AgingVo(1L,"0-30天",new BigDecimal("0"),null); |
| | | AgingVo agingVo2 = new AgingVo(2L,"31-60天",new BigDecimal("0"),null); |
| | | AgingVo agingVo3 = new AgingVo(3L,"61-90天",new BigDecimal("0"),null); |
| | | AgingVo agingVo4 = new AgingVo(4L,"91-180天",new BigDecimal("0"),null); |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo1); |
| | | companyAgingVo.add(agingVo2); |
| | | companyAgingVo.add(agingVo3); |
| | |
| | | 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); |
| | | if (!CollUtil.contains(overdueRanges,"0-30天")){ |
| | | AgingVo agingVo1 = new AgingVo(1L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"31-60天")){ |
| | | AgingVo agingVo2 = new AgingVo(2L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"61-90天")){ |
| | | AgingVo agingVo3 = new AgingVo(3L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"91-180天")){ |
| | | AgingVo agingVo4 = new AgingVo(4L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"181-365天")){ |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo5); |
| | | } |
| | | if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null); |
| | | if (!CollUtil.contains(overdueRanges,"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo6); |
| | | } |
| | | } |
| | | companyAgingVo.sort(Comparator.comparing(AgingVo::getSort)); |
| | | agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList())); |
| | | List<AgingVo> finalCompanyAgingVo = companyAgingVo; |
| | | agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size()) |
| | |
| | | queryDTO.setCompanyId(dept.getDeptId()); |
| | | List<AgingVo> companyAgingVo = contractPaymentScheduleMapper.selectAgingTotalScale(queryDTO); |
| | | //补全数据 |
| | | if (ArrayUtil.isEmpty(companyAgingVo.toArray())){ |
| | | if (CollUtil.isEmpty(companyAgingVo)){ |
| | | 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); |
| | | AgingVo agingVo1 = new AgingVo(1L,"0-30天",new BigDecimal("0"),null); |
| | | AgingVo agingVo2 = new AgingVo(2L,"31-60天",new BigDecimal("0"),null); |
| | | AgingVo agingVo3 = new AgingVo(3L,"61-90天",new BigDecimal("0"),null); |
| | | AgingVo agingVo4 = new AgingVo(4L,"91-180天",new BigDecimal("0"),null); |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo1); |
| | | companyAgingVo.add(agingVo2); |
| | | companyAgingVo.add(agingVo3); |
| | |
| | | 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); |
| | | if (!CollUtil.contains(overdueRanges,"0-30天")){ |
| | | AgingVo agingVo1 = new AgingVo(1L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"31-60天")){ |
| | | AgingVo agingVo2 = new AgingVo(2L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"61-90天")){ |
| | | AgingVo agingVo3 = new AgingVo(3L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"91-180天")){ |
| | | AgingVo agingVo4 = new AgingVo(4L,"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); |
| | | if (!CollUtil.contains(overdueRanges,"181-365天")){ |
| | | AgingVo agingVo5 = new AgingVo(5L,"181-365天",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo5); |
| | | } |
| | | if (!ArrayUtil.contains(overdueRanges.toArray(),"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo("1年以上",new BigDecimal("0"),null); |
| | | if (!CollUtil.contains(overdueRanges,"1年以上")){ |
| | | AgingVo agingVo6 = new AgingVo(6L,"1年以上",new BigDecimal("0"),null); |
| | | companyAgingVo.add(agingVo6); |
| | | } |
| | | } |
| | | companyAgingVo.sort(Comparator.comparing(AgingVo::getSort)); |
| | | agingAnalysisVo.setAmount(companyAgingVo.stream().map(AgingVo::getTotalAmount).collect(Collectors.toList())); |
| | | List<AgingVo> finalCompanyAgingVo = companyAgingVo; |
| | | agingAnalysisVo.setPercent(IntStream.range(0, agingVoList.size()) |