123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package fi.em.opplugin;
- import com.alibaba.fastjson.JSONObject;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
- import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
- import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
- 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.fi.cas.helper.CasBotpHelper;
- import java.math.BigDecimal;
- public class BusinessProcessingSaveOpPlugin extends AbstractOperationServicePlugIn {
- // @Override
- // public void beginOperationTransaction(BeginOperationTransactionArgs e) {
- // //获取当前操作单据数组11
- // DynamicObject[] dynamicObjects = e.getDataEntities();
- // for (int i = 0; i < dynamicObjects.length; i++) {
- // JSONObject object = new JSONObject();
- // //当前单头数据包
- // DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- // String detailtype = info.getString("nckd_detailtype");
- // if("B".equals(detailtype)){
- // for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
- // String nckdBigintfield = entryentity.getString("nckd_bigintfield");
- // CasBotpHelper.saveRelation("ap_finapbill", Long.valueOf(nckdBigintfield), "nckd_ywcld", info.getLong("id"));
- // }
- // }
- // }
- // }
- @Override
- public void endOperationTransaction(EndOperationTransactionArgs e) {
- super.endOperationTransaction(e);
- //获取当前操作单据数组
- DynamicObject[] dynamicObjects = e.getDataEntities();
- for (int i = 0; i < dynamicObjects.length; i++) {
- JSONObject object = new JSONObject();
- //当前单头数据包
- DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- String detailtype = info.getString("nckd_detailtype");
- if("A".equals(detailtype)){
- for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity1")) {
- String nckdcysnumber = entryentity.getString("nckd_cysnumber");//财务应收单编码
- BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_cyscxbalance");//冲销金额
- //构建查询应收挂账单参数
- QFilter nckd_orgamountFilter = new QFilter("billno", QCP.equals,nckdcysnumber);
- DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ar_finarbill", "id", new QFilter[]{nckd_orgamountFilter});
- DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
- BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount");//未结算金额
- BigDecimal settleamount = dynamicObject.getBigDecimal("settleamount");//已结算金额
- BigDecimal recamount = dynamicObject.getBigDecimal("recamount");//应收金额
- unsettleamount=unsettleamount.subtract(nckdCyscxbalance);//计算后反写未结算金额
- settleamount=settleamount.add(nckdCyscxbalance);//已结算+本次冲销金额
- settleamount=recamount.subtract(settleamount);//计算后反写已结算金额
- //set反写字段
- dynamicObject.set("unsettleamount",unsettleamount);//财务应收单未结算金额
- dynamicObject.set("unsettlelocalamt",unsettleamount);//财务应收单未结算金额本位币
- dynamicObject.set("unverifyamount",unsettleamount);//财务应收单未核销金额本位币
- dynamicObject.set("settleamount",settleamount);//财务应收单已结算金额
- dynamicObject.set("settlelocalamt",settleamount);//财务应收单已结算金额本位币
- SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
- }
- for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity3")) {
- String nckdpzhthth = entryentity.getString("nckd_pzhthth");//租赁合同编号
- BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_pzhtcxbalance");//冲销金额
- //构建查询应收挂账单参数
- QFilter nckd_orgamountFilter = new QFilter("number", QCP.equals,nckdpzhthth);
- DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
- DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
- BigDecimal nckdamountfield = dynamicObject.getBigDecimal("nckd_amountfield");//已收款金额
- BigDecimal nckdamountfield1 = dynamicObject.getBigDecimal("nckd_amountfield1");//收款余额
- nckdamountfield=nckdamountfield.add(nckdCyscxbalance);//计算后反写已收款金额
- nckdamountfield1=nckdamountfield1.subtract(nckdCyscxbalance);//收款余额+本次冲销金额
- //set反写字段
- dynamicObject.set("nckd_amountfield",nckdamountfield);//财务应收单未结算金额
- dynamicObject.set("nckd_amountfield1",nckdamountfield1);//财务应收单未结算金额本位币
- SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
- }
- } else if ("B".equals(detailtype)){
- for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
- String nckdBigintfield = entryentity.getString("nckd_bigintfield");//财务应付单id
- BigDecimal nckdCyscxbalance = entryentity.getBigDecimal("nckd_cyfcxbalance");//冲销金额
- //构建查询应收挂账单参数
- QFilter nckd_orgamountFilter = new QFilter("id", QCP.equals,Long.valueOf(nckdBigintfield));
- DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ap_finapbill", "id,supplier.number,", new QFilter[]{nckd_orgamountFilter});
- DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[0].getPkValue(), nckd_cas_arbill[0].getDynamicObjectType().getName());
- BigDecimal unsettleamount = dynamicObject.getBigDecimal("unsettleamount");//未结算金额
- BigDecimal settleamount = dynamicObject.getBigDecimal("settleamount");//已结算金额
- BigDecimal pricetaxtotal = dynamicObject.getBigDecimal("pricetaxtotal");//应收金额
- unsettleamount=unsettleamount.subtract(nckdCyscxbalance);//计算后反写未结算金额
- settleamount=settleamount.add(nckdCyscxbalance);//已结算+本次冲销金额
- settleamount=pricetaxtotal.subtract(settleamount);//计算后反写已结算金额
- //set反写字段
- dynamicObject.set("unsettleamount",unsettleamount);//财务应收单未结算金额
- dynamicObject.set("unsettleamountbase",unsettleamount);//财务应收单未结算金额本位币
- dynamicObject.set("unverifyamount",unsettleamount);//财务应收单未核销金额本位币
- dynamicObject.set("settleamount",settleamount);//财务应收单已结算金额
- dynamicObject.set("settleamountbase",settleamount);//财务应收单已结算金额本位币
- SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
- }
- }
- }
- }
- }
|