194 lines
7.3 KiB
Markdown
194 lines
7.3 KiB
Markdown
# SMT-ERP
|
||
|
||
SMT-ERP 是面向瑞银电子马来西亚(SMT)分公司的私有化 ERP 系统,服务于吉隆坡分公司的进销存、生产、财务和内部管理场景。
|
||
|
||
项目以 SMT 为首个落地试点,面向人员规模不超过 100 人的海外分公司建设,后续可复制到其他海外分公司。系统部署在 SMT 本地机房,核心业务数据由企业自主掌控。
|
||
|
||
## 项目目标
|
||
|
||
围绕“总部生产完成 → 调拨至 SMT → SMT 包装/组装 → 交付客户 → 收款”的业务链路,建立从订单、调拨、库存、生产到财务的闭环管理,解决库存依赖 Excel、审批依赖线下纸质流程以及业务账与财务账不一致等问题。
|
||
|
||
系统重点支持:
|
||
|
||
- TNB(马来西亚国家电力公司)订单及二级市场订单管理
|
||
- 总部调拨、SMT 本地包材采购和到货管理
|
||
- 包装 BOM、生产工单、领料、报工和完工入库
|
||
- 批次(LOT NO)与电表序列号(S/N From - S/N To)全流程追溯
|
||
- 销售出库、客户签收、应收应付、成本核算和财务报表
|
||
- 钉钉国际版审批集成,以及 SMT 与 Reallin 的数据互通
|
||
|
||
## 当前项目结构
|
||
|
||
```text
|
||
SMT_ERP/
|
||
├── smtERP-boot/ # Java 后端服务
|
||
│ ├── src/main/java/ # 控制器、业务逻辑、数据访问和系统配置
|
||
│ ├── src/main/resources/
|
||
│ │ ├── application.yml
|
||
│ │ └── mapper_xml/ # MyBatis XML 映射
|
||
│ └── docs/ # 初始化及数据库升级脚本
|
||
├── smtERP-web/ # Web 前端
|
||
│ ├── src/api/ # 后端接口封装
|
||
│ ├── src/views/ # 业务页面
|
||
│ └── src/components/ # 通用组件
|
||
├── LICENSE
|
||
└── README.md
|
||
```
|
||
|
||
## 技术架构
|
||
|
||
| 层级 | 当前实现 |
|
||
|---|---|
|
||
| 前端 | Vue 2.7.16、Vue Router 3、Vuex 3、Ant Design Vue 1.5.2、Axios |
|
||
| 后端 | Java 11、Spring Boot 2.0.0.RELEASE、Maven |
|
||
| 持久层 | MyBatis-Plus 3.0.7.1、MyBatis XML Mapper |
|
||
| 数据库 | MySQL 8.0.33 驱动,默认数据库名 `jsh_erp` |
|
||
| 缓存 | Redis |
|
||
| 接口文档 | Springfox Swagger 2.7.0、Swagger Bootstrap UI |
|
||
| 部署 | SMT 本地机房私有化部署,可运行于 Windows 或 Linux |
|
||
|
||
> 需求文档规划的 Vue 3 属于后续技术演进方向;当前仓库前端仍以 Vue 2.7.16 为准。后端编译版本以 `smtERP-boot/pom.xml` 中的 `<java.version>11</java.version>` 为准。
|
||
|
||
## 业务规划
|
||
|
||
### 第一阶段:核心业务闭环
|
||
|
||
1. 销售管理:客户、报价、TNB/二级市场订单、交货计划、发货、签收、销售对账。
|
||
2. 采购管理:总部调拨申请与接收、本地包材采购、供应商、采购入库和对账。
|
||
3. 生产管理:包装 BOM、包装工单、领料、生产报工、质检、完工入库和生产进度。
|
||
4. 仓储管理:多仓库、入库、出库、批次、序列号、库存账、库存预警、盘点和库存规划。
|
||
5. 审批与数据互通:接入钉钉国际版审批,并规划 SMT 与 Reallin 的业务数据同步。
|
||
|
||
### 第二阶段:内部信息化管理
|
||
|
||
将当前线下 Excel 管理内容逐步搬到线上,覆盖考勤、请假、培训、资产、费用及其他内部管理事项。
|
||
|
||
### 财务与合规重点
|
||
|
||
- 以人民币作为主要结算币种,同时支持本地采购使用 MYR(马来西亚林吉特)记录。
|
||
- 财务年度为每年 3 月 1 日至次年 3 月 31 日。
|
||
- 支持应收、应付、总账、费用、成本、发票和资产负债表/利润表等报表。
|
||
- 财务核算遵循马来西亚当地业务要求,预留 MFRS、SST 及电子发票相关能力。
|
||
- 发票录入需满足清关及货运文件齐全等前置条件,并支持跨期入账和电子发票提交时间窗口控制。
|
||
|
||
## 开发环境
|
||
|
||
- JDK 11
|
||
- Maven 3.6+(以本机 Maven 版本为准)
|
||
- Node.js 及 npm/yarn
|
||
- MySQL 8.0+
|
||
- Redis 6.x+
|
||
- IntelliJ IDEA 或其他 Java IDE
|
||
|
||
## 本地运行
|
||
|
||
### 1. 初始化数据库
|
||
|
||
创建 MySQL 数据库后,执行:
|
||
|
||
```text
|
||
smtERP-boot/docs/jsh_erp.sql
|
||
```
|
||
|
||
后续升级脚本按版本和实际需求执行,数据库升级记录见 `smtERP-boot/docs/`。
|
||
|
||
### 2. 配置后端
|
||
|
||
编辑 `smtERP-boot/src/main/resources/application.yml`,至少确认以下配置:
|
||
|
||
- MySQL 地址、数据库名、用户名和密码
|
||
- Redis 地址、端口和密码
|
||
- 文件上传目录及目录权限
|
||
- 服务端口和上下文路径
|
||
|
||
请勿在生产环境直接使用仓库中的示例密码,并避免将真实密码提交到 Git。
|
||
|
||
### 3. 启动后端
|
||
|
||
```bash
|
||
cd smtERP-boot
|
||
mvn spring-boot:run
|
||
```
|
||
|
||
后端默认地址:`http://localhost:27210/jshERP-boot`
|
||
|
||
### 4. 启动前端
|
||
|
||
```bash
|
||
cd smtERP-web
|
||
npm install
|
||
npm run serve
|
||
```
|
||
|
||
前端开发地址:`http://localhost:27200`。开发服务器会将 `/jshERP-boot` 请求代理到 `http://localhost:27210`。
|
||
|
||
### SMT 其他入库同步
|
||
|
||
外部平台可调用 `POST /jshERP-boot/smtInbound/sync`,请求头为
|
||
`Content-Type: application/json`,请求体示例:
|
||
|
||
```json
|
||
[
|
||
{
|
||
"docNo": "SM2503070001",
|
||
"businessDate": "2025-03-07 00:00:00.000",
|
||
"materialCode": "C.4.T.0.00562",
|
||
"materialName": "MD-4GVIII(VB)",
|
||
"specification": "MD-4GVIII(VB)",
|
||
"qtyPriceAmount": 50,
|
||
"finallyPrice": "324",
|
||
"totalNetMoney": "14336.280000000",
|
||
"totalMoney": "16200.000000000",
|
||
"sourceDocNo": "SH2503070002"
|
||
}
|
||
]
|
||
```
|
||
|
||
接口按 `docNo` 去重:未审核单据会被整单覆盖,已审核单据会跳过,并在
|
||
`auditedDocNos` 中返回冲突单号。Excel 导入使用同一规则。其他入库审核通过时,
|
||
系统以 `materialCode` 作为 ERP 条码创建或更新商品,并将库存写入“成品仓库”。
|
||
|
||
### 5. 构建
|
||
|
||
```bash
|
||
cd smtERP-web
|
||
npm run build
|
||
|
||
cd ../smtERP-boot
|
||
mvn clean package
|
||
```
|
||
|
||
构建生成的 `target/`、`dist/`、压缩包、`node_modules/` 和运行日志不会纳入版本库。
|
||
|
||
## 部署说明
|
||
|
||
系统采用 SMT 本地机房部署模式,建议由 SMT 开发与 IT 人员共同负责部署和日常维护,总部系统信息部提供架构、集成和技术支持。
|
||
|
||
生产部署至少应完成:
|
||
|
||
1. 准备 Java 11 运行环境、MySQL、Redis 和 Web 服务器/反向代理。
|
||
2. 初始化数据库并按发布版本执行升级脚本。
|
||
3. 使用生产数据库、Redis、文件目录和外部接口配置替换示例配置。
|
||
4. 配置前端静态文件、后端服务、反向代理、备份和日志轮转。
|
||
5. 上线前验证登录、权限、库存、单据、审批回调和数据同步链路。
|
||
|
||
## 组织与协作
|
||
|
||
SMT 当前组织包括财务部、市场部、技术部、生产部和行政部门,系统权限设计需结合部门、岗位、仓库和数据范围进行隔离。
|
||
|
||
- SMT 项目管理:Hafiz
|
||
- SMT 开发、需求收集和日常运维:Aziman
|
||
- SMT 机房、网络和部署支持:Haslim
|
||
- 总部架构、核心模块、钉钉国际版集成和技术支持:总部系统信息部
|
||
- 需求提交渠道:Reallin 售后服务平台
|
||
|
||
## 版本与状态
|
||
|
||
当前仓库是 SMT-ERP 的开发基线,已包含现有进销存、财务、生产、报表、系统管理等基础代码。需求文档中的钉钉国际版审批、SMT 与 Reallin 数据互通、完整序列号追溯及第二阶段内部信息化能力,按项目迭代计划逐步建设。
|
||
|
||
需求依据:SMT(马来西亚)ERP 系统需求文档 v1.7(2026-08-21)。
|
||
|
||
## 许可证
|
||
|
||
本项目遵循 Apache License 2.0,详见 [LICENSE](LICENSE)。
|