Parcourir la source

Merge remote-tracking branch 'origin/master'

徐昊 il y a 9 mois
Parent
commit
e46e724aae

+ 0 - 13
src/main/java/fi/em/editPlugin/TripreimBurseEditPlugin.java

@@ -37,15 +37,12 @@ public class TripreimBurseEditPlugin extends AbstractListPlugin implements Plugi
             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("付费承担公司为空!");
             }
@@ -70,32 +67,24 @@ public class TripreimBurseEditPlugin extends AbstractListPlugin implements Plugi
                 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);//费用承担部门
@@ -111,8 +100,6 @@ public class TripreimBurseEditPlugin extends AbstractListPlugin implements Plugi
             }
         }
     }
-
-    //弹窗
     public void showParameter(String formId, String actionId,String orgnumber,String orgid,
                               String creatorNumber,String costdeptNumber) {
         //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单

+ 2 - 32
src/main/java/fi/em/editPlugin/TripreimBurseMobEditPlugin.java

@@ -23,39 +23,30 @@ 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";//动因参数动态列表
+    public static String nckd_agentparameterf1 = "nckd_mobparameterf";//动因参数动态列表
     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);
-
+            showParameter(nckd_agentparameterf1, btn_NOTICE,orgnumber,orgid,creatorNumber,costdeptNumber);//调用弹出页面
         }
     }
-
     @Override
     public void closedCallBack(ClosedCallBackEvent e) {
         super.closedCallBack(e);
@@ -72,32 +63,24 @@ public class TripreimBurseMobEditPlugin extends AbstractMobBillPlugIn implements
                 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);//费用承担部门
@@ -113,8 +96,6 @@ public class TripreimBurseMobEditPlugin extends AbstractMobBillPlugIn implements
             }
         }
     }
-
-    //弹窗
     public void showParameter(String formId, String actionId,String orgnumber,String orgid,
                               String creatorNumber,String costdeptNumber) {
         //创建弹出页面对象,FormShowParameter表示弹出页面为动态表单
@@ -137,15 +118,4 @@ public class TripreimBurseMobEditPlugin extends AbstractMobBillPlugIn implements
         //弹出页面对象赋值给父页面
         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);
-
-    }
 }

+ 5 - 29
src/main/java/fi/em/formPlugin/ReimbursementMobFormPlugin.java

@@ -1,8 +1,6 @@
 package fi.em.formPlugin;
-import com.aliyun.odps.security.User;
 import kd.bos.exception.KDBizException;
 import kd.bos.form.plugin.AbstractFormPlugin;
-import kd.bos.form.plugin.AbstractMobFormPlugin;
 import kd.sdk.plugin.Plugin;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -18,21 +16,17 @@ import java.math.BigDecimal;
 import java.util.*;
 
 
-
-
 /**
  * @author cjz
  * @date 2024/7/25 15:13
  * @description:报销单移动端初始化表单
  */
 
-public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements Plugin {
-    private final static String KEY_OK = "btnok";//确定按钮标识
-    private final static String KEY_CANCEL = "btncancel";//页面取消按钮标识
-    private final static String KEY_SEARCH = "search";//动态表单查询按钮操作
-    private final static String FORMID_ENTRY = "nckd_entryentity";//动态表单单据体标识
+public class ReimbursementMobFormPlugin extends AbstractFormPlugin implements Plugin {
+    private final static String KEY_OK = "nckd_btnok";//确定按钮标识
+    private final static String KEY_CANCEL = "nckd_btncancel";//页面取消按钮标识
+    private final static String FORMID_ENTRY = "nckd_clearloanentry";//动态表单单据体标识
     private static String er_prepaybill = "er_prepaybill";//预付单标识
-
     /**
      * 页面点击事件
      *
@@ -53,13 +47,11 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
                 EntryGrid entryGrid = this.getView().getControl(FORMID_ENTRY);
                 //获取选择的行号
                 int[] selectRows = entryGrid.getSelectRows();
-
                 //判断数据是否存在
                 if (selectRows.length <= 0) {
                     this.getView().showMessage("请先选择一条数据!");
                     return;
                 }
-
                 JSONArray infoJa = SerializationUtils.fromJsonString(listStr, JSONArray.class);
                 for (int i = 0; i < selectRows.length; i++) {
                     JSONObject reJo = infoJa.getJSONObject(selectRows[i]);
@@ -67,7 +59,6 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
                 }
                 HashMap<String, String> map = new HashMap<>();
                 map.put("reJaStr", reJa.toJSONString());
-
                 //将获取的json数据返回到界面view中
                 this.getView().returnDataToParent(map);
             }
@@ -81,7 +72,6 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
             this.getView().close();
         }
     }
-
     //监听接口
     @Override
     public void registerListener(EventObject e) {
@@ -89,7 +79,6 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
         //页面确认按钮和取消按钮添加监听
         this.addClickListeners(KEY_OK, KEY_CANCEL);
     }
-
     @Override
     public void afterCreateNewData(EventObject e) {
         super.afterBindData(e);
@@ -109,36 +98,26 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
         QFilter nckd_orgamountFilter = new QFilter("costdept.number", QCP.equals, costdeptNumber);
         nckd_orgamountFilter.and("billstatus", QCP.equals, "E");
         nckd_orgamountFilter.and("creator.number",QCP.equals,creatorNumber);
-
         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());
-
             String billno= dynamicObject.getString("billno");
             //循环分录
             for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("expenseentryentity")) {
-
                 //获取费用承担部门
                 DynamicObject entrycostdept = entryentity.getDynamicObject("entrycostdept");
-
                 //获取费用项目
                 DynamicObject expenseitem=entryentity.getDynamicObject("expenseitem");
-
                 //申请金额
                 BigDecimal expenseamount=entryentity.getBigDecimal("expenseamount");
-
                 //结算金额
                 BigDecimal exporiusedamount=entryentity.getBigDecimal("exporiusedamount");
-
                 //未结算金额
                 BigDecimal orgiexpebalanceamount=entryentity.getBigDecimal("orgiexpebalanceamount");
-
                 //备注
                 String remark=entryentity.getString("remark");
-
                 //新增动态单据分录
                 int rowIndex = this.getModel().createNewEntryRow(FORMID_ENTRY);
                 //赋值给新增分录
@@ -148,7 +127,7 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
                 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_remarke",remark,rowIndex);
+                this.getModel().setValue("nckd_remark",remark,rowIndex);
                 //将选中的数据放到缓存中
                 JSONObject obj = new JSONObject();
                 //放入缓存
@@ -166,7 +145,4 @@ public class ReimbursementMobFormPlugin extends AbstractMobFormPlugin implements
         String listStr = SerializationUtils.toJsonString(resdate);
         this.getPageCache().put(pageId, listStr);
     }
-
-
-
 }

+ 79 - 7
src/main/java/fi/er/opplugin/FinapbillBeforeF7SelectSample.java

@@ -2,6 +2,7 @@ package fi.er.opplugin;
 
 import com.alibaba.druid.util.StringUtils;
 import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
 import kd.bos.entity.datamodel.events.ChangeData;
 import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 import kd.bos.form.field.RefBillEdit;
@@ -11,11 +12,17 @@ import kd.bos.form.plugin.AbstractFormPlugin;
 import kd.bos.list.ListShowParameter;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
 
+import java.math.BigDecimal;
+import java.util.Date;
 import java.util.EventObject;
 
 public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements BeforeF7SelectListener {
     private static String nckd_apfinapbill = "nckd_apfinapbill"; //应付挂账单字段
+    private static String nckd_real_card = "assetentry.nckd_real_card"; //应付挂账单字段
+    private static String nckd_ap_finapbill_gz = "ap_finapbill"; //应付挂账单标识
+    private static String nckd_er_publicreimbur_ext = "er_publicreimbursebill"; //报销单标识
     @Override
     public void registerListener(EventObject e) {
         //监听单据字段
@@ -27,14 +34,79 @@ public class FinapbillBeforeF7SelectSample extends AbstractFormPlugin implements
     public void beforeF7Select(BeforeF7SelectEvent arg0) {
         String fieldKey = arg0.getProperty().getName();
         if (StringUtils.equals(fieldKey, nckd_apfinapbill)){
-            DynamicObject costcompany = (DynamicObject) this.getModel().getValue("costcompany");
-            Long costcompanyId = costcompany.getLong("id");
             // 生成过滤条件对象QFilter
-            QFilter qFilter = new QFilter("org", QCP.equals, costcompanyId);
-            qFilter.and("nckd_selectflag", QCP.not_in, "1");
-            // 设置列表过滤条件
-            ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
-            showParameter.getListFilterParameter().setFilter(qFilter);
+            Object nckd_sourcebillid = this.getModel().getValue("nckd_sourcebillid");
+            if (nckd_sourcebillid != null) {
+                //查询暂估报销单
+                String sourcebillid = String.valueOf(nckd_sourcebillid);
+                QFilter filter = new QFilter("nckd_sourcebillid", QCP.equals,sourcebillid);
+                filter.and("nckd_ywlx", QCP.equals, "2");
+                DynamicObject[] bxDynamicObjects = BusinessDataServiceHelper.load(nckd_er_publicreimbur_ext,"id",new QFilter[] {filter});
+                if (bxDynamicObjects.length > 0) {
+                    DynamicObject bxInfo = BusinessDataServiceHelper.loadSingle(bxDynamicObjects[0].getPkValue(), bxDynamicObjects[0].getDynamicObjectType().getName());
+                    Long id = bxInfo.getLong("id");
+                    QFilter qFilter = new QFilter("sourcebillid", QCP.equals,id);
+                    // 表过滤条件
+                    ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+                    showParameter.getListFilterParameter().setFilter(qFilter);
+                }
+            }else {
+                //选取不到应付挂账单
+                QFilter qFilter = new QFilter("id", QCP.equals,null);
+                // 表过滤条件
+                ListShowParameter showParameter = (ListShowParameter)arg0.getFormShowParameter();
+                showParameter.getListFilterParameter().setFilter(qFilter);
+            }
+        } else if (StringUtils.equals(fieldKey, nckd_real_card)) {
+
         }
     }
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        String fieldKey = e.getProperty().getName();
+        if (StringUtils.equals("nckd_real_card", fieldKey)){
+            ChangeData changeData = e.getChangeSet()[0];
+            DynamicObjectCollection dynamicObjectCollection = (DynamicObjectCollection) changeData.getNewValue();
+            for(DynamicObject  object : dynamicObjectCollection) {
+                DynamicObject realcard = object.getDynamicObject("nckd_real_card");
+            }
+            DynamicObject dynamicObject = dynamicObjectCollection.get(0);
+        } else if (StringUtils.equals("nckd_apfinapbill", fieldKey)) {
+            ChangeData changeData = e.getChangeSet()[0];
+            DynamicObject dynamicObject = (DynamicObject) changeData.getNewValue();
+            if (dynamicObject != null) {
+                Long id = dynamicObject.getLong("id");
+                //查询应付挂账
+                QFilter filter = new QFilter("id", QCP.equals,id);
+                DynamicObject[] yfgzDynamicObjects = BusinessDataServiceHelper.load(nckd_ap_finapbill_gz,"id",new QFilter[] {filter});
+                DynamicObject gzInfo = BusinessDataServiceHelper.loadSingle(yfgzDynamicObjects[0].getPkValue(), yfgzDynamicObjects[0].getDynamicObjectType().getName());
+                String billno = gzInfo.getString("billno");//单据编号
+                DynamicObject org = gzInfo.getDynamicObject("org");//结算组织
+                DynamicObject detailentry = gzInfo.getDynamicObjectCollection("detailentry").get(0);
+                DynamicObject expenseitem = detailentry.getDynamicObject("expenseitem");//费用项目
+                DynamicObject receivingsupplierid = gzInfo.getDynamicObject("receivingsupplierid");//供应商
+                Date bookdate = gzInfo.getDate("bookdate");
+                String remark = gzInfo.getString("remark");
+                BigDecimal pricetaxtotal = gzInfo.getBigDecimal("pricetaxtotal");
+                //给冲预付借款赋值
+                int rowIndex = this.getModel().createNewEntryRow("writeoffmoney");
+
+                this.getModel().setValue("loanbillnov1",billno,rowIndex);
+                this.getModel().setValue("sourceentrycostdept",org,rowIndex);
+                this.getModel().setValue("sourceentrycostcompany",org,rowIndex);
+                this.getModel().setValue("sourceexpenseitem",expenseitem,rowIndex);
+                this.getModel().setValue("srcentrywlunit",receivingsupplierid,rowIndex);
+                this.getModel().setValue("loanapplydatev1",bookdate,rowIndex);
+                this.getModel().setValue("loandescriptionv1",remark,rowIndex);
+                this.getModel().setValue("loanamount",pricetaxtotal,rowIndex);
+                this.getModel().setValue("accloanamount",pricetaxtotal,rowIndex);
+                this.getModel().setValue("currloanamount",pricetaxtotal,rowIndex);
+                this.getModel().setValue("curraccloanamount",pricetaxtotal,rowIndex);
+                //刷新冲预付借款分录
+                this.getView().updateView("writeoffmoney");
+            }
+        }
+    }
+
 }

+ 1 - 0
src/main/java/fi/gl/business/VoucherValidator.java

@@ -21,6 +21,7 @@ public class VoucherValidator extends AbstractValidator {
         String oKey = this.getOperateKey();
         switch (oKey) {
             case "save":
+            case "submit":
             case "antipost":
             case "unaudit":
                 checkDatas();