From d7705ab3b2fa0a76ad923ad8cf3c878a13b64d18 Mon Sep 17 00:00:00 2001
From: XiangLingFeng <1518871916@qq.com>
Date: Fri, 19 Dec 2025 14:00:12 +0800
Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E6=8E=A8=E8=AE=A1=E6=81=AF=E5=8D=95?=
=?UTF-8?q?=E3=80=81=E4=BB=98=E6=AC=BE=E5=8D=95=E5=8F=8A=E9=80=86=E5=90=91?=
=?UTF-8?q?=E5=88=A0=E9=99=A4=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=E4=B8=BA=E9=80=82=E9=85=8D=E5=A4=9A=E7=A7=8D=E6=BA=90?=
=?UTF-8?q?=E5=8D=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../kdsz/zyf25/tmc/cfm/common/AppConfig.java | 12 ++++-
.../form/cdm/CdmBillTypeFilterListPlugin.java | 6 +--
.../cdm/InterestAccrualFilterListPlugin.java | 29 ++++++++++++
.../cdm/InterestAccrualLookUpBillPlugin.java | 9 +++-
.../form/cfm/BankLoanFilterListPlugin.java | 10 ++--
.../form/cfm/BankLoanFinancingBillPlugin.java | 6 +--
.../plugin/form/fi/PaymentF7ListPlugin.java | 28 +++++++++++
.../fi/PublicReimburseFilterListPlugin.java | 7 ++-
.../operate/CdmInterestAccrualPlugin.java | 36 +++++++++-----
.../operate/InterestAccrualDeletePlugin.java | 35 +++++++-------
...erestAccrualGenPaymentOperationPlugin.java | 47 +++++++++----------
.../PaymentBillDeleteLkOperationPlugin.java | 43 +++++++++--------
.../PublicReimburseAuditOperationPlugin.java | 3 +-
...PublicReimburseUnAuditOperationPlugin.java | 3 +-
14 files changed, 182 insertions(+), 92 deletions(-)
create mode 100644 code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualFilterListPlugin.java
create mode 100644 code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PaymentF7ListPlugin.java
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/common/AppConfig.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/common/AppConfig.java
index 0140080..d7a4df3 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/common/AppConfig.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/common/AppConfig.java
@@ -7,6 +7,8 @@
*/
package kdsz.zyf25.tmc.cfm.common;
+import java.util.HashMap;
+
/**
* tmc云cfm应用-通用常量类
* 代码中不能存在硬编码敏感信息,如账号、密码、http外链、ftp外链、邮箱等。
@@ -21,12 +23,20 @@ public class AppConfig {
public static final String DEFAULT_XZY_NUM = "CDMT-8D5DCE08";//票据类型:信用证编码
public static final String DEFAULT_GYL_NUM = "CDMT-25826125";//票据类型:供应链金融编码
+ public static final String DEFAULT_FYBL_NUM= "RZPZ-031";//非银保理编码
+
public static final String KEY_TYPE_XYZ = "kdsz_lcm";//应用编码_信用证
public static final String KEY_TYPE_GYL = "kdsz_scmf";//应用编码_供应链金融
public static final String KEY_TYPE_PJCOMMON = "cdm";//应用编码_票据管理
- public static final String DEFAULT_FYBL_NUM= "RZPZ-031";//非银保理编码
+ public static final String KEY_TYPE_FYBL = "kdsz_factoringm";//应用编码_票据管理
public static final String KEY_TYPE_DB = "gm";//应用编码_担保管理
public static final String KEY_TYPE_YX = "cfm";//应用编码_用信申请
+ public static HashMap appOriEntityMap = new HashMap<>();//下推计息的源单标识与所属应用的map
+ static {
+ appOriEntityMap.put(KEY_TYPE_XYZ, "cdm_payablebill");//信用证管理:开票登记
+ appOriEntityMap.put(KEY_TYPE_GYL, "cdm_payablebill");//供应链金融:开票登记
+ appOriEntityMap.put(KEY_TYPE_DB, "gm_guaranteecontract");//担保管理:担保合同
+ }
}
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/CdmBillTypeFilterListPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/CdmBillTypeFilterListPlugin.java
index 3eb7efc..f255447 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/CdmBillTypeFilterListPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/CdmBillTypeFilterListPlugin.java
@@ -18,11 +18,11 @@ public class CdmBillTypeFilterListPlugin extends AbstractListPlugin implements P
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
QFilter filter = null;
- if ("kdsz_lcm".equals(appId)){
+ if (AppConfig.KEY_TYPE_XYZ.equals(appId)){
filter = new QFilter("draftbilltype.number", QCP.equals, AppConfig.DEFAULT_XZY_NUM);
- } else if ("kdsz_scmf".equals(appId)) {
+ } else if (AppConfig.KEY_TYPE_GYL.equals(appId)) {
filter = new QFilter("draftbilltype.number", QCP.equals, AppConfig.DEFAULT_GYL_NUM);
- } else if ("cdm".equals(appId)) {
+ } else if (AppConfig.KEY_TYPE_PJCOMMON.equals(appId)) {
filter = new QFilter("draftbilltype.number", QCP.not_equals, AppConfig.DEFAULT_GYL_NUM)
.and("draftbilltype.number", QCP.not_equals, AppConfig.DEFAULT_XZY_NUM);
}
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualFilterListPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualFilterListPlugin.java
new file mode 100644
index 0000000..5ae7356
--- /dev/null
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualFilterListPlugin.java
@@ -0,0 +1,29 @@
+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;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
+
+import java.util.HashMap;
+
+/**
+ * 计息但列表过滤插件
+ */
+public class InterestAccrualFilterListPlugin extends AbstractListPlugin implements Plugin {
+ @Override
+ public void setFilter(SetFilterEvent e) {
+ super.setFilter(e);
+ FormShowParameter showParameter = this.getView().getFormShowParameter();
+ String appId = showParameter.getAppId();
+ HashMap appOriEntityMap = AppConfig.appOriEntityMap;
+ if (appOriEntityMap.containsKey(appId)){
+ e.getQFilters().add(new QFilter("kdsz_srcapp", QCP.equals, appId));
+ }else {
+ e.getQFilters().add(new QFilter("kdsz_srcapp", QCP.not_in, appOriEntityMap.keySet()));
+ }
+ }
+}
\ No newline at end of file
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java
index 9bd5925..a582cd3 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java
@@ -5,6 +5,7 @@ import kd.bos.bill.BillShowParameter;
import kd.bos.bill.OperationStatus;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.form.FormShowParameter;
import kd.bos.form.ShowType;
import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.list.ListFilterParameter;
@@ -13,8 +14,10 @@ import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.QueryServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
import java.util.EventObject;
+import java.util.HashMap;
import java.util.HashSet;
/**
@@ -41,6 +44,8 @@ public class InterestAccrualLookUpBillPlugin extends AbstractBillPlugIn implemen
this.getView().showMessage("暂无源单,可能已被删除");
return;
}
+ HashMap appOriEntityMap = AppConfig.appOriEntityMap;
+ String srcApp = (String) this.getModel().getValue("kdsz_srcapp");
HashSet srcBillIds = new HashSet<>();
for (DynamicObject feeBill : feeBills) {
srcBillIds.add(feeBill.getLong("srcbillid"));
@@ -49,7 +54,7 @@ public class InterestAccrualLookUpBillPlugin extends AbstractBillPlugIn implemen
Long[] srcBillArray = srcBillIds.toArray(new Long[0]);
//打开单据
BillShowParameter billShowParameter = new BillShowParameter();
- billShowParameter.setFormId("cdm_payablebill");
+ billShowParameter.setFormId(appOriEntityMap.get(srcApp));
billShowParameter.setPkId(srcBillArray[0]);//单据内码
billShowParameter.getOpenStyle().setShowType(ShowType.Modal);
billShowParameter.setStatus(OperationStatus.EDIT);
@@ -57,7 +62,7 @@ public class InterestAccrualLookUpBillPlugin extends AbstractBillPlugIn implemen
} else {
//打开列表
ListShowParameter listShowParameter = new ListShowParameter();
- listShowParameter.setFormId("cdm_payablebill");
+ listShowParameter.setFormId(appOriEntityMap.get(srcApp));
ListFilterParameter listFilterParameter = new ListFilterParameter();
listFilterParameter.setFilter(new QFilter("id",QCP.in,srcBillIds));
listShowParameter.setListFilterParameter(listFilterParameter);
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFilterListPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFilterListPlugin.java
index a5c1289..987476e 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFilterListPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFilterListPlugin.java
@@ -1,7 +1,7 @@
package kdsz.zyf25.tmc.cfm.plugin.form.cfm;
-import kd.bos.form.FormShowParameter;
import kd.bos.form.events.SetFilterEvent;
+import kd.bos.list.ListShowParameter;
import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
@@ -16,9 +16,9 @@ public class BankLoanFilterListPlugin extends AbstractListPlugin implements Plug
@Override
public void setFilter(SetFilterEvent e) {
super.setFilter(e);
- FormShowParameter showParameter = this.getView().getFormShowParameter();
+ ListShowParameter showParameter = (ListShowParameter)this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
- String formId = showParameter.getFormId();
+ String formId = showParameter.getBillFormId();
String financingKey = "";//融资品种过滤key
if ("cfm_rateadjustbill".equals(formId)){
financingKey = "loancontractbill.finproduct.number";
@@ -27,9 +27,9 @@ public class BankLoanFilterListPlugin extends AbstractListPlugin implements Plug
}
QFilter filter = null;
//非银保理管理
- if ("kdsz_factoringm".equals(appId)){
+ if (AppConfig.KEY_TYPE_FYBL.equals(appId)){
filter = new QFilter(financingKey, QCP.equals, AppConfig.DEFAULT_FYBL_NUM);
- } else if ("cfm".equals(appId)) {
+ } else if (AppConfig.KEY_TYPE_YX.equals(appId)) {
filter = new QFilter(financingKey, QCP.not_equals, AppConfig.DEFAULT_FYBL_NUM);
}
if (filter != null){
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFinancingBillPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFinancingBillPlugin.java
index 5b15b45..9ec0239 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFinancingBillPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cfm/BankLoanFinancingBillPlugin.java
@@ -26,7 +26,7 @@ public class BankLoanFinancingBillPlugin extends AbstractBillPlugIn implements P
String appId = showParameter.getAppId();
QFilter filter = null;
//非银保理管理
- if ("kdsz_factoringm".equals(appId)){
+ if (AppConfig.KEY_TYPE_FYBL.equals(appId)){
filter = new QFilter("number", QCP.equals, AppConfig.DEFAULT_FYBL_NUM).and("enable", QCP.equals, "1");
DynamicObject fybl = BusinessDataServiceHelper.loadSingle("cfm_financingvarieties", "id", new QFilter[]{filter});
if (fybl != null) {
@@ -54,9 +54,9 @@ public class BankLoanFinancingBillPlugin extends AbstractBillPlugIn implements P
QFilter filter = null;
if ("finproduct".equals(propertyName)){
//非银保理管理
- if ("kdsz_factoringm".equals(appId)){
+ if (AppConfig.KEY_TYPE_FYBL.equals(appId)){
filter = new QFilter("number", QCP.equals, AppConfig.DEFAULT_FYBL_NUM);
- } else if ("cfm".equals(appId)) {
+ } else if (AppConfig.KEY_TYPE_YX.equals(appId)) {
filter = new QFilter("number", QCP.not_equals, AppConfig.DEFAULT_FYBL_NUM);
}
if (filter != null){
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PaymentF7ListPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PaymentF7ListPlugin.java
new file mode 100644
index 0000000..2866480
--- /dev/null
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PaymentF7ListPlugin.java
@@ -0,0 +1,28 @@
+package kdsz.zyf25.tmc.cfm.plugin.form.fi;
+
+import kd.bos.form.FormShowParameter;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.sdk.plugin.Plugin;
+
+import java.util.EventObject;
+
+/**
+ * 付款处理F7列表过滤
+ */
+public class PaymentF7ListPlugin extends AbstractListPlugin implements Plugin {
+ @Override
+ public void afterCreateNewData(EventObject e) {
+ super.afterCreateNewData(e);
+ FormShowParameter showParameter = this.getView().getFormShowParameter();
+ String appId = showParameter.getAppId();
+ if (appId.equals("kdsz_scmf")) {
+ this.getModel().setValue("isshowdisabled",true);
+ }
+ }
+
+ @Override
+ public void afterBindData(EventObject e) {
+ super.afterBindData(e);
+
+ }
+}
\ No newline at end of file
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PublicReimburseFilterListPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PublicReimburseFilterListPlugin.java
index 2290948..9e50b40 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PublicReimburseFilterListPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/fi/PublicReimburseFilterListPlugin.java
@@ -8,6 +8,8 @@ import kd.bos.orm.query.QFilter;
import kd.sdk.plugin.Plugin;
import kdsz.zyf25.tmc.cfm.common.AppConfig;
+import java.util.HashMap;
+
/**
* 对公报销单在供应链金融列表过滤
*/
@@ -18,10 +20,11 @@ public class PublicReimburseFilterListPlugin extends AbstractListPlugin implemen
super.setFilter(e);
FormShowParameter showParameter = this.getView().getFormShowParameter();
String appId = showParameter.getAppId();
- if (AppConfig.KEY_TYPE_GYL.equals(appId)){
+ HashMap appOriEntityMap = AppConfig.appOriEntityMap;
+ if (appOriEntityMap.containsKey(appId)){
e.getQFilters().add(new QFilter("kdsz_jxinvoicetype", QCP.equals, appId));
}else {
- e.getQFilters().add(new QFilter("kdsz_jxinvoicetype", QCP.not_equals, AppConfig.KEY_TYPE_GYL));
+ e.getQFilters().add(new QFilter("kdsz_jxinvoicetype", QCP.not_in, appOriEntityMap.keySet()));
}
}
}
\ No newline at end of file
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/CdmInterestAccrualPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/CdmInterestAccrualPlugin.java
index ff87f84..79269fd 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/CdmInterestAccrualPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/CdmInterestAccrualPlugin.java
@@ -16,6 +16,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,8 +48,14 @@ public class CdmInterestAccrualPlugin extends AbstractOperationServicePlugIn imp
public void onPreparePropertys(PreparePropertysEventArgs e) {
super.onPreparePropertys(e);
e.getFieldKeys().add("billno");
- e.getFieldKeys().add("issuedate");
- e.getFieldKeys().add("draftbillexpiredate");
+ String appNumber = this.getOption().getVariableValue("appnumber");
+ if (AppConfig.KEY_TYPE_GYL.equals(appNumber) || AppConfig.KEY_TYPE_XYZ.equals(appNumber)){
+ e.getFieldKeys().add("issuedate");
+ e.getFieldKeys().add("draftbillexpiredate");
+ } else if (AppConfig.KEY_TYPE_DB.equals(appNumber)) {
+ e.getFieldKeys().add("begindate");
+ e.getFieldKeys().add("enddate");
+ }
e.getFieldKeys().add("kdsz_payentry.kdsz_interestbill");
e.getFieldKeys().add("kdsz_payentry.kdsz_interestbillno");
e.getFieldKeys().add("kdsz_payentry.kdsz_interestbillid");
@@ -61,10 +68,22 @@ public class CdmInterestAccrualPlugin extends AbstractOperationServicePlugIn imp
public void beforeExecuteOperationTransaction(BeforeOperationArgs e) {
super.beforeExecuteOperationTransaction(e);
DynamicObject[] bills = e.getDataEntities();
+ //不同单据开始、结束时间标识不一致
+ String appNumber = this.getOption().getVariableValue("appnumber");
+ String startDateKey = "";
+ String endDateKey = "";
+ if (AppConfig.KEY_TYPE_GYL.equals(appNumber) || AppConfig.KEY_TYPE_XYZ.equals(appNumber)){
+ startDateKey = "issuedate";
+ endDateKey = "draftbillexpiredate";
+ } else if (AppConfig.KEY_TYPE_DB.equals(appNumber)) {
+ startDateKey = "begindate";
+ endDateKey = "enddate";
+ }
+ AppConfig.appOriEntityMap.get(appNumber);
for (DynamicObject bill : bills) {
String billNo = bill.getString("billno");
- Date issueDate = bill.getDate("issuedate");//出票日
- Date draftbillexpireDate = bill.getDate("draftbillexpiredate");//票据到期日
+ Date issueDate = bill.getDate(startDateKey);//出票日
+ Date draftbillexpireDate = bill.getDate(endDateKey);//票据到期日
//生成计息单除费用明细外的参数
HashMap dataMap = new HashMap<>();
dataMap.put("issueDate",issueDate);
@@ -107,15 +126,6 @@ public class CdmInterestAccrualPlugin extends AbstractOperationServicePlugIn imp
}
SaveServiceHelper.update(feeBills);
}
-// else {
-// //部分生成则删除
-// OperationResult deleteResult = deleteBills(successPkIds);
-// if (!deleteResult.isSuccess()){
-// logger.info("应付票据:" + billNo + "下推计息单部分成功的单据删除失败!");
-// }else {
-// logger.info("应付票据:" + billNo + "下推计息单部分成功的单据删除成功!");
-// }
-// }
}else {
List errors = result.getAllErrorOrValidateInfo();
StringBuilder errorStr = new StringBuilder();
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualDeletePlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualDeletePlugin.java
index 64424a3..e228595 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualDeletePlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualDeletePlugin.java
@@ -12,6 +12,7 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
import org.apache.commons.lang3.StringUtils;
import java.util.HashSet;
@@ -71,29 +72,27 @@ public class InterestAccrualDeletePlugin extends AbstractOperationServicePlugIn
}
//根据费用明细分录的上游id查询上游单据的付息记录并将本条计息单的记录删除
QFilter filter = new QFilter("id", "in", srcBillIds);
- // TODO: 2025/12/10 暂时定为开票登记
Long id = bill.getLong("id");
- DynamicObject[] srcBills = BusinessDataServiceHelper.load("cdm_payablebill",
- "id,kdsz_payentry.kdsz_interestbillid", new QFilter[]{filter});
- for (DynamicObject srcBill : srcBills) {
- DynamicObjectCollection srcPayEntries = srcBill.getDynamicObjectCollection("kdsz_payentry");
- if (srcPayEntries != null){
- Iterator iterator = srcPayEntries.iterator();
- while (iterator.hasNext()){
- DynamicObject next = iterator.next();
- Long srcJXBillId = next.getLong("kdsz_interestbillid");
- if (srcJXBillId.compareTo( id) == 0){
- iterator.remove();
+ String appNum = this.getOption().getVariableValue("appnumber");//当前应用
+ String oriEntityKey = AppConfig.appOriEntityMap.get(appNum);
+ if (StringUtils.isNotBlank(oriEntityKey)){
+ DynamicObject[] srcBills = BusinessDataServiceHelper.load(oriEntityKey,
+ "id,kdsz_payentry.kdsz_interestbillid", new QFilter[]{filter});
+ for (DynamicObject srcBill : srcBills) {
+ DynamicObjectCollection srcPayEntries = srcBill.getDynamicObjectCollection("kdsz_payentry");
+ if (srcPayEntries != null){
+ Iterator iterator = srcPayEntries.iterator();
+ while (iterator.hasNext()){
+ DynamicObject next = iterator.next();
+ Long srcJXBillId = next.getLong("kdsz_interestbillid");
+ if (srcJXBillId.compareTo( id) == 0){
+ iterator.remove();
+ }
}
}
}
+ SaveServiceHelper.save(srcBills);
}
-// String srcApp = bill.getString("kdsz_srcapp");//来源应用
-// String oriBillNo = bill.getString("kdsz_originbillno");//触发生成计息的单据单号
-// if (StringUtils.isNotBlank(srcApp) && StringUtils.isNotBlank(oriBillNo)){
-// BusinessDataServiceHelper.loadSingle("","")
-// }
- SaveServiceHelper.save(srcBills);
}
}
}
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualGenPaymentOperationPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualGenPaymentOperationPlugin.java
index f1a1106..a238585 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualGenPaymentOperationPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/InterestAccrualGenPaymentOperationPlugin.java
@@ -21,6 +21,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.OperationServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -268,32 +269,30 @@ public class InterestAccrualGenPaymentOperationPlugin extends AbstractOperationS
SaveServiceHelper.update(JxBill);
//反写计息的源单
// TODO: 2025/12/11 暂定为开票登记
-// String payableBillSelectStr = "kdsz_payentry.kdsz_interestbillid,kdsz_payentry.kdsz_paylinkentry," +
-// "kdsz_payentry.kdsz_paylinkentry.kdsz_paymentbill,kdsz_payentry.kdsz_paylinkentry.seq," +
-// "kdsz_payentry.kdsz_paylinkentry.kdsz_paybillid,kdsz_payentry.kdsz_paylinkentry.kdsz_paybillno," +
-// "kdsz_payentry.kdsz_paylinkentry.kdsz_netinterestpaid";
-// DynamicObject[] payableBills = BusinessDataServiceHelper.load("cdm_payablebill", payableBillSelectStr,
-// new QFilter[]{new QFilter("kdsz_payentry.kdsz_interestbillid", QCP.equals, JxBill.getPkValue())});
- DynamicObject[] payableBills = BusinessDataServiceHelper.load("cdm_payablebill", "id",
- new QFilter[]{new QFilter("kdsz_payentry.kdsz_interestbillid", QCP.equals, JxBill.getPkValue())});
- for (int i = 0; i < payableBills.length; i++) {
- payableBills[i] = BusinessDataServiceHelper.loadSingle(payableBills[i].getPkValue(), "cdm_payablebill");
- DynamicObjectCollection payEntries = payableBills[i].getDynamicObjectCollection("kdsz_payentry");
- for (DynamicObject payEntry : payEntries) {
- long lk_jxBillId = payEntry.getLong("kdsz_interestbillid");
- long JxId = JxBill.getLong("id");
- if (lk_jxBillId == JxId){
- DynamicObjectCollection payLkEntries = payEntry.getDynamicObjectCollection("kdsz_paylinkentry");
- int size = payLkEntries.size();
- DynamicObject newLkEntry = payLkEntries.addNew();
- newLkEntry.set("seq",size);
- newLkEntry.set("kdsz_paymentbill",payBill);
- newLkEntry.set("kdsz_paybillno",payBill.getString("billno"));
- newLkEntry.set("kdsz_paybillid",payBill.getPkValue());
- newLkEntry.set("kdsz_netinterestpaid",payBill.getBigDecimal("actpayamt"));
+ String appNum = this.getOption().getVariableValue("appnumber");//当前应用
+ String oriEntityKey = AppConfig.appOriEntityMap.get(appNum);
+ if (StringUtils.isNotBlank(oriEntityKey)){
+ DynamicObject[] oriBills = BusinessDataServiceHelper.load(oriEntityKey, "id",
+ new QFilter[]{new QFilter("kdsz_payentry.kdsz_interestbillid", QCP.equals, JxBill.getPkValue())});
+ for (int i = 0; i < oriBills.length; i++) {
+ oriBills[i] = BusinessDataServiceHelper.loadSingle(oriBills[i].getPkValue(), oriEntityKey);
+ DynamicObjectCollection payEntries = oriBills[i].getDynamicObjectCollection("kdsz_payentry");
+ for (DynamicObject payEntry : payEntries) {
+ long lk_jxBillId = payEntry.getLong("kdsz_interestbillid");
+ long JxId = JxBill.getLong("id");
+ if (lk_jxBillId == JxId){
+ DynamicObjectCollection payLkEntries = payEntry.getDynamicObjectCollection("kdsz_paylinkentry");
+ int size = payLkEntries.size();
+ DynamicObject newLkEntry = payLkEntries.addNew();
+ newLkEntry.set("seq",size);
+ newLkEntry.set("kdsz_paymentbill",payBill);
+ newLkEntry.set("kdsz_paybillno",payBill.getString("billno"));
+ newLkEntry.set("kdsz_paybillid",payBill.getPkValue());
+ newLkEntry.set("kdsz_netinterestpaid",payBill.getBigDecimal("actpayamt"));
+ }
}
}
+ SaveServiceHelper.save(oriBills);
}
- SaveServiceHelper.save(payableBills);
}
}
\ No newline at end of file
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PaymentBillDeleteLkOperationPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PaymentBillDeleteLkOperationPlugin.java
index fdcfc88..0de0d5e 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PaymentBillDeleteLkOperationPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PaymentBillDeleteLkOperationPlugin.java
@@ -9,6 +9,8 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
+import org.apache.commons.lang3.StringUtils;
import java.util.HashSet;
import java.util.Iterator;
@@ -67,30 +69,33 @@ public class PaymentBillDeleteLkOperationPlugin extends AbstractOperationService
}
//根据费用明细分录的上游id查询上游单据的付息记录并将本条计息单的记录删除
QFilter filter = new QFilter("id", "in", oriBillIds);
- //TODO: 2025/12/10 暂时定为开票登记
- Long jxId = srcBill.getLong("id");//计息单id
- DynamicObject[] oriBills = BusinessDataServiceHelper.load("cdm_payablebill", "id",
- new QFilter[]{filter});
- for (int i = 0; i < oriBills.length; i++) {
- oriBills[i] = BusinessDataServiceHelper.loadSingle(oriBills[i].getPkValue(),"cdm_payablebill");
- DynamicObjectCollection srcPayEntries = oriBills[i].getDynamicObjectCollection("kdsz_payentry");
- for (DynamicObject srcPayEntry : srcPayEntries) {
- Long srcJXBillId = srcPayEntry.getLong("kdsz_interestbillid");
- if (srcJXBillId.compareTo( jxId) == 0){
- //获取计息关联付款分录
- DynamicObjectCollection jxLkPayEntries = srcPayEntry.getDynamicObjectCollection("kdsz_paylinkentry");
- Iterator iterator = jxLkPayEntries.iterator();
- while (iterator.hasNext()){
- DynamicObject next = iterator.next();
- long lkPayBillId = next.getLong("kdsz_paybillid");
- if (lkPayBillId == payBillId){
- iterator.remove();
+ String appNum = this.getOption().getVariableValue("appnumber");//当前应用
+ String oriEntityKey = AppConfig.appOriEntityMap.get(appNum);
+ if (StringUtils.isNotBlank(oriEntityKey)){
+ Long jxId = srcBill.getLong("id");//计息单id
+ DynamicObject[] oriBills = BusinessDataServiceHelper.load(oriEntityKey, "id",
+ new QFilter[]{filter});
+ for (int i = 0; i < oriBills.length; i++) {
+ oriBills[i] = BusinessDataServiceHelper.loadSingle(oriBills[i].getPkValue(),oriEntityKey);
+ DynamicObjectCollection srcPayEntries = oriBills[i].getDynamicObjectCollection("kdsz_payentry");
+ for (DynamicObject srcPayEntry : srcPayEntries) {
+ Long srcJXBillId = srcPayEntry.getLong("kdsz_interestbillid");
+ if (srcJXBillId.compareTo( jxId) == 0){
+ //获取计息关联付款分录
+ DynamicObjectCollection jxLkPayEntries = srcPayEntry.getDynamicObjectCollection("kdsz_paylinkentry");
+ Iterator iterator = jxLkPayEntries.iterator();
+ while (iterator.hasNext()){
+ DynamicObject next = iterator.next();
+ long lkPayBillId = next.getLong("kdsz_paybillid");
+ if (lkPayBillId == payBillId){
+ iterator.remove();
+ }
}
}
}
}
+ SaveServiceHelper.save(oriBills);
}
- SaveServiceHelper.save(oriBills);
}
}
}
\ No newline at end of file
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseAuditOperationPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseAuditOperationPlugin.java
index d51d2d7..5c01cf0 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseAuditOperationPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseAuditOperationPlugin.java
@@ -13,6 +13,7 @@ import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,7 +53,7 @@ public class PublicReimburseAuditOperationPlugin extends AbstractOperationServic
DynamicObject[] bills = e.getDataEntities();
for (DynamicObject bill : bills) {
String jxInvoiceType = bill.getString("kdsz_jxinvoicetype");
- if ("kdsz_scmf".equals(jxInvoiceType)){
+ if (AppConfig.appOriEntityMap.containsKey(jxInvoiceType)){
DynamicObjectCollection invoiceEntries = bill.getDynamicObjectCollection("invoiceentry");
if (invoiceEntries != null && invoiceEntries.size() > 0){
StringBuilder invoiceNumStr = new StringBuilder();
diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseUnAuditOperationPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseUnAuditOperationPlugin.java
index 90129c0..9f4ca50 100644
--- a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseUnAuditOperationPlugin.java
+++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/operate/PublicReimburseUnAuditOperationPlugin.java
@@ -13,6 +13,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.operation.DeleteServiceHelper;
import kd.bos.servicehelper.operation.SaveServiceHelper;
import kd.sdk.plugin.Plugin;
+import kdsz.zyf25.tmc.cfm.common.AppConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,7 +51,7 @@ public class PublicReimburseUnAuditOperationPlugin extends AbstractOperationServ
DynamicObject[] bills = e.getDataEntities();
for (DynamicObject bill : bills) {
String jxInvoiceType = bill.getString("kdsz_jxinvoicetype");
- if ("kdsz_scmf".equals(jxInvoiceType)) {
+ if (AppConfig.appOriEntityMap.containsKey(jxInvoiceType)) {
DynamicObjectCollection lkPayEntries = bill.getDynamicObjectCollection("kdsz_lkpaybillentry");
HashSet payBillIds = new HashSet<>();
for (DynamicObject lkPayEntry : lkPayEntries) {