|
@@ -0,0 +1,113 @@
|
|
|
+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 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("id", 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);
|
|
|
+
|
|
|
+ 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});
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ } else if ("B".equals(detailtype)){
|
|
|
+ for (DynamicObject entryentity : info.getDynamicObjectCollection("nckd_entryentity2")) {
|
|
|
+ String nckdBigintfield = entryentity.getString("nckd_bigintfield");
|
|
|
+ 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", 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);
|
|
|
+
|
|
|
+ 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});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|