三拍:设备报修

DeviceFault

package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("device_faults")
public class DeviceFault {
    @TableId(type = IdType.AUTO)
    private Integer faultId;
    private String deviceId;
    private String faultDesc;
    private String reportType;
    private String reportedId;
    private String reportedName;
    private String reportedPhone;
    private String status;

    public Integer getFaultId() {
        return faultId;
    }

    public void setFaultId(Integer faultId) {
        this.faultId = faultId;
    }

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public String getFaultDesc() {
        return faultDesc;
    }

    public void setFaultDesc(String faultDesc) {
        this.faultDesc = faultDesc;
    }

    public String getReportType() {
        return reportType;
    }

    public void setReportType(String reportType) {
        this.reportType = reportType;
    }

    public String getReportedId() {
        return reportedId;
    }

    public void setReportedId(String reportedId) {
        this.reportedId = reportedId;
    }

    public String getReportedName() {
        return reportedName;
    }

    public void setReportedName(String reportedName) {
        this.reportedName = reportedName;
    }

    public String getReportedPhone() {
        return reportedPhone;
    }

    public void setReportedPhone(String reportedPhone) {
        this.reportedPhone = reportedPhone;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}

DeviceFaultController

package com.example.demo.controller;

import com.example.demo.common.Result;
import com.example.demo.entity.DeviceFault;
import com.example.demo.service.DeviceFaultService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/*
 * Qi
 * 25/4/22
 * 设备的报修
 * */
@RestController
@RequestMapping("/device-fault")
public class DeviceFaultController {

    @Autowired
    private DeviceFaultService deviceFaultService;

    @GetMapping("/list")
    public Result getAllFaults() {
        return Result.success(deviceFaultService.getAllFaults());
    }

    @GetMapping("/pending")
    public Result getPendingFaults() {
        List<DeviceFault> pendingFaults = deviceFaultService.getPendingFaults();
        return Result.success(pendingFaults);
    }

    @GetMapping("/{faultId}")
    public Result getFault(@PathVariable Integer faultId) {
        DeviceFault fault = deviceFaultService.getFaultById(faultId);
        return fault != null ? Result.success(fault) : Result.fail("故障记录不存在");
    }

    @PostMapping("/add")
    public Result addFault(@RequestBody DeviceFault deviceFault) {
        if (deviceFaultService.addFault(deviceFault)) {
            return Result.success(deviceFault);
        }
        return Result.fail("添加故障记录失败,请确认设备是否存在");
    }

    @PutMapping("/update")
    public Result updateFault(@RequestBody DeviceFault deviceFault) {
        if (deviceFaultService.updateFault(deviceFault)) {
            return Result.success(deviceFault);
        }
        return Result.fail("更新故障记录失败");
    }

    @PutMapping("/status")
    public Result updateFaultStatus(@RequestBody DeviceFault deviceFault) {
        if (deviceFaultService.updateFaultStatus(deviceFault.getFaultId(), deviceFault.getStatus())) {
            return Result.success(deviceFault);
        }
        return Result.fail("更新故障状态失败");
    }
}

DeviceFaultService

package com.example.demo.service;

import com.example.demo.entity.DeviceFault;

import java.util.List;
/*
 * Qi
 * 25/4/22
 * 设备的报修
 * */
public interface DeviceFaultService {
    List<DeviceFault> getAllFaults();
    DeviceFault getFaultById(Integer faultId);
    boolean addFault(DeviceFault deviceFault);
    boolean updateFault(DeviceFault deviceFault);
    List<DeviceFault> getPendingFaults();
    boolean updateFaultStatus(Integer faultId, String status);
}

DeviceFaultServiceImpl

package com.example.demo.service.impl;

import com.example.demo.entity.Device;
import com.example.demo.entity.DeviceFault;
import com.example.demo.mapper.DeviceFaultMapper;
import com.example.demo.mapper.DeviceMapper;
import com.example.demo.service.DeviceFaultService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
/*
 * Qi
 * 25/4/22
 * 设备的报修
 * */
@Service
public class DeviceFaultServiceImpl implements DeviceFaultService {

    @Autowired
    private DeviceFaultMapper deviceFaultMapper;
    
    @Autowired
    private DeviceMapper deviceMapper;

    @Override
    public List<DeviceFault> getAllFaults() {
        return deviceFaultMapper.selectList(null);
    }

    @Override
    public DeviceFault getFaultById(Integer faultId) {
        return deviceFaultMapper.selectById(faultId);
    }

    @Override
    @Transactional
    public boolean addFault(DeviceFault deviceFault) {
        // 检查设备是否存在
        Device device = deviceMapper.selectById(deviceFault.getDeviceId());
        if (device == null) {
            return false;
        }
        
        // 设置初始状态
        deviceFault.setStatus("待处理");
        
        // 添加故障记录
        int result = deviceFaultMapper.insert(deviceFault);
        
        if (result > 0) {
            // 更新设备状态为故障
            device.setStatus("故障");
            deviceMapper.updateById(device);
            return true;
        }
        return false;
    }

    @Override
    public boolean updateFault(DeviceFault deviceFault) {
        return deviceFaultMapper.updateById(deviceFault) > 0;
    }

    @Override
    public boolean updateFaultStatus(Integer faultId, String status) {
        DeviceFault deviceFault = deviceFaultMapper.selectById(faultId);
        if (deviceFault != null) {
            deviceFault.setStatus(status);
            return deviceFaultMapper.updateById(deviceFault) > 0;
        }
        return false;
    }

    @Override
    public List<DeviceFault> getPendingFaults() {
        QueryWrapper<DeviceFault> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("status", "待处理");
        return deviceFaultMapper.selectList(queryWrapper);
    }
}
posted @ 2025-05-07 22:04  QixunQiu  阅读(9)  评论(0)    收藏  举报