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) {