* git代码仓库 ``` http://146.56.199.25:3000/zhuibobo/EnforcementCode-NOS-2.0.git ``` * 数据库 * 开发时使用227上的库zfjd2.0-nos作为开发数据库 * 通过视图的方式引入了表,以进行必要功能的开发 ``` efcode_virtual_unit srz_dept srz_user sys_dept sys_user ``` * 部署时将合并2个库的表结构,现场和非现场的使用同一个数据库 * 表结构的维护全部采用sql,存入[nos](script/sql/nos)文件夹中,后续会通过脚本多次重建数据库 * 非现场执法的表明全部采用 nos_开头,方便后续区分 * 所有表和字段都需要加上中文的comment说明 * 将所有非现场执法的表的都加入租户的[application.yml](zdxt-web-server/zdxt-admin-web-server/src/main/resources/application.yml)yml的排除表配置中 ``` # 多租户配置 tenant: # 是否开启 enable: false # 排除表 excludes: - sys_menu - sys_tenant - sys_tenant_package ``` * 非现场的所有数据库表,需要增加以下字段: ``` ``` * 使用[install-to-maven.ps1](Libs/install-to-maven.ps1)将jar包注册到本地的maven仓库中,后续如果需要更新,也 * 后端的功能全部写入[zdxt-enforcement-nos](zdxt-modules/zdxt-enforcement-nos)中 * 前端分为3个 * 非现场企业端 * [zdxt-efcode-nos-enterprise-app](zdxt-web-client/zdxt-efcode-nos-enterprise-app) * 非现场执法端 * [zdxt-efcode-nos-enforcement-app](zdxt-web-client/zdxt-efcode-nos-enforcement-app) * 非现场监督端 * [zdxt-efcode-nos-supervision-app](zdxt-web-client/zdxt-efcode-nos-supervision-app) * 代码生成 * 将设计好的表,创建到执法码二期的库中,可以使用现有的代码生成的模块,生成统一风格的代码格式,方便后续维护 * 关于包名的修改,生成代码的地方,导入表后,点击编辑,生成信息中可以修改导出的包名,设置为com.zdxt.enforcementnos,这样导出后,代码和现有的功能目录一致 * 前端接入方法 * 开发时 ```mermaid graph TD A[开发时 App 登录页面] -->|Vite 代理转发登录请求| B["现场执法后台 /api 前缀请求(现场执法)"] B -->|返回访问 Token| C[后续接口访问] C --> D["/api 前缀请求(现场执法)"] C --> E["/nosapi 前缀请求(非现场执法)"] D -->|Vite 代理转发| F[现场执法后台] E -->|Vite 代理转发| F ``` * 部署时 * 从主页面进入非现场的页面时,会携带token,凭借token可以调用监督码的后台接口,获取相关的信息 ```mermaid graph TD A[从主页面进入非现场的页面时] -->|携带token进入| B["路由守卫拦截,获取token,存入$globalStore"] B -->|返回访问 Token| C[后续接口访问] C --> D["/api 前缀请求(现场执法)"] C --> E["/nosapi 前缀请求(非现场执法)"] D -->|NG 代理转发| F[现场执法后台] E -->|NG 代理转发| F ``` * 后端接入方法. * 现场执法提供给非现场执法的接口,所需的参数通过接口参数传递,不要凭借token去获取数据. * 非现场执法的接口,只验证token,不要再做其他权限设置,等后边合并的时候在考虑 * 前端进入后,先请求一次后端,将token提交给后端,后端自行存储,本次session中,凭借改token去调用后端接口 * 后续如何将非现场的代码合入现场执法的代码中 * 前端 * 前端分为3个独立的工程,每个都需要独立合并一次 * [zdxt-efcode-nos-enterprise-app](zdxt-web-client/zdxt-efcode-nos-enterprise-app) * [zdxt-efcode-nos-supervision-app](zdxt-web-client/zdxt-efcode-nos-supervision-app) * 后端 * 将[zdxt-enforcement-nos](zdxt-modules/zdxt-enforcement-nos)模块的代码拷贝到现场执法的代码中,应该就可以直接使用