软件工程日报(软工随笔)

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);

}

posted @ 2025-05-29 19:34  一只虎鲸  阅读(3)  评论(0)    收藏  举报