三拍:设备报修
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);
}
}
浙公网安备 33010602011771号