软件工程日报(软工随笔)
package com.example.teamwebb.mapper;
import com.example.teamweb.model.EquipmentFault;
import com.example.teamweb.model.MaintenanceWorkOrder;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface EquipmentFaultMapper {
@Insert("INSERT INTO incmsystem.equipment_fault (stationId, equipmentId, fault_category, " +
"fault_description, fault_level, fault_report_time, reported_by, " +
"fault_photo_path, audit_status) " +
"VALUES (#{stationId}, #{equipmentId}, #{faultCategory}, " +
"#{faultDescription}, #{faultLevel}, #{faultReportTime}, #{reportedBy}, " +
"#{faultPhotoPath}, #{auditStatus})")
@Options(useGeneratedKeys = true, keyProperty = "faultId")
int insertFaultReport(EquipmentFault equipmentFault);
@Select("SELECT ef.*, s.stationName, e.equipment_name, u.userId as reporter_name " +
"FROM incmsystem.equipment_fault ef " +
"JOIN incmsystem.station s ON ef.stationId = s.stationId " +
"JOIN incmsystem.equipment e ON ef.equipmentId = e.equipment_id " +
"JOIN incmsystem.user u ON ef.reported_by = u.userId " +
"WHERE ef.reported_by = #{userId} " +
"ORDER BY ef.fault_report_time DESC")
List<EquipmentFault> selectFaultReportsByUser(Integer userId);
@Select("SELECT * FROM incmsystem.maintenance_work_order WHERE fault_id = #{faultId} LIMIT 1")
MaintenanceWorkOrder selectWorkOrderByFaultId(Integer faultId);
@Select("SELECT * FROM incmsystem.equipment_fault WHERE faultId = #{faultId}")
@Results({
@Result(property = "faultId", column = "fault_id"),
@Result(property = "equipmentId", column = "equipment_id"),
@Result(property = "equipmentName", column = "equipment_id",
one = @One(select = "com.example.teamwebapp.mapper.EquipmentMapper.selectEquipmentNameById"))
})
EquipmentFault selectFaultById(Integer faultId);
@Select("SELECT ef.*, s.stationName, e.equipment_name as equipmentName, u.username as reporterName " +
"FROM incmsystem.equipment_fault ef " +
"JOIN incmsystem.station s ON ef.stationId = s.stationId " +
"JOIN incmsystem.equipment e ON ef.equipmentId = e.equipment_id " +
"JOIN incmsystem.user u ON ef.reported_by = u.userId " +
"WHERE ef.audit_status = 'pend' " +
"ORDER BY ef.fault_report_time DESC")
List<EquipmentFault> selectPendingFaultReports();
@Update("UPDATE incmsystem.equipment_fault SET audit_status = #{status} WHERE faultId = #{faultId}")
int updateAuditStatus(@Param("faultId") Integer faultId, @Param("status") String status);
}