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' ";
    }
}
相关推荐
浩星几秒前
electron系列6之性能优化:从启动慢到内存泄漏
前端·javascript·electron
君以思为故1 分钟前
认识Linux -- 线程同步与互斥
java·开发语言
飞Link4 分钟前
pprint 全量技术手册:复杂数据结构的结构化输出引擎
开发语言·前端·python
被摘下的星星6 分钟前
Java接口需要注意的细节
java·开发语言
Ruihong8 分钟前
Vue 迁移 React 实战:VuReact 一键自动化转换方案
前端·vue.js
培风图南以星河揽胜9 分钟前
幻想简历!博主本人期望的 AI Agent 全栈简历:Java + Python + Vue3 跨语言实战,代码已开源!
java·人工智能·python
opbr10 分钟前
还在手写 env 类型定义?这个 Vite 插件帮你自动搞定!
前端·vite
Qinana10 分钟前
前端正则表达式全解:从基础语法到实战应用
前端·javascript·面试
鬼先生_sir14 分钟前
Dubbo:从入门到精通
java·dubbo·springcloud
烟话616 分钟前
vue3响应式基础
前端·javascript·vue.js