1、票据管理、用信管理、列表过滤、表单默认

2、合作金融机构在用信管理、票据管理、担保管理、授信管理应用模块列表过滤
This commit is contained in:
XiangLingFeng 2025-11-28 16:45:17 +08:00
parent a30a93851d
commit 02f572883c
7 changed files with 280 additions and 11 deletions

View File

@ -0,0 +1,59 @@
package kdsz.zyf25.tmc.cfm.plugin.form;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.FormShowParameter;
import kd.bos.form.events.SetFilterEvent;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.HashSet;
/**
* 用信管理票据管理担保管理授信管理合作金融机构过滤插件
*/
public class FinOrgInfoFiltrationListPlugin extends AbstractListPlugin implements Plugin {
private static final String CONFIG_KEY = "kdsz_finorginfoconfig";
private static HashSet<String> appFilterArea = new HashSet<>();
static {
appFilterArea.add("kdsz_factoringm");//保理管理用信管理
appFilterArea.add("kdsz_guaranteem");//保函管理担保管理
appFilterArea.add("kdsz_lcm");//信用证管理票据管理
appFilterArea.add("kdsz_scmf");//供应链金融票据管理
appFilterArea.add("cfm");//用信管理
appFilterArea.add("cdm");//票据管理
appFilterArea.add("creditm");//授信管理
appFilterArea.add("gm");//担保管理
}
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
if (appFilterArea.contains(appId)){
//读取最新可用配置
QFilter filter = new QFilter("enable", QCP.equals, "1");
DynamicObject[] configs = BusinessDataServiceHelper.load(CONFIG_KEY, "id,createtime,kdsz_entryentity.kdsz_finorginfo",
new QFilter[]{filter}, "createtime desc", 1);
if (configs != null && configs.length > 0){
DynamicObject config = configs[0];
DynamicObjectCollection entries = config.getDynamicObjectCollection("kdsz_entryentity");
HashSet<Object> finOrgInfoIds = new HashSet<>();
for (DynamicObject entry : entries) {
DynamicObject finOrgInfo = entry.getDynamicObject("kdsz_finorginfo");
if (finOrgInfo == null){
continue;
}
finOrgInfoIds.add(finOrgInfo.getPkValue());
}
if (finOrgInfoIds.size() > 0){
e.getQFilters().add(new QFilter("id", QCP.in,finOrgInfoIds));
}
}
}
}
}

View File

@ -0,0 +1,80 @@
package kdsz.zyf25.tmc.cfm.plugin.form.cdm;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.form.FormShowParameter;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
import org.apache.commons.lang3.StringUtils;
import java.util.EventObject;
/**
* 票据管理开票/收票登记开票申请票据类型根据单据发布应用决定票据类型过滤默认票据类型
*/
public class CdmBillTypeBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
private static final String XZY_NUM = "CDMT-8D5DCE08";//票据类型信用证编码
private static final String GYL_NUM = "CDMT-25826125";//票据类型供应链金融编码
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
//信用证供应链金融 票据类型赋默认值
String billTypeNum = "";
switch (appId){
//信用证
case "kdsz_lcm":
billTypeNum = XZY_NUM;
break;
//供应链金融
case "kdsz_scmf":
billTypeNum = GYL_NUM;
break;
}
if (StringUtils.isNotBlank(billTypeNum)){
DynamicObject billType = BusinessDataServiceHelper.loadSingle("cdm_billtype", "id",
new QFilter[]{new QFilter("number", QCP.equals, billTypeNum)});
if (billType != null) {
this.getModel().setValue("draftbilltype", billType);
}else {
this.getView().showMessage("编码为:"+billTypeNum+"的票据类型不存在");
}
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
String propertyName = beforeF7SelectEvent.getProperty().getName();
if ("draftbilltype".equals(propertyName)) {
QFilter filter = null;
if ("kdsz_lcm".equals(appId)){
filter = new QFilter("number", QCP.equals, XZY_NUM);
} else if ("kdsz_scmf".equals(appId)) {
filter = new QFilter("number", QCP.equals, GYL_NUM);
} else if ("cdm".equals(appId)) {
filter = new QFilter("number", QCP.not_equals, GYL_NUM)
.and("number", QCP.not_equals, XZY_NUM);
}
if (filter != null){
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
formShowParameter.getListFilterParameter().getQFilters().add(filter);
}
}
}
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
// 侦听票据类型
BasedataEdit fieldEdit = this.getView().getControl("draftbilltype");
fieldEdit.addBeforeF7SelectListener(this);
}
}

View File

@ -0,0 +1,34 @@
package kdsz.zyf25.tmc.cfm.plugin.form.cdm;
import kd.bos.form.FormShowParameter;
import kd.bos.form.events.SetFilterEvent;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.sdk.plugin.Plugin;
/**
* 票据管理开票/收票登记开票申请票据类型根据单据发布应用决定票据类型过滤默认票据类型
*/
public class CdmBillTypeFilterListPlugin extends AbstractListPlugin implements Plugin {
private static final String XZY_NUM = "CDMT-8D5DCE08";//票据类型信用证编码
private static final String GYL_NUM = "CDMT-25826125";//票据类型供应链金融编码
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
QFilter filter = null;
if ("kdsz_lcm".equals(appId)){
filter = new QFilter("draftbilltype.number", QCP.equals, XZY_NUM);
} else if ("kdsz_scmf".equals(appId)) {
filter = new QFilter("draftbilltype.number", QCP.equals, GYL_NUM);
} else if ("cdm".equals(appId)) {
filter = new QFilter("draftbilltype.number", QCP.not_equals, GYL_NUM)
.and("draftbilltype.number", QCP.not_equals, XZY_NUM);
}
if (filter != null){
e.getQFilters().add(filter);
}
}
}

View File

@ -0,0 +1,39 @@
package kdsz.zyf25.tmc.cfm.plugin.form.cfm;
import kd.bos.form.FormShowParameter;
import kd.bos.form.events.SetFilterEvent;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.sdk.plugin.Plugin;
/**
* 用信管理银行借款下涉及融资品种的进行非银保理过滤
*/
public class BankLoanFilterListPlugin extends AbstractListPlugin implements Plugin {
private static final String FYBL_NUM= "RZPZ-031";//非银保理编码
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
String formId = showParameter.getFormId();
String financingKey = "";//融资品种过滤key
if ("cfm_rateadjustbill".equals(formId)){
financingKey = "loancontractbill.finproduct.number";
}else {
financingKey = "finproduct.number";
}
QFilter filter = null;
//非银保理管理
if ("kdsz_factoringm".equals(appId)){
filter = new QFilter(financingKey, QCP.equals, FYBL_NUM);
} else if ("cfm".equals(appId)) {
filter = new QFilter(financingKey, QCP.not_equals, FYBL_NUM);
}
if (filter != null){
e.getQFilters().add(filter);
}
}
}

View File

@ -0,0 +1,68 @@
package kdsz.zyf25.tmc.cfm.plugin.form.cfm;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.form.FormShowParameter;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.EventObject;
/**
* 用信申请表单插件控制融资品种债权人类型
*/
public class BankLoanFinancingBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
private static final String FYBL_NUM= "RZPZ-031";//非银保理编码
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
QFilter filter = null;
//非银保理管理
if ("kdsz_factoringm".equals(appId)){
filter = new QFilter("number", QCP.not_equals, FYBL_NUM).and("enable", QCP.equals, "1");
DynamicObject fybl = BusinessDataServiceHelper.loadSingle("cfm_financingvarieties", "id", new QFilter[]{filter});
if (fybl != null) {
this.getModel().setValue("finproduct", fybl);
}else {
this.getView().showMessage("编码为:"+ FYBL_NUM +"且状态为:可用的融资品种不存在");
}
this.getModel().setValue("creditortype","finorg");//债权人类型默认非银金融机构
}
}
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
// 侦听票据类型
BasedataEdit fieldEdit = this.getView().getControl("finproduct");
fieldEdit.addBeforeF7SelectListener(this);
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
String propertyName = beforeF7SelectEvent.getProperty().getName();
QFilter filter = null;
if ("finproduct".equals(propertyName)){
//非银保理管理
if ("kdsz_factoringm".equals(appId)){
filter = new QFilter("number", QCP.equals, FYBL_NUM);
} else if ("cfm".equals(appId)) {
filter = new QFilter("number", QCP.not_equals, FYBL_NUM);
}
if (filter != null){
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
formShowParameter.getListFilterParameter().getQFilters().add(filter);
}
}
}
}

View File

@ -1,11 +0,0 @@
package kdsz.zyf25.tmc.cfm.plugin.form;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.sdk.plugin.Plugin;
/**
* 动态表单插件
*/
public class finOrgInfoFiltrationListPlugin extends AbstractFormPlugin implements Plugin {
}