# 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
企业数据,企业库:企业工商信息的查询、新增、修改、删除与 Excel 导入导出,并提供对外门户接口。
官网
插件开发
打包应用
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`
## 界面截图
**企业库:企业数据统计 + 搜索条件 + 企业数据列表**

## 使用方式
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)章节。