inspectiontask 是一个围绕“定时生成巡检任务、人工录入巡检结果、扫码记录留痕”的业务模块。它把巡检计划、巡检单、二维码、扫码记录四类能力串成一条闭环。
核心目标有三个:
对应类:
TimingTaskControllerTimingTaskServiceTimingTaskServiceImplTimingTaskSchedulerTimingTaskJobQuartzConfig职责:
对应类:
InspectionTaskControllerInspectionTaskServiceInspectionTaskServiceImpl职责:
对应类:
QrCodeControllerQrCodeServiceQrCodeServiceImpl职责:
对应类:
QrCodeScanRecordControllerQrCodeScanRecordServiceQrCodeScanRecordServiceImpl职责:
前端通过 POST /timingTask/addOrEditTimingTask 创建或修改巡检计划。
后端处理顺序是:
TimingTask。如果后续调用 POST /timingTask/changeEnable:
删除时会先删除数据库记录,再从 Quartz 中取消对应任务。
Quartz 到点后触发 TimingTaskJob。
执行逻辑是:
inspection_task。这一步是模块的核心自动化入口。
前端通过 POST /inspectionTask/addOrEditInspectionTask 批量提交巡检单。
后端逻辑是:
因此,这个模块不仅保存巡检结果,还承担“巡检异常 -> 自动生成维修任务”的联动职责。
巡检单列表接口会做一次“按定时任务聚合”的整理,而不是简单返回数据库原始行。
聚合逻辑大致是:
所以列表页看到的是“业务视角的巡检任务卡片”,不是逐条底层记录。
GET /timingTask/recordList/{timingId} 会查询某个定时任务在当天生成的巡检记录。
这里的范围限定为当天,是为了让页面查看“今日执行情况”更直接。
二维码模块只负责二维码本身的增删改查。
扫码记录模块负责把扫码行为、扫码人、二维码信息、附件信息串起来:
它的角色更像“巡检现场的辅助留痕模块”。
QuartzConfig 提供了 SchedulerFactoryBean 和 Scheduler,并通过自定义 JobFactory 支持 Job 内部自动注入 Spring 依赖。
TimingTaskScheduler 负责:
代码里支持的频率类型包括:
DAILYWEEKLYMONTHLYQUARTERLYYEARLY时间表达式由服务层和调度层共同解析,最终转换为 Quartz cron。
timing_task 的最后执行时间和下次执行时间。这个模块的主要关联关系可以理解为:
TimingTask 是巡检计划。InspectionTask 是巡检执行记录。QrCode 是现场二维码台账。QrCodeScanRecord 是扫码行为记录。前端对这个模块的使用方式可以概括为:
GET /inspectionTask/listPOST /inspectionTask/exportPOST /inspectionTask/addOrEditInspectionTaskDELETE /inspectionTask/delInspectionTaskGET /timingTask/listGET /timingTask/recordList/{timingId}POST /timingTask/exportPOST /timingTask/addOrEditTimingTaskPOST /timingTask/changeEnableDELETE /timingTask/delTimingTaskGET /qrCode/listPOST /qrCode/addOrEditQrCodeDELETE /qrCode/delQrCodeGET /qrCodeScanRecord/listPOST /qrCodeScanRecord/addOrEditQrCodeRecordDELETE /qrCodeScanRecord/delSalesRecordinspectiontask 模块本质上是一条“计划 -> 调度 -> 生成巡检单 -> 录入结果 -> 异常联动维修 -> 留痕查询”的业务链路。
如果后续要继续拆前后端联调,优先关注三块:定时任务的时间表达式、巡检结果的异常联动、以及巡检列表的聚合展示逻辑。