# wujies-enterprise-plugin **Repository Path**: wujies/wujies-enterprise-plugin ## Basic Information - **Project Name**: wujies-enterprise-plugin - **Description**: 企业数据 插件管理 管理企业数据插件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-23 - **Last Updated**: 2026-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Wujies 无界 logo

企业数据,企业库:企业工商信息的查询、新增、修改、删除与 Excel 导入导出,并提供对外门户接口。

应用版本 应用编码 License
官网 插件开发 打包应用 Gitee

--- ## 这个应用是什么 Wujies 无界平台([wujies.cn](https://wujies.cn))的**企业数据应用**,一个插件一个仓库:后端 Maven 模块在**仓库根**,前端远程应用在 `frontend/`。 - **后台**:应用市场装上后多一个「企业数据 → 企业库」菜单,前端是远程应用(`frontend/`,7 个文件), 带查询 / 新增 / 修改 / 删除 / 导出 / 导入六个按钮权限(`enterprise:company:*`)。 - **前台**:两个由 CMS 主题直出的公开页 —— `/site/company`(企业查询)、`/site/company/{id}`(单家企业详情), 模板在本仓库 `src/main/resources/site-templates/`(见「公开页与自带样式」)。 - **对外**:门户接口 `/portal/enterprise/company/list`、`/portal/enterprise/company/{id}`, 与后台用同一套 service,公开口径固定 `status='0'`。 应用编码 `enterprise` | 应用版本 `1.0.1` | 后端构件 `wujies-enterprise-plugin` | 引擎 `>=5.6.2 <6.0.0` ## 界面截图 **企业库:企业数据统计 + 搜索条件 + 企业数据列表** ![企业库:企业数据统计 + 搜索条件 + 企业数据列表](docs/screenshots/enterprise.png) ## 使用方式 1. 在本仓库根打包(三条命令各管一段,都在**本仓库根**执行): ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File package.ps1 -CheckOnly # ① 打包前检查:清单/产物/迁移/菜单/密钥,几秒返回 powershell -NoProfile -ExecutionPolicy Bypass -File package.ps1 -Dev # ② 开发包:不签名,落 ..\.plugin-dist\enterprise\dev powershell -NoProfile -ExecutionPolicy Bypass -File package.ps1 # ③ 正式包:构建 + 用 keys\private.pem 签名 ``` 2. 安装:管理端「应用市场 → 本地安装」上传 zip,或经上架中心(`wujies-market`)发布后由平台拉取。 包内产物路径由 `app.json` 的 `assets` 决定:`frontend` → `frontend/index.js` | `backend` → `backend/wujies-enterprise-plugin-1.0.1.jar` 关于上面三条命令的取值口径: - 判据是「脚本所在仓库根有没有 `app.json`」,所以在本仓库里**不要传 `-Plugin`**(它按子目录找清单, 会报「找不到插件目录」);`-FrontendProject` / `-FrontendDist` 也不用传 —— 独立布局的前端工程固定就是 本仓库 `frontend/`、产物 `frontend/dist`,脚本自己跑 `npm run build`(首次先 `cd frontend && npm install`, 缺依赖时脚本会把这条命令直接报给你)。只想复用现成产物就加 `-SkipBuild`。 - `-SkipFrontend` 只用于**没有前端**的纯后端应用:带前端时它会连「复制前端产物」一起跳过, 出的包只有 `app.json`,装上去没有界面。 - `-CheckOnly` 打出的 `CHECK|级别|项|说明` 行就是管理端「开发工具 → 插件开发 → 打包」抽屉里那份体检清单, 两边跑的是同一套检查;有 ERROR 时正式打包会被直接拦下。签名密钥在本仓库 `keys/` (`private.pem` + `public.pem`,已在 `.gitignore` 里),生成或更换用 `-Keygen` (覆盖已有密钥要显式加 `-KeygenForce`,旧钥先整份备份进 `keys\backup\<时间戳>\`)。 参数全表与产物结构见文档站[「打包应用」](https://docs.wujies.cn/docs/wujies/5.x/platform/package/build)与「密钥与签名」两页。 ## 开发环境 ```bash git clone git@gitee.com:wujies/wujies-enterprise-plugin.git cd wujies-enterprise-plugin ``` 最快的路子不用打包、不用重启宿主:启动平台宿主,打开管理端「**开发工具 → 插件开发**」, 找到 `enterprise` 这一行点「启动后端」(自动编译并加载 `target/classes`,同时开启监听)与「启动前端」 (常驻 `vite build --watch`,保存源码即重建,刷新页面生效,没有 HMR)。全流程见 文档站[「插件开发」](https://docs.wujies.cn/docs/wujies/5.x/platform/plugin)。 手工构建: ```bash mvn -B -o package -DskipTests # 后端(前提见「现状与前提」) cd frontend && npm install && npm run build # 前端,产物 dist/index.js + assets/enterprise-app.css ``` ## 仓库布局 | 位置 | 内容 | |---|---| | `pom.xml` | Maven 模块(父 pom = `cn.wujies.plugins:wujies-plugins-parent`,`` 已置空,版本 `1.0.0`) | | `app.json` | 应用清单,打包器读的**唯一事实来源**(`code` / `version` / `menus` / `assets`) | | `src/`、`migrations/` | Java 源码(21 个文件)与建表/种子脚本(`01-create-enterprise-tables.sql`) | | `src/main/resources/site-templates/` | 公开页直出的模板 `company-list.html`、`company-detail.html`(见下一节) | | `frontend/` | 远程应用源码(7 个文件),入口 `frontend/src/index.ts` | ## 公开页与自带样式 `site-templates/` 里那两个模板由 CMS 主题渲染:本插件的 `EnterpriseSiteRender` 经 SDK 的 `SiteRenderApi` 向内容中心(`cms`)借头/尾/导航的壳,`EnterpriseSiteController`(类级 `@RequestMapping(EnterpriseSiteLinks.PUBLIC_BASE)`, `PUBLIC_BASE` = `/site`)只负责 `@SaIgnore` + `produces=text/html;charset=UTF-8` 出整页。 **这一屏还没有自己的样式文件**:`src/main/resources/site-styles/` 在本仓库不存在,筛选那一列整屏沿用主题的 `.shop__*` 类与 `data-cms-shop` 钩子(版式照 `wujies-mall-plugin` 的 `shop.html`)。样式与静态资源端点下沉进 插件这一步只在图床跑通了,口径见 [`wujies-gallery-plugin`](https://gitee.com/wujies/wujies-gallery-plugin) README 的同名小节。 页面上钉死的几条口径(都在 `EnterpriseSiteController` / `EnterpriseSiteLinks` 的类注释里): - 筛选参数走 query 而不是路径段:`province`、`city`、`status`、`q`(搜索词,覆盖名称、代码、法人、地址与经营范围)、 `page`;空值整段不拼,第一页不带 `page`,带条件或翻页一律 `noindex`。 - 三组条件是经营状态、省份、城市,全部从这批数据里现查(`listPublic*`),没有字典表也没有常量表; 刻意没有行业与企业类型那两组 —— 那两列是导入的自由文本,同一件事十几种写法。 - 每屏条数钉死 `LIST_LIMIT = 10`:`PageQuery` 不带参数时 `pageSize = Integer.MAX_VALUE`,不钉住就是一次全表扫描。 - 只读,且联系方式(电话 / 邮箱)不在这一页出现,理由见 `EnterpriseSiteCard` 类注释; 详情页整页 `noindex`,id 非数字、企业不存在、已停用一律同一份 404。 - 租户口径沿用宿主拦截器:企业表是租户表(`TenantEntity`),匿名请求落在哪个租户由宿主决定。 ## 现状与前提 本仓库是从 `wujies-plugins` 单体仓库**搬出来的第一版**,两件事还没跟上: - **后端**:本机 `mvn -B -o package -DskipTests` 实测**通过**(前提:`wujies-plugins-parent` 与 `wujies-common-*` 已在 `~/.m2`)。陌生人 clone 后会卡在找不到父 pom —— 要等后端 BOM / 构件发布那一阶段。 - **前端**:已迁到已发布的 `@wujies/*` SDK(`ui-shared` / `components` / `api-client` / `ui-plugin-bundler-kit`)。`frontend/vite.config.ts` 只声明 `defineRemoteApp({ appCode, root })`, 共享依赖一律 external、运行期由宿主 import map 兜到同一份实例;宿主独有工具与业务模块 (`@/utils/wujies`、`@/api/system/*`、`UserSelect`/`MemberSelect` 等)按原样复制进了 `frontend/src/`, `proxy?.$modal` / `useDict` / `download` 与 `ImageUpload`/`UserDetail`/`Module*Settings` 由宿主运行时提供。 本仓库前端可独立构建;要直接落位到宿主,构建前设 `WUJIES_FRONTEND_DIST=/app-market-dist/remote-apps`。 - **打包**:本仓库自带**完整**的 `package.ps1`(母本在 `wujies-plugins` 仓库根,各仓用 `node scripts/sync-package-script.mjs` 同步过来),clone 下来就能在本仓库根直接体检、构建、签名、出包、 生成密钥,不需要回到单体仓库,也不需要手工传产物路径。 - **版本号**:`app.json` 的 `version` 与 `assets.backend` 都是 `1.0.1`(2026-11-02 对齐,之前 `version` 停在 `1.0.0` 而 `assets.backend` 已写 `1.0.1`,`package.ps1:1561-1568` 那条告警就是为这种漏改准备的)。 `pom.xml` 落 `target/wujies-enterprise-plugin-1.0.0.jar` 是**正常的**,不用跟着清单 bump:打包时 `package.ps1:1597` 直接把 target 里现成的 jar 按清单声明的文件名复制进包(`backend/wujies-enterprise-plugin-1.0.1.jar`), 所以 jar 的真实 Maven 版本与包内文件名不必一致 —— 清单说的是「应用版本」,pom 说的是「构件版本」。 ## 许可 MIT(与 `wujies-platform` 同口径;本仓库暂未放 LICENSE 文件)。 ## 参考 [`wujies-hello-plugin`](https://gitee.com/wujies/wujies-hello-plugin)(已按新布局跑通前端独立构建的样板)、 [`wujies-ui`](https://gitee.com/wujies/wujies-ui)(npm 上 `@wujies/*` 四件套的源码仓)、 [`wujies-gallery-plugin`](https://gitee.com/wujies/wujies-gallery-plugin)(公开页样式已下沉进插件的那一版), 文档站[「插件开发」](https://docs.wujies.cn/docs/wujies/5.x/platform/plugin)章节。