业务场景:
1. 调用第三方系统接口查询数据,需根据查询条件 组装查询参数,考虑配置一个新的查询模板收集查询条件参数。
2. 问题:初始化模板导入后 调启的模板 都是默认系统已分配的,如果将导入的查询模板设为默认 那就与系统里实际业务查询 冲突了。 理想结果:导入的新模板 可以被客开代码查询调启,不与系统默认模板冲突。 解决方案:功能默认模板设置时填写 节点标识,代码调用是指定该值。
-
查询模板初始化 导入一个新的查询模板
-
配置模板查询内容
-
将导入的模板 默认是看不到的 必须要分配到对应的单据上
- 选中对应的节点 【分配】–>【添加】
此处的节点标识一定要填写,调启模板时 通过改标识与系统默认模板做区分。对应数据库表:pub_systemplate
- 选中对应的节点 【分配】–>【添加】
添加完成后,增补到集团
增补完成后 模板-集团可以看到新增加的模板
- 调起查询弹框
private IBillReferQuery setConditionClient(String templateId,
Container parent, String pkOperator, String funNode, String pkCorp) {
TemplateInfo ti = new TemplateInfo();
ti.setTemplateId(templateId);
ti.setPk_Org(this.getModel().getContext().getPk_org());
ti.setUserid(this.getModel().getContext().getPk_loginUser());
ti.setCurrentCorpPk(this.getModel().getContext().getPk_group());
ti.setFunNode("40041000");
//该 QueryConditionDLG 无法赋值默认值
QueryConditionDLG qcDlg = new QueryConditionDLG(parent, ti);
qcDlg.setVisibleNormalPanel(false);
return qcDlg;
}
QueryConditionDLG setConditionClient = (QueryConditionDLG)this.setConditionClient("1001ZZ1000000007IB9H", container, "", "", "");
if (setConditionClient.showModal()== UIDialog.ID_OK) {
String whereSQL = setConditionClient.getWhereSQL();
System.out.println(whereSQL);
ConditionVO[] conditions = setConditionClient.getQryCondEditor().getGeneralCondtionVOs();
System.out.println(conditions);
}
//调起窗口并赋值默认值
private QueryConditionDLGDelegator getConditionClient(Container parent) {
String templateId = null;
try {
templateId = (String) HYPubBO_Client.findColValue("pub_query_templet","id",
" node_code='40041000' and model_name='数电发票-金税' ");
} catch (UifException e) {
ExceptionUtils.wrappBusinessException("关联数电发票查询模板不存在,请检查!");
}
TemplateInfo ti = new TemplateInfo();
ti.setTemplateId(templateId);
//ti.setNodekey("400410003");//关键设置 如果不设置该值 回默认按照分配的模板展示 nodekey取值看最后一图 如果看到默认模板配置 则直接按照第4步中 配置的节点标识值 赋值
ti.setNodekey("goldtax_nodekey");//==功能模板模板添加时 维护的 节点标识 值
ti.setPk_Org(this.getModel().getContext().getPk_org());
ti.setUserid(this.getModel().getContext().getPk_loginUser());
ti.setCurrentCorpPk(this.getModel().getContext().getPk_group());
ti.setFunNode("40041000");
//可赋值默认值
QueryConditionDLGDelegator conditionDLGDelegator=new QueryConditionDLGDelegator(parent, ti);
return conditionDLGDelegator;
}
//调用+默认赋值
QueryConditionDLGDelegator conditionDLG = this.getConditionClient(container);
conditionDLG.setDefaultValue("pk_org", pk_org);
conditionDLG.setDefaultValue("pk_supplier.code", supplierVO.getCode());
conditionDLG.setDefaultValue("pk_supplier.name", supplierVO.getName());
//获取查询条件值
ConditionVO[] generalCondtionVOs = conditionDLG.getGeneralCondtionVOs();
System.out.println(generalCondtionVOs);