From e02812df9217d3e50a368a8234c07c60c64c0ff4 Mon Sep 17 00:00:00 2001
From: shiyunteng <shiyunteng@example.com>
Date: 星期三, 05 八月 2026 08:34:26 +0800
Subject: [PATCH] feat:新增石煤机 机械厂模版合同/客户数据主数据同步接口/合同履约进度新增质保结束操作/合同开票状态 修改为待开 可开 已开/出库逻辑完善

---
 platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java |  161 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 120 insertions(+), 41 deletions(-)

diff --git a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java b/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java
index 0956a6f..93c519e 100644
--- a/platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/StatisticServiceImpl.java
+++ b/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;
 							}
@@ -599,7 +638,7 @@
 
 						if (agingAnalysisVo.getAmount().get(i) == null || agingAnalysisVo.getAmount().get(i).compareTo(BigDecimal.ZERO) == 0) {
 							return null;
-						} else {
+						}else {
 							return new BigDecimal("100");
 						}
 					})
@@ -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;
 							}
@@ -655,7 +734,7 @@
 
 						if (agingAnalysisVo.getAmount().get(i) == null || agingAnalysisVo.getAmount().get(i).compareTo(BigDecimal.ZERO) == 0) {
 							return null;
-						} else {
+						}else {
 							return new BigDecimal("100");
 						}
 					})

--
Gitblit v1.9.1