Name Last Update
..
src/main Loading commit data...
.gitignore Loading commit data...
README.md Loading commit data...
mvnw Loading commit data...
mvnw.cmd Loading commit data...
pom-boot.xml Loading commit data...
pom-cloud.xml Loading commit data...
pom.xml Loading commit data...

README.md

Service-Job 模块技术文档

模块概述

Service-Job 是基于 Spring Boot 的微服务模块,主要负责任务调度、数据导出、物联网设备管理、商城接口、打印服务等核心业务功能。该模块采用命令驱动架构设计,通过 cmd 目录下的 34个核心命令接口 提供统一的服务接口。

技术架构

核心依赖

  • Spring Boot: 微服务框架基础
  • Quartz: 分布式任务调度引擎
  • Thymeleaf: 模板引擎,用于报表生成和页面渲染
  • Maven: 项目构建工具

架构特点

  • 命令驱动架构:所有业务逻辑通过 cmd 命令类实现
  • 异步处理:数据导出采用队列机制异步处理
  • 任务调度:基于 Quartz 实现定时任务管理
  • 模块化设计:按业务领域划分命令类目录

核心命令接口

Service-Job 模块共包含 34个核心命令接口,按业务领域分布在9个子目录中:

1. 数据导出模块 (export) - 1个接口

ExportDataCmd - 数据导出处理命令

  • 服务编码: export.exportData
  • 功能: 异步数据导出,支持 Excel 格式
  • 核心流程:
    • 验证项目ID和页面路径参数
    • 创建用户下载文件记录
    • 将导出任务加入队列异步处理
    • 返回文件生成状态

2. 物联网设备管理 (iot)

包含 13 个命令类,主要功能:

设备接入控制

  • GetOpenApiCmd - 开放API获取
  • GetAdminOpenApiCmd - 管理员开放API获取
  • PostOpenApiCmd - 开放API提交
  • GetIotTokenCmd - 物联网令牌获取
  • OpenAccessControlDoorCmd - 门禁开门控制

设备状态查询

  • ListAdminAccessControlCmd - 门禁设备列表
  • ListAdminBarrierCmd - 道闸设备列表
  • ListAdminChargeMachineCmd - 充电桩设备列表
  • ListAdminMeterMachineCmd - 计量表设备列表

数据记录查询

  • ListAdminAccessControlInoutCmd - 门禁进出记录
  • ListAdminCarInoutDetailCmd - 车辆进出详情
  • ListAdminChargeMachineOrderCmd - 充电订单记录
  • ListAdminMeterChargeCmd - 计量收费记录

3. 任务调度 (job)

RunJobCmd - 任务运行命令

  • 功能: 基于 Quartz 的任务调度执行
  • 集成: 继承 TaskSystemQuartz 抽象类实现具体业务逻辑

4. 商城服务 (mall)

包含 11 个命令类,主要功能:

商城基础服务

  • GetAdminMallOpenApiCmd - 管理员商城API
  • GetMallOpenApiCmd - 商城开放API
  • GetMallTokenCmd - 商城令牌获取

商品管理

  • ListProductGroupCmd - 商品分组列表
  • ListProductSeckillCmd - 秒杀商品列表
  • QueryMainCategoryCmd - 主分类查询
  • QueryPhoneMainCategoryProductCmd - 手机端商品查询

业务查询

  • QueryCommunityRecommendCmd - 项目推荐查询
  • QueryHousekeepingTypeCmd - 家政类型查询
  • QueryShopTypeCmd - 店铺类型查询

5. 计量设备 (meterMachine)

ListMeterMachineCmd - 计量设备列表

  • 功能: 查询计量表设备信息
  • 应用: 水电燃气等计量设备管理

6. 业主服务 (owner)

业主设备管理

  • ListOwnerMachinesCmd - 业主设备列表查询
  • QueryOwnerAcVideoUrlCmd - 业主视频门禁URL查询

7. 插件管理 (plugin)

GetPluginTokenCmd - 插件令牌获取

  • 功能: 为第三方插件提供认证令牌
  • 应用: 插件系统集成

8. 打印服务 (print)

票据打印

  • PrintAccountReceiptCmd - 账户收据打印
  • PrintPayFeeDetailCmd - 缴费明细打印

9. 用户文件下载 (userDownloadFile)

下载文件管理

  • DeleteUserDownloadFileCmd - 删除用户下载文件
  • ListUserDownloadFileCmd - 用户下载文件列表查询

任务调度实现

Quartz 调度框架

TaskSystemQuartz - 抽象任务调度基类

  • 提供任务执行模板方法
  • 支持任务状态管理和错误处理
  • 集成项目和商户信息查询

核心方法:

  • startTask(TaskDto taskDto): 任务启动入口,接收任务参数
  • process(TaskDto taskDto): 抽象业务处理方法
  • prepare(TaskDto taskDto): 前置处理钩子
  • after(TaskDto taskDto): 后置处理钩子

数据导出队列机制

ExportDataQueue - 数据导出队列

  • 基于 LinkedBlockingQueue 实现
  • 支持异步处理导出任务
  • 队列容量: 100个任务
  • 超时时间: 3秒(添加任务时的等待超时)

部署配置

Maven 配置

<dependencies>
    <dependency>
        <groupId>com.java110</groupId>
        <artifactId>java110-service</artifactId>
    </dependency>
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>

环境要求

  • Java 1.8+
  • Spring Boot 2.x
  • Maven 3.6+

使用说明

数据导出示例

// 调用导出命令
JSONObject reqJson = new JSONObject();
reqJson.put("communityId", "123456");
reqJson.put("pagePath", "userList");
// 执行导出,返回文件生成状态

任务调度配置

继承 TaskSystemQuartz 实现具体业务逻辑:

public class CustomTask extends TaskSystemQuartz {
    @Override
    protected void process(TaskDto taskDto) throws Exception {
        // 实现具体业务逻辑
    }
}

模块特点

  1. 命令驱动: 所有业务通过命令类实现,架构清晰
  2. 异步处理: 耗时操作采用队列异步处理
  3. 调度灵活: 基于 Quartz 的分布式任务调度
  4. 扩展性强: 模块化设计,易于扩展新功能
  5. 错误处理: 完善的异常处理和日志记录

维护说明

  • 新增命令类需在对应业务目录下创建
  • 任务调度类需继承 TaskSystemQuartz
  • 数据导出需使用 ExportDataQueue 队列机制
  • 所有命令类需使用 @Java110Cmd 注解注册服务编码