parent
e20ae7c05e
commit
9ff4395e28
|
@ -385,19 +385,13 @@ public class FinanceReportFormPlugin extends AbstractReportFormPlugin implement
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addheji(DynamicObjectCollection rowData){
|
private void addheji(DynamicObjectCollection rowData){
|
||||||
BigDecimal shkd_jtnbjkamount=new BigDecimal(0.0);//⑩集团内部借款金额
|
BigDecimal shkd_jtnbjkamountcjdx=new BigDecimal(0.0);//⑩集团内部借款金额
|
||||||
BigDecimal shkd_jtnbjkrzcb=new BigDecimal(0.0);//⑩集团内部借款融资成本(%)
|
|
||||||
BigDecimal shkd_jtnbjkqx=new BigDecimal(0.0);//⑩集团内部借款期限
|
|
||||||
for (DynamicObject rowDatum : rowData) {
|
for (DynamicObject rowDatum : rowData) {
|
||||||
shkd_jtnbjkamount=shkd_jtnbjkamount.subtract(rowDatum.getBigDecimal("shkd_jtnbjkamount"));
|
shkd_jtnbjkamountcjdx=shkd_jtnbjkamountcjdx.subtract(rowDatum.getBigDecimal("shkd_jtnbjkamountcjdx"));
|
||||||
shkd_jtnbjkrzcb=shkd_jtnbjkrzcb.subtract(rowDatum.getBigDecimal("shkd_jtnbjkrzcb"));
|
|
||||||
shkd_jtnbjkqx=shkd_jtnbjkqx.subtract(rowDatum.getBigDecimal("shkd_jtnbjkqx"));
|
|
||||||
}
|
}
|
||||||
DynamicObject dynamicObject = new DynamicObject(rowData.getDynamicObjectType());
|
DynamicObject dynamicObject = new DynamicObject(rowData.getDynamicObjectType());
|
||||||
dynamicObject.set("shkd_org","合并抵消");
|
dynamicObject.set("shkd_org","合并抵消");
|
||||||
dynamicObject.set("shkd_jtnbjkamount",shkd_jtnbjkamount);
|
dynamicObject.set("shkd_jtnbjkamount",shkd_jtnbjkamountcjdx);
|
||||||
dynamicObject.set("shkd_jtnbjkrzcb",shkd_jtnbjkrzcb);
|
|
||||||
dynamicObject.set("shkd_jtnbjkqx",shkd_jtnbjkqx);
|
|
||||||
rowData.add(dynamicObject);
|
rowData.add(dynamicObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,13 +467,45 @@ public class FinanceReportFormPlugin extends AbstractReportFormPlugin implement
|
||||||
|
|
||||||
summaryValueMap.put(strings.get(1),total.compareTo(BigDecimal.ZERO) == 0?BigDecimal.ZERO.toString():rzcbtotal.divide(total, 2, RoundingMode.HALF_UP).toString());
|
summaryValueMap.put(strings.get(1),total.compareTo(BigDecimal.ZERO) == 0?BigDecimal.ZERO.toString():rzcbtotal.divide(total, 2, RoundingMode.HALF_UP).toString());
|
||||||
summaryValueMap.put(strings.get(2),total.compareTo(BigDecimal.ZERO) == 0?BigDecimal.ZERO.toString():qxtotal.divide(total, 2, RoundingMode.HALF_UP).toString());
|
summaryValueMap.put(strings.get(2),total.compareTo(BigDecimal.ZERO) == 0?BigDecimal.ZERO.toString():qxtotal.divide(total, 2, RoundingMode.HALF_UP).toString());
|
||||||
|
if ("shkd_jtnbjkamount".equals(strings.get(0))){//集团内部借款单独处理
|
||||||
|
//抵消金额合计
|
||||||
|
BigDecimal cjdxtotal = filteredList.stream()
|
||||||
|
.map(obj -> obj.getBigDecimal("shkd_jtnbjkamountcjdx")) // 提取每个对象的getNumber()值
|
||||||
|
.filter(number -> number != null) // 排除null值(如果有的话)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 使用BigDecimal.ZERO作为初始值,并执行累加
|
||||||
|
BigDecimal subtract = total.subtract(cjdxtotal);//抵消后的金额
|
||||||
|
BigDecimal dxrzcbtotal = filteredList.stream()
|
||||||
|
.map(obj -> {
|
||||||
|
BigDecimal number = obj.getBigDecimal("shkd_jtnbjkamount"); // 获取金额
|
||||||
|
BigDecimal number1 = obj.getBigDecimal("shkd_jtnbjkamountcjdx"); // 获取抵消金额
|
||||||
|
BigDecimal number2 = obj.getBigDecimal("shkd_jtnbjkrzcb"); // 获取融资成本
|
||||||
|
// 如果number或number1为null,视为0,避免NullPointerException
|
||||||
|
if (number == null) number = BigDecimal.ZERO;
|
||||||
|
if (number1 == null) number1 = BigDecimal.ZERO;
|
||||||
|
if (number2 == null) number2 = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
return (number.subtract(number1)).multiply(number2); // 计算乘积
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有乘积
|
||||||
|
|
||||||
|
BigDecimal dxqxtotal = filteredList.stream()
|
||||||
|
.map(obj -> {
|
||||||
|
BigDecimal number = obj.getBigDecimal("shkd_jtnbjkamount"); // 获取金额
|
||||||
|
BigDecimal number1 = obj.getBigDecimal("shkd_jtnbjkamountcjdx"); // 获取抵消金额
|
||||||
|
BigDecimal number2 = obj.getBigDecimal("shkd_jtnbjkqx"); // 获取融资成本
|
||||||
|
// 如果number或number1为null,视为0,避免NullPointerException
|
||||||
|
if (number == null) number = BigDecimal.ZERO;
|
||||||
|
if (number1 == null) number1 = BigDecimal.ZERO;
|
||||||
|
if (number2 == null) number2 = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
return (number.subtract(number1)).multiply(number2); // 计算乘积
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有乘积
|
||||||
|
summaryValueMap.put("shkd_jtnbjkamount",subtract);
|
||||||
|
summaryValueMap.put("shkd_jtnbjkrzcb",subtract.compareTo(BigDecimal.ZERO) == 0?BigDecimal.ZERO.toString():dxrzcbtotal.divide(subtract, 2, RoundingMode.HALF_UP).toString());
|
||||||
|
summaryValueMap.put("shkd_jtnbjkqx",subtract.compareTo(BigDecimal.ZERO) == 0?BigDecimal.ZERO.toString():dxqxtotal.divide(subtract, 2, RoundingMode.HALF_UP).toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// for (int i = 0; i < FinanceVarietyEnum.avg.size(); i++) {
|
|
||||||
// BigDecimal totalInAmt = (BigDecimal) summaryValueMap.get( FinanceVarietyEnum.avg.get(i));
|
|
||||||
// BigDecimal result = totalInAmt.divide(new BigDecimal(rowCount), 2, RoundingMode.HALF_UP);
|
|
||||||
// summaryValueMap.put(FinanceVarietyEnum.avg.get(i),result.toString());
|
|
||||||
// }
|
|
||||||
summaryValueMap.put("shkd_jtnbjkamount",new BigDecimal(0).toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -85,9 +85,35 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
DecimalFormat df = new DecimalFormat("#");
|
DecimalFormat df = new DecimalFormat("#");
|
||||||
String selmoney = df.format(shkd_selmoney);
|
String selmoney = df.format(shkd_selmoney);
|
||||||
HashMap<Long, List<Long>> map = new HashMap<>();//组织层级关系
|
HashMap<Long, List<Long>> map = new HashMap<>();//组织层级关系
|
||||||
|
|
||||||
|
HashMap<Long, List<Long>> cjdxmap = new HashMap<>();//合并抵消组织层级关系
|
||||||
|
HashMap<Long, List<Long>> xjdxmap = new HashMap<>();//合并抵消组织层级关系
|
||||||
//如果有组织则单独处理,没有则走getOrgrelate方法
|
//如果有组织则单独处理,没有则走getOrgrelate方法
|
||||||
if (shkd_seluserpower==null){
|
if (shkd_seluserpower==null){
|
||||||
|
//获取该合并层所有下级
|
||||||
getOrgrelate(map, selorgDy);
|
getOrgrelate(map, selorgDy);
|
||||||
|
|
||||||
|
//获取该组织的全部下级业务单元
|
||||||
|
Long id = selorgDy.getLong("id");//业务单元id
|
||||||
|
List<Long> orgIds = new ArrayList<>(1);
|
||||||
|
orgIds.add(id);
|
||||||
|
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, false);//不包括自己
|
||||||
|
|
||||||
|
//获取此级抵消的业务单元
|
||||||
|
OrgTreeParam orgTreeParam=new OrgTreeParam();
|
||||||
|
orgTreeParam.setId(selorgDy.getLong("id"));
|
||||||
|
orgTreeParam.setOrgViewType(OrgViewType.OrgUnit);//设置视图方案为业务单元的
|
||||||
|
orgTreeParam.setTreeBuildType(OrgTreeBuildType.FILL_HIDDEN_PARENT_DIRECT);
|
||||||
|
List<TreeNode> treeNodes=OrgUnitServiceHelper.getTreeChildren(orgTreeParam);
|
||||||
|
List<Long> idList = treeNodes.stream()
|
||||||
|
.map(treeNode -> Long.valueOf(treeNode.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
cjdxmap.put(id,idList);
|
||||||
|
|
||||||
|
//获取下级已经抵消的业务单元
|
||||||
|
List<Long> result = new ArrayList<>(allSubordinateOrgs);
|
||||||
|
result.removeAll(idList);
|
||||||
|
xjdxmap.put(id,result);
|
||||||
}else {
|
}else {
|
||||||
for (DynamicObject dynamicObject : shkd_seluserpower) {
|
for (DynamicObject dynamicObject : shkd_seluserpower) {
|
||||||
Long id = dynamicObject.getLong("id");//业务单元id
|
Long id = dynamicObject.getLong("id");//业务单元id
|
||||||
|
@ -96,6 +122,29 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
//获取该组织的全部下级业务单元
|
//获取该组织的全部下级业务单元
|
||||||
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, true);//包括自己
|
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, true);//包括自己
|
||||||
map.put(id,allSubordinateOrgs);
|
map.put(id,allSubordinateOrgs);
|
||||||
|
|
||||||
|
Map<Long, Long> orgParentMap = OrgUnitServiceHelper.getDirectSuperiorOrg(OrgViewType.OrgUnit, orgIds);//获取直接上级
|
||||||
|
//获取该组织上级的全部下级业务单元
|
||||||
|
Long Parentid = orgParentMap.get(id);//业务单元id
|
||||||
|
List<Long> ParentorgIds = new ArrayList<>(1);
|
||||||
|
ParentorgIds.add(Parentid);
|
||||||
|
List<Long> ParentallSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, false);//不包括自己
|
||||||
|
//获取此级抵消的业务单元
|
||||||
|
OrgTreeParam orgTreeParam=new OrgTreeParam();
|
||||||
|
// orgTreeParam.setId(selorgDy.getLong("id"));
|
||||||
|
orgTreeParam.setId(orgParentMap.get(id));
|
||||||
|
orgTreeParam.setOrgViewType(OrgViewType.OrgUnit);//设置视图方案为业务单元的
|
||||||
|
orgTreeParam.setTreeBuildType(OrgTreeBuildType.FILL_HIDDEN_PARENT_DIRECT);
|
||||||
|
List<TreeNode> treeNodes=OrgUnitServiceHelper.getTreeChildren(orgTreeParam);
|
||||||
|
List<Long> idList = treeNodes.stream()
|
||||||
|
.map(treeNode -> Long.valueOf(treeNode.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
cjdxmap.put(orgParentMap.get(id),idList);
|
||||||
|
|
||||||
|
//获取下级已经抵消的业务单元
|
||||||
|
List<Long> result = new ArrayList<>(ParentallSubordinateOrgs);
|
||||||
|
result.removeAll(idList);
|
||||||
|
xjdxmap.put(orgParentMap.get(id),result);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -105,15 +154,19 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
int size = map.size();
|
int size = map.size();
|
||||||
int index = 0;
|
int index = 0;
|
||||||
for (Map.Entry<Long, List<Long>> entry : map.entrySet()) {
|
for (Map.Entry<Long, List<Long>> entry : map.entrySet()) {
|
||||||
|
|
||||||
Long key = entry.getKey(); // 获取key
|
Long key = entry.getKey(); // 获取key
|
||||||
|
Map<Long, Long> orgParentMap = OrgUnitServiceHelper.getDirectSuperiorOrg(OrgViewType.OrgUnit, Collections.singletonList(key));//获取直接上级
|
||||||
|
List<Long> cjdx=cjdxmap.get(orgParentMap.get(key));
|
||||||
|
List<Long> xjdx=xjdxmap.get(orgParentMap.get(key));
|
||||||
DynamicObject bos_org = BusinessDataServiceHelper.loadSingle(key,"bos_org");//直接下级业务单元
|
DynamicObject bos_org = BusinessDataServiceHelper.loadSingle(key,"bos_org");//直接下级业务单元
|
||||||
List<Long> value = entry.getValue(); // 获取value
|
List<Long> value = entry.getValue(); // 获取value
|
||||||
getSQlBuilder(dateList,value,bos_org.getString("number"),sqlBuilder);
|
getSQlBuilder(dateList,value,bos_org.getString("number"),sqlBuilder,cjdx,xjdx);
|
||||||
|
|
||||||
index++;
|
index++;
|
||||||
// 判断是否是最后一项
|
// 判断是否是最后一项
|
||||||
if (index == size) {
|
if (index == size) {
|
||||||
|
// break;
|
||||||
} else {
|
} else {
|
||||||
sqlBuilder.append("\n union all \n");
|
sqlBuilder.append("\n union all \n");
|
||||||
}
|
}
|
||||||
|
@ -150,10 +203,11 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
"shkd_yfpjamount/ "+selmoney+" as shkd_yfpjamount","shkd_yfpjrzcb","shkd_yfpjqx",
|
"shkd_yfpjamount/ "+selmoney+" as shkd_yfpjamount","shkd_yfpjrzcb","shkd_yfpjqx",
|
||||||
"shkd_fjrqyjkamount/ "+selmoney+" as shkd_fjrqyjkamount","shkd_fjrqyjkrzcb","shkd_fjrqyjkqx",
|
"shkd_fjrqyjkamount/ "+selmoney+" as shkd_fjrqyjkamount","shkd_fjrqyjkrzcb","shkd_fjrqyjkqx",
|
||||||
"shkd_qtzwrzamount/ "+selmoney+" as shkd_qtzwrzamount","shkd_qtzwrzrzcb","shkd_qtzwrzqx",
|
"shkd_qtzwrzamount/ "+selmoney+" as shkd_qtzwrzamount","shkd_qtzwrzrzcb","shkd_qtzwrzqx",
|
||||||
"shkd_jtnbjkamount/ "+selmoney+" as shkd_jtnbjkamount","shkd_jtnbjkrzcb","shkd_jtnbjkqx",
|
"(shkd_jtnbjkamount-shkd_jtnbjkamountxjdx)/ "+selmoney+" as shkd_jtnbjkamount","shkd_jtnbjkrzcb","shkd_jtnbjkqx",
|
||||||
"shkd_yxzamount/ "+selmoney+" as shkd_yxzamount","shkd_yxzrzcb","shkd_yxzqx",
|
"shkd_yxzamount/ "+selmoney+" as shkd_yxzamount","shkd_yxzrzcb","shkd_yxzqx",
|
||||||
"shkd_yxxtamount/ "+selmoney+" as shkd_yxxtamount","shkd_yxxtrzcb","shkd_yxxtqx",
|
"shkd_yxxtamount/ "+selmoney+" as shkd_yxxtamount","shkd_yxxtrzcb","shkd_yxxtqx",
|
||||||
"shkd_qtqyrzamount/ "+selmoney+" as shkd_qtqyrzamount","shkd_qtqyrzrzcb","shkd_qtqyrzqx",
|
"shkd_qtqyrzamount/ "+selmoney+" as shkd_qtqyrzamount","shkd_qtqyrzrzcb","shkd_qtqyrzqx",
|
||||||
|
"shkd_jtnbjkamountcjdx","shkd_jtnbjkamountxjdx",
|
||||||
//1至9合计
|
//1至9合计
|
||||||
"(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)/"+selmoney+" as shkd_oneotnineje",
|
"(shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)/"+selmoney+" as shkd_oneotnineje",
|
||||||
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)=0 then 0 else " +
|
"case when (shkd_zqrzamount+shkd_dqjkamount+shkd_zcqldamount+shkd_xmdkamount+shkd_rzzlamount+shkd_bxzjrzamount+shkd_yfpjamount+shkd_fjrqyjkamount+shkd_qtzwrzamount)=0 then 0 else " +
|
||||||
|
@ -188,9 +242,23 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
/*
|
/*
|
||||||
* 拼接sql方法
|
* 拼接sql方法
|
||||||
* */
|
* */
|
||||||
public StringBuilder getSQlBuilder(List<String> dateList,List<Long> orgIds,String orgnumber,StringBuilder sqlBuilder){
|
public StringBuilder getSQlBuilder(List<String> dateList,List<Long> orgIds,String orgnumber,StringBuilder sqlBuilder,List<Long> cjdx,List<Long> xjdx){
|
||||||
String result = orgIds.toString();
|
String result = orgIds.toString();
|
||||||
result = result.substring(1, result.length() - 1);
|
result = result.substring(1, result.length() - 1);
|
||||||
|
|
||||||
|
String cjdxresult = cjdx.toString();
|
||||||
|
if (cjdx.size()==0){
|
||||||
|
cjdxresult="123";//设置一个不存在的id
|
||||||
|
}else {
|
||||||
|
cjdxresult = cjdxresult.substring(1, cjdxresult.length() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
String xjdxresult = xjdx.toString();
|
||||||
|
if (xjdx.size()==0){
|
||||||
|
xjdxresult="123";
|
||||||
|
}else {
|
||||||
|
xjdxresult = xjdxresult.substring(1, xjdxresult.length() - 1);
|
||||||
|
}
|
||||||
sqlBuilder.append("SELECT '"+orgnumber+"' as shkd_orgnumber, \n");
|
sqlBuilder.append("SELECT '"+orgnumber+"' as shkd_orgnumber, \n");
|
||||||
String zqrz = getrzpzId(FinanceVarietyEnum.zqrz, "cfm_financingvarieties");//获取债券融资的融资品种
|
String zqrz = getrzpzId(FinanceVarietyEnum.zqrz, "cfm_financingvarieties");//获取债券融资的融资品种
|
||||||
String dqjk = getrzpzId(FinanceVarietyEnum.dqjk, "cfm_financingvarieties");//获取短期借款的融资品种
|
String dqjk = getrzpzId(FinanceVarietyEnum.dqjk, "cfm_financingvarieties");//获取短期借款的融资品种
|
||||||
|
@ -244,6 +312,9 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
sqlBuilder.append("SUM ( CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz in ("+jtnbjk+") THEN je ELSE 0 END ) AS shkd_jtnbjkamount,\n" +
|
sqlBuilder.append("SUM ( CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz in ("+jtnbjk+") THEN je ELSE 0 END ) AS shkd_jtnbjkamount,\n" +
|
||||||
"COALESCE(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je*zxll ELSE 0 END)/NULLIF(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je ELSE 0 END), 0),0) AS shkd_jtnbjkrzcb,\n" +
|
"COALESCE(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je*zxll ELSE 0 END)/NULLIF(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je ELSE 0 END), 0),0) AS shkd_jtnbjkrzcb,\n" +
|
||||||
"COALESCE(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je*(y + m/12.0 + d/365.0) ELSE 0 END)/NULLIF(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je ELSE 0 END), 0),0) AS shkd_jtnbjkqx, \n");//集团内部借款
|
"COALESCE(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je*(y + m/12.0 + d/365.0) ELSE 0 END)/NULLIF(SUM(CASE WHEN zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz IN ("+jtnbjk+") THEN je ELSE 0 END), 0),0) AS shkd_jtnbjkqx, \n");//集团内部借款
|
||||||
|
sqlBuilder.append("SUM ( CASE WHEN dx='此级抵消' AND zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz in ("+jtnbjk+") THEN je ELSE 0 END ) AS shkd_jtnbjkamountcjdx,\n");//集团内部借款(此级抵消)
|
||||||
|
sqlBuilder.append("SUM ( CASE WHEN dx='下级抵消' AND zqrlx='innerunit' AND djlx='企业借款合同' AND rzpz in ("+jtnbjk+") THEN je ELSE 0 END ) AS shkd_jtnbjkamountxjdx,\n");//集团内部借款(下级抵消)
|
||||||
|
|
||||||
|
|
||||||
sqlBuilder.append("SUM ( CASE WHEN djlx='债券发行' AND rzpz in ("+yxd+") THEN je ELSE 0 END ) AS shkd_yxzamount,\n" +
|
sqlBuilder.append("SUM ( CASE WHEN djlx='债券发行' AND rzpz in ("+yxd+") THEN je ELSE 0 END ) AS shkd_yxzamount,\n" +
|
||||||
"COALESCE(SUM(CASE WHEN djlx='债券发行' AND rzpz IN ("+yxd+") THEN je*zxll ELSE 0 END)/NULLIF(SUM(CASE WHEN djlx='债券发行' AND rzpz IN ("+yxd+") THEN je ELSE 0 END), 0),0) AS shkd_yxzrzcb,\n" +
|
"COALESCE(SUM(CASE WHEN djlx='债券发行' AND rzpz IN ("+yxd+") THEN je*zxll ELSE 0 END)/NULLIF(SUM(CASE WHEN djlx='债券发行' AND rzpz IN ("+yxd+") THEN je ELSE 0 END), 0),0) AS shkd_yxzrzcb,\n" +
|
||||||
|
@ -267,7 +338,8 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
"TIMESTAMPDIFF(MONTH, t1.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
"TIMESTAMPDIFF(MONTH, t1.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
||||||
"DATEDIFF(DAY,t1.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
|
"DATEDIFF(DAY,t1.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
|
||||||
"'债券发行' AS djlx,\n" +
|
"'债券发行' AS djlx,\n" +
|
||||||
"'' AS zqrlx\n" +
|
"'' AS zqrlx,\n" +
|
||||||
|
"'' AS dx\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loanbill t1 -- 债券发行\n" +
|
" t_cfm_loanbill t1 -- 债券发行\n" +
|
||||||
" INNER JOIN t_cfm_loanbill_e e ON e.fid = t1.fid -- 内连接组织拆分表\n" +
|
" INNER JOIN t_cfm_loanbill_e e ON e.fid = t1.fid -- 内连接组织拆分表\n" +
|
||||||
|
@ -289,7 +361,8 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
||||||
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
|
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
|
||||||
" '银行借款合同' AS djlx,\n" +
|
" '银行借款合同' AS djlx,\n" +
|
||||||
" '' AS zqrlx\n" +
|
" '' AS zqrlx,\n" +
|
||||||
|
" '' AS dx\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loancontractbill t2 --银行借款合同\n" +
|
" t_cfm_loancontractbill t2 --银行借款合同\n" +
|
||||||
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t2.fid -- 内连接组织拆分表\n" +
|
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t2.fid -- 内连接组织拆分表\n" +
|
||||||
|
@ -320,7 +393,8 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
" TIMESTAMPDIFF(MONTH, t4.fstartdate, planmx.fpaydate) % 12 AS m,\n" +
|
" TIMESTAMPDIFF(MONTH, t4.fstartdate, planmx.fpaydate) % 12 AS m,\n" +
|
||||||
" DATEDIFF(DAY,t4.fstartdate, planmx.fpaydate) % 30 AS d,\n" +
|
" DATEDIFF(DAY,t4.fstartdate, planmx.fpaydate) % 30 AS d,\n" +
|
||||||
" '融资租赁合同' AS djlx,\n" +
|
" '融资租赁合同' AS djlx,\n" +
|
||||||
" '' AS zqrlx\n" +
|
" '' AS zqrlx,\n" +
|
||||||
|
" '' AS dx\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loancontractbill t4 -- 融资租赁合同\n" +
|
" t_cfm_loancontractbill t4 -- 融资租赁合同\n" +
|
||||||
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t4.fid -- 内连接组织拆分表\n" +
|
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t4.fid -- 内连接组织拆分表\n" +
|
||||||
|
@ -339,7 +413,8 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
" TIMESTAMPDIFF(MONTH, t5.fissuedate, t5.fdraftbillexpiredate) % 12 AS m,\n" +
|
" TIMESTAMPDIFF(MONTH, t5.fissuedate, t5.fdraftbillexpiredate) % 12 AS m,\n" +
|
||||||
" DATEDIFF(DAY,t5.fissuedate, t5.fdraftbillexpiredate) % 30 AS d,\n" +
|
" DATEDIFF(DAY,t5.fissuedate, t5.fdraftbillexpiredate) % 30 AS d,\n" +
|
||||||
" '开票登记' AS djlx,\n" +
|
" '开票登记' AS djlx,\n" +
|
||||||
" '' AS zqrlx\n" +
|
" '' AS zqrlx,\n" +
|
||||||
|
" '' AS dx\n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cdm_draftbill t5 -- 开票登记\n" +
|
" t_cdm_draftbill t5 -- 开票登记\n" +
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
|
@ -358,7 +433,11 @@ public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
||||||
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
|
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d,\n" +
|
||||||
" '企业借款合同' AS djlx,\n" +
|
" '企业借款合同' AS djlx,\n" +
|
||||||
" e.fcreditortype AS zqrlx\n" +
|
" e.fcreditortype AS zqrlx,\n" +
|
||||||
|
" (CASE\n" +
|
||||||
|
" WHEN e.fcreditorgid IN ("+cjdxresult+") THEN '此级抵消'\n" +
|
||||||
|
" WHEN e.fcreditorgid IN ("+xjdxresult+") THEN '下级抵消'\n" +
|
||||||
|
" ELSE '不抵消' END) AS dx \n" +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loancontractbill t2 --企业借款合同\n" +
|
" t_cfm_loancontractbill t2 --企业借款合同\n" +
|
||||||
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t2.fid -- 内连接组织拆分表\n" +
|
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t2.fid -- 内连接组织拆分表\n" +
|
||||||
|
|
|
@ -9,12 +9,14 @@ import kd.bos.entity.report.*;
|
||||||
import kd.bos.form.ShowType;
|
import kd.bos.form.ShowType;
|
||||||
import kd.bos.form.events.HyperLinkClickEvent;
|
import kd.bos.form.events.HyperLinkClickEvent;
|
||||||
import kd.bos.form.events.HyperLinkClickListener;
|
import kd.bos.form.events.HyperLinkClickListener;
|
||||||
|
import kd.bos.mvc.report.ReportListModel;
|
||||||
import kd.bos.orm.query.QCP;
|
import kd.bos.orm.query.QCP;
|
||||||
import kd.bos.orm.query.QFilter;
|
import kd.bos.orm.query.QFilter;
|
||||||
import kd.bos.permission.api.HasPermOrgResult;
|
import kd.bos.permission.api.HasPermOrgResult;
|
||||||
import kd.bos.report.ReportList;
|
import kd.bos.report.ReportList;
|
||||||
import kd.bos.report.ReportShowParameter;
|
import kd.bos.report.ReportShowParameter;
|
||||||
import kd.bos.report.events.CreateColumnEvent;
|
import kd.bos.report.events.CreateColumnEvent;
|
||||||
|
import kd.bos.report.events.SummaryEvent;
|
||||||
import kd.bos.report.filter.ReportFilter;
|
import kd.bos.report.filter.ReportFilter;
|
||||||
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
||||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
@ -25,7 +27,9 @@ import kd.bos.servicehelper.permission.PermissionServiceHelper;
|
||||||
import shkd.sys.sys.plugin.report.domain.FinanceVarietyEnum;
|
import shkd.sys.sys.plugin.report.domain.FinanceVarietyEnum;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class FinanceReportfordateFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener {
|
public class FinanceReportfordateFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener {
|
||||||
@Override
|
@Override
|
||||||
|
@ -126,11 +130,13 @@ public class FinanceReportfordateFormPlugin extends AbstractReportFormPlugin im
|
||||||
@Override
|
@Override
|
||||||
public void afterCreateColumn(CreateColumnEvent event) {
|
public void afterCreateColumn(CreateColumnEvent event) {
|
||||||
super.afterCreateColumn(event);
|
super.afterCreateColumn(event);
|
||||||
|
setsummaryValueMap(event);
|
||||||
ReportQueryParam queryParam = event.getQueryParam();
|
ReportQueryParam queryParam = event.getQueryParam();
|
||||||
FilterInfo filter = queryParam.getFilter();
|
FilterInfo filter = queryParam.getFilter();
|
||||||
String shkd_money = filter.getString("shkd_selmoney");
|
String shkd_money = filter.getString("shkd_selmoney");
|
||||||
List<AbstractReportColumn> columns = event.getColumns();
|
List<AbstractReportColumn> columns = event.getColumns();
|
||||||
getColumns( columns,shkd_money);
|
getColumns( columns,shkd_money);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List getColumns(List columns,String shkd_money) {
|
public List getColumns(List columns,String shkd_money) {
|
||||||
|
@ -255,7 +261,7 @@ public class FinanceReportfordateFormPlugin extends AbstractReportFormPlugin im
|
||||||
QFilter filter = new QFilter("shkd_org", QCP.equals, id);
|
QFilter filter = new QFilter("shkd_org", QCP.equals, id);
|
||||||
DynamicObject paixu = BusinessDataServiceHelper.loadSingle("shkd_orgorderby", filter.toArray());
|
DynamicObject paixu = BusinessDataServiceHelper.loadSingle("shkd_orgorderby", filter.toArray());
|
||||||
if (paixu==null){
|
if (paixu==null){
|
||||||
|
addheji(rowData);
|
||||||
}else {
|
}else {
|
||||||
DynamicObjectCollection shkd_entryentity = paixu.getDynamicObjectCollection("shkd_entryentity");
|
DynamicObjectCollection shkd_entryentity = paixu.getDynamicObjectCollection("shkd_entryentity");
|
||||||
// 创建一个HashMap来存储转换后的结果
|
// 创建一个HashMap来存储转换后的结果
|
||||||
|
@ -275,14 +281,31 @@ public class FinanceReportfordateFormPlugin extends AbstractReportFormPlugin im
|
||||||
public int compare(DynamicObject dynamicObject1, DynamicObject dynamicObject2) {
|
public int compare(DynamicObject dynamicObject1, DynamicObject dynamicObject2) {
|
||||||
return (map.get(dynamicObject1.getString("shkd_orgnumber"))==null?100:map.get(dynamicObject1.getString("shkd_orgnumber")))-(map.get(dynamicObject2.getString("shkd_orgnumber"))==null?100:map.get(dynamicObject2.getString("shkd_orgnumber")));
|
return (map.get(dynamicObject1.getString("shkd_orgnumber"))==null?100:map.get(dynamicObject1.getString("shkd_orgnumber")))-(map.get(dynamicObject2.getString("shkd_orgnumber"))==null?100:map.get(dynamicObject2.getString("shkd_orgnumber")));
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
addheji(rowData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addheji(DynamicObjectCollection rowData){
|
||||||
|
BigDecimal shkd_jtnbjkqcyecjdx=new BigDecimal(0.0);//⑩集团内部期初余额
|
||||||
|
BigDecimal shkd_jtnbjkxzrzecjdx=new BigDecimal(0.0);//⑩集团内部借款新增融资额
|
||||||
|
BigDecimal shkd_jtnbjkxzhkecjdx=new BigDecimal(0.0);//⑩集团内部借款新增还款额
|
||||||
|
BigDecimal shkd_jtnbjkqmyecjdx=new BigDecimal(0.0);//⑩集团内部期末余额
|
||||||
|
for (DynamicObject rowDatum : rowData) {
|
||||||
|
shkd_jtnbjkqcyecjdx=shkd_jtnbjkqcyecjdx.subtract(rowDatum.getBigDecimal("shkd_jtnbjkqcyecjdx"));
|
||||||
|
shkd_jtnbjkxzrzecjdx=shkd_jtnbjkxzrzecjdx.subtract(rowDatum.getBigDecimal("shkd_jtnbjkxzrzecjdx"));
|
||||||
|
shkd_jtnbjkxzhkecjdx=shkd_jtnbjkxzhkecjdx.subtract(rowDatum.getBigDecimal("shkd_jtnbjkxzhkecjdx"));
|
||||||
|
shkd_jtnbjkqmyecjdx=shkd_jtnbjkqmyecjdx.subtract(rowDatum.getBigDecimal("shkd_jtnbjkqmyecjdx"));
|
||||||
|
}
|
||||||
|
DynamicObject dynamicObject = new DynamicObject(rowData.getDynamicObjectType());
|
||||||
|
dynamicObject.set("shkd_org","合并抵消");
|
||||||
|
dynamicObject.set("shkd_jtnbjkqcye",shkd_jtnbjkqcyecjdx);
|
||||||
|
dynamicObject.set("shkd_jtnbjkxzrze",shkd_jtnbjkxzrzecjdx);
|
||||||
|
dynamicObject.set("shkd_jtnbjkxzhke",shkd_jtnbjkxzhkecjdx);
|
||||||
|
dynamicObject.set("shkd_jtnbjkqmye",shkd_jtnbjkqmyecjdx);
|
||||||
|
rowData.add(dynamicObject);
|
||||||
|
}
|
||||||
|
|
||||||
private List<Long> getSuperOrg(List<Long> org){
|
private List<Long> getSuperOrg(List<Long> org){
|
||||||
//组织和其对应直接上级
|
//组织和其对应直接上级
|
||||||
|
@ -304,4 +327,70 @@ public class FinanceReportfordateFormPlugin extends AbstractReportFormPlugin im
|
||||||
List<Long> longs = new ArrayList<>(result);
|
List<Long> longs = new ArrayList<>(result);
|
||||||
return longs;
|
return longs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setsummaryValueMap(CreateColumnEvent event){
|
||||||
|
ReportList list = this.getView().getControl("reportlistap");
|
||||||
|
ReportListModel reportModel = (ReportListModel) list.getReportModel();
|
||||||
|
Map summaryValueMap = reportModel.getSummaryValueMap();
|
||||||
|
int rowCount = reportModel.getReportTaskResult().getRowCount();
|
||||||
|
//获取数据集合
|
||||||
|
DynamicObjectCollection rowData = reportModel.getRowData(0, rowCount);
|
||||||
|
List<DynamicObject> filteredList = rowData.stream()
|
||||||
|
.filter(obj -> !obj.getString("shkd_org").equals("合并抵消"))
|
||||||
|
.collect(Collectors.toList());//去除合并抵消
|
||||||
|
|
||||||
|
BigDecimal dxqcyetotal = filteredList.stream()
|
||||||
|
.map(obj -> {
|
||||||
|
BigDecimal number = obj.getBigDecimal("shkd_jtnbjkqcye"); // 获取金额
|
||||||
|
BigDecimal number1 = obj.getBigDecimal("shkd_jtnbjkqcyecjdx"); // 获取抵消金额
|
||||||
|
// 如果number或number1为null,视为0,避免NullPointerException
|
||||||
|
if (number == null) number = BigDecimal.ZERO;
|
||||||
|
if (number1 == null) number1 = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
return (number.subtract(number1));
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有
|
||||||
|
|
||||||
|
BigDecimal dxxzrzetotal = filteredList.stream()
|
||||||
|
.map(obj -> {
|
||||||
|
BigDecimal number = obj.getBigDecimal("shkd_jtnbjkxzrze"); // 获取金额
|
||||||
|
BigDecimal number1 = obj.getBigDecimal("shkd_jtnbjkxzrzecjdx"); // 获取抵消金额
|
||||||
|
// 如果number或number1为null,视为0,避免NullPointerException
|
||||||
|
if (number == null) number = BigDecimal.ZERO;
|
||||||
|
if (number1 == null) number1 = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
return (number.subtract(number1));
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有乘积
|
||||||
|
|
||||||
|
BigDecimal dxxzhketotal = filteredList.stream()
|
||||||
|
.map(obj -> {
|
||||||
|
BigDecimal number = obj.getBigDecimal("shkd_jtnbjkxzhke"); // 获取金额
|
||||||
|
BigDecimal number1 = obj.getBigDecimal("shkd_jtnbjkxzhkecjdx"); // 获取抵消金额
|
||||||
|
// 如果number或number1为null,视为0,避免NullPointerException
|
||||||
|
if (number == null) number = BigDecimal.ZERO;
|
||||||
|
if (number1 == null) number1 = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
return (number.subtract(number1));
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有乘积
|
||||||
|
|
||||||
|
BigDecimal dxqmyetotal = filteredList.stream()
|
||||||
|
.map(obj -> {
|
||||||
|
BigDecimal number = obj.getBigDecimal("shkd_jtnbjkqmye"); // 获取金额
|
||||||
|
BigDecimal number1 = obj.getBigDecimal("shkd_jtnbjkqmyecjdx"); // 获取抵消金额
|
||||||
|
// 如果number或number1为null,视为0,避免NullPointerException
|
||||||
|
if (number == null) number = BigDecimal.ZERO;
|
||||||
|
if (number1 == null) number1 = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
return (number.subtract(number1));
|
||||||
|
})
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加所有乘积
|
||||||
|
|
||||||
|
summaryValueMap.put("shkd_jtnbjkqcye",dxqcyetotal.toString());
|
||||||
|
summaryValueMap.put("shkd_jtnbjkxzrze",dxxzrzetotal.toString());
|
||||||
|
summaryValueMap.put("shkd_jtnbjkxzhke",dxxzhketotal.toString());
|
||||||
|
summaryValueMap.put("shkd_jtnbjkqmye",dxqmyetotal.toString());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,10 +85,37 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
String selmoney = df.format(shkd_selmoney);
|
String selmoney = df.format(shkd_selmoney);
|
||||||
|
|
||||||
HashMap<Long, List<Long>> map = new HashMap<>();//组织层级关系
|
HashMap<Long, List<Long>> map = new HashMap<>();//组织层级关系
|
||||||
|
|
||||||
|
HashMap<Long, List<Long>> cjdxmap = new HashMap<>();//合并抵消组织层级关系
|
||||||
|
HashMap<Long, List<Long>> xjdxmap = new HashMap<>();//合并抵消组织层级关系
|
||||||
|
|
||||||
List<Long> ids = new ArrayList<>();
|
List<Long> ids = new ArrayList<>();
|
||||||
//如果有组织则单独处理,没有则走getOrgrelate方法
|
//如果有组织则单独处理,没有则走getOrgrelate方法
|
||||||
if (shkd_seluserpower==null){
|
if (shkd_seluserpower==null){
|
||||||
|
//获取该合并层所有下级
|
||||||
getOrgrelate(map, selorgDy);
|
getOrgrelate(map, selorgDy);
|
||||||
|
|
||||||
|
//获取该组织的全部下级业务单元
|
||||||
|
Long id = selorgDy.getLong("id");//业务单元id
|
||||||
|
List<Long> orgIds = new ArrayList<>(1);
|
||||||
|
orgIds.add(id);
|
||||||
|
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, false);//不包括自己
|
||||||
|
|
||||||
|
//获取此级抵消的业务单元
|
||||||
|
OrgTreeParam orgTreeParam=new OrgTreeParam();
|
||||||
|
orgTreeParam.setId(selorgDy.getLong("id"));
|
||||||
|
orgTreeParam.setOrgViewType(OrgViewType.OrgUnit);//设置视图方案为业务单元的
|
||||||
|
orgTreeParam.setTreeBuildType(OrgTreeBuildType.FILL_HIDDEN_PARENT_DIRECT);
|
||||||
|
List<TreeNode> treeNodes=OrgUnitServiceHelper.getTreeChildren(orgTreeParam);
|
||||||
|
List<Long> idList = treeNodes.stream()
|
||||||
|
.map(treeNode -> Long.valueOf(treeNode.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
cjdxmap.put(id,idList);
|
||||||
|
|
||||||
|
//获取下级已经抵消的业务单元
|
||||||
|
List<Long> result = new ArrayList<>(allSubordinateOrgs);
|
||||||
|
result.removeAll(idList);
|
||||||
|
xjdxmap.put(id,result);
|
||||||
}else {
|
}else {
|
||||||
for (DynamicObject dynamicObject : shkd_seluserpower) {
|
for (DynamicObject dynamicObject : shkd_seluserpower) {
|
||||||
Long id = dynamicObject.getLong("id");//业务单元id
|
Long id = dynamicObject.getLong("id");//业务单元id
|
||||||
|
@ -97,6 +124,29 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
//获取该组织的全部下级业务单元
|
//获取该组织的全部下级业务单元
|
||||||
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, true);//包括自己
|
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, true);//包括自己
|
||||||
map.put(id,allSubordinateOrgs);
|
map.put(id,allSubordinateOrgs);
|
||||||
|
|
||||||
|
Map<Long, Long> orgParentMap = OrgUnitServiceHelper.getDirectSuperiorOrg(OrgViewType.OrgUnit, orgIds);//获取直接上级
|
||||||
|
//获取该组织上级的全部下级业务单元
|
||||||
|
Long Parentid = orgParentMap.get(id);//业务单元id
|
||||||
|
List<Long> ParentorgIds = new ArrayList<>(1);
|
||||||
|
ParentorgIds.add(Parentid);
|
||||||
|
List<Long> ParentallSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, false);//不包括自己
|
||||||
|
//获取此级抵消的业务单元
|
||||||
|
OrgTreeParam orgTreeParam=new OrgTreeParam();
|
||||||
|
// orgTreeParam.setId(selorgDy.getLong("id"));
|
||||||
|
orgTreeParam.setId(orgParentMap.get(id));
|
||||||
|
orgTreeParam.setOrgViewType(OrgViewType.OrgUnit);//设置视图方案为业务单元的
|
||||||
|
orgTreeParam.setTreeBuildType(OrgTreeBuildType.FILL_HIDDEN_PARENT_DIRECT);
|
||||||
|
List<TreeNode> treeNodes=OrgUnitServiceHelper.getTreeChildren(orgTreeParam);
|
||||||
|
List<Long> idList = treeNodes.stream()
|
||||||
|
.map(treeNode -> Long.valueOf(treeNode.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
cjdxmap.put(orgParentMap.get(id),idList);
|
||||||
|
|
||||||
|
//获取下级已经抵消的业务单元
|
||||||
|
List<Long> result = new ArrayList<>(ParentallSubordinateOrgs);
|
||||||
|
result.removeAll(idList);
|
||||||
|
xjdxmap.put(orgParentMap.get(id),result);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -106,7 +156,7 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
|
|
||||||
//根据组织关系配置sql
|
//根据组织关系配置sql
|
||||||
StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
|
StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
|
||||||
getSQlBuilder(shkd_selstartdate,shkd_selenddate,map,sqlBuilder);
|
getSQlBuilder(shkd_selstartdate,shkd_selenddate,map,sqlBuilder,cjdxmap,xjdxmap);
|
||||||
|
|
||||||
logger.info("sqlBuilder信息:{}", sqlBuilder);
|
logger.info("sqlBuilder信息:{}", sqlBuilder);
|
||||||
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
|
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
|
||||||
|
@ -130,10 +180,12 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
"shkd_yfpjqcye/ "+selmoney+" as shkd_yfpjqcye", "shkd_yfpjxzrze/ "+selmoney+" as shkd_yfpjxzrze", "shkd_yfpjxzhke/ "+selmoney+" as shkd_yfpjxzhke", "shkd_yfpjqmye/ "+selmoney+" as shkd_yfpjqmye",//⑦应付票据
|
"shkd_yfpjqcye/ "+selmoney+" as shkd_yfpjqcye", "shkd_yfpjxzrze/ "+selmoney+" as shkd_yfpjxzrze", "shkd_yfpjxzhke/ "+selmoney+" as shkd_yfpjxzhke", "shkd_yfpjqmye/ "+selmoney+" as shkd_yfpjqmye",//⑦应付票据
|
||||||
"shkd_fjrqyjkqcye/ "+selmoney+" as shkd_fjrqyjkqcye", "shkd_fjrqyjkxzrze/ "+selmoney+" as shkd_fjrqyjkxzrze", "shkd_fjrqyjkxzhke/ "+selmoney+" as shkd_fjrqyjkxzhke", "shkd_fjrqyjkqmye/ "+selmoney+" as shkd_fjrqyjkqmye",//⑧非金融企业借款
|
"shkd_fjrqyjkqcye/ "+selmoney+" as shkd_fjrqyjkqcye", "shkd_fjrqyjkxzrze/ "+selmoney+" as shkd_fjrqyjkxzrze", "shkd_fjrqyjkxzhke/ "+selmoney+" as shkd_fjrqyjkxzhke", "shkd_fjrqyjkqmye/ "+selmoney+" as shkd_fjrqyjkqmye",//⑧非金融企业借款
|
||||||
"shkd_qtzwrzqcye/ "+selmoney+" as shkd_qtzwrzqcye", "shkd_qtzwrzxzrze/ "+selmoney+" as shkd_qtzwrzxzrze", "shkd_qtzwrzxzhke/ "+selmoney+" as shkd_qtzwrzxzhke", "shkd_qtzwrzqmye/ "+selmoney+" as shkd_qtzwrzqmye",//⑨其他债务融资
|
"shkd_qtzwrzqcye/ "+selmoney+" as shkd_qtzwrzqcye", "shkd_qtzwrzxzrze/ "+selmoney+" as shkd_qtzwrzxzrze", "shkd_qtzwrzxzhke/ "+selmoney+" as shkd_qtzwrzxzhke", "shkd_qtzwrzqmye/ "+selmoney+" as shkd_qtzwrzqmye",//⑨其他债务融资
|
||||||
"shkd_jtnbjkqcye/ "+selmoney+" as shkd_jtnbjkqcye", "shkd_jtnbjkxzrze/ "+selmoney+" as shkd_jtnbjkxzrze", "shkd_jtnbjkxzhke/ "+selmoney+" as shkd_jtnbjkxzhke", "shkd_jtnbjkqmye/ "+selmoney+" as shkd_jtnbjkqmye",//⑩集团内部借款
|
"(shkd_jtnbjkqcye-shkd_jtnbjkqcyexjdx)/ "+selmoney+" as shkd_jtnbjkqcye", "(shkd_jtnbjkxzrze-shkd_jtnbjkxzrzexjdx)/ "+selmoney+" as shkd_jtnbjkxzrze", "(shkd_jtnbjkxzhke-shkd_jtnbjkxzhkexjdx)/ "+selmoney+" as shkd_jtnbjkxzhke", "(shkd_jtnbjkqmye-shkd_jtnbjkqmyexjdx)/ "+selmoney+" as shkd_jtnbjkqmye",//⑩集团内部借款
|
||||||
"shkd_yxzqcye/ "+selmoney+" as shkd_yxzqcye", "shkd_yxzxzrze/ "+selmoney+" as shkd_yxzxzrze", "shkd_yxzxzhke/ "+selmoney+" as shkd_yxzxzhke", "shkd_yxzqmye/ "+selmoney+" as shkd_yxzqmye",//⑪永续债
|
"shkd_yxzqcye/ "+selmoney+" as shkd_yxzqcye", "shkd_yxzxzrze/ "+selmoney+" as shkd_yxzxzrze", "shkd_yxzxzhke/ "+selmoney+" as shkd_yxzxzhke", "shkd_yxzqmye/ "+selmoney+" as shkd_yxzqmye",//⑪永续债
|
||||||
"shkd_yxxtqcye/ "+selmoney+" as shkd_yxxtqcye", "shkd_yxxtxzrze/ "+selmoney+" as shkd_yxxtxzrze", "shkd_yxxtxzhke/ "+selmoney+" as shkd_yxxtxzhke", "shkd_yxxtqmye/ "+selmoney+" as shkd_yxxtqmye",//⑫永续信托
|
"shkd_yxxtqcye/ "+selmoney+" as shkd_yxxtqcye", "shkd_yxxtxzrze/ "+selmoney+" as shkd_yxxtxzrze", "shkd_yxxtxzhke/ "+selmoney+" as shkd_yxxtxzhke", "shkd_yxxtqmye/ "+selmoney+" as shkd_yxxtqmye",//⑫永续信托
|
||||||
"shkd_qtqyrzqcye/ "+selmoney+" as shkd_qtqyrzqcye", "shkd_qtqyrzxzrze/ "+selmoney+" as shkd_qtqyrzxzrze", "shkd_qtqyrzxzhke/ "+selmoney+" as shkd_qtqyrzxzhke", "shkd_qtqyrzqmye/ "+selmoney+" as shkd_qtqyrzqmye",//⑬其他权益融资
|
"shkd_qtqyrzqcye/ "+selmoney+" as shkd_qtqyrzqcye", "shkd_qtqyrzxzrze/ "+selmoney+" as shkd_qtqyrzxzrze", "shkd_qtqyrzxzhke/ "+selmoney+" as shkd_qtqyrzxzhke", "shkd_qtqyrzqmye/ "+selmoney+" as shkd_qtqyrzqmye",//⑬其他权益融资
|
||||||
|
"shkd_jtnbjkqcyecjdx/ "+selmoney+" as shkd_jtnbjkqcyecjdx", "shkd_jtnbjkxzrzecjdx/ "+selmoney+" as shkd_jtnbjkxzrzecjdx", "shkd_jtnbjkxzhkecjdx/ "+selmoney+" as shkd_jtnbjkxzhkecjdx", "shkd_jtnbjkqmyecjdx/ "+selmoney+" as shkd_jtnbjkqmyecjdx",//⑩集团内部借款cjdx
|
||||||
|
"shkd_jtnbjkqcyexjdx/ "+selmoney+" as shkd_jtnbjkqcyexjdx", "shkd_jtnbjkxzrzexjdx/ "+selmoney+" as shkd_jtnbjkxzrzexjdx", "shkd_jtnbjkxzhkexjdx/ "+selmoney+" as shkd_jtnbjkxzhkexjdx", "shkd_jtnbjkqmyexjdx/ "+selmoney+" as shkd_jtnbjkqmyexjdx",//⑩集团内部借款xjdx
|
||||||
//1至9合计
|
//1至9合计
|
||||||
"(shkd_zqrzqcye+shkd_dqjkqcye+shkd_zcqldqcye+shkd_xmdkqcye+shkd_rzzlqcye+shkd_bxzjrzqcye+shkd_yfpjqcye+shkd_fjrqyjkqcye+shkd_qtzwrzqcye)/"+selmoney+" as shkd_1to9qcye",
|
"(shkd_zqrzqcye+shkd_dqjkqcye+shkd_zcqldqcye+shkd_xmdkqcye+shkd_rzzlqcye+shkd_bxzjrzqcye+shkd_yfpjqcye+shkd_fjrqyjkqcye+shkd_qtzwrzqcye)/"+selmoney+" as shkd_1to9qcye",
|
||||||
"(shkd_zqrzxzrze+shkd_dqjkxzrze+shkd_zcqldxzrze+shkd_xmdkxzrze+shkd_rzzlxzrze+shkd_bxzjrzxzrze+shkd_yfpjxzrze+shkd_fjrqyjkxzrze+shkd_qtzwrzxzrze)/"+selmoney+" as shkd_1to9xzrze",
|
"(shkd_zqrzxzrze+shkd_dqjkxzrze+shkd_zcqldxzrze+shkd_xmdkxzrze+shkd_rzzlxzrze+shkd_bxzjrzxzrze+shkd_yfpjxzrze+shkd_fjrqyjkxzrze+shkd_qtzwrzxzrze)/"+selmoney+" as shkd_1to9xzrze",
|
||||||
|
@ -156,54 +208,54 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
"(shkd_zqrzqmye+shkd_dqjkqmye+shkd_zcqldqmye+shkd_xmdkqmye+shkd_rzzlqmye+shkd_bxzjrzqmye+shkd_yfpjqmye+shkd_fjrqyjkqmye+shkd_qtzwrzqmye+shkd_yxzqmye+shkd_yxxtqmye+shkd_qtqyrzqmye)/"+selmoney+" as shkd_1to13qmye"
|
"(shkd_zqrzqmye+shkd_dqjkqmye+shkd_zcqldqmye+shkd_xmdkqmye+shkd_rzzlqmye+shkd_bxzjrzqmye+shkd_yfpjqmye+shkd_fjrqyjkqmye+shkd_qtzwrzqmye+shkd_yxzqmye+shkd_yxxtqmye+shkd_qtqyrzqmye)/"+selmoney+" as shkd_1to13qmye"
|
||||||
}).finish();
|
}).finish();
|
||||||
|
|
||||||
DataSet dataSet2 = dataSet.groupBy(null).sum("shkd_jtnbjkqcye").sum("shkd_jtnbjkxzrze").sum("shkd_jtnbjkxzhke").sum("shkd_jtnbjkqmye").finish();
|
// DataSet dataSet2 = dataSet.groupBy(null).sum("shkd_jtnbjkqcye").sum("shkd_jtnbjkxzrze").sum("shkd_jtnbjkxzhke").sum("shkd_jtnbjkqmye").finish();
|
||||||
|
//
|
||||||
|
// DataSet ds = dataSet2.addField("'合并抵消'","shkd_org").addField("''","shkd_orgnumber");
|
||||||
|
// ds.addFields(new String[]{},new String[]{});
|
||||||
|
// ds = ds.addNullField(
|
||||||
|
// "shkd_zqrzqcye","shkd_zqrzxzrze","shkd_zqrzxzhke","shkd_zqrzqmye",
|
||||||
|
// "shkd_dqjkqcye","shkd_dqjkxzrze","shkd_dqjkxzhke","shkd_dqjkqmye",
|
||||||
|
// "shkd_zcqldqcye","shkd_zcqldxzrze","shkd_zcqldxzhke","shkd_zcqldqmye",
|
||||||
|
// "shkd_xmdkqcye","shkd_xmdkxzrze","shkd_xmdkxzhke","shkd_xmdkqmye",
|
||||||
|
// "shkd_rzzlqcye","shkd_rzzlxzrze","shkd_rzzlxzhke","shkd_rzzlqmye",
|
||||||
|
// "shkd_bxzjrzqcye","shkd_bxzjrzxzrze","shkd_bxzjrzxzhke","shkd_bxzjrzqmye",
|
||||||
|
// "shkd_yfpjqcye","shkd_yfpjxzrze","shkd_yfpjxzhke","shkd_yfpjqmye",
|
||||||
|
// "shkd_fjrqyjkqcye","shkd_fjrqyjkxzrze","shkd_fjrqyjkxzhke","shkd_fjrqyjkqmye",
|
||||||
|
// "shkd_qtzwrzqcye","shkd_qtzwrzxzrze","shkd_qtzwrzxzhke","shkd_qtzwrzqmye",
|
||||||
|
//
|
||||||
|
// "shkd_yxzqcye","shkd_yxzxzrze","shkd_yxzxzhke","shkd_yxzqmye",
|
||||||
|
// "shkd_yxxtqcye","shkd_yxxtxzrze","shkd_yxxtxzhke","shkd_yxxtqmye",
|
||||||
|
// "shkd_qtqyrzqcye","shkd_qtqyrzxzrze","shkd_qtqyrzxzhke","shkd_qtqyrzqmye",
|
||||||
|
// "shkd_1to9qcye","shkd_1to9xzrze","shkd_1to9xzhke","shkd_1to9qmye",
|
||||||
|
// "shkd_1to10qcye","shkd_1to10xzrze","shkd_1to10xzhke","shkd_1to10qmye",
|
||||||
|
// "shkd_11to13qcye","shkd_11to13xzrze","shkd_11to13xzhke","shkd_11to13qmye",
|
||||||
|
// "shkd_1to13qcye","shkd_1to13xzrze","shkd_1to13xzhke","shkd_1to13qmye"
|
||||||
|
// );
|
||||||
|
// ds=ds.select(
|
||||||
|
// "shkd_orgnumber","shkd_org",
|
||||||
|
// "shkd_zqrzqcye","shkd_zqrzxzrze","shkd_zqrzxzhke","shkd_zqrzqmye",
|
||||||
|
// "shkd_dqjkqcye","shkd_dqjkxzrze","shkd_dqjkxzhke","shkd_dqjkqmye",
|
||||||
|
// "shkd_zcqldqcye","shkd_zcqldxzrze","shkd_zcqldxzhke","shkd_zcqldqmye",
|
||||||
|
// "shkd_xmdkqcye","shkd_xmdkxzrze","shkd_xmdkxzhke","shkd_xmdkqmye",
|
||||||
|
// "shkd_rzzlqcye","shkd_rzzlxzrze","shkd_rzzlxzhke","shkd_rzzlqmye",
|
||||||
|
// "shkd_bxzjrzqcye","shkd_bxzjrzxzrze","shkd_bxzjrzxzhke","shkd_bxzjrzqmye",
|
||||||
|
// "shkd_yfpjqcye","shkd_yfpjxzrze","shkd_yfpjxzhke","shkd_yfpjqmye",
|
||||||
|
// "shkd_fjrqyjkqcye","shkd_fjrqyjkxzrze","shkd_fjrqyjkxzhke","shkd_fjrqyjkqmye",
|
||||||
|
// "shkd_qtzwrzqcye","shkd_qtzwrzxzrze","shkd_qtzwrzxzhke","shkd_qtzwrzqmye",
|
||||||
|
// "shkd_jtnbjkqcye*-1 as shkd_jtnbjkqcye","shkd_jtnbjkxzrze*-1 as shkd_jtnbjkxzrze","shkd_jtnbjkxzhke*-1 as shkd_jtnbjkxzhke","shkd_jtnbjkqmye*-1 as shkd_jtnbjkqmye",
|
||||||
|
// "shkd_yxzqcye","shkd_yxzxzrze","shkd_yxzxzhke","shkd_yxzqmye",
|
||||||
|
// "shkd_yxxtqcye","shkd_yxxtxzrze","shkd_yxxtxzhke","shkd_yxxtqmye",
|
||||||
|
// "shkd_qtqyrzqcye","shkd_qtqyrzxzrze","shkd_qtqyrzxzhke","shkd_qtqyrzqmye",
|
||||||
|
// "shkd_1to9qcye","shkd_1to9xzrze","shkd_1to9xzhke","shkd_1to9qmye",
|
||||||
|
// "shkd_1to10qcye","shkd_1to10xzrze","shkd_1to10xzhke","shkd_1to10qmye",
|
||||||
|
// "shkd_11to13qcye","shkd_11to13xzrze","shkd_11to13xzhke","shkd_11to13qmye",
|
||||||
|
// "shkd_1to13qcye","shkd_1to13xzrze","shkd_1to13xzhke","shkd_1to13qmye");
|
||||||
|
// DataSet union = dataSet.union(ds);
|
||||||
|
|
||||||
DataSet ds = dataSet2.addField("'合并抵消'","shkd_org").addField("''","shkd_orgnumber");
|
return dataSet;
|
||||||
ds.addFields(new String[]{},new String[]{});
|
|
||||||
ds = ds.addNullField(
|
|
||||||
"shkd_zqrzqcye","shkd_zqrzxzrze","shkd_zqrzxzhke","shkd_zqrzqmye",
|
|
||||||
"shkd_dqjkqcye","shkd_dqjkxzrze","shkd_dqjkxzhke","shkd_dqjkqmye",
|
|
||||||
"shkd_zcqldqcye","shkd_zcqldxzrze","shkd_zcqldxzhke","shkd_zcqldqmye",
|
|
||||||
"shkd_xmdkqcye","shkd_xmdkxzrze","shkd_xmdkxzhke","shkd_xmdkqmye",
|
|
||||||
"shkd_rzzlqcye","shkd_rzzlxzrze","shkd_rzzlxzhke","shkd_rzzlqmye",
|
|
||||||
"shkd_bxzjrzqcye","shkd_bxzjrzxzrze","shkd_bxzjrzxzhke","shkd_bxzjrzqmye",
|
|
||||||
"shkd_yfpjqcye","shkd_yfpjxzrze","shkd_yfpjxzhke","shkd_yfpjqmye",
|
|
||||||
"shkd_fjrqyjkqcye","shkd_fjrqyjkxzrze","shkd_fjrqyjkxzhke","shkd_fjrqyjkqmye",
|
|
||||||
"shkd_qtzwrzqcye","shkd_qtzwrzxzrze","shkd_qtzwrzxzhke","shkd_qtzwrzqmye",
|
|
||||||
|
|
||||||
"shkd_yxzqcye","shkd_yxzxzrze","shkd_yxzxzhke","shkd_yxzqmye",
|
|
||||||
"shkd_yxxtqcye","shkd_yxxtxzrze","shkd_yxxtxzhke","shkd_yxxtqmye",
|
|
||||||
"shkd_qtqyrzqcye","shkd_qtqyrzxzrze","shkd_qtqyrzxzhke","shkd_qtqyrzqmye",
|
|
||||||
"shkd_1to9qcye","shkd_1to9xzrze","shkd_1to9xzhke","shkd_1to9qmye",
|
|
||||||
"shkd_1to10qcye","shkd_1to10xzrze","shkd_1to10xzhke","shkd_1to10qmye",
|
|
||||||
"shkd_11to13qcye","shkd_11to13xzrze","shkd_11to13xzhke","shkd_11to13qmye",
|
|
||||||
"shkd_1to13qcye","shkd_1to13xzrze","shkd_1to13xzhke","shkd_1to13qmye"
|
|
||||||
);
|
|
||||||
ds=ds.select(
|
|
||||||
"shkd_orgnumber","shkd_org",
|
|
||||||
"shkd_zqrzqcye","shkd_zqrzxzrze","shkd_zqrzxzhke","shkd_zqrzqmye",
|
|
||||||
"shkd_dqjkqcye","shkd_dqjkxzrze","shkd_dqjkxzhke","shkd_dqjkqmye",
|
|
||||||
"shkd_zcqldqcye","shkd_zcqldxzrze","shkd_zcqldxzhke","shkd_zcqldqmye",
|
|
||||||
"shkd_xmdkqcye","shkd_xmdkxzrze","shkd_xmdkxzhke","shkd_xmdkqmye",
|
|
||||||
"shkd_rzzlqcye","shkd_rzzlxzrze","shkd_rzzlxzhke","shkd_rzzlqmye",
|
|
||||||
"shkd_bxzjrzqcye","shkd_bxzjrzxzrze","shkd_bxzjrzxzhke","shkd_bxzjrzqmye",
|
|
||||||
"shkd_yfpjqcye","shkd_yfpjxzrze","shkd_yfpjxzhke","shkd_yfpjqmye",
|
|
||||||
"shkd_fjrqyjkqcye","shkd_fjrqyjkxzrze","shkd_fjrqyjkxzhke","shkd_fjrqyjkqmye",
|
|
||||||
"shkd_qtzwrzqcye","shkd_qtzwrzxzrze","shkd_qtzwrzxzhke","shkd_qtzwrzqmye",
|
|
||||||
"shkd_jtnbjkqcye*-1 as shkd_jtnbjkqcye","shkd_jtnbjkxzrze*-1 as shkd_jtnbjkxzrze","shkd_jtnbjkxzhke*-1 as shkd_jtnbjkxzhke","shkd_jtnbjkqmye*-1 as shkd_jtnbjkqmye",
|
|
||||||
"shkd_yxzqcye","shkd_yxzxzrze","shkd_yxzxzhke","shkd_yxzqmye",
|
|
||||||
"shkd_yxxtqcye","shkd_yxxtxzrze","shkd_yxxtxzhke","shkd_yxxtqmye",
|
|
||||||
"shkd_qtqyrzqcye","shkd_qtqyrzxzrze","shkd_qtqyrzxzhke","shkd_qtqyrzqmye",
|
|
||||||
"shkd_1to9qcye","shkd_1to9xzrze","shkd_1to9xzhke","shkd_1to9qmye",
|
|
||||||
"shkd_1to10qcye","shkd_1to10xzrze","shkd_1to10xzhke","shkd_1to10qmye",
|
|
||||||
"shkd_11to13qcye","shkd_11to13xzrze","shkd_11to13xzhke","shkd_11to13qmye",
|
|
||||||
"shkd_1to13qcye","shkd_1to13xzrze","shkd_1to13xzhke","shkd_1to13qmye");
|
|
||||||
DataSet union = dataSet.union(ds);
|
|
||||||
|
|
||||||
return union;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public StringBuilder getSQlBuilder(String shkd_selstartdate,String shkd_selenddate,HashMap<Long, List<Long>> map,StringBuilder sqlBuilder){
|
public StringBuilder getSQlBuilder(String shkd_selstartdate,String shkd_selenddate,HashMap<Long, List<Long>> map,StringBuilder sqlBuilder,HashMap<Long, List<Long>> cjdxmap,HashMap<Long, List<Long>> xjdxmap){
|
||||||
//组装组织分类
|
//组装组织分类
|
||||||
StringBuilder orgclass=new StringBuilder(" case \n");
|
StringBuilder orgclass=new StringBuilder(" case \n");
|
||||||
StringBuilder orgclass1=new StringBuilder(" case \n");
|
StringBuilder orgclass1=new StringBuilder(" case \n");
|
||||||
|
@ -220,6 +272,36 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
orgclass1.append(" ELSE NULL \n");
|
orgclass1.append(" ELSE NULL \n");
|
||||||
orgclass1.append(" END AS zz \n");
|
orgclass1.append(" END AS zz \n");
|
||||||
|
|
||||||
|
StringBuilder dxorgclass=new StringBuilder(" (case \n");
|
||||||
|
for (Map.Entry<Long, List<Long>> entry : map.entrySet()) {
|
||||||
|
Long key = entry.getKey();
|
||||||
|
List<Long> valueList = entry.getValue();
|
||||||
|
String result = valueList.toString();
|
||||||
|
result = result.substring(1, result.length() - 1);
|
||||||
|
Map<Long, Long> orgParentMap = OrgUnitServiceHelper.getDirectSuperiorOrg(OrgViewType.OrgUnit, Collections.singletonList(key));//获取直接上级
|
||||||
|
List<Long> cjdx=cjdxmap.get(orgParentMap.get(key));
|
||||||
|
List<Long> xjdx=xjdxmap.get(orgParentMap.get(key));
|
||||||
|
String cjdxresult = cjdx.toString();
|
||||||
|
if (cjdx.size()==0){
|
||||||
|
cjdxresult="123";//设置一个不存在的id
|
||||||
|
}else {
|
||||||
|
cjdxresult = cjdxresult.substring(1, cjdxresult.length() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
String xjdxresult = xjdx.toString();
|
||||||
|
if (xjdx.size()==0){
|
||||||
|
xjdxresult="123";
|
||||||
|
}else {
|
||||||
|
xjdxresult = xjdxresult.substring(1, xjdxresult.length() - 1);
|
||||||
|
}
|
||||||
|
dxorgclass.append(" WHEN e.fcreditorgid IN ( "+cjdxresult+" ) and e.forgid in ("+result+") THEN '此级抵消' \n");
|
||||||
|
dxorgclass.append(" WHEN e.fcreditorgid IN ( "+xjdxresult+" ) and e.forgid in ("+result+") THEN '下级抵消' \n");
|
||||||
|
}
|
||||||
|
dxorgclass.append(" ELSE '不抵消'\n" +
|
||||||
|
"END) AS dx, \n");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String zqrz = getrzpzId(FinanceVarietyEnum.zqrz, "cfm_financingvarieties");//获取债券融资的融资品种
|
String zqrz = getrzpzId(FinanceVarietyEnum.zqrz, "cfm_financingvarieties");//获取债券融资的融资品种
|
||||||
String dqjk = getrzpzId(FinanceVarietyEnum.dqjk, "cfm_financingvarieties");//获取短期借款的融资品种
|
String dqjk = getrzpzId(FinanceVarietyEnum.dqjk, "cfm_financingvarieties");//获取短期借款的融资品种
|
||||||
String zcqld = getrzpzId(FinanceVarietyEnum.zcqld, "cfm_financingvarieties");//获取中长期流贷的融资品种
|
String zcqld = getrzpzId(FinanceVarietyEnum.zcqld, "cfm_financingvarieties");//获取中长期流贷的融资品种
|
||||||
|
@ -283,6 +365,14 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
" SUM(CASE WHEN djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime > '"+shkd_selstartdate+"' AND starttime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzrze,\n" +
|
" SUM(CASE WHEN djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime > '"+shkd_selstartdate+"' AND starttime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzrze,\n" +
|
||||||
" SUM(CASE WHEN djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND endtime > '"+shkd_selstartdate+"' AND endtime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzhke,\n" +
|
" SUM(CASE WHEN djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND endtime > '"+shkd_selstartdate+"' AND endtime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzhke,\n" +
|
||||||
" SUM(CASE WHEN djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime <= '"+shkd_selenddate+"' AND endtime > '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkqmye,\n");//⑩集团内部借款
|
" SUM(CASE WHEN djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime <= '"+shkd_selenddate+"' AND endtime > '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkqmye,\n");//⑩集团内部借款
|
||||||
|
sqlBuilder.append("SUM(CASE WHEN dx='此级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime <= '"+shkd_selstartdate+"' AND endtime > '"+shkd_selstartdate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkqcyecjdx,\n" +
|
||||||
|
" SUM(CASE WHEN dx='此级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime > '"+shkd_selstartdate+"' AND starttime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzrzecjdx,\n" +
|
||||||
|
" SUM(CASE WHEN dx='此级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND endtime > '"+shkd_selstartdate+"' AND endtime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzhkecjdx,\n" +
|
||||||
|
" SUM(CASE WHEN dx='此级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime <= '"+shkd_selenddate+"' AND endtime > '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkqmyecjdx,\n");//⑩集团内部借款此级抵消
|
||||||
|
sqlBuilder.append("SUM(CASE WHEN dx='下级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime <= '"+shkd_selstartdate+"' AND endtime > '"+shkd_selstartdate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkqcyexjdx,\n" +
|
||||||
|
" SUM(CASE WHEN dx='下级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime > '"+shkd_selstartdate+"' AND starttime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzrzexjdx,\n" +
|
||||||
|
" SUM(CASE WHEN dx='下级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND endtime > '"+shkd_selstartdate+"' AND endtime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkxzhkexjdx,\n" +
|
||||||
|
" SUM(CASE WHEN dx='下级抵消' and djlx='企业借款合同' AND zqrlx='innerunit' AND rzpz in ("+jtnbjk+") AND starttime <= '"+shkd_selenddate+"' AND endtime > '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_jtnbjkqmyexjdx,\n");//⑩集团内部借款下级抵消
|
||||||
|
|
||||||
sqlBuilder.append("SUM(CASE WHEN djlx='银行借款合同' AND rzpz in ("+yxd+") AND starttime <= '"+shkd_selstartdate+"' AND endtime > '"+shkd_selstartdate+"' THEN je ELSE 0 END ) AS shkd_yxzqcye,\n" +
|
sqlBuilder.append("SUM(CASE WHEN djlx='银行借款合同' AND rzpz in ("+yxd+") AND starttime <= '"+shkd_selstartdate+"' AND endtime > '"+shkd_selstartdate+"' THEN je ELSE 0 END ) AS shkd_yxzqcye,\n" +
|
||||||
" SUM(CASE WHEN djlx='银行借款合同' AND rzpz in ("+yxd+") AND starttime > '"+shkd_selstartdate+"' AND starttime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_yxzxzrze,\n" +
|
" SUM(CASE WHEN djlx='银行借款合同' AND rzpz in ("+yxd+") AND starttime > '"+shkd_selstartdate+"' AND starttime <= '"+shkd_selenddate+"' THEN je ELSE 0 END ) AS shkd_yxzxzrze,\n" +
|
||||||
|
@ -307,6 +397,7 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
"t1.fbillno,t1.ffinproductid as rzpz,rpentry.fexdrawamount as je,'债券发行' AS djlx,'' AS zqrlx,\n" +
|
"t1.fbillno,t1.ffinproductid as rzpz,rpentry.fexdrawamount as je,'债券发行' AS djlx,'' AS zqrlx,\n" +
|
||||||
"t1.fbizdate AS starttime,\n" +
|
"t1.fbizdate AS starttime,\n" +
|
||||||
"rpentry.fexrepaymentdate AS endtime,\n" +
|
"rpentry.fexrepaymentdate AS endtime,\n" +
|
||||||
|
"''AS dx, \n" +
|
||||||
orgclass +
|
orgclass +
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loanbill t1 -- 债券发行\n" +
|
" t_cfm_loanbill t1 -- 债券发行\n" +
|
||||||
|
@ -319,6 +410,7 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,'银行借款合同' AS djlx,'' AS zqrlx,\n" +
|
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,'银行借款合同' AS djlx,'' AS zqrlx,\n" +
|
||||||
" t3.fbizdate AS starttime,\n" +
|
" t3.fbizdate AS starttime,\n" +
|
||||||
" rpentry.fexrepaymentdate AS endtime,\n" +
|
" rpentry.fexrepaymentdate AS endtime,\n" +
|
||||||
|
"''AS dx, \n" +
|
||||||
orgclass+
|
orgclass+
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loancontractbill t2 --银行借款合同\n" +
|
" t_cfm_loancontractbill t2 --银行借款合同\n" +
|
||||||
|
@ -334,6 +426,7 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
"t4.fbillno,t4.ffinproductid as rzpz,planmx.frentamt as je,'融资租赁合同' AS djlx,'' AS zqrlx,\n" +
|
"t4.fbillno,t4.ffinproductid as rzpz,planmx.frentamt as je,'融资租赁合同' AS djlx,'' AS zqrlx,\n" +
|
||||||
"t4.fstartdate AS starttime,\n" +
|
"t4.fstartdate AS starttime,\n" +
|
||||||
"planmx.fpaydate AS endtime,\n" +
|
"planmx.fpaydate AS endtime,\n" +
|
||||||
|
"''AS dx, \n" +
|
||||||
orgclass+
|
orgclass+
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
"t_cfm_loancontractbill t4 -- 融资租赁合同\n" +
|
"t_cfm_loancontractbill t4 -- 融资租赁合同\n" +
|
||||||
|
@ -346,6 +439,7 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
"t5.fbillno, 6666666666666666666 as rzpz,t5.famount as je,'开票登记' AS djlx,'' AS zqrlx,\n" +
|
"t5.fbillno, 6666666666666666666 as rzpz,t5.famount as je,'开票登记' AS djlx,'' AS zqrlx,\n" +
|
||||||
"t5.fissuedate AS starttime,\n" +
|
"t5.fissuedate AS starttime,\n" +
|
||||||
"t5.fdraftbillexpiredate AS endtime,\n" +
|
"t5.fdraftbillexpiredate AS endtime,\n" +
|
||||||
|
"''AS dx, \n" +
|
||||||
orgclass1+
|
orgclass1+
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
"t_cdm_draftbill t5 -- 开票登记\n" +
|
"t_cdm_draftbill t5 -- 开票登记\n" +
|
||||||
|
@ -356,6 +450,7 @@ public class FinanceReportfordatePlugin extends AbstractReportListDataPlugin {
|
||||||
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,'企业借款合同' AS djlx,e.fcreditortype AS zqrlx,\n" +
|
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,'企业借款合同' AS djlx,e.fcreditortype AS zqrlx,\n" +
|
||||||
" t3.fbizdate AS starttime,\n" +
|
" t3.fbizdate AS starttime,\n" +
|
||||||
"rpentry.fexrepaymentdate AS endtime,\n" +
|
"rpentry.fexrepaymentdate AS endtime,\n" +
|
||||||
|
dxorgclass+
|
||||||
orgclass+
|
orgclass+
|
||||||
"FROM\n" +
|
"FROM\n" +
|
||||||
" t_cfm_loancontractbill t2 --企业借款合同\n" +
|
" t_cfm_loancontractbill t2 --企业借款合同\n" +
|
||||||
|
|
|
@ -19,7 +19,7 @@ public class FinanceVarietyEnum {
|
||||||
public static final List<String> zcqld = Arrays.asList("中长期流动资金贷款");
|
public static final List<String> zcqld = Arrays.asList("中长期流动资金贷款");
|
||||||
|
|
||||||
//④项目贷款
|
//④项目贷款
|
||||||
public static final List<String> xmdk = Arrays.asList("固定资产贷款", "银行并购贷款");
|
public static final List<String> xmdk = Arrays.asList("固定资产贷款", "银行并购贷款","股票增持贷款");
|
||||||
|
|
||||||
//⑥保险资金融资
|
//⑥保险资金融资
|
||||||
public static final List<String> bxzjrz = Arrays.asList("保险资金融资");
|
public static final List<String> bxzjrz = Arrays.asList("保险资金融资");
|
||||||
|
|
Loading…
Reference in New Issue