您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

1 个月前
1 个月前
1 个月前
1 个月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. # 福泉WebAPI - 智能物流管理系统
  2. ## 📋 项目简介
  3. 基于SpringBoot的智能物流管理系统后端API,提供车辆管理、称重记录、供应商管理等核心功能,支持AK/SK签名认证。
  4. ## ✨ 核心功能
  5. - 🚛 **物流管理**: 车辆信息、转运记录、称重记录
  6. - 👥 **用户管理**: 供应商、运输公司管理
  7. - 📊 **数据管理**: 品种信息、供应关系、图片管理
  8. - 🔐 **安全认证**: AK/SK签名验证、时间戳防重放
  9. ## 🛠 技术栈
  10. - **Spring Boot** 2.7.18
  11. - **Spring Data JPA**
  12. - **SQL Server**
  13. - **Maven**
  14. - **Java 8+**
  15. ## 🚀 快速开始
  16. ### 1. 环境要求
  17. - JDK 1.8+
  18. - Maven 3.6+
  19. - SQL Server 2012+
  20. ### 2. 配置数据库
  21. ```yaml
  22. spring:
  23. datasource:
  24. url: jdbc:sqlserver://localhost:1433;databaseName=fuquan_db;encrypt=false;trustServerCertificate=true
  25. username: your_username
  26. password: your_password
  27. ```
  28. ### 3. 配置API密钥
  29. ```yaml
  30. api:
  31. client:
  32. ak: your_access_key_here
  33. sk: your_secret_key_here
  34. ```
  35. ### 4. 启动应用
  36. #### 方式一:Maven启动(开发环境)
  37. ```bash
  38. mvn spring-boot:run
  39. ```
  40. #### 方式二:JAR包启动(生产环境)
  41. ```bash
  42. # 编译打包
  43. mvn clean package
  44. # 快速启动
  45. chmod +x run.sh
  46. ./run.sh
  47. # 或直接运行JAR
  48. java -jar target/webapi-0.0.1-SNAPSHOT.jar
  49. ```
  50. #### 方式三:Linux服务部署
  51. ```bash
  52. # 安装脚本
  53. chmod +x install.sh
  54. ./install.sh
  55. # 启动服务
  56. sudo systemctl start fuquan-webapi
  57. sudo systemctl enable fuquan-webapi
  58. # 查看状态
  59. sudo systemctl status fuquan-webapi
  60. ```
  61. 访问地址: `http://localhost:8806/fuquanapi`
  62. API文档: `http://localhost:8806/fuquanapi/swagger-ui.html`
  63. ## 🔐 安全认证
  64. ### 请求头要求
  65. ```http
  66. ak: your_access_key
  67. timestamp: 1640995200000
  68. signature: calculated_signature
  69. ```
  70. ### 签名计算
  71. ```java
  72. // 签名 = MD5(ak + sk + timestamp)
  73. String signature = MD5(accessKey + secretKey + timestamp);
  74. ```
  75. **注意**: 时间戳与服务器时间差不能超过10分钟
  76. ## 📚 主要API
  77. ### 数据同步API
  78. #### 基础同步接口
  79. - `POST /api/sync/single` - 同步单条数据
  80. - `POST /api/sync/batch` - 批量同步指定ID的数据
  81. - `POST /api/sync/unuploaded` - 同步所有未上传的数据
  82. - `POST /api/sync/incremental` - 增量同步数据(基于皮重时间)
  83. - `POST /api/sync/all` - 全量同步所有数据
  84. #### 分批处理接口(推荐用于大数据量)
  85. - `POST /api/sync/unuploaded/batch?batchSize=500` - 分批同步未上传数据
  86. - `POST /api/sync/incremental/batch?batchSize=500` - 分批增量同步
  87. - `POST /api/sync/all/batch?batchSize=500` - 分批全量同步
  88. **分批处理优势**:
  89. - 🚀 **性能优化**: 避免一次性加载大量数据到内存
  90. - 💾 **内存友好**: 每批处理500条记录,减少内存占用
  91. - 🔄 **错误恢复**: 单批失败不影响其他批次
  92. - 📊 **进度监控**: 实时显示每批处理进度
  93. - ⚡ **仅插入模式**: 不进行更新检查,直接插入新记录,提高性能
  94. ### 供应商管理
  95. ```http
  96. POST /api/supplier/page/conditions
  97. ```
  98. ### 运输公司管理
  99. ```http
  100. POST /api/transport-company/page/conditions
  101. ```
  102. ### 转运记录管理
  103. ```http
  104. POST /api/transfer-record/page/conditions
  105. ```
  106. ### 称重记录管理
  107. ```http
  108. POST /api/weighing-record/page/conditions
  109. ```
  110. ## 📁 项目结构
  111. ```
  112. src/main/java/com/example/webapi/
  113. ├── controller/ # 控制器层
  114. ├── service/ # 服务层
  115. ├── repository/ # 数据访问层
  116. ├── entity/ # 实体类
  117. ├── dto/ # 数据传输对象
  118. ├── interceptor/ # 拦截器
  119. └── util/ # 工具类
  120. ```
  121. ## 🐧 Linux部署脚本
  122. ### 脚本说明
  123. | 脚本 | 用途 | 适用场景 |
  124. |------|------|----------|
  125. | `run.sh` | 快速启动 | 开发测试 |
  126. | `start.sh` | 完整管理 | 生产环境 |
  127. | `install.sh` | 自动安装 | 首次部署 |
  128. ### 使用示例
  129. ```bash
  130. # 快速启动(开发环境)
  131. ./run.sh
  132. # 生产环境管理
  133. ./start.sh start # 启动应用
  134. ./start.sh stop # 停止应用
  135. ./start.sh restart # 重启应用
  136. ./start.sh status # 查看状态
  137. ./start.sh logs # 查看日志
  138. # 自动安装部署
  139. ./install.sh
  140. ```
  141. ### 系统服务管理
  142. ```bash
  143. # 启动服务
  144. sudo systemctl start fuquan-webapi
  145. # 停止服务
  146. sudo systemctl stop fuquan-webapi
  147. # 重启服务
  148. sudo systemctl restart fuquan-webapi
  149. # 查看状态
  150. sudo systemctl status fuquan-webapi
  151. # 开机自启
  152. sudo systemctl enable fuquan-webapi
  153. # 查看日志
  154. sudo journalctl -u fuquan-webapi -f
  155. ```
  156. ## 🐛 常见问题
  157. 1. **数据库连接失败**: 检查数据库服务和连接配置
  158. 2. **签名验证失败**: 确认AK/SK配置和时间戳格式
  159. 3. **分页查询异常**: 验证分页参数和查询条件
  160. 4. **端口被占用**: 修改配置文件中的端口号
  161. 5. **权限不足**: 确保脚本有执行权限 `chmod +x *.sh`
  162. ## 📞 联系方式
  163. - **项目地址**: [GitHub Repository]
  164. - **邮箱**: [your.email@example.com]
  165. ---
  166. **福泉WebAPI** - 让物流管理更智能! 🚀