收入财务确认单优化支出合同结算已冲销金额逻辑

This commit is contained in:
xuhaihui 2026-01-04 17:15:56 +08:00
parent 250f79c628
commit b5e489c585
2 changed files with 57 additions and 1 deletions

View File

@ -157,6 +157,23 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
} else if (StringUtils.equals(name, "zcgj_bolttype")) {
//冲销类型
Object newValue = changeData.getNewValue();//新值
if ("30".equals(newValue)) {
//无冲销
this.getView().setVisible(false, "zcgj_advconap21");//隐藏冲销支出结算分录
this.getView().setVisible(false, "zcgj_advconap211");//隐藏冲销履约记录分录
} else if ("10".equals(newValue)) {
//冲销合同履约
this.getView().setVisible(true, "zcgj_advconap211");//显示冲销履约记录分录
this.getView().setVisible(false, "zcgj_advconap21");//隐藏冲销支出结算分录
} else if ("20".equals(newValue)) {
//冲销支出结算
this.getView().setVisible(false, "zcgj_advconap211");//隐藏冲销履约记录分录
this.getView().setVisible(true, "zcgj_advconap21");//显示冲销支出结算分录
} else if ("40".equals(newValue)) {
//冲销合同履约&&冲销支出结算
this.getView().setVisible(true, "zcgj_advconap211");//显示冲销履约记录分录
this.getView().setVisible(true, "zcgj_advconap21");//显示冲销支出结算分录
}
DynamicObjectCollection zcgj_expensereversal = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录
DynamicObjectCollection zcgj_performrec = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_performrec");//冲销履约记录分录
if (newValue == null || newValue.equals("30")) {
@ -242,6 +259,8 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
this.addItemClickListeners("zcgj_entrytoolbar1111");
EntryGrid entryGrid = this.getView().getControl("zcgj_performrec");//冲销履约记录
entryGrid.addHyperClickListener(this);
EntryGrid zcgj_expensereversal = this.getView().getControl("zcgj_expensereversal");//冲销支出结算
zcgj_expensereversal.addHyperClickListener(this);
}
@Override
@ -285,6 +304,25 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId);
this.getView().showForm(listShowParameter);
} else if (StringUtils.equals(fieldName, "zcgj_alreadyboltamount")) {
//冲销支出结算-已冲销金额
List<Long> dailyLoanBillDataIds = new ArrayList<>();
int rowIndex = hyperLinkClickEvent.getRowIndex();
DynamicObjectCollection expenseReversalCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算
DynamicObject expenseReversal = expenseReversalCollection.get(rowIndex);
long zcgj_expensereversaid = expenseReversal.getLong("zcgj_expensereversaid");
QFilter filter = new QFilter("zcgj_expensereversal.zcgj_expensereversaid", QCP.equals, zcgj_expensereversaid);
filter.and(new QFilter("billstatus", QCP.equals, "C"));
DynamicObjectCollection zcgj_ec_in_finaceconfirms = QueryServiceHelper.query("zcgj_ec_in_finaceconfirm", "id", new QFilter[]{filter});
for (DynamicObject zcgj_ec_in_finaceconfirm : zcgj_ec_in_finaceconfirms) {
dailyLoanBillDataIds.add((Long) zcgj_ec_in_finaceconfirm.get("id"));
}
ListShowParameter listShowParameter = new ListShowParameter();
listShowParameter.setFormId("bos_list"); //列表界面
listShowParameter.setBillFormId("zcgj_ec_in_finaceconfirm"); //单据的标识
listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId);
this.getView().showForm(listShowParameter);
}
}

View File

@ -15,7 +15,7 @@ import java.util.ArrayList;
import java.util.List;
/**
* 收入财务确认单反写收入合同履约记录已冲销金额
* 收入财务确认单反写收入合同履约记录已冲销金额和支出合同结算已冲销金额
*/
public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn {
@ -24,6 +24,9 @@ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn {
e.getFieldKeys().add("zcgj_performrec");//冲销履约记录分录
e.getFieldKeys().add("zcgj_performrec.zcgj_thisreversalamount");//本次冲销金额
e.getFieldKeys().add("zcgj_performrec.zcgj_performrecid");//来源单据id-收入合同履约记录id
e.getFieldKeys().add("zcgj_expensereversal");//冲销支出结算分录
e.getFieldKeys().add("zcgj_expensereversal.zcgj_boltamount");//本次冲销金额
e.getFieldKeys().add("zcgj_expensereversal.zcgj_expensereversaid");//来源单据id-支出合同结算id
e.getFieldKeys().add("zcgj_bolttype");//冲销类型
}
@ -63,6 +66,21 @@ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn {
}
} else if ("20".equals(zcgj_bolttype)) {
//冲销业主支出结算
DynamicObjectCollection expenseReversalCollection = dataEntity.getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录
for (DynamicObject expenseReversal : expenseReversalCollection) {
BigDecimal zcgj_boltamount = expenseReversal.getBigDecimal("zcgj_boltamount");//本次冲销金额
long zcgj_expensereversaid = expenseReversal.getLong("zcgj_expensereversaid");//来源单据id-支出合同结算id
QFilter[] qFilters = new QFilter[]{new QFilter("id", QCP.equals, zcgj_expensereversaid)};
DynamicObject ec_out_contract_settle = BusinessDataServiceHelper.loadSingle("ec_out_contract_settle", "id,zcgj_taxinclcontractrev", qFilters);//支出合同结算
BigDecimal zcgj_taxinclcontractrev = ec_out_contract_settle.getBigDecimal("zcgj_taxinclcontractrev");//含税合同金额已冲销
if (isAudit) {
zcgj_taxinclcontractrev = zcgj_taxinclcontractrev.add(zcgj_boltamount);
} else {
zcgj_taxinclcontractrev = zcgj_taxinclcontractrev.subtract(zcgj_boltamount);
}
ec_out_contract_settle.set("zcgj_taxinclcontractrev", zcgj_taxinclcontractrev);//含税履约金额已冲销
SaveServiceHelper.save(new DynamicObject[]{ec_out_contract_settle});
}
}
}
}