123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package fi.em.opplugin;
- import com.alibaba.fastjson.JSONObject;
- import kd.bos.dataentity.entity.DynamicObject;
- import kd.bos.dataentity.entity.DynamicObjectCollection;
- import kd.bos.entity.EntityMetadataCache;
- import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
- import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
- import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
- import kd.bos.exception.KDBizException;
- import kd.bos.orm.query.QCP;
- import kd.bos.orm.query.QFilter;
- import kd.bos.servicehelper.BusinessDataServiceHelper;
- import kd.bos.servicehelper.operation.SaveServiceHelper;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.List;
- public class AmountOpPlugin extends AbstractOperationServicePlugIn {
- private static String er_prepaybill="er_prepaybill";
- @Override
- public void beginOperationTransaction(BeginOperationTransactionArgs e){
-
- DynamicObject[] dynamicObjects = e.getDataEntities();
- for (int i=0;i< dynamicObjects.length;i++)
- {
- DynamicObject info = BusinessDataServiceHelper.
- loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
- DynamicObjectCollection nckd_clearloanentry=info.getDynamicObjectCollection("nckd_clearloanentry");
-
- for (int j=0;j< nckd_clearloanentry.size();j++)
- {
-
- BigDecimal nckd_exporiusedamount=nckd_clearloanentry.get(i).getBigDecimal("nckd_exporiusedamount");
-
- BigDecimal orgiexpebalanceamount=nckd_clearloanentry.get(i).getBigDecimal("nckd_unexporiusedamount");
-
- if (orgiexpebalanceamount.compareTo(nckd_exporiusedamount)==1) {
- throw new KDBizException("第"+(j+1)+"行存在错误,冲销金额不能大于借款余额!");
- }else {
-
-
- Long id=nckd_clearloanentry.get(j).getLong("nckd_bigintfield");
-
- String nckd_billno=nckd_clearloanentry.get(j).getString("nckd_billno");
-
- QFilter nckd_orgamountFilter = new QFilter("billno", QCP.equals, nckd_billno);
-
- DynamicObject[] nckd_orgamountaccount = BusinessDataServiceHelper.
- load(er_prepaybill, "id,number", new QFilter[]{nckd_orgamountFilter});
- for (int c=0;c<nckd_orgamountaccount.length;c++)
- {
- DynamicObject dynamicObject=BusinessDataServiceHelper
- .loadSingle(nckd_orgamountaccount[c].getPkValue(),nckd_orgamountaccount[c].getDynamicObjectType().getName());
-
- DynamicObjectCollection expenseentryentity=dynamicObject.getDynamicObjectCollection("expenseentryentity");
- for (DynamicObject list:expenseentryentity) {
-
- Long listid=list.getLong("id");
-
- BigDecimal orgamount=list.getBigDecimal("orgiexpebalanceamount");
-
- BigDecimal nckd_unsettleamount_et=list.getBigDecimal("nckd_unsettleamount_et");
-
- BigDecimal nckd_settleamount_et=list.getBigDecimal("nckd_settleamount_et");
- if (listid.equals(id)) {
-
- list.set("orgiexpebalanceamount",orgamount.subtract(orgiexpebalanceamount));
-
- list.set("nckd_unsettleamount_et",nckd_unsettleamount_et.subtract(orgiexpebalanceamount));
-
- list.set("nckd_settleamount_et",nckd_settleamount_et.add(orgiexpebalanceamount));
- SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
- }
- }
- }
- }
- }
- }
- }
- }
|