# tjt_czjs_backend

`tjt_czjs_backend` 是特建投设计产值统计平台的后端工程。当前底座基于 `Lyzsys` 后端框架，整体属于芋道源码体系上的二次开发版本。

这个项目负责提供管理后台 API、权限控制、数据访问、统计计算和通用基础能力。当前仓库中已经启用了 `system`、`infra`、`demo` 等模块，特建投业务建议后续独立沉淀为 `lyzsys-module-tjt`。

## 技术栈

- JDK 8

- Spring Boot 2.7.18

- Spring Security

- MyBatis Plus 3.5.15

- MyBatis Plus Join

- Dynamic Datasource

- Redisson

- Knife4j / SpringDoc

- Maven 多模块单体架构

## 快速开始

环境要求：

- JDK `1.8`

- Maven `3.6+`

- 数据库

- Redis

本地启动方式一：直接运行启动类：

- `lyzsys-server/src/main/java/cn/iocoder/lyzsys/server/LyzsysServerApplication.java`

本地启动方式二：Maven 启动：

```bash
mvn -pl lyzsys-server -am spring-boot:run
```

打包：

```bash
mvn clean package -DskipTests
```

运行 Jar：

```bash
java -jar lyzsys-server/target/lyzsys-server.jar --spring.profiles.active=local
```

## 本地配置说明

默认激活配置见 `lyzsys-server/src/main/resources/application.yaml`。

当前默认 Profile 为 `local`，当前本地端口配置为 `48080`。

启动前请自行核对 `application-local.yaml` 中的数据源、Redis、消息队列和其他环境相关配置。

## 接口文档

项目已接入 SpringDoc 与 Knife4j。服务启动后可访问：

- Swagger UI：`/swagger-ui`

- OpenAPI：`/v3/api-docs`

例如本地地址通常为：

```text
http://127.0.0.1:48080/swagger-ui
```

## 关键模块

- `lyzsys-server`
  启动容器与 API 聚合入口

- `lyzsys-framework`
  公共 starter 与基础能力封装

- `lyzsys-module-system`
  系统管理模块

- `lyzsys-module-infra`
  基础设施模块

- `lyzsys-module-demo`
  示例业务模块，可作为新增业务的参考模板

- `doc`
  后端详细文档目录

## 当前已启用模块

`lyzsys-server/pom.xml` 当前实际启用：

- `lyzsys-module-system`

- `lyzsys-module-infra`

- `lyzsys-module-demo`

说明：

框架层面虽然预留了 `bpm`、`ai`、`crm`、`erp`、`iot` 等模块入口，但当前服务并没有全部挂载启用。

## 特建投业务建议落位

建议后续新增独立业务模块：

- `lyzsys-module-tjt`

推荐按以下方向拆分：

- `controller/admin/project`

- `controller/admin/planning`

- `controller/admin/output`

- `controller/admin/profit`

- `service`

- `dal/dataobject`

- `dal/mysql`

- `convert`

建议接口前缀：

- `/tjt/project`

- `/tjt/planning`

- `/tjt/output`

- `/tjt/profit`

## 推荐参考代码

如果要按现有规范快速起一个业务模块，建议优先参考 `demo/project`：

- `lyzsys-module-demo/src/main/java/cn/iocoder/lyzsys/module/demo/controller/admin/project/ProjectController.java`

- `lyzsys-module-demo/src/main/java/cn/iocoder/lyzsys/module/demo/service/project/`

- `lyzsys-module-demo/src/main/java/cn/iocoder/lyzsys/module/demo/dal/`

这个示例已经包含新增、修改、删除、列表分页、批量删除、Excel 导出、`@PreAuthorize` 权限控制和 `CommonResult` 统一返回。

## 文档入口

后端详细文档：

- `doc/README.md`

- `doc/部署指南.md`

- `doc/架构设计.md`

- `doc/后端开发文档.md`

特建投业务分析与计划文档：

- [`../doc/特建投业务分析与计划.md`](../doc/特建投业务分析与计划.md)
