BI汇总层,增加授信额度使用率功能

This commit is contained in:
yujh_java 2025-09-09 18:04:49 +08:00
parent f2b56f4653
commit 4cefda4987
2 changed files with 39 additions and 2 deletions

View File

@ -277,7 +277,8 @@ public class SaleCountDimensionImpl implements DataSummaryService {
receivableMap.put(xszz, map);
}
}
//先查询区域公司授信额度维护表
List<BO> sxedList = SDK.getBOAPI().query("BO_EU_DATALINKUP_QYGSED").orderBy("QYGS").desc().list();
// 合并数据并创建BO对象
for (RowMap receivable : receivableMaps) {
String xszz = receivable.getString("XSZZ");
@ -320,6 +321,8 @@ public class SaleCountDimensionImpl implements DataSummaryService {
bo.set("LJHK", receivable.getString("LJHK"));
bo.set("LJXS", receivable.getString("LJXS"));
bo.set("HKL", receivable.getString("HKL"));
//增加额度使用率情况
bo.set("EDSYL", SaleUtil.calculateResult(sxedList,bkgs,receivable.getString("QYGS"),yszk));
bos.add(bo);
}
@ -386,7 +389,7 @@ public class SaleCountDimensionImpl implements DataSummaryService {
} else {
ArrayList<BO> bos = new ArrayList<>();
// 循环外先获取下公装家装基材面材类别
List<BO> gzjzList = SDK.getBOAPI().query("BO_EU_DATALINKUP_CPJZGZJCMC").list();
List<BO> gzjzList = SDK.getBOAPI().query("BO_EU_DATALINKUP_CPJZGZJCMC").orderBy("CPLB_L2").desc().list();
for (RowMap map : maps) {
String gc = map.getString("KCZZ");
String yearmonth = map.getString("YEARMONTH");

View File

@ -29,4 +29,38 @@ public class SaleUtil {
}
return new String[]{defaultJzgz, defaultJcmc,defaultProdCat};
}
/**
* 根据BKGS和QYGS匹配sxedList中的元素并计算结果
* @param sxedList 待匹配的列表
* @param bkgs 传入的BKGS参数
* @param qygs 传入的QYGS参数
* @param yszk 传入的YSZK参数
* @return 匹配成功返回YSZK/SXED否则返回0
*/
public static double calculateResult(List<BO> sxedList, String bkgs, String qygs, double yszk) {
// 遍历列表中的每个元素
for (BO bo : sxedList) {
// 获取当前元素的BKGS和QYGS
String boBkgs = bo.getString("BKGS");
String boQygs = bo.getString("QYGS");
// 同时匹配BKGS和QYGS
if (bkgs.equals(boBkgs) && qygs.equals(boQygs)) {
// 匹配成功获取SXED值
String sxedStr = bo.getString("SXED");
try {
// 将SXED转换为数值并计算结果
double sxed = Double.parseDouble(sxedStr);
// 避免除以0的情况
return sxed != 0 ? yszk / sxed : 0;
} catch (NumberFormatException e) {
// 如果SXED无法转换为数值返回0
return 0;
}
}
}
// 没有匹配到任何元素返回0
return 0;
}
}