Browse Source

Merge remote-tracking branch 'master/master'

Tyx 1 month ago
parent
commit
3f5c8a11e6

+ 452 - 3
code/wnq/nckd-wnq01-wnq-scm/src/main/java/nckd/wnq01/wnq/scm/plugin/form/PriceTiaoZhengPlugin.java

@@ -1,15 +1,464 @@
 package nckd.wnq01.wnq.scm.plugin.form;
 package nckd.wnq01.wnq.scm.plugin.form;
 
 
+import kd.bos.algo.DataSet;
+import kd.bos.algo.Row;
 import kd.bos.bill.AbstractBillPlugIn;
 import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.db.DB;
+import kd.bos.db.DBRoute;
+import kd.bos.form.events.AfterDoOperationEventArgs;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.form.field.BasedataEdit;
+import kd.bos.form.field.events.BeforeF7SelectEvent;
+import kd.bos.form.field.events.BeforeF7SelectListener;
+import kd.bos.form.operate.FormOperate;
+import kd.bos.list.ListShowParameter;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.sdk.plugin.Plugin;
 import kd.sdk.plugin.Plugin;
 
 
+import java.math.BigDecimal;
+import java.util.*;
+
 /**
 /**
  *  价格批量调整单
  *  价格批量调整单
  *  元数据: nckd_pricetiaozheng
  *  元数据: nckd_pricetiaozheng
  *  需求描述:生产取价结果自动获取生成对应的页签
  *  需求描述:生产取价结果自动获取生成对应的页签
- * author: chengchaohua
- * date: 2025-03-02
+ * author: wangjun
+ * date: 2025-03-11
  */
  */
-public class PriceTiaoZhengPlugin extends AbstractBillPlugIn implements Plugin {
+public class PriceTiaoZhengPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
+
+    @Override
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        FormOperate operate = (FormOperate) args.getSource();
+        String operateKey = operate.getOperateKey();
+        if("getpriceresult".equals(operateKey)) {
+            String message = "";
+            if (this.getModel().getValue("nckd_tzsxsj") == null) {
+                message = "调整生效时间不能为空!";
+            }
+            if (this.getModel().getValue("nckd_radiogroupfield") == null) {
+                message = message + "上涨价格或者下调价格必须选择一项!";
+            }
+
+            if (this.getModel().getValue("nckd_bumen") == null) {
+                message = message + "申请部门不能为空!";
+            }
+
+            if (((DynamicObjectCollection) this.getModel().getValue("nckd_quyus")).size() == 0) {
+                message = message + "请重新选择区域!";
+            }
+
+            if (((DynamicObjectCollection) this.getModel().getValue("nckd_xqys")).size() == 0) {
+                message = message + "请重新选择小区域!";
+            }
+
+            if (((DynamicObjectCollection) this.getModel().getValue("nckd_saletypes")).size() == 0) {
+                message = message + "请重新选择销售类别!";
+            }
+
+            if (((DynamicObjectCollection) this.getModel().getValue("nckd_mulmaterials")).size() == 0) {
+                message = message + "请重新选择物料!";
+            }
+
+            if (((DynamicObjectCollection) this.getModel().getValue("nckd_tjjd")).size() == 0) {
+                message = message + "调价基地不能为空!";
+            }
+
+            if (this.getModel().getValue("nckd_adjustproduct") == null) {
+                message = message + "调价产品品种不能为空,品种需要手工填写!";
+            }
+
+            if (this.getModel().getValue("nckd_customers") != null) {
+                DynamicObjectCollection customers = (DynamicObjectCollection) this.getModel().getValue("nckd_customers");
+                if (customers.size() > 10) {
+                    message = message + "客户最多只能选择10个!";
+                }
+            }
+
+            if (!"".equals(message)) {
+                this.getView().showMessage(message);
+                args.setCancel(true);
+            }
+        }
+        super.beforeDoOperation(args);
+    }
+
+    @Override
+    public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
+        super.afterDoOperation(afterDoOperationEventArgs);
+        String operateKey = afterDoOperationEventArgs.getOperateKey();
+        if("getpriceresult".equals(operateKey)){
+            //调价基地
+            DynamicObjectCollection tjjds = (DynamicObjectCollection) this.getModel().getValue("nckd_tjjd");
+            String tjjds_ids_str = "";//sql用
+            String tjjd_names = "";
+            List<Long> tjjds_ids = new ArrayList();//qfilter用
+            for(DynamicObject tjjd : tjjds){
+                DynamicObject real_tjjd = tjjd.getDynamicObject("fbasedataid");
+                tjjds_ids.add(real_tjjd.getLong("id"));
+                tjjds_ids_str = tjjds_ids_str + "," + real_tjjd.getPkValue().toString();
+                tjjd_names = tjjd_names+","+real_tjjd.getString("name");
+            }
+            //客户
+            DynamicObjectCollection customers = null;
+            DynamicObject[] allcustomers = null;
+            //区域
+            DynamicObjectCollection quyus = (DynamicObjectCollection) this.getModel().getValue("nckd_quyus");
+            List<Long> quyus_ids = new ArrayList();
+            for(DynamicObject quyu : quyus){
+                DynamicObject real_quyu = quyu.getDynamicObject("fbasedataid");
+                quyus_ids.add(real_quyu.getLong("id"));
+            }
+            //小区域
+            DynamicObjectCollection xqys = (DynamicObjectCollection) this.getModel().getValue("nckd_xqys");
+            List<Long> xqys_ids = new ArrayList();
+            for(DynamicObject xqy : xqys){
+                DynamicObject real_xqy = xqy.getDynamicObject("fbasedataid");
+                xqys_ids.add(real_xqy.getLong("id"));
+            }
+            //销售类别
+            DynamicObjectCollection saletypes = (DynamicObjectCollection) this.getModel().getValue("nckd_saletypes");
+            List<Long> saletypes_ids = new ArrayList();
+            List<Long> salebigtype_ids = new ArrayList();
+            for(DynamicObject saletype : saletypes){
+                DynamicObject real_saletype = saletype.getDynamicObject("fbasedataid");
+                saletypes_ids.add(real_saletype.getLong("id"));
+
+                if(real_saletype.getDynamicObject("nckd_salebigtype")!=null){
+                    DynamicObject salebigtype = real_saletype.getDynamicObject("nckd_salebigtype");
+                    salebigtype_ids.add(salebigtype.getLong("id"));
+                }
+            }
+            //物料
+            DynamicObjectCollection materials = (DynamicObjectCollection) this.getModel().getValue("nckd_mulmaterials");
+            List<Long> material_ids = new ArrayList();
+            for(DynamicObject material : materials){
+                DynamicObject real_material = material.getDynamicObject("fbasedataid");
+                material_ids.add(real_material.getLong("id"));
+            }
+            //调整价格
+            BigDecimal tiaozjiage = new BigDecimal(this.getModel().getValue("nckd_tiaozjiage").toString());
+            String radiogroup = this.getModel().getValue("nckd_radiogroupfield").toString();
+            BigDecimal real_tiaozjiage = new BigDecimal(0);
+            if("s".equals(radiogroup)){//上调
+                real_tiaozjiage = tiaozjiage;
+            }else if("x".equals(radiogroup)){//下调
+                real_tiaozjiage = tiaozjiage.negate();
+            }
+
+            if(this.getModel().getValue("nckd_customers")!=null &&
+                    ((DynamicObjectCollection)this.getModel().getValue("nckd_customers")).size()>0){
+                customers = (DynamicObjectCollection) this.getModel().getValue("nckd_customers");
+            }else{
+                QFilter qFilter_tjjd = new QFilter("createorg.id", QCP.in,tjjds_ids);
+                QFilter qFilter_quyu = new QFilter("nckd_qy.id", QCP.in,quyus_ids);
+                QFilter qFilter_xqys = new QFilter("nckd_xqy.id", QCP.in,xqys_ids);
+                QFilter qFilter_saletypes = new QFilter("nckd_xslb.id", QCP.in,saletypes_ids);
+                allcustomers = BusinessDataServiceHelper.load("nckd_thht","id",
+                        new QFilter[]{qFilter_tjjd,qFilter_quyu,qFilter_xqys,qFilter_saletypes});
+            }
+
+            //设置调整结果分录
+            setTiaozhengresultEntrys(real_tiaozjiage,tjjds_ids_str,tjjds,customers,allcustomers,material_ids,materials);
+            //设置价格基本信息分录
+            setEntryentityEntrys(real_tiaozjiage,tjjds_ids_str,tjjds,quyus_ids,xqys_ids,xqys,salebigtype_ids,material_ids,materials);
+            //设置调价简介
+            setTiaojiajianjieEntrys();
+            //设置审批界面
+            setAuditjiemianEntrys(real_tiaozjiage,customers,allcustomers,saletypes);
+            //设置调价基地
+            setTiaozhengdescEntrys(tjjd_names);
+            this.getView().showMessage("获取成功");
+        }
+    }
+
+    private void setAuditjiemianEntrys(BigDecimal real_tiaozjiage, DynamicObjectCollection customers, DynamicObject[] allcustomers, DynamicObjectCollection saletypes) {
+        //先循环分录缓存
+        Map entryentity2Map = new HashMap();
+        DynamicObjectCollection entryentityresultCol = (DynamicObjectCollection) this.getModel().getValue("nckd_entryentity2");
+        for(int row=0;row<entryentityresultCol.size();row++){
+            DynamicObject entryentityresultObj = entryentityresultCol.get(row);
+            DynamicObject nckd_etqyhmbsc = entryentityresultObj.getDynamicObject("nckd_etqyhmbsc");
+            String nckd_eadjustproduct = entryentityresultObj.getString("nckd_eadjustproduct");
+            DynamicObject nckd_saletypeb = entryentityresultObj.getDynamicObject("nckd_saletypeb");
+            String key = nckd_etqyhmbsc.getPkValue().toString()+";"+nckd_eadjustproduct+";"+
+                    nckd_saletypeb.getPkValue().toString();
+            entryentity2Map.put(key,row);
+        }
+        //开始插入分录
+        String adjustproduct = this.getModel().getValue("nckd_adjustproduct").toString();
+        if(customers!=null && customers.size()>0){
+            for(DynamicObject customer: customers){
+                DynamicObject real_customer = customer.getDynamicObject("fbasedataid");
+                for(DynamicObject saletype : saletypes){
+                    doSetAuditjiemianEntrys(real_tiaozjiage,adjustproduct,real_customer,saletype,entryentity2Map);
+                }
+            }
+        }else{
+            if(allcustomers!=null){
+                for(DynamicObject customer: allcustomers){
+                    for(DynamicObject saletype : saletypes){
+                        doSetAuditjiemianEntrys(real_tiaozjiage,adjustproduct,customer,saletype,entryentity2Map);
+                    }
+                }
+            }
+        }
+    }
+
+    private void doSetAuditjiemianEntrys(BigDecimal realTiaozjiage, String adjustproduct, DynamicObject customer, DynamicObject saletype,
+                                         Map entryentity2Map) {
+        DynamicObject real_saletype = saletype.getDynamicObject("fbasedataid");
+        String row_key = customer.getPkValue().toString()+";"+adjustproduct+";"+
+                real_saletype.getPkValue().toString();
+        int row = 0;
+        if(entryentity2Map.get(row_key)!=null){
+            row = Integer.valueOf(entryentity2Map.get(row_key).toString());
+        }else{
+            row = this.getModel().createNewEntryRow("nckd_entryentity2");
+            this.getModel().setValue("nckd_etqyhmbsc",customer,row);
+            this.getModel().setValue("nckd_eadjustproduct",adjustproduct,row);
+            this.getModel().setValue("nckd_saletypeb",real_saletype,row);
+        }
+        this.getModel().setValue("nckd_tiaozfudu",realTiaozjiage,row);
+    }
+
+    private void setTiaozhengdescEntrys(String tjjd_names) {
+        tjjd_names = !"".equals(tjjd_names)?tjjd_names.substring(1):"";
+        this.getModel().setValue("nckd_tiaojiajidi",tjjd_names);
+    }
+
+    private void setEntryentityEntrys(BigDecimal real_tiaozjiage,String tjjdsIdsStr, DynamicObjectCollection tjjds,
+                                      List<Long> quyusIds, List<Long> xqysIds, DynamicObjectCollection xqys,
+                                      List<Long> salebigtype_ids,List<Long> material_ids, DynamicObjectCollection materials) {
+        tjjdsIdsStr = tjjdsIdsStr.substring(1);
+
+        Map entryDatas = new HashMap();
+        String sql = "SELECT SPL.fk_nckd_saleorg saleorg," +
+                            "SPL.fk_nckd_qy qy," +
+                            "SPL.fk_nckd_material material," +
+                            "SPL.fk_nckd_salebigtyp salebigtyp," +
+                            "SPL.fk_nckd_price price " +
+                "FROM tk_nckd_salepricelevel SPL \n" +
+                "WHERE SPL.fk_nckd_saleorg IN ("+tjjdsIdsStr+") AND " +
+                    "SPL.fk_nckd_qy IN ("+quyusIds+") AND " +
+                    "SPL.fk_nckd_material IN ("+material_ids+") AND " +
+                    "SPL.fk_nckd_salebigtyp IN ("+salebigtype_ids+")";
+        DataSet ds = DB.queryDataSet("PriceTiaoZhengPlugin", DBRoute.of("scm"), sql);
+        while (ds.hasNext()) {
+            Row row = ds.next();
+            String key = row.getString("saleorg") + ";"+row.get("qy")+";"+row.get("material");
+            String value = row.getString("price");
+            if(entryDatas.get(key)!=null){
+                value = value +";"+entryDatas.get(key);
+            }
+            entryDatas.put(key,value);
+        }
+        //先循环分录缓存
+        Map entryentityMap = new HashMap();
+        DynamicObjectCollection entryentityresultCol = (DynamicObjectCollection) this.getModel().getValue("nckd_entryentity");
+        for(int row=0;row<entryentityresultCol.size();row++){
+            DynamicObject entryentityresultObj = entryentityresultCol.get(row);
+            DynamicObject nckd_base = entryentityresultObj.getDynamicObject("nckd_base");
+            DynamicObject nckd_xiaoquyu1 = entryentityresultObj.getDynamicObject("nckd_xiaoquyu1");
+            DynamicObject nckd_shuini = entryentityresultObj.getDynamicObject("nckd_shuini");
+            String nckd_tiaozhqianprice = entryentityresultObj.getString("nckd_tiaozhqianprice");
+            String key = nckd_base.getPkValue().toString()+";"+nckd_xiaoquyu1.getPkValue().toString()+";"+
+                    nckd_shuini.getPkValue().toString()+";"+nckd_tiaozhqianprice;
+            entryentityMap.put(key,row);
+        }
+        //开始插入分录
+        for(DynamicObject tjjd : tjjds){
+            for(DynamicObject xqy : xqys){
+                for(DynamicObject material : materials){
+                    doSetEntryentityEntrys(real_tiaozjiage,tjjd,xqy,material,entryDatas,entryentityMap);
+                }
+            }
+        }
+    }
+
+    private void doSetEntryentityEntrys(BigDecimal real_tiaozjiage, DynamicObject tjjd, DynamicObject xqy, DynamicObject material,
+                                        Map entryDatas, Map entryentityMap) {
+        //设置销售基地
+        DynamicObject real_xiaojd = tjjd.getDynamicObject("fbasedataid");
+        DynamicObject real_xqy = xqy.getDynamicObject("fbasedataid");
+        DynamicObject real_qu = real_xqy.getDynamicObject("nckd_qy");
+        DynamicObject real_material = material.getDynamicObject("fbasedataid");
+        String price_key = real_xiaojd.getPkValue().toString()+";"+real_qu.getPkValue().toString()+";"+real_material.getPkValue().toString();
+
+        int row = 0;
+        if(entryDatas.get(price_key)!=null){
+            String[] values = entryDatas.get(price_key).toString().split(";");
+            for(String value : values){
+                String row_key = real_xiaojd.getPkValue().toString()+";"+real_xqy.getPkValue().toString()+";"+
+                        real_material.getPkValue().toString()+";"+value;
+                if(entryentityMap.get(row_key)!=null){
+                    row = Integer.valueOf(entryentityMap.get(row_key).toString());
+                }else{
+                    row = this.getModel().createNewEntryRow("nckd_entryentity");
+                    this.getModel().setValue("nckd_base",real_xiaojd,row);
+                    this.getModel().setValue("nckd_xiaoquyu1",real_xqy,row);
+                    this.getModel().setValue("nckd_shuini",real_material,row);
+                }
+                //设置调整前价格
+                BigDecimal tiaozhqianprice = new BigDecimal(value);
+                this.getModel().setValue("nckd_tiaozhqianprice",tiaozhqianprice,row);
+                //设置调整后价格
+                BigDecimal tiaozhhouprice = tiaozhqianprice.add(real_tiaozjiage);
+                this.getModel().setValue("nckd_tiaozhhouprice",tiaozhhouprice,row);
+            }
+        }else{
+            String row_key = real_xiaojd.getPkValue().toString()+";"+real_xqy.getPkValue().toString()+";"+
+                    real_material.getPkValue().toString()+";0.00";
+            if(entryentityMap.get(row_key)!=null){
+                row = Integer.valueOf(entryentityMap.get(row_key).toString());
+            }else{
+                row = this.getModel().createNewEntryRow("nckd_entryentity");
+                this.getModel().setValue("nckd_base",real_xiaojd,row);
+                this.getModel().setValue("nckd_xiaoquyu1",real_xqy,row);
+                this.getModel().setValue("nckd_shuini",real_material,row);
+            }
+            //设置调整后价格
+            this.getModel().setValue("nckd_tiaozhhouprice",real_tiaozjiage,row);
+        }
+
+    }
+
+    private void setTiaojiajianjieEntrys() {
+
+    }
+
+    private void setTiaozhengresultEntrys(BigDecimal real_tiaozjiage, String tjjds_ids_str, DynamicObjectCollection tjjds,
+                                          DynamicObjectCollection customers, DynamicObject[] allcustomers,
+                                          List<Long> materials_ids, DynamicObjectCollection materials) {
+        tjjds_ids_str = tjjds_ids_str.substring(1);
+
+        String customers_ids = "";
+        if(customers!=null && customers.size()>0){
+            for(DynamicObject customer: customers){
+                DynamicObject real_customer = customer.getDynamicObject("fbasedataid");
+                customers_ids = customers_ids + "," + real_customer.getPkValue().toString();
+            }
+        }else{
+            if(allcustomers!=null){
+                for(DynamicObject customer: allcustomers){
+                    customers_ids = customers_ids + "," + customer.getPkValue().toString();
+                }
+            }
+        }
+        customers_ids = !"".equals(customers_ids)?customers_ids.substring(1):"9999999";
+
+        //查询分录数据并缓存
+        Map entryDatas = new HashMap();
+        String sql = "SELECT sps.fk_nckd_org tjjd,\n" +
+                    "spsce.fk_nckd_thht thht,\n" +
+                    "spspe.fk_nckd_material wl,\n" +
+                    "spspe.fk_nckd_price price \n" +
+                "FROM tk_nckd_salepricesubc sps \n" +
+                "LEFT JOIN tk_nckd_customerentry spsce on sps.fid = spsce.fid \n" +
+                "LEFT JOIN tk_nckd_priceentry spspe on sps.fid = spspe.fid \n" +
+//                "LEFT JOIN tk_nckd_thht thht  on spsce.fk_nckd_thht = thht.fid \n" +
+                "WHERE sps.fk_nckd_org in ("+tjjds_ids_str+") and " +
+                    "spsce.fk_nckd_thht in ("+customers_ids+") and " +
+                    "spspe.fk_nckd_material in ("+materials_ids+")";
+        DataSet ds = DB.queryDataSet("PriceTiaoZhengPlugin", DBRoute.of("scm"), sql);
+        while (ds.hasNext()) {
+            Row row = ds.next();
+            String key = row.getString("tjjd") + ";"+row.get("thht")+";"+row.get("wl");
+            String value = row.getString("price");
+            entryDatas.put(key,value);
+        }
+        //先循环分录缓存
+        Map entryentityresultMap = new HashMap();
+        DynamicObjectCollection entryentityresultCol = (DynamicObjectCollection) this.getModel().getValue("nckd_entryentityresult");
+        for(int row=0;row<entryentityresultCol.size();row++){
+            DynamicObject entryentityresultObj = entryentityresultCol.get(row);
+            DynamicObject nckd_xiaojd = entryentityresultObj.getDynamicObject("nckd_xiaojd");
+            DynamicObject nckd_customerhang = entryentityresultObj.getDynamicObject("nckd_customerhang");
+            DynamicObject nckd_materialhang = entryentityresultObj.getDynamicObject("nckd_materialhang");
+            String key = nckd_xiaojd.getPkValue().toString()+";"+nckd_customerhang.getPkValue().toString()+";"+nckd_materialhang.getPkValue().toString();
+            entryentityresultMap.put(key,row);
+        }
+        //开始插入分录
+        for(DynamicObject tjjd : tjjds){
+            if(customers!=null && customers.size()>0){//使用选择提货客户
+                for(DynamicObject customer: customers){
+                    DynamicObject real_customerhang = customer.getDynamicObject("fbasedataid");
+                    for(DynamicObject material:materials){
+                        doSetTiaozhengresultEntrys(real_tiaozjiage,tjjd,real_customerhang,material,entryDatas,entryentityresultMap);
+                    }
+                }
+            }else{//使用全部条件提货客户
+                if(allcustomers!=null){
+                    for(DynamicObject customer: allcustomers){
+                        for(DynamicObject material:materials){
+                            doSetTiaozhengresultEntrys(real_tiaozjiage,tjjd,customer,material,entryDatas,entryentityresultMap);
+                        }
+                    }
+                }
+            }
+        }
+
+    }
+
+    private void doSetTiaozhengresultEntrys(BigDecimal real_tiaozjiage,DynamicObject tjjd, DynamicObject customer,
+                                            DynamicObject material, Map entryDatas, Map entryentityresultMap) {
+        DynamicObject real_xiaojd = tjjd.getDynamicObject("fbasedataid");
+        DynamicObject real_material = material.getDynamicObject("fbasedataid");
+        String row_key = real_xiaojd.getPkValue()+";"+customer.getPkValue()+";"+real_material.getPkValue();
+        int row = 0;
+        if(entryentityresultMap.get(row_key)!=null){
+            row = Integer.valueOf(entryentityresultMap.get(row_key).toString());
+        }else{
+            row = this.getModel().createNewEntryRow("nckd_entryentityresult");
+            //设置销售基地
+            this.getModel().setValue("nckd_xiaojd",real_xiaojd,row);
+            //设置提货户头
+            this.getModel().setValue("nckd_customerhang",customer,row);
+            //设置物料
+            this.getModel().setValue("nckd_materialhang",real_material,row);
+        }
+
+        //设置原单价
+        String price_key = real_xiaojd.getPkValue().toString()+";"+customer.getPkValue().toString()+";"+real_material.getPkValue().toString();
+        BigDecimal yuanprice = new BigDecimal(0);
+        if(entryDatas.get(price_key)!=null){
+            yuanprice = new BigDecimal(entryDatas.get(price_key).toString());
+        }
+        this.getModel().setValue("nckd_yuanprice",yuanprice,row);
+        //设置调价幅度
+        this.getModel().setValue("nckd_tiaojiafudu",real_tiaozjiage,row);
+        //设置新单价==原单价+调价幅度
+        BigDecimal newPrice = yuanprice.add(real_tiaozjiage);
+        this.getModel().setValue("nckd_newprice",newPrice,row);
+        //设置执行时间
+        this.getModel().setValue("nckd_zhixingdate",this.getModel().getValue("nckd_tzsxsj"),row);
+    }
+
+    @Override
+    public void registerListener(EventObject e) {
+        BasedataEdit bEdit = this.getView().getControl("nckd_xqys");
+        bEdit.addBeforeF7SelectListener(this);
+        super.registerListener(e);
+    }
 
 
+    @Override
+    public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
+        String propertyName = beforeF7SelectEvent.getProperty().getName();
+        if("nckd_xqys".equals(propertyName)) {
+            ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
+            List<QFilter> qFilters = new ArrayList<>();
+            DynamicObjectCollection quyus = (DynamicObjectCollection) this.getModel().getValue("nckd_quyus");
+            List<Long> quyus_ids = new ArrayList();
+            for(DynamicObject quyu : quyus){
+                DynamicObject real_quyu = quyu.getDynamicObject("fbasedataid");
+                quyus_ids.add(real_quyu.getLong("id"));
+            }
+            qFilters.add(new QFilter("nckd_qy.id", QCP.in, quyus_ids));
+            formShowParameter.getListFilterParameter().setQFilters(qFilters);
+        }
+    }
 }
 }