123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package fi.em.editPlugin;
- import kd.bos.dataentity.entity.DynamicObjectCollection;
- 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 TripreimBurseEditPlugin extends AbstractListPlugin implements Plugin {
- public static String btn_NOTICE = "donothing"; //操作
- public static String btn_NOTICES = "bxdtc"; //操作标识
- public static String nckd_agentparameterf1 = "nckd_agentparameterf1";//动因参数动态列表
- private static String bos_org = "bos_org"; //组织
- private static String er_expenseitemedit="er_expenseitemedit";//差旅报销单标识
- @Override
- public void afterDoOperation(AfterDoOperationEventArgs e) {
- String operateKey = e.getOperateKey();
- if (btn_NOTICES.equals(e.getOperateKey())) {
- Object value = this.getModel().getValue("costcompany");//获取当前单据费用公司
- DynamicObject entrycostcompanyWait = (DynamicObject)value;
- String orgnumber = entrycostcompanyWait.getString("number");//公司编码
- String orgid = entrycostcompanyWait.getString("id");//公司id
- Object creator=this.getModel().getValue("creator");//获取当前创建人
- Object costdept=this.getModel().getValue("costdept");//获取当前费用承担部门
- DynamicObject creatorWait=(DynamicObject) creator;
- DynamicObject costdeptWait=(DynamicObject) costdept;
- String creatorNumber=creatorWait.getString("number");//创建人编码
- String costdeptNumber=costdeptWait.getString("number");//费用承担部门编码
- if (orgnumber == null){
- throw new KDBizException("付费承担公司为空!");
- }
- showParameter(nckd_agentparameterf1, btn_NOTICE,orgnumber,orgid,creatorNumber,costdeptNumber);//调用弹出页面
- }
- }
- @Override
- public void closedCallBack(ClosedCallBackEvent e) {
- super.closedCallBack(e);
- if (StringUtils.equals(btn_NOTICE, e.getActionId()) && null != e.getReturnData()) {
- //父页面返回参数
- HashMap<String, String> returnData = (HashMap<String, String>) e.getReturnData();
- String reJaStr = returnData.get("reJaStr");
- //判断空
- if (StringUtils.isNotBlank(reJaStr)) {
- //删除分录信息
- this.getModel().deleteEntryData("clearloanentry");
- JSONArray reJa = JSONArray.parseArray(reJaStr);//返回信息数组
- //循环返回数组插入分录
- for(int i =0;i<reJa.size();i++){
- //当前循环行
- JSONObject reJo = reJa.getJSONObject(i);
- //获取费用承担部门
- String entrycostdept = reJo.getString("nckd_entrycostdept");
- QFilter entrycostdept_filter=new QFilter("number", QFilter.equals,entrycostdept);
- DynamicObject nckd_entrycostdept=BusinessDataServiceHelper.loadSingle(bos_org,"id,entrycostdept",new QFilter[]{entrycostdept_filter});
- //获取费用项目
- String expenseitem=reJo.getString("nckd_expenseitem");
- QFilter expenseitem_filter=new QFilter("number", QFilter.equals,expenseitem);
- DynamicObject nckd_expenseitem=BusinessDataServiceHelper.loadSingle(er_expenseitemedit,"id,expenseitem",new QFilter[]{expenseitem_filter});
- //申请金额
- BigDecimal expenseamount=reJo.getBigDecimal("nckd_expenseamount");
- //结算金额
- BigDecimal exporiusedamount=reJo.getBigDecimal("nckd_exporiusedamount");
- //未结算金额
- BigDecimal orgiexpebalanceamount=reJo.getBigDecimal("nckd_unexporiusedamount");
- //备注
- String remark=reJo.getString("nckd_remark");
- //借款单编号
- String loanbillno=reJo.getString("nckd_billno");
- //新增分录行
- int rowIndex = this.getModel().createNewEntryRow("nckd_clearloanentry");
- this.getModel().setValue("nckd_entrycostdept",nckd_entrycostdept,rowIndex);//费用承担部门
- this.getModel().setValue("nckd_expenseitem",nckd_expenseitem,rowIndex);//费用项目
- this.getModel().setValue("nckd_expenseamount",expenseamount,rowIndex);//申请金额
- this.getModel().setValue("nckd_exporiusedamount",exporiusedamount,rowIndex);//结算金额
- this.getModel().setValue("nckd_unexporiusedamount",orgiexpebalanceamount,rowIndex);//未结算金额
- this.getModel().setValue("nckd_remark",remark,rowIndex);//备注
- this.getModel().setValue("nckd_billno",loanbillno,rowIndex);
- }
- //刷新分录
- this.getView().updateView("nckd_clearloanentry");
- }
- }
- }
- //弹窗
- public void showParameter(String formId, String actionId,String orgnumber,String orgid,
- String creatorNumber,String costdeptNumber) {
- //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
- FormShowParameter ShowParameter = new FormShowParameter();
- //ListShowParameter ShowParameter = new ListShowParameter();
- ShowParameter.setCustomParam("orgnumber", orgnumber);
- ShowParameter.setCustomParam("orgid", orgid);
- ShowParameter.setCustomParam("creatorNumber",creatorNumber);
- ShowParameter.setCustomParam("costdeptNumber",costdeptNumber);
- //设置弹出页面的编码
- ShowParameter.setFormId(formId);
- // ShowParameter.setCaption();
- //设置弹出页面标题
- ShowParameter.setCaption("预付单选择");
- //设置页面关闭回调方法
- //CloseCallBack参数:回调插件,回调标识 btnok
- ShowParameter.setCloseCallBack(new CloseCallBack(this, actionId));
- //设置弹出页面打开方式,支持模态,新标签等
- ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
- //弹出页面对象赋值给父页面
- this.getView().showForm(ShowParameter);
- }
- }
|