1、对公报销表单插件:默认值,列表插件设置过滤条件

2、部分操作插件添加onPreparePropertys
This commit is contained in:
XiangLingFeng 2025-12-17 14:06:09 +08:00
parent 6bcb892378
commit 501fb59533
5 changed files with 107 additions and 2 deletions

View File

@ -0,0 +1,61 @@
package kdsz.zyf25.tmc.cfm.plugin.form.fi;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.RowDataEntity;
import kd.bos.entity.datamodel.events.AfterAddRowEventArgs;
import kd.bos.entity.property.EntryProp;
import kd.bos.form.FormShowParameter;
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;
import static kd.bos.form.ClientActions.insertRow;
/**
* 对公报销在在供应链金融新增时默认
*/
public class PublicReimburseDefaultBillPlugin extends AbstractBillPlugIn implements Plugin {
private static final String TYPE_GYL = "kdsz_scmf";//应用编码_供应链金融
private static final String DEFAULT_EXPENSE_NUM = "FYXM26.05";//费用项目默认财务费用.金融利息支出
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
if (TYPE_GYL.equals(appId)) {
this.getModel().setValue("kdsz_jxinvoicetype", TYPE_GYL);
DynamicObject expense = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id",
new QFilter[]{new QFilter("number", QCP.equals, DEFAULT_EXPENSE_NUM)});
if (expense != null){
this.getModel().setValue("expenseitem",expense,0);
}
}
}
@Override
public void afterAddRow(AfterAddRowEventArgs e) {
super.afterAddRow(e);
EntryProp entryProp = e.getEntryProp();
String name = entryProp.getName();
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
if (TYPE_GYL.equals(appId)) {
if ("expenseentryentity".equals(name)){
RowDataEntity[] rowDatas = e.getRowDataEntities();
DynamicObject expense = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id",
new QFilter[]{new QFilter("number", QCP.equals, DEFAULT_EXPENSE_NUM)});
if (expense != null){
for (RowDataEntity rowData : rowDatas) {
int rowIndex = rowData.getRowIndex();
this.getModel().setValue("expenseitem",expense,rowIndex);
}
}
}
}
}
}

View File

@ -0,0 +1,27 @@
package kdsz.zyf25.tmc.cfm.plugin.form.fi;
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 PublicReimburseFilterListPlugin extends AbstractListPlugin implements Plugin {
private static final String TYPE_GYL = "kdsz_scmf";//应用编码_供应链金融
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
if (TYPE_GYL.equals(appId)){
e.getQFilters().add(new QFilter("kdsz_jxinvoicetype", QCP.equals, appId));
}else {
e.getQFilters().add(new QFilter("kdsz_jxinvoicetype", QCP.not_equals, TYPE_GYL));
}
}
}

View File

@ -55,7 +55,6 @@ public class CdmInterestAccrualPlugin extends AbstractOperationServicePlugIn imp
e.getFieldKeys().add("kdsz_payentry.kdsz_interestbillstatus");
e.getFieldKeys().add("kdsz_payentry.kdsz_valuedate");
e.getFieldKeys().add("kdsz_payentry.kdsz_settledate");
e.getFieldKeys().add("kdsz_payentry.kdsz_paydate");
}
@Override

View File

@ -25,7 +25,7 @@ public class InterestAccrualDeletePlugin extends AbstractOperationServicePlugIn
super.onPreparePropertys(e);
e.getFieldKeys().add("kdsz_srcentity");
e.getFieldKeys().add("kdsz_srcbillid");
e.getFieldKeys().add("id");
e.getFieldKeys().add("billno");
e.getFieldKeys().add("entryentity.kdsz_e_paybill");
}

View File

@ -10,6 +10,7 @@ import kd.bos.entity.operate.result.IOperateInfo;
import kd.bos.entity.operate.result.OperationResult;
import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
import kd.bos.entity.plugin.AddValidatorsEventArgs;
import kd.bos.entity.plugin.PreparePropertysEventArgs;
import kd.bos.entity.plugin.args.BeforeOperationArgs;
import kd.bos.entity.validate.AbstractValidator;
import kd.bos.i18n.mservice.I18nServiceHelper;
@ -61,6 +62,22 @@ public class InterestAccrualGenPaymentOperationPlugin extends AbstractOperationS
throw new RuntimeException("未找到编码为【JSFS04】的结算方式【电汇财资");
}
}
@Override
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("billno");
e.getFieldKeys().add("org");
e.getFieldKeys().add("kdsz_currency");
e.getFieldKeys().add("kdsz_paybank");
e.getFieldKeys().add("kdsz_bankaccnum");
e.getFieldKeys().add("kdsz_oppbebank");
e.getFieldKeys().add("kdsz_oppbankacc");
e.getFieldKeys().add("kdsz_oppunit");
e.getFieldKeys().add("entryentity.kdsz_e_paybill");
e.getFieldKeys().add("entryentity.kdsz_e_paybillid");
}
@Override
public void onAddValidators(AddValidatorsEventArgs e) {
e.addValidator(new AbstractValidator() {
@ -239,6 +256,7 @@ public class InterestAccrualGenPaymentOperationPlugin extends AbstractOperationS
DynamicObjectCollection jxEntries = JxBill.getDynamicObjectCollection("entryentity");
for (int selectRow : selectRows) {
jxEntries.get(selectRow).set("kdsz_e_paybill",payBill);
jxEntries.get(selectRow).set("kdsz_e_paybillid",payBill.getPkValue());
}
SaveServiceHelper.update(JxBill);
//反写计息的源单