NC BIP参照开发

BIP参照开发

全局人员参照

前端开发

js 复制代码
import { high } from 'nc-lightapp-front';
import { conf as unitConf } from '../../../../uap/refer/riart/groupTreeRef/index';

const { Refer } = high;

export var conf = {
  refType: 'gridTree',
  refName: '全局人员',
  placeholder: '全局人员',
  columnConfig: [
    { 
      name: ["编码", "名称", "部门", "组织"], 
      code: ["bd_psndoc.code", "bd_psndoc.name", "org_dept.name", "org_orgs.name"] 
    }
  ],
  queryGridUrl: '/nccloud/hrhi/ref/GLBPsndocGridRefAction.do',
  queryTreeUrl: '/nccloud/hrhi/ref/GLBPsndocTreeRefAction.do',
};

export default function (props = {}) {
  return <Refer {...Object.assign({}, conf, props)} />;
}

后端开发

java 复制代码
public class GLBPsndocTreeRefAction extends DefaultTreeRefAction {
    public GLBPsndocTreeRefAction() {
        super();
        //设置默认不显示被停用数据
        setShowDisabledData(false);
        //设置数据权限资源code
        setResourceCode(IOrgResourceCodeConst.ORG);
    }

    @Override
    public TreeRefMeta getRefMeta(RefQueryInfo refQueryInfo) {
        TreeRefMeta treeRefMeta = new TreeRefMeta();
        treeRefMeta.setPkField(OrgVO.PK_ORG);
        treeRefMeta.setPidField(OrgVO.PK_FATHERORG);
        treeRefMeta.setCodeField(OrgVO.CODE);
        treeRefMeta.setNameField(OrgVO.NAME);
        treeRefMeta.setMutilLangNameRef(false);
        treeRefMeta.setTableName(OrgVO.getDefaultTableName());
        return treeRefMeta;
    }

    @Override
    public String getExtraSql(RefQueryInfo refQueryInfo, RefMeta refMeta) {
        return " and isbusinessunit = 'Y'";
    }

}

public class GLBPsndocGridRefAction extends DefaultGridRefAction {

    public GLBPsndocGridRefAction() {
        this.setResourceCode("org");
    }

    public RefMeta getRefMeta(RefQueryInfo info) {
        RefMeta meta = new RefMeta();
        meta.setMutilLangNameRef(false);
        meta.setExtraFields(new String[]{"bd_psndoc.pk_psndoc", "bd_psndoc.code", "bd_psndoc.name", "org_orgs.name", "org_dept.name"});
        meta.setCodeField("bd_psndoc.code");
        meta.setNameField("bd_psndoc.name");
        meta.setPkField("bd_psndoc.pk_psndoc");
        String sql = " bd_psndoc INNER JOIN bd_psnjob ON bd_psndoc.pk_psndoc = bd_psnjob.pk_psndoc AND bd_psnjob.ismainjob = 'Y' and bd_psnjob.enddutydate is null  LEFT OUTER JOIN org_orgs ON org_orgs.pk_org = bd_psnjob.pk_org LEFT OUTER JOIN org_dept ON org_dept.pk_dept = bd_psnjob.pk_dept";
        meta.setTableName(sql);
        return meta;
    }

    public String getExtraSql(RefQueryInfo refQueryInfo, RefMeta refMeta) {
        String sql = "";
        if (refQueryInfo instanceof TreeRefQueryInfo) {
            TreeRefQueryInfo treeRefQueryInfo = (TreeRefQueryInfo)refQueryInfo;
            String pid = treeRefQueryInfo.getPid();
            if (StringUtils.isNotBlank(pid)) {
                sql = "and org_orgs.pk_org = '" + pid + "'";
            }
        }

        return sql;
    }
}

承运商参照

前端开发

js 复制代码
import { high } from 'nc-lightapp-front';
const { Refer } = high;

/**
 * 承运商基本信息-表型参照
 * @since 2026/02/10 11:03:38
 * @param {*} props 
 */
export default function (props = {}) {
    let config = {
        multiLang: {
            domainName: 'medpub',
            currentLocale: 'zh-CN',
            moduleId: 'refer_rg0_supplier'
        },
        refType: 'grid',
        refName: 'rg0_supplier_0001', /** 国际化处理:承运商基本信息 */
        placeholder: 'rg0_supplier_0001', /** 国际化处理:承运商基本信息 */
        IsMultiSelectedEnabled: true,
        columnConfig: [
            {
                code: [
					"refcode", 
					"refname",
				],
                name: [
					"rg0_supplier_0002", /** 国际化处理:编码 */
					"rg0_supplier_0003", /** 国际化处理:名称 */
				]
            }
        ],
        refCode: 'medpub.refer.SupplierGridRefer',
        queryGridUrl: '/nccloud/medpub/refer/SupplierGridRefAction.do'
    };

    return <Refer {...config} {...props} />
}

后端开发

java 复制代码
public class SupplierGridRefAction extends DefaultGridRefAction {

    public SupplierGridRefAction() {
        super();
    }

    @Override
    public RefMeta getRefMeta(RefQueryInfo refQueryInfo) {
        RefMeta refMeta = new RefMeta();
		
		// 参照主键字段
        refMeta.setPkField("pk_supplier");
		// 参照编码字段
        refMeta.setCodeField("code");
		// 参照名称字段
        refMeta.setNameField("name");
		// 参照额外字段,extraFields为设置时参照默认显示"编码"和"名称"俩字段
		refMeta.setExtraFields(new String[] {"code", "name"});
		
		refMeta.setTableName(getTableName());
		refMeta.setMutilLangNameRef(true);
        return refMeta;
    }
	
	private String getTableName() {
        return "bd_supplier";
    }

    @Override
    public String getExtraSql(RefQueryInfo refQueryInfo, RefMeta refMeta) {
        return " and iscarrier = 'Y' ";
    }
}
相关推荐
杨杨杨大侠7 小时前
都能接模型、RAG 和 MCP,Java Agent 框架到底差在哪?
java
Autumn_ing7 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
keyipatience8 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
Thinker QAQ8 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
朱涛的自习室8 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
霸道流氓气质9 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
AOI小白新手上路9 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库
java1234_小锋10 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
鶴哥只手遮天11 小时前
Vue 3 核心源码深度剖析系列(v3.5.44)-第 1 章 项目全景:monorepo 架构与工程化体系
前端·vue.js·开源