Procházet zdrojové kódy

费用申请增加费用类型默认

wangjun před 3 týdny
rodič
revize
2d6566736e

+ 45 - 0
code/jyyy/nckd-jimin-jyyy-fi/src/main/java/nckd/jimin/jyyy/fi/plugin/form/PayApplyBillSRMEditPlugin.java

@@ -2,10 +2,16 @@ package nckd.jimin.jyyy.fi.plugin.form;
 
 import com.alibaba.druid.util.StringUtils;
 import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.entity.operate.result.IOperateInfo;
 import kd.bos.entity.operate.result.OperationResult;
 import kd.bos.form.IClientViewProxy;
 import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+
+import java.util.EventObject;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -55,4 +61,43 @@ public class PayApplyBillSRMEditPlugin extends AbstractBillPlugIn {
             }
         }
     }
+
+
+    /**
+     * 在创建新数据后执行的操作,用于根据视图类型自动填充相关字段。
+     *
+     * 功能:
+     * - 从自定义参数中获取视图类型(viewType)。
+     * - 查询对应的视图类型数据(nckd_payviewtype)。
+     * - 如果视图类型编号为 "1004"(专项费用和培训申请),则进一步查询并自动填充费用类型(er_expenseitemedit)。
+     *
+     * @param e 事件对象,包含触发此操作的上下文信息。
+     */
+    @Override
+    public void afterCreateNewData(EventObject e) {
+        super.afterCreateNewData(e);
+        Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
+        if(customParams.get("viewType") != null){
+            String[] typeStrings = customParams.get("viewType").toString().split(",");
+
+            QFilter qFilter = new QFilter("number", QCP.in, typeStrings);
+
+            DynamicObject[] viewTypeCols = BusinessDataServiceHelper.load("nckd_payviewtype", "id, masterid,number, name", qFilter.toArray());
+            if(viewTypeCols != null && viewTypeCols.length > 0){
+                //页面类型赋值
+                //  this.getModel().setValue("nckd_payviewtype", viewTypeCols[0]);
+                //根据页面类型找到费用类型,专项费用和培训申请时候自动填充费用类型
+                String viewtNumber=viewTypeCols[0].getString("number");
+                if(viewtNumber.equals("1004")){
+                    //根据页面类型查找费用类型
+                    QFilter expenseitemFilter = new QFilter("nckd_payviewtype", QCP.equals, viewTypeCols[0].getLong("id"));
+                    expenseitemFilter.and("isleaf",QCP.equals,true);
+                    DynamicObject[] expenseitemCols = BusinessDataServiceHelper.load("er_expenseitemedit", "id, number,name,fullname", expenseitemFilter.toArray());
+                    //费用项目赋值
+                    this.getModel().setValue("nckd_expenseitem", expenseitemCols[0]);
+                }
+
+            }
+        }
+    }
 }