企业成本核算表单插件获取数据优化子分录取数与分录取数逻辑

This commit is contained in:
xuhaihui 2025-09-30 14:00:10 +08:00
parent b18d4b68ee
commit 8a8d012064
1 changed files with 14 additions and 1 deletions

View File

@ -61,6 +61,12 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn {
Map<String, DynamicObject> summaryMap = new HashMap<>();
for (DynamicObject rptAssistBalanceGx : rptAssistBalanceGxCollection) {
Object debitLocal = rptAssistBalanceGx.get("zcgj_debitlocal");//本期发生借方
if (debitLocal == null ||
(debitLocal instanceof BigDecimal && ((BigDecimal) debitLocal).compareTo(BigDecimal.ZERO) <= 0) ||
(debitLocal instanceof String && ((String) debitLocal).equals("0"))) {
continue;
}
QFilter[] qFilter = new QFilter[]{new QFilter("id", QCP.equals, rptAssistBalanceGx.get("zcgj_account"))};//科目ID
DynamicObject bd_accountview = BusinessDataServiceHelper.loadSingle("bd_accountview",
"id,number,name", qFilter);//"会计科目"
@ -103,12 +109,18 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn {
if (existingEntry != null) {
// 如果已存在相同key的记录则累加成本金额
Object existingAmount = existingEntry.get("costamount");
Object newAmount = rptAssistBalanceGx.get("zcgj_debitlocal");
Object newAmount = rptAssistBalanceGx.get("zcgj_debitlocal");//本期发生借方
// 进行金额累加
BigDecimal totalAmount = new BigDecimal(existingAmount != null ? existingAmount.toString() : "0")
.add(new BigDecimal(newAmount != null ? newAmount.toString() : "0"));
existingEntry.set("costamount", totalAmount);
// 同时更新子分录的金额
DynamicObject subEntry = existingEntry.getDynamicObjectCollection("zcgj_subentryentity").get(0);
if (subEntry != null) {
subEntry.set("zcgj_costamount", totalAmount);
}
} else {
// 如果不存在相同key的记录则创建新记录
DynamicObject newEntry = new DynamicObject(entryType);
@ -146,6 +158,7 @@ public class EntCostSplitBillPlugin extends AbstractBillPlugIn {
newEntrySubEntryEntity.set("zcgj_sectype1", zcgj_accountcost.get("zcgj_acccostentry.zcgj_sectype"));//二级分类
}
newEntry.set("costamount", rptAssistBalanceGx.get("zcgj_debitlocal"));//成本金额
newEntrySubEntryEntity.set("zcgj_costamount", rptAssistBalanceGx.get("zcgj_debitlocal"));//成本金额
summaryMap.put(uniqueKey, newEntry);
subEntryEntityCollection.add(newEntrySubEntryEntity);