package fi.em.formPlugin; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.exception.KDBizException; import kd.bos.form.CloseCallBack; import kd.bos.form.FormShowParameter; import kd.bos.form.ShowType; import kd.bos.form.events.AfterDoOperationEventArgs; import kd.bos.form.events.ClosedCallBackEvent; import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.sdk.plugin.Plugin; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.servicehelper.BusinessDataServiceHelper; import org.apache.commons.lang3.StringUtils; import java.math.BigDecimal; import java.util.HashMap; public class CostAllocationEditPlugin extends AbstractListPlugin implements Plugin { public static String btn_NOTICE = "donothing"; //操作 public static String btn_NOTICES = "bxddyz"; //操作 public static String nckd_agentparameterf7 = "nckd_agentparameterf7";//动因参数动态列表 private static String bos_org = "bos_org"; //组织 @Override public void afterDoOperation(AfterDoOperationEventArgs e) { String operateKey = e.getOperateKey(); if (btn_NOTICE.equals(e.getOperateKey())) { //切换付款方 Object value = this.getModel().getValue("costcompany");//获取当前单据费用公司 DynamicObjectCollection expenseentryentityWait = this.getModel().getEntryEntity("expenseentryentity_wait"); DynamicObject dynamicObject = expenseentryentityWait.get(0); DynamicObject entrycostcompanyWait = dynamicObject.getDynamicObject("entrycostcompany_wait"); if(entrycostcompanyWait==null){ throw new KDBizException("待摊明细分录为空!"); } String orgnumber = entrycostcompanyWait.getString("number");//公司编码 String orgid = entrycostcompanyWait.getString("id");//公司id if (orgnumber == null){ throw new KDBizException("付费承担公司为空!"); } showParameter(nckd_agentparameterf7, btn_NOTICE,orgnumber,orgid);//调用弹出页面 }else if (btn_NOTICES.equals(e.getOperateKey())) { //切换收款方 Object value = this.getModel().getValue("costcompany");//获取当前单据费用公司 DynamicObject expenseentryentityWait = (DynamicObject)value; // DynamicObject dynamicObject = expenseentryentityWait.get(0); // DynamicObject entrycostcompanyWait = dynamicObject.getDynamicObject("entrycostcompany_wait"); if(expenseentryentityWait==null){ throw new KDBizException("承担公司为空!"); } String orgnumber = expenseentryentityWait.getString("number");//公司编码 String orgid = expenseentryentityWait.getString("id");//公司id if (orgnumber == null){ throw new KDBizException("付费承担公司为空!"); } showParameter(nckd_agentparameterf7, btn_NOTICE,orgnumber,orgid);//调用弹出页面 } } @Override public void closedCallBack(ClosedCallBackEvent e) { super.closedCallBack(e); if (StringUtils.equals(btn_NOTICE, e.getActionId()) && null != e.getReturnData()) { //父页面返回参数 HashMap returnData = (HashMap) e.getReturnData(); String reJaStr = returnData.get("reJaStr"); //判断空 if (StringUtils.isNotBlank(reJaStr)) { //删除分录信息 this.getModel().deleteEntryData("expenseentryentity_rule"); JSONArray reJa = JSONArray.parseArray(reJaStr);//返回信息数组 BigDecimal sum = new BigDecimal(0);//动因参数总和 //循环计算sum for(int a =0;a