package tqq9.lc123.cloud.app.plugin.operate.cas; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.plugin.AbstractOperationServicePlugIn; import kd.bos.entity.plugin.args.AfterOperationArgs; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; import kd.sdk.plugin.Plugin; import java.math.BigDecimal; /** * 采购订单操作插件 * 1.反审核插件:付款计划分录对应付款单的已结算金额转化为未结算金额 */ public class PurOrderUnReversePayBillPlugin extends AbstractOperationServicePlugIn implements Plugin { @Override public void afterExecuteOperationTransaction(AfterOperationArgs e) { super.afterExecuteOperationTransaction(e); DynamicObject[] dataEntities = e.getDataEntities(); for (DynamicObject dataEntity : dataEntities) { String billno = dataEntity.getString("billno"); //查询采购订单 DynamicObject purorderbill = BusinessDataServiceHelper.loadSingle("pm_purorderbill", new QFilter[]{new QFilter("billno", QCP.equals, billno)}); //获取付款计划分录 DynamicObjectCollection purbillentry_pay = purorderbill.getDynamicObjectCollection("purbillentry_pay"); for (DynamicObject dynamicObject : purbillentry_pay) { String tqq9_paybillno = dynamicObject.getString("tqq9_paybillno"); //查询付款单 DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{new QFilter("billno", QCP.equals, tqq9_paybillno)}); if (paybill != null) { //获取付款明细分录 DynamicObjectCollection entries = paybill.getDynamicObjectCollection("entry"); BigDecimal settleamount = paybill.getBigDecimal("settleamount");//已结算金额 BigDecimal settleamountbase = paybill.getBigDecimal("settleamountbase");//已结算金额(本位币) //单头已结算金额转化为未结算金额 paybill.set("settleamount", BigDecimal.ZERO); paybill.set("settleamountbase", BigDecimal.ZERO); paybill.set("unsettleamount", settleamount);//未结算金额 paybill.set("unsettleamountbase", settleamountbase);//已结算金额(本位币) for (DynamicObject entry : entries) { BigDecimal e_settledamt = entry.getBigDecimal("e_settledamt");//已结算金额 BigDecimal e_settledlocalamt = entry.getBigDecimal("e_settledlocalamt");//已结算金额折本币 //分录已结算金额转化为未结算金额 entry.set("e_settledamt", BigDecimal.ZERO); entry.set("e_settledlocalamt", BigDecimal.ZERO); entry.set("e_unsettledamt", e_settledamt);//未结算金额 entry.set("e_unsettledlocalamt", e_settledlocalamt);//未结算金额折本币 } paybill.set("entry", entries); SaveServiceHelper.save(new DynamicObject[]{paybill});// } } } } } }