From 7ad00cc96757790bf1ca688545b9da4252b2f796 Mon Sep 17 00:00:00 2001 From: ggxl <194689125@qq.com> Date: Mon, 14 Apr 2025 15:56:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96=E5=88=86?= =?UTF-8?q?=E5=BD=95=E4=B8=BA=E7=A9=BABUG=E3=80=81=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=AD=97=E6=AE=B5=E6=A0=87=E8=AF=86-?= =?UTF-8?q?=E9=BE=9A=E5=AE=87=E6=9D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/GetExpenseStandardPlugin.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/main/java/zf47/jdgz1/fi/em/plugin/form/GetExpenseStandardPlugin.java b/src/main/java/zf47/jdgz1/fi/em/plugin/form/GetExpenseStandardPlugin.java index d89097c..080667a 100644 --- a/src/main/java/zf47/jdgz1/fi/em/plugin/form/GetExpenseStandardPlugin.java +++ b/src/main/java/zf47/jdgz1/fi/em/plugin/form/GetExpenseStandardPlugin.java @@ -30,9 +30,9 @@ public class GetExpenseStandardPlugin extends AbstractBillPlugIn implements Plug @Override public void propertyChanged(PropertyChangedArgs e) { IDataModel model = this.getModel(); - DynamicObject bill = model.getDataEntity(); + DynamicObject bill = model.getDataEntity(true); - String reimburseType = bill.getString("reimburseType"); + String reimburseType = bill.getString("zf47_reimburse_type");// 报账类型 if (reimburseType == null || reimburseType.isEmpty()) return; DynamicObjectCollection expenseEntries = bill.getDynamicObjectCollection("expenseentryentity");// 费用明细分录 @@ -71,6 +71,7 @@ public class GetExpenseStandardPlugin extends AbstractBillPlugIn implements Plug } String changeName = e.getProperty().getName(); + log.info("GetExpenseStandardPlugin:值更新字段标识(" + changeName + ")"); if (headFields.contains(changeName)) {//值更新字段在单据头 for (int i = 0; i < expenseEntries.size(); i++) { DynamicObject expenseEntry = expenseEntries.get(i); @@ -83,11 +84,11 @@ public class GetExpenseStandardPlugin extends AbstractBillPlugIn implements Plug } } else { model.setValue("zf47_expense_standards", BigDecimal.ZERO, i); - model.setValue("fk_zf47_standard_unit", "", i); + model.setValue("zf47_standard_unit", "", i); } } } - } else if (entryFields.contains(changeName)) {//值更新字段在费用明细分录 + } else if (entryFields.contains(changeName) || "expenseitem".equals(changeName)) {//值更新字段在费用明细分录 int rowIndex = e.getChangeSet()[0].getRowIndex(); DynamicObject expenseEntry = expenseEntries.get(rowIndex); DynamicObject expenseItem = expenseEntry.getDynamicObject("expenseitem"); @@ -99,27 +100,30 @@ public class GetExpenseStandardPlugin extends AbstractBillPlugIn implements Plug } } else { model.setValue("zf47_expense_standards", BigDecimal.ZERO, rowIndex); - model.setValue("fk_zf47_standard_unit", "", rowIndex); + model.setValue("zf47_standard_unit", "", rowIndex); } } + } else { + log.warn("GetExpenseStandardPlugin:值更新字段(" + changeName + ")不在HeadFields(" + headFields + ")、EntryFields(" + entryFields + ")"); } } /** * 根据报账类型、费用项目编码组成的过滤条件从费用标准配置表中取值,并一一与分录对象进行比较,最终获取到对应的费用标准和标准单位,组成HashMap集合并返回 - * @param entryFields 费用明细分录字段标识集合 + * + * @param entryFields 费用明细分录字段标识集合 * @param reimburseType 报账类型 - * @param expenseItem 费用项目编码 - * @param expenseEntry 费用明细分录对象 + * @param expenseItem 费用项目编码 + * @param expenseEntry 费用明细分录对象 */ private HashMap getExpenseStandard(ArrayList entryFields, String reimburseType, String expenseItem, DynamicObject expenseEntry) { HashMap result = new HashMap<>(); QFilter filter = new QFilter("zf47_reimburse_type", QCP.equals, reimburseType) .and(new QFilter("zf47_expense_item.number", QCP.equals, expenseItem)); - DynamicObject[] standardConfigIds = BusinessDataServiceHelper.load("zf47_exp_standard_conf","id", filter.toArray()); + DynamicObject[] standardConfigIds = BusinessDataServiceHelper.load("zf47_exp_standard_conf", "id", filter.toArray()); if (standardConfigIds == null || standardConfigIds.length == 0) { - log.info("GetExpenseStandardPlugin:根据reimburseType:"+reimburseType+"、expenseItem:"+expenseItem+",没有获取到费用标准"); + log.info("GetExpenseStandardPlugin:根据reimburseType:" + reimburseType + "、expenseItem:" + expenseItem + ",没有获取到费用标准"); return null; } @@ -137,15 +141,14 @@ public class GetExpenseStandardPlugin extends AbstractBillPlugIn implements Plug /** * 遍历费用明细分录字段标识集合,从两个对象中取值判断是否相等,都相等则符合该标准返回true - * @param entryFields 费用明细分录字段标识集合 - * @param expenseEntry 费用明细分录对象 + * + * @param entryFields 费用明细分录字段标识集合 + * @param expenseEntry 费用明细分录对象 * @param standardConfig 费用标准配置对象 */ private boolean isAccordWithExpenseStandards(ArrayList entryFields, DynamicObject expenseEntry, DynamicObject standardConfig) { int num = 0; for (String entryField : entryFields) { - if ("zf47_expense_item".equals(entryField)) continue; - Object object1 = expenseEntry.get(entryField); Object object2 = standardConfig.get(entryField); if (object1 == null && object2 == null) {