diff --git a/ruoyi-modules/hw-rfid/src/main/java/org/dromara/rfid/controller/RfidDowntimeRecordController.java b/ruoyi-modules/hw-rfid/src/main/java/org/dromara/rfid/controller/RfidDowntimeRecordController.java new file mode 100644 index 0000000..c76cfbf --- /dev/null +++ b/ruoyi-modules/hw-rfid/src/main/java/org/dromara/rfid/controller/RfidDowntimeRecordController.java @@ -0,0 +1,68 @@ +package org.dromara.rfid.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.rfid.domain.vo.RfidReadRecordVo; +import org.dromara.rfid.domain.vo.RfidDowntimeRecordVo; +import org.dromara.rfid.domain.bo.RfidReadRecordBo; +import org.dromara.rfid.service.IRfidReadRecordService; + +/** + * 停机记录 + *
+ * 上位机写入,web只读,不提供增删改接口。仅提供列表查询和导出。 + * 底层数据复用 rfid_read_record 分表,但业务语义为"停机记录"。 + *
+ * + * @author zch + * @date 2026-05-18 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/rfid/downtimeRecord") +public class RfidDowntimeRecordController extends BaseController { + + private final IRfidReadRecordService rfidReadRecordService; + + /** + * 查询停机记录列表 + */ + @SaCheckPermission("rfid:downtimeRecord:list") + @GetMapping("/list") + public TableDataInfo+ * 上位机写入,web只读展示。仅暴露核心业务字段:设备编号、设备名称、读取状态、记录时间。 + * 底层数据复用 rfid_read_record 分表,但业务语义为"停机记录"。 + *
+ * + * @author zch + * @date 2026-05-18 + */ +@Data +@ExcelIgnoreUnannotated +public class RfidDowntimeRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 标识 + */ + private Long id; + + /** + * 设备id,对应rfid_device.id + */ + private Long deviceId; + + /** + * 设备编号(连表 rfid_device.device_code) + */ + @ExcelProperty(value = "设备编号") + private String deviceCode; + + /** + * 设备名称(连表 rfid_device.device_name) + */ + @ExcelProperty(value = "设备名称") + private String deviceName; + + /** + * 读取状态(1-成功;0-失败) + */ + @ExcelProperty(value = "读取状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "read_status") + private String readStatus; + + /** + * 记录时间 + */ + @ExcelProperty(value = "记录时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date recordTime; + + /** + * 从 RfidReadRecordVo 转换为停机记录 VO(只取核心字段) + */ + public static RfidDowntimeRecordVo from(RfidReadRecordVo vo) { + RfidDowntimeRecordVo downtime = new RfidDowntimeRecordVo(); + downtime.setId(vo.getId()); + downtime.setDeviceId(vo.getDeviceId()); + downtime.setDeviceCode(vo.getDeviceCode()); + downtime.setDeviceName(vo.getDeviceName()); + downtime.setReadStatus(vo.getReadStatus()); + downtime.setRecordTime(vo.getRecordTime()); + return downtime; + } +}