Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
zhangzhiguo 2026-01-04 17:42:52 +08:00
commit b25fb32389
4 changed files with 144 additions and 2 deletions

View File

@ -157,6 +157,23 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
} else if (StringUtils.equals(name, "zcgj_bolttype")) { } else if (StringUtils.equals(name, "zcgj_bolttype")) {
//冲销类型 //冲销类型
Object newValue = changeData.getNewValue();//新值 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_expensereversal = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录
DynamicObjectCollection zcgj_performrec = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_performrec");//冲销履约记录分录 DynamicObjectCollection zcgj_performrec = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_performrec");//冲销履约记录分录
if (newValue == null || newValue.equals("30")) { if (newValue == null || newValue.equals("30")) {
@ -167,7 +184,7 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
} else if (newValue.equals("20")) { } else if (newValue.equals("20")) {
zcgj_performrec.clear(); zcgj_performrec.clear();
} }
this.getView().updateView("zcgj_expensereversal"); this.getView().updateView("zcgj_expensereversal");//刷新分录
this.getView().updateView("zcgj_performrec"); this.getView().updateView("zcgj_performrec");
} else if (StringUtils.equals(name, "zcgj_contract")) { } else if (StringUtils.equals(name, "zcgj_contract")) {
//合同名称 //合同名称
@ -242,6 +259,8 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
this.addItemClickListeners("zcgj_entrytoolbar1111"); this.addItemClickListeners("zcgj_entrytoolbar1111");
EntryGrid entryGrid = this.getView().getControl("zcgj_performrec");//冲销履约记录 EntryGrid entryGrid = this.getView().getControl("zcgj_performrec");//冲销履约记录
entryGrid.addHyperClickListener(this); entryGrid.addHyperClickListener(this);
EntryGrid zcgj_expensereversal = this.getView().getControl("zcgj_expensereversal");//冲销支出结算
zcgj_expensereversal.addHyperClickListener(this);
} }
@Override @Override
@ -285,6 +304,25 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage); listShowParameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId); dailyLoanBillDataIds.forEach(listShowParameter::addLinkQueryPkId);
this.getView().showForm(listShowParameter); 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

@ -0,0 +1,52 @@
package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.control.events.ItemClickEvent;
import java.math.BigDecimal;
import java.util.EventObject;
/**
* 收入合同履约记录表单插件
*/
public class PerFormRecordsBillPlugin extends AbstractBillPlugIn {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
this.addItemClickListeners("advcontoolbarap");
}
@Override
public void itemClick(ItemClickEvent evt) {
super.itemClick(evt);
String itemKey = evt.getItemKey();
if (itemKey.equals("deleteline")) {
//事务记录明细删行
EntryGrid entryGrid = (EntryGrid) this.getControl("entryentity");
BigDecimal amount = entryGrid.getSum("amount").abs();//价税合计
this.getModel().setValue("zcgj_taxperformeamou", amount);//含税履约金额
BigDecimal notaxamount = entryGrid.getSum("notaxamount").abs();//金额
this.getModel().setValue("zcgj_performamount", notaxamount);//履约金额不含税
BigDecimal tax = entryGrid.getSum("tax").abs();//税额
this.getModel().setValue("zcgj_taxamount", tax);//履约税额
}
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
String propName = e.getProperty().getName();
if ("amount".equals(propName) || "notaxamount".equals(propName) || "tax".equals(propName)) {
//价税合计,金额,税额
EntryGrid entryGrid = (EntryGrid) this.getControl("entryentity");
BigDecimal amount = entryGrid.getSum("amount").abs();//价税合计
this.getModel().setValue("zcgj_taxperformeamou", amount);//含税履约金额
BigDecimal notaxamount = entryGrid.getSum("notaxamount").abs();//金额
this.getModel().setValue("zcgj_performamount", notaxamount);//履约金额不含税
BigDecimal tax = entryGrid.getSum("tax").abs();//税额
this.getModel().setValue("zcgj_taxamount", tax);//履约税额
}
}
}

View File

@ -15,7 +15,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 收入财务确认单反写收入合同履约记录已冲销金额 * 收入财务确认单反写收入合同履约记录已冲销金额和支出合同结算已冲销金额
*/ */
public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn { public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn {
@ -24,6 +24,9 @@ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn {
e.getFieldKeys().add("zcgj_performrec");//冲销履约记录分录 e.getFieldKeys().add("zcgj_performrec");//冲销履约记录分录
e.getFieldKeys().add("zcgj_performrec.zcgj_thisreversalamount");//本次冲销金额 e.getFieldKeys().add("zcgj_performrec.zcgj_thisreversalamount");//本次冲销金额
e.getFieldKeys().add("zcgj_performrec.zcgj_performrecid");//来源单据id-收入合同履约记录id 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");//冲销类型 e.getFieldKeys().add("zcgj_bolttype");//冲销类型
} }
@ -63,6 +66,21 @@ public class FinaceConfirmRevWriteAmtOp extends AbstractOperationServicePlugIn {
} }
} else if ("20".equals(zcgj_bolttype)) { } 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});
}
} }
} }
} }

View File

@ -0,0 +1,34 @@
package zcgj.zcdev.zcdev.pr.plugin.other;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
import kd.bos.entity.botp.plugin.args.AfterBuildDrawFilterEventArgs;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import java.util.ArrayList;
import java.util.List;
/**
* 收入财务确认上拉支出合同结算botp插件
*/
public class FinanceConfirmOutContractPlugin extends AbstractConvertPlugIn {
@Override
public void afterBuildDrawFilter(AfterBuildDrawFilterEventArgs e) {
//选单过滤
super.afterBuildDrawFilter(e);
DynamicObject targetDataEntity = e.getTargetDataEntity();//当前数据包
DynamicObjectCollection expenseReversalCollection = targetDataEntity.getDynamicObjectCollection("zcgj_expensereversal");//冲销支出结算分录
List<Long> ids = new ArrayList<>();
for (DynamicObject expenseReversa : expenseReversalCollection) {
long zcgj_expensereversaid = expenseReversa.getLong("zcgj_expensereversaid");
ids.add(zcgj_expensereversaid);
}
QFilter filter = new QFilter("id", QCP.not_in, ids);
DynamicObject zcgj_contract = targetDataEntity.getDynamicObject("zcgj_contract");//合同名称
DynamicObject project = zcgj_contract.getDynamicObject("project");
filter = filter.and(new QFilter("project", QCP.equals, project.getPkValue()));
e.setPlugFilter(filter);
}
}