parent
38004da10b
commit
10d2cf11b1
|
@ -329,14 +329,17 @@ public class ApiService {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// 支付结果
|
// 支付结果
|
||||||
|
//TS 交易成功
|
||||||
|
//TF 交易失败
|
||||||
|
//NC 交易未确认
|
||||||
|
//OF 银企异常
|
||||||
case "https://10.1.9.43/iuap-api-auth/yonbip/ctm/api/settlement/feedback":
|
case "https://10.1.9.43/iuap-api-auth/yonbip/ctm/api/settlement/feedback":
|
||||||
saveResponseBody = pushBill(token, saveUrl, saveRequestBody);
|
saveResponseBody = pushBill(token, saveUrl, saveRequestBody);
|
||||||
jsonObject = JSON.parseObject(saveResponseBody);
|
jsonObject = JSON.parseObject(saveResponseBody);
|
||||||
code = jsonObject.getString("code");
|
code = jsonObject.getString("code");
|
||||||
if ("200".equals(code)) {
|
if ("200".equals(code)) {
|
||||||
dynamic.set("billstatus", "A");
|
|
||||||
|
|
||||||
if ("TF、NC、OF".contains(dynamic.getString("bankpaystatus"))) {
|
if ("TF、NC、OF".contains(dynamic.getString("bankpaystatus"))) {
|
||||||
|
dynamic.set("billstatus", "A");
|
||||||
dynamic.set("shkd_pushstatus", "结算失败");
|
dynamic.set("shkd_pushstatus", "结算失败");
|
||||||
} else if ("TS".equals(dynamic.getString("bankpaystatus"))) {
|
} else if ("TS".equals(dynamic.getString("bankpaystatus"))) {
|
||||||
dynamic.set("shkd_pushstatus", "已结算");
|
dynamic.set("shkd_pushstatus", "已结算");
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
// 付款银行编码
|
// 付款银行编码
|
||||||
fieldName2 = "payerbank";
|
fieldName2 = "payerbank";
|
||||||
String billstatus = map.get("billstatus").toString();
|
String billstatus = map.get("billstatus").toString();
|
||||||
if ("B".equals(billstatus)) {
|
if ("A".equals(billstatus)) {
|
||||||
map.put("shkd_pushstatus", "未结算");
|
map.put("shkd_pushstatus", "未结算");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,13 +237,13 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
map.put(fieldName2, payeebank);
|
map.put(fieldName2, payeebank);
|
||||||
|
|
||||||
// 如果为供应商或者客户
|
// 如果为供应商或者客户
|
||||||
if ("bd_supplier".equals(payeetype)) {
|
if ("bd_supplier".equals(payertype)) {
|
||||||
Map<String, Object> societycreditcode = new HashMap<>();
|
Map<String, Object> societycreditcode = new HashMap<>();
|
||||||
societycreditcode.put("societycreditcode", map.get("payernumber").toString());
|
societycreditcode.put("societycreditcode", map.get("payernumber").toString());
|
||||||
map.put("shkd_supplier", societycreditcode);
|
map.put("shkd_supplier", societycreditcode);
|
||||||
|
|
||||||
logger.info("付款供应商统一社会信用代码:{}", map.get("payernumber"));
|
logger.info("付款供应商统一社会信用代码:{}", map.get("payernumber"));
|
||||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray());
|
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||||
|
|
||||||
if (objects.length > 0) {
|
if (objects.length > 0) {
|
||||||
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
||||||
|
@ -256,13 +256,13 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
//收款人编码
|
//收款人编码
|
||||||
objectNumber = objects[0].getString("number");
|
objectNumber = objects[0].getString("number");
|
||||||
}
|
}
|
||||||
} else if ("bd_customer".equals(payeetype)) {
|
} else if ("bd_customer".equals(payertype)) {
|
||||||
Map<String, Object> societycreditcode = new HashMap<>();
|
Map<String, Object> societycreditcode = new HashMap<>();
|
||||||
societycreditcode.put("societycreditcode", map.get("payernumber").toString());
|
societycreditcode.put("societycreditcode", map.get("payernumber").toString());
|
||||||
map.put("shkd_customer", societycreditcode);
|
map.put("shkd_customer", societycreditcode);
|
||||||
|
|
||||||
logger.info("付款客户统一社会信用代码:{}", map.get("payernumber"));
|
logger.info("付款客户统一社会信用代码:{}", map.get("payernumber"));
|
||||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray());
|
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,societycreditcode,entry_bank,entry_bank.bankaccount,entry_bank.accountname,entry_bank.bank", new QFilter("societycreditcode", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||||
|
|
||||||
if (objects.length > 0) {
|
if (objects.length > 0) {
|
||||||
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
DynamicObjectCollection dynamicObjectCollection = objects[0].getDynamicObjectCollection("entry_bank");
|
||||||
|
@ -274,12 +274,12 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
//收款人编码
|
//收款人编码
|
||||||
objectNumber = objects[0].getString("number");
|
objectNumber = objects[0].getString("number");
|
||||||
}
|
}
|
||||||
} else if ("bos_user".equals(payeetype)) {
|
} else if ("bos_user".equals(payertype)) {
|
||||||
Map<String, Object> username = new HashMap<>();
|
Map<String, Object> username = new HashMap<>();
|
||||||
username.put("username", map.get("payernumber").toString());
|
username.put("username", map.get("payernumber").toString());
|
||||||
map.put("shkd_user", username);
|
map.put("shkd_user", username);
|
||||||
|
|
||||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray());
|
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,name,number,username", new QFilter("username", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||||
if (objects.length > 0) {
|
if (objects.length > 0) {
|
||||||
// 付款人编码
|
// 付款人编码
|
||||||
map.put("payernumber", objects[0].getString("number"));
|
map.put("payernumber", objects[0].getString("number"));
|
||||||
|
@ -288,12 +288,12 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
// 付款人编码
|
// 付款人编码
|
||||||
objectNumber = objects[0].getString("number");
|
objectNumber = objects[0].getString("number");
|
||||||
}
|
}
|
||||||
} else if ("bos_org".equals(payeetype)) {
|
} else if ("bos_org".equals(payertype)) {
|
||||||
Map<String, Object> number = new HashMap<>();
|
Map<String, Object> number = new HashMap<>();
|
||||||
number.put("number", map.get("payernumber").toString());
|
number.put("number", map.get("payernumber").toString());
|
||||||
map.put("shkd_org", number);
|
map.put("shkd_org", number);
|
||||||
|
|
||||||
DynamicObject[] objects = BusinessDataServiceHelper.load(payeetype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray());
|
DynamicObject[] objects = BusinessDataServiceHelper.load(payertype.toString(), "id,number,name,", new QFilter("number", QCP.equals, map.get("payernumber").toString()).toArray());
|
||||||
if (objects.length > 0) {
|
if (objects.length > 0) {
|
||||||
// 收款人编码
|
// 收款人编码
|
||||||
map.put("payernumber", objects[0].getString("number"));
|
map.put("payernumber", objects[0].getString("number"));
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
package shkd.sys.sys.plugin.report;
|
||||||
|
|
||||||
|
import kd.bos.bill.BillShowParameter;
|
||||||
|
import kd.bos.bill.OperationStatus;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.LocaleString;
|
||||||
|
import kd.bos.entity.datamodel.IDataModel;
|
||||||
|
import kd.bos.entity.datamodel.events.PackageDataEvent;
|
||||||
|
import kd.bos.entity.report.FilterInfo;
|
||||||
|
import kd.bos.entity.report.FilterItemInfo;
|
||||||
|
import kd.bos.entity.report.ReportColumn;
|
||||||
|
import kd.bos.entity.report.ReportQueryParam;
|
||||||
|
import kd.bos.entity.report.queryds.ReportFilterField;
|
||||||
|
import kd.bos.entity.report.queryds.ReportFilterFieldConfig;
|
||||||
|
import kd.bos.filter.FilterColumn;
|
||||||
|
import kd.bos.form.ClientProperties;
|
||||||
|
import kd.bos.form.FormShowParameter;
|
||||||
|
import kd.bos.form.ShowType;
|
||||||
|
import kd.bos.form.control.events.FilterContainerInitEvent;
|
||||||
|
import kd.bos.form.events.HyperLinkClickEvent;
|
||||||
|
import kd.bos.form.events.HyperLinkClickListener;
|
||||||
|
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.report.ReportList;
|
||||||
|
import kd.bos.report.filter.ReportFilter;
|
||||||
|
import kd.bos.report.plugin.AbstractReportFormPlugin;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class FinanceReportFormPlugin extends AbstractReportFormPlugin implements HyperLinkClickListener {
|
||||||
|
FilterContainerInitEvent contInitEvent;
|
||||||
|
ReportQueryParam queryParam;
|
||||||
|
|
||||||
|
DynamicObject selorg;
|
||||||
|
// @Override
|
||||||
|
// public void packageData(PackageDataEvent evt) {
|
||||||
|
//
|
||||||
|
// if(evt.getFormatValue() != null && (evt.getFormatValue().toString().startsWith("139")
|
||||||
|
//
|
||||||
|
// || evt.getFormatValue().toString().startsWith("张")
|
||||||
|
//
|
||||||
|
// || evt.getFormatValue().toString().startsWith("00"))){
|
||||||
|
//
|
||||||
|
// evt.getNoLinkKey().add(((ReportColumn)evt.getSource()).getFieldKey());
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
ReportList reportlistap = this.getView().getControl("reportlistap");
|
||||||
|
reportlistap.addHyperClickListener(this::hyperLinkClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void hyperLinkClick(HyperLinkClickEvent hyperLinkClickEvent) {
|
||||||
|
if ("shkd_org".equals(hyperLinkClickEvent.getFieldName())) {
|
||||||
|
ReportFilter filter =this.getView().getControl("reportfilterap");
|
||||||
|
IDataModel model = this.getView().getModel();
|
||||||
|
String name = (String) hyperLinkClickEvent.getRowData().get(0);//公司名称
|
||||||
|
DynamicObject selorg = QueryServiceHelper.queryOne("bos_org", "id,name,number", (new QFilter("name", QCP.equals, name)).toArray());
|
||||||
|
Long pkValue = selorg.getLong("id");
|
||||||
|
DynamicObject single = BusinessDataServiceHelper.loadSingle(pkValue, "bos_org");
|
||||||
|
this.getModel().setValue("shkd_selorg",single);
|
||||||
|
Object shkd_selorg = this.getView().getModel().getValue("shkd_selorg");
|
||||||
|
filter.search();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void filterContainerInit(FilterContainerInitEvent contInitEvent, ReportQueryParam queryParam) {
|
||||||
|
this.contInitEvent= contInitEvent;
|
||||||
|
this.queryParam= queryParam;
|
||||||
|
super.filterContainerInit(contInitEvent, queryParam);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,227 @@
|
||||||
|
package shkd.sys.sys.plugin.report;
|
||||||
|
|
||||||
|
import kd.bos.algo.DataSet;
|
||||||
|
import kd.bos.algo.JoinDataSet;
|
||||||
|
import kd.bos.algo.JoinType;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.db.DB;
|
||||||
|
import kd.bos.db.DBRoute;
|
||||||
|
import kd.bos.entity.MainEntityType;
|
||||||
|
import kd.bos.entity.report.AbstractReportListDataPlugin;
|
||||||
|
import kd.bos.entity.report.FastFilter;
|
||||||
|
import kd.bos.entity.report.FilterItemInfo;
|
||||||
|
import kd.bos.entity.report.ReportQueryParam;
|
||||||
|
import kd.bos.entity.tree.TreeNode;
|
||||||
|
import kd.bos.org.model.OrgTreeBuildType;
|
||||||
|
import kd.bos.org.model.OrgTreeParam;
|
||||||
|
import kd.bos.orm.ORM;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.MetadataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
|
import kd.bos.servicehelper.org.OrgUnitServiceHelper;
|
||||||
|
import kd.bos.servicehelper.org.OrgViewType;
|
||||||
|
import kd.bos.util.CollectionUtils;
|
||||||
|
import shkd.sys.sys.plugin.report.domain.FinanceVarietyEnum;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
public class FinanceReportPlugin extends AbstractReportListDataPlugin {
|
||||||
|
public List<QFilter> getListQFilter(ReportQueryParam reportQueryParam) {
|
||||||
|
//过滤条件数组
|
||||||
|
ArrayList<QFilter> filters = new ArrayList<>();
|
||||||
|
//初始化过滤数据
|
||||||
|
List<FilterItemInfo> initFilter = reportQueryParam.getFilter().getFilterItems();
|
||||||
|
if (CollectionUtils.isNotEmpty(initFilter)) {
|
||||||
|
for (FilterItemInfo filterItemInfo : initFilter) {
|
||||||
|
// QFilter filter = new QFilter(filterItemInfo.getPropName(), filterItemInfo.getCompareType(), filterItemInfo.getValue());
|
||||||
|
QFilter filter = new QFilter(filterItemInfo.getPropName(), QCP.equals, filterItemInfo.getValue());
|
||||||
|
filters.add(filter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//快速过滤
|
||||||
|
FastFilter fastFilter = reportQueryParam.getFilter().getFastFilter();
|
||||||
|
if (fastFilter != null) {
|
||||||
|
List<QFilter> fastFilterList = reportQueryParam.getFilter().getFastFilter().getQFilters();
|
||||||
|
//添加过滤条件
|
||||||
|
if (CollectionUtils.isNotEmpty(fastFilterList)) {
|
||||||
|
filters.addAll(fastFilterList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return filters;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 将过滤条件存在集合中
|
||||||
|
* */
|
||||||
|
private void getFilterList(List<QFilter> qFilters, List<String> orgIds, List<String> dateList) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
for (QFilter filter : qFilters) {
|
||||||
|
if (filter.getProperty().contains("shkd_selorg")) {
|
||||||
|
DynamicObject org= (DynamicObject) filter.getValue();
|
||||||
|
orgIds.add(org.getString("number"));
|
||||||
|
} else if (filter.getProperty().contains("shkd_seldate")) {
|
||||||
|
dateList.add(sdf.format(filter.getValue()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DataSet query(ReportQueryParam reportQueryParam, Object o) throws Throwable {
|
||||||
|
//获取筛选器的值
|
||||||
|
List<QFilter> listQFilter = getListQFilter(reportQueryParam);
|
||||||
|
List<String> dateList = new ArrayList<>();
|
||||||
|
DynamicObject selorgDy = null;
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
for (QFilter filter : listQFilter) {
|
||||||
|
if (filter.getProperty().contains("shkd_selorg")) {
|
||||||
|
selorgDy= (DynamicObject) filter.getValue();
|
||||||
|
} else if (filter.getProperty().contains("shkd_seldate")) {
|
||||||
|
dateList.add(sdf.format(filter.getValue()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HashMap<Long, List<Long>> map = new HashMap<>();//组织层级关系
|
||||||
|
getOrgrelate(map, selorgDy);
|
||||||
|
System.out.println(map);
|
||||||
|
//根据组织关系配置sql
|
||||||
|
StringBuilder sqlBuilder = new StringBuilder("/*dialect*/ ");
|
||||||
|
int size = map.size();
|
||||||
|
int index = 0;
|
||||||
|
for (Map.Entry<Long, List<Long>> entry : map.entrySet()) {
|
||||||
|
Long key = entry.getKey(); // 获取key
|
||||||
|
DynamicObject bos_org = BusinessDataServiceHelper.loadSingle(key,"bos_org");//直接下级业务单元
|
||||||
|
List<Long> value = entry.getValue(); // 获取value
|
||||||
|
getSQlBuilder(dateList,value,bos_org.getString("number"),sqlBuilder);
|
||||||
|
|
||||||
|
index++;
|
||||||
|
// 判断是否是最后一项
|
||||||
|
if (index == size) {
|
||||||
|
|
||||||
|
} else {
|
||||||
|
sqlBuilder.append("\n union all \n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
System.out.println(sqlBuilder);
|
||||||
|
DataSet res = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of("fi"), sqlBuilder.toString());//财务云
|
||||||
|
|
||||||
|
|
||||||
|
//业务单元数据集
|
||||||
|
DataSet balanceDataSet = QueryServiceHelper.queryDataSet(this.getClass().getSimpleName(),"bos_org","id,number as shkd_orgnumber,name as shkd_org", null, null);
|
||||||
|
|
||||||
|
// //当前业务单元的数据
|
||||||
|
// MainEntityType uniondataEntityType = MetadataServiceHelper.getDataEntityType("cfm_loancontractbill");
|
||||||
|
// String unionmainDbRouteKey = uniondataEntityType.getDBRouteKey();
|
||||||
|
// StringBuilder sQlBuilder = getSQlBuilder(Arrays.asList(selorgDy.getLong("id")),selorgDy.getString("number"));
|
||||||
|
// DataSet nuion = DB.queryDataSet(this.getClass().getSimpleName(), DBRoute.of(unionmainDbRouteKey), sQlBuilder.toString());
|
||||||
|
//
|
||||||
|
// JoinDataSet join = res.join(balanceDataSet, JoinType.INNER);//连接组织
|
||||||
|
//DataSet 转 DynamicObjectCollection
|
||||||
|
// DynamicObjectCollection srcCollection = ORM.create().toPlainDynamicObjectCollection(res.copy());
|
||||||
|
// System.out.println(srcCollection);
|
||||||
|
// DataSet dataSet = join.on("orgnumber","shkd_orgnumber").select(new String[]{"shkd_orgnumber","shkd_org", "shkd_zqrzamount","shkd_dqjkamount","shkd_zqrzamount+shkd_dqjkamount as shkd_oneotnine"}).finish();
|
||||||
|
// dataSet.addField("shkd_zqrzamount + shkd_dqjkamount","shkd_oneotnine");//1至9金额合计
|
||||||
|
// return dataSet;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 银行借款合同拼接方法
|
||||||
|
* 拼接sql方法
|
||||||
|
* */
|
||||||
|
public StringBuilder getSQlBuilder(List<String> dateList,List<Long> orgIds,String orgnumber,StringBuilder sqlBuilder){
|
||||||
|
String result = orgIds.toString();
|
||||||
|
result = result.substring(1, result.length() - 1);
|
||||||
|
sqlBuilder.append("SELECT '"+orgnumber+"' as shkd_orgnumber, \n");
|
||||||
|
String zqrz = getrzpzId(FinanceVarietyEnum.zqrz, "cfm_financingvarieties");//获取债券融资的融资品种
|
||||||
|
String dqjk = getrzpzId(FinanceVarietyEnum.dqjk, "cfm_financingvarieties");//获取短期借款的融资品种
|
||||||
|
sqlBuilder.append("SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je ELSE 0 END ) AS shkd_zqrzamount,\n" +
|
||||||
|
"SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je*zxll ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je ELSE 0 END ) AS shkd_zqrzrzcb,\n" +
|
||||||
|
"SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je*(y+m/12.0+d/365.0) ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+zqrz+") THEN je ELSE 0 END ) AS shkd_zqrzqx ,\n");//债券融资
|
||||||
|
|
||||||
|
sqlBuilder.append("SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je ELSE 0 END ) AS shkd_dqjkamount,\n" +
|
||||||
|
"SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je*zxll ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je ELSE 0 END ) AS shkd_dqjkzrzcb,\n" +
|
||||||
|
"SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je*(y+m/12.0+d/365.0) ELSE 0 END )/SUM ( CASE WHEN rzpz in ("+dqjk+") THEN je ELSE 0 END ) AS shkd_dqjkqx \n");//短期借款
|
||||||
|
|
||||||
|
sqlBuilder.append("FROM ( \n");
|
||||||
|
sqlBuilder.append("SELECT\n" +
|
||||||
|
"t1.fbillno,t1.ffinproductid as rzpz,rpentry.fexdrawamount as je,e.forgid as zz,t.flatestrate as zxll,e.fterm AS qx,\n" +
|
||||||
|
"CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM 1 FOR POSITION ( 'y' IN e.fterm ) - 1 ) AS INT ) ELSE 0 END AS y,\n" +
|
||||||
|
"CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END FOR POSITION ( 'm' IN e.fterm ) - CASE WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END ) AS INT ) ELSE 0 END AS M,\n" +
|
||||||
|
"CASE WHEN POSITION ( 'd' IN e.fterm ) > 0 THEN CAST ( SUBSTRING ( e.fterm FROM CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN POSITION ( 'm' IN e.fterm ) + 1 WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END FOR POSITION ( 'd' IN e.fterm ) - CASE WHEN POSITION ( 'm' IN e.fterm ) > 0 THEN POSITION ( 'm' IN e.fterm ) + 1 WHEN POSITION ( 'y' IN e.fterm ) > 0 THEN POSITION ( 'y' IN e.fterm ) + 1 ELSE 1 END ) AS INT ) ELSE 0 END AS d \n" +
|
||||||
|
"FROM\n" +
|
||||||
|
" t_cfm_loanbill t1 \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill_e e ON e.fid = t1.fid \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill_t t ON t.fid = t1.fid \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t1.fid \n" +
|
||||||
|
"WHERE\n" +
|
||||||
|
" t1.fbillstatus='C'\n" +
|
||||||
|
" and e.forgid IN ( "+result+" )\n" +
|
||||||
|
" and t1.fbizdate <= '"+dateList.get(0)+"'\n" +
|
||||||
|
" and rpentry.fexrepaymentdate > '"+dateList.get(0)+"' \n");//债券发行表
|
||||||
|
|
||||||
|
sqlBuilder.append("UNION ALL \n");
|
||||||
|
|
||||||
|
sqlBuilder.append("SELECT \n" +
|
||||||
|
" t2.fbillno as fbillno,COALESCE( NULLIF ( t2.fk_shkd_basedatafield, 0 ), t2.ffinproductid ) AS rzpz,rpentry.fexdrawamount as je,e.forgid as zz ,t.flatestrate as zxll,CONCAT(TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate), 'y',TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12, 'm',DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30, 'd') AS qx,\n" +
|
||||||
|
" TIMESTAMPDIFF(YEAR, t3.fbizdate, rpentry.fexrepaymentdate) AS y,\n" +
|
||||||
|
" TIMESTAMPDIFF(MONTH, t3.fbizdate, rpentry.fexrepaymentdate) % 12 AS m,\n" +
|
||||||
|
" DATEDIFF(DAY,t3.fbizdate, rpentry.fexrepaymentdate) % 30 AS d\n" +
|
||||||
|
"FROM\n" +
|
||||||
|
" t_cfm_loancontractbill t2 \n" +
|
||||||
|
" INNER JOIN t_cfm_loancontractbill_e e ON e.fid = t2.fid \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill_e e1 ON e1.floancontractbillid = t2.fid \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill t3 ON t3.fid = e1.fid \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill_rp_entry rpentry ON rpentry.fid = t3.fid \n" +
|
||||||
|
" INNER JOIN t_cfm_loanbill_t t ON t.fid = t3.fid \n" +
|
||||||
|
"WHERE\n" +
|
||||||
|
" t2.fbillstatus='C' and e.floantype<>'finlease' \n" +
|
||||||
|
" AND t3.fbillstatus='C'\n" +
|
||||||
|
" and e.forgid IN ( "+result+" )\n" +
|
||||||
|
" and t3.fbizdate <= '"+dateList.get(0)+"'\n" +
|
||||||
|
" and rpentry.fexrepaymentdate > '"+dateList.get(0)+"' \n");//借款合同表
|
||||||
|
|
||||||
|
sqlBuilder.append(") AS hbb");
|
||||||
|
return sqlBuilder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<Long, List<Long>> getOrgrelate(HashMap<Long, List<Long>> map,DynamicObject selorgDy){
|
||||||
|
// 查询该组织的直接下级业务单元
|
||||||
|
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);
|
||||||
|
|
||||||
|
for (TreeNode treeNode : treeNodes) {
|
||||||
|
Long id = Long.valueOf(treeNode.getId());//业务单元id
|
||||||
|
List<Long> orgIds = new ArrayList<>(1);
|
||||||
|
orgIds.add(id);
|
||||||
|
DynamicObject bos_org = BusinessDataServiceHelper.loadSingle(id,"bos_org");//直接下级业务单元
|
||||||
|
//获取该组织的全部下级业务单元
|
||||||
|
List<Long> allSubordinateOrgs = OrgUnitServiceHelper.getAllSubordinateOrgs(OrgViewType.OrgUnit, orgIds, true);//包括自己
|
||||||
|
// OrgTreeParam param = new OrgTreeParam();
|
||||||
|
// param.setId(id);
|
||||||
|
// param.setOrgViewNumber(OrgViewType.OrgUnit);
|
||||||
|
// Map<String, Object> treeRootNodeMapById = OrgUnitServiceHelper.getTreeRootNodeMapById(param);
|
||||||
|
// Boolean isleaf = (Boolean) treeRootNodeMapById.get("isleaf");
|
||||||
|
map.put(id,allSubordinateOrgs);
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getrzpzId(List<String> rzpz,String entity){
|
||||||
|
QFilter qFilter = new QFilter("name", QCP.in, rzpz);
|
||||||
|
DynamicObject[] ids = BusinessDataServiceHelper.load(entity, "id", qFilter.toArray());
|
||||||
|
// 使用 Stream 来将 ids 数组转为逗号分隔的字符串
|
||||||
|
String result = Arrays.stream(ids)
|
||||||
|
.map(id -> id.getString("id")) // 假设 getId() 返回 id 的值
|
||||||
|
.collect(Collectors.joining(","));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package shkd.sys.sys.plugin.report.domain;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* 融资品种枚举
|
||||||
|
* */
|
||||||
|
public class FinanceVarietyEnum {
|
||||||
|
|
||||||
|
//①债券融资
|
||||||
|
public static final List<String> zqrz = Arrays.asList("短期融资券", "超短期融资券", "公司债券"," 企业债券", "中期票据", "定向债务融资工具","可转换公司债券");
|
||||||
|
|
||||||
|
//②短期借款
|
||||||
|
public static final List<String> dqjk = Arrays.asList("短期借款");
|
||||||
|
}
|
|
@ -74,7 +74,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||||
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(2))
|
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(10))
|
||||||
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
|
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
|
||||||
.and("shkd_pushstatus", QCP.equals, "未结算")
|
.and("shkd_pushstatus", QCP.equals, "未结算")
|
||||||
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
|
.and(new QFilter("shkd_businessname", QCP.equals, "共享系统")).toArray());
|
||||||
|
@ -129,7 +129,8 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
"bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
|
"bankdetailno,transbalance,description,debitamount,creditamount,shkd_pushstatus," +
|
||||||
"shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
|
"shkd_businessnumber,shkd_businessid,shkd_businessname,recedbillentry,receiptno," +
|
||||||
"recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
|
"recedbillentry.e_recedbilltype,recedbillentry.e_recedbillnumber,recedbillentry.e_recedbillid"
|
||||||
, new QFilter("bizdate", QCP.large_equals, getFirstDayOfMonth())
|
, new QFilter("bizdate", QCP.large_equals, calculateTheDate(7))
|
||||||
|
.and("bizdate", QCP.less_equals, calculateTheDate(1))
|
||||||
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
.and("shkd_pushstatus", QCP.not_equals, "已推送").toArray());
|
||||||
|
|
||||||
Arrays.stream(objects3).forEach(dynamicObject -> {
|
Arrays.stream(objects3).forEach(dynamicObject -> {
|
||||||
|
|
Loading…
Reference in New Issue