一、前置准备:税务版专属基础组件
1.1 硬件要求
- 服务器/本地Windows电脑:CPU 4核及以上、内存8G及以上、固态盘50G+(用于存储涉税文书PDF)
- 备用USB闪存盘:128G及以上,用于备份增量税务档案(税务合规要求双备份)
1.2 软件组件(全免费开源)

所有组件直接点击对应链接下载,无需登录注册第三方平台:
- Java 17 LTS(基础运行环境):https://download.oracle.com/java/17/archive/jdk-17.0.12_windows-x64_bin.exe
- Spring Boot项目脚手架简化工具(Jhipster Lite简化税务版适配):https://github.com/jhipster/jhipster-lite/releases/download/v1.18.0/jhlite-1.18.0.jar
- MySQL 8.0.36(涉税数据必须本地落库,符合隐私保护要求):https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-installer-community-8.0.36.0.msi
- MinIO RELEASE.2024-08-28T17-29-58Z(本地对象存储,替代合规风险高的云盘):https://dl.min.io/server/minio/release/windows-amd64/minio.exe
二、环境配置:合规基础的搭建
2.1 安装Java 17并配置环境变量
- 双击下载的jdk-17.0.12_windows-x64_bin.exe,默认路径安装,直到完成
- 右键“此电脑”→属性→高级系统设置→环境变量
- 在系统变量栏点击“新建”,变量名填
JAVA_HOME,变量值填C:\Program Files\Java\jdk-17.0.12(与实际安装路径一致)
- 找到系统变量的
Path,点击“编辑”,添加两条新变量:
%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
- 验证:按Win+R输入cmd,运行
java -version,出现java version "17.0.12"则成功
2.2 安装MySQL并创建税务专属库
- 双击mysql-installer-community-8.0.36.0.msi,选择“Developer Default”→Next→Execute(自动下载安装依赖)
- 进入配置界面,Root账户密码设置:必须包含大小写字母+数字+特殊字符(如Tax123!@),符合税务数据安全要求
- 在“Windows Service”界面,保持默认服务名
MySQL80,启动类型选“自动”
- 验证:打开MySQL 8.0 Command Line Client,输入刚才的Root密码,运行以下SQL创建库和授权用户:
```sql
CREATE DATABASE tax_archive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'tax_admin'@'localhost' IDENTIFIED BY 'Tax123!@';
GRANT ALL PRIVILEGES ON tax_archive. TO 'tax_admin'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
2.3 配置MinIO本地存储
- 新建文件夹
D:\minio-data(作为涉税文书存储目录),新建文件夹D:\minio-config(作为配置目录)
- 将下载的minio.exe放到
D:\minio文件夹
- 在
D:\minio文件夹下新建记事本,粘贴以下内容,另存为start_minio.bat(编码选ANSI,避免中文乱码):
```batch
@echo off
set MINIO_ROOT_USER=tax_minio_admin
set MINIO_ROOT_PASSWORD=TaxMinio123!@
minio server D:\minio-data --console-address ":9001" --config-dir D:\minio-config
pause
```
- 双击start_minio.bat启动,浏览器访问
http://localhost:9001,用刚才的Root账号密码登录
- 在MinIO界面点击“Buckets”→“Create Bucket”,名称填
tax-documents,开启Versioning(合规要求保留文书修改历史)、Object Locking(合规要求锁定部分永久保存文书),点击保存
三、项目生成与适配:税务版功能快速落地
3.1 用JHLite生成基础项目
- 新建文件夹
D:\tax-archive-system,将下载的jhlite-1.18.0.jar放进去
- 在该文件夹下打开cmd,运行
java -jar jhlite-1.18.0.jar,启动成功后浏览器访问http://localhost:7471
- 进入界面后,按以下步骤配置:
- Project:选择Spring Boot 3.3.3(稳定版,适配Java 17)
- Build Tool:选择Maven
- Package Name:填
com.tax.archive
- Base Name:填
tax-archive
- Database:选择MySQL
- Authentication:选择JWT Session(税务系统需要长期且可追溯的登录状态)
- File Storage:选择MinIO
- Database Migration:选择Liquibase(自动同步数据库表,降低合规维护成本)
- 点击“Generate”,下载压缩包,解压到
D:\tax-archive-system覆盖原jar所在文件夹
3.2 修改适配税务版的配置文件
- 打开项目文件夹下的
src/main/resources/config/application-local.yml,替换为以下内容(注意:Root密码与之前设置完全一致):
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/tax_archive?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: tax_admin
password: Tax123!@
driver-class-name: com.mysql.cj.jdbc.Driver
liquibase:
contexts: local
change-log: classpath:config/liquibase/master.xml
servlet:
multipart:
max-file-size: 100MB 税务发票、申报表等大文件支持
max-request-size: 100MB
minio:
url: http://localhost:9000
access-key: tax_minio_admin
secret-key: TaxMinio123!@
bucket-name: tax-documents
server:
port: 8080
servlet:
context-path: /tax-archive
jhipster:
security:
authentication:
jwt:
base64-secret: dGhpcy1pcy1hLXNlY3JldC1mb3ItdGF4LWFyY2hpdmUtc3lzdGVtLWZvci1sZWFybmluZy1vbmx5LXN0cm9uZy1lbm91Z2gtcGFzc3dvcmQ= 替换的话生成64位以上Base64字符串
client-app:
name: taxArchive
```
- 打开
src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml,在末尾的前添加税务专属档案表:
```xml
```
3.3 启动项目并验证
- 在项目根目录打开cmd,运行
mvnw.cmd spring-boot:run(首次运行会下载依赖,需等待5-10分钟)
- 启动成功后,浏览器访问
http://localhost:8080/tax-archive
- 使用默认管理员账号登录:用户名
admin,密码admin(首次登录必须立即修改密码,修改路径:右上角用户头像→Account Settings→Change Password)
四、核心税务文书归档实操
- 在MinIO界面点击
tax-documents桶→“Access Rules”→“Add Access Rule”,前缀填public/,权限选readonly(临时公开文书链接,但建议仅内部通过系统访问)
- 在项目界面新增“tax_dev”普通用户(权限仅能归档查看文书,不能修改系统设置)
- 切换到“tax_dev”账号,点击“Add Tax Document”(需自行用JHLite前端生成器快速添加,步骤:回到JHLite界面,选择生成的项目后,点击“Add Entity”,填写实体名“TaxDocument”,对应字段手动补充doc_type、doc_code等,保存后点击“Update Project”,重新解压覆盖项目根目录,重启即可)
- 归档必填项:doc_type(如增值税专用发票、企业所得税年度申报表)、doc_code(必须唯一,建议用“纳税人识别号+YYYYMM+流水号”格式,如91110105MA00ABCD1E202409001)
- 上传PDF文件后,系统自动保存到MinIO并生成访问记录,如需锁定永久保存的文书,勾选“Lock Status”并设置极长的“Lock Expire Date”(如9999-12-31)
五、日常维护与合规备份
- 数据库备份:每天凌晨1点(用Windows任务计划)运行以下批处理文件(新建记事本,保存为backup_db.bat):
```batch
@echo off
set BACKUP_PATH=D:\tax-backup\db
set MYSQL_PATH=C:\Program Files\MySQL\MySQL Server 8.0\bin
set DATE=%date:~0,4%%date:~5,2%%date:~8,2%
%MYSQL_PATH%\mysqldump -u tax_admin -pTax123!@ tax_archive > %BACKUP_PATH%\tax_archive_%DATE%.sql
forfiles /p %BACKUP_PATH% /m .sql /d -30 /c "cmd /c del @path"
pause
```
- MinIO数据备份:每天凌晨2点(任务计划)将
D:\minio-data整个文件夹复制到备用USB闪存盘