Browse Source

移动端差旅报销单弹窗

zhouger 9 months ago
parent
commit
bda3e57e37

+ 151 - 0
src/main/java/fi/em/editPlugin/TripreimBurseMobEditPlugin.java

@@ -0,0 +1,151 @@
+package fi.em.editPlugin;
+
+import kd.bos.bill.AbstractMobBillPlugIn;
+import kd.bos.bill.MobileBillShowParameter;
+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.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 TripreimBurseMobEditPlugin extends AbstractMobBillPlugIn 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);//调用弹出页面
+
+            billShow(nckd_agentparameterf1,btn_NOTICE);
+
+        }
+    }
+
+    @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);
+    }
+
+    public void billShow(String formId,Object pk)
+    {
+        MobileBillShowParameter billShowParameter=new MobileBillShowParameter();
+        billShowParameter.getOpenStyle().setShowType(ShowType.Floating);
+        billShowParameter.setFormId(formId);
+        billShowParameter.setCloseCallBack(new CloseCallBack(this,formId));
+        billShowParameter.setPkId(pk);
+        getView().showForm(billShowParameter);
+
+    }
+}

+ 0 - 67
src/main/java/fi/em/editPlugin/TripreimburseMobEditPlugin.java

@@ -1,67 +0,0 @@
-package fi.em.editPlugin;
-
-import kd.bos.dataentity.entity.DynamicObject;
-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.plugin.AbstractMobFormPlugin;
-import kd.sdk.plugin.Plugin;
-
-/**
- * @author cjz
- * @date 2024/7/31 17:55
- * @description:差旅报销单移动端插件
- */
-public class TripreimburseMobEditPlugin extends AbstractMobFormPlugin implements Plugin {
-
-    public static String nckd_er_tripreimburse_ext_mob = "nckd_er_tripreimburse_ext_mob";//差旅报销单标识
-    public static String nckd_mobparameterf = "nckd_mobparameterf";//交付单选择弹窗
-    public static String btn_NOTICE = "donothing"; //操作
-    public static String btn_NOTICES = "bxdtc"; //操作标识
-
-
-    @Override
-    public void afterDoOperation(AfterDoOperationEventArgs e) {
-        String operateKey = e.getOperateKey();
-        if (btn_NOTICES.equals(operateKey)) {
-            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_mobparameterf, btn_NOTICE);//调用弹出页面
-
-        }
-    }
-    //弹窗
-    public void showParameter(String formId, String actionId) {
-        //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
-        FormShowParameter ShowParameter = new FormShowParameter();
-        //设置弹出页面的编码
-        ShowParameter.setFormId(formId);
-//        ShowParameter.setCaption();
-        //设置弹出页面标题
-        ShowParameter.setCaption("预付单选择");
-        //设置页面关闭回调方法
-        //CloseCallBack参数:回调插件,回调标识  btnok
-        ShowParameter.setCloseCallBack(new CloseCallBack(this, actionId));
-        //设置弹出页面打开方式,支持模态,新标签等
-        ShowParameter.getOpenStyle().setShowType(ShowType.Modal);
-        //弹出页面对象赋值给父页面
-        this.getView().showForm(ShowParameter);
-    }
-
-}

+ 1 - 1
src/main/java/fi/em/formPlugin/ReimbursementFormPlugin.java

@@ -16,7 +16,7 @@ import org.apache.commons.lang3.StringUtils;
 import java.math.BigDecimal;
 import java.util.*;
 
-import static com.kingdee.bos.datawizard.edd.ctrlsqldesign.model.WebParamAdapter.Context;
+
 
 
 /**