增加增删设备功能接口 #55

Merged
hnu202326010106 merged 1 commits from wanglei_branch into develop 1 month ago

@ -10,11 +10,11 @@
## 本周任务计划安排
| 序号 | 计划内容 | 协作人 | 情况说明 |
| --- | ---------- | --- | --------------------------------------------------------------------------------------------------- |
| 1 | 开发工单管理接口 | 个人 | 已实现完整的工单管理接口包括抢单接口grabOrder拒单接口rejectOrder提交维修结果接口submitRepairResult获取可抢工单列表接口 ;获取我的工单接口 |
| 2 | 开发扫码用水接口 | 个人 | 已实现扫码用水全流程接口:扫码获取终端信息接口;扫码用水记录接口;自动更新终端使用统计数据 |
| 3 | 开发水质信息查询接口 | 个人 | 已实现水质信息查询接口根据设备ID返回最新TDS值原水、纯水、矿化水返回水质等级、滤芯寿命、设备状态等完整信息 |
| 序号 | 总结内容 | 是否完成 | 情况说明 |
| --- | ---------- | ------------------------------ | --------------------------------------------------------------------------------------------------- |
| 1 | 开发工单管理接口 | 完成 | 已实现完整的工单管理接口包括抢单接口grabOrder拒单接口rejectOrder提交维修结果接口submitRepairResult获取可抢工单列表接口 ;获取我的工单接口 |
| 2 | 开发扫码用水接口 | 完成 | 已实现扫码用水全流程接口:扫码获取终端信息接口;扫码用水记录接口;自动更新终端使用统计数据 |
| 3 | 开发水质信息查询接口 | 完成 | 已实现水质信息查询接口根据设备ID返回最新TDS值原水、纯水、矿化水返回水质等级、滤芯寿命、设备状态等完整信息 |
## 对团队工作的建议

@ -0,0 +1,48 @@
package com.campus.water.controller.web;
import com.campus.water.entity.Device;
import com.campus.water.service.DeviceService;
import com.campus.water.util.ResultVO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/web/device")
@RequiredArgsConstructor
@Tag(name = "设备管理接口", description = "Web管理端设备新增与删除接口")
public class DeviceController {
private final DeviceService deviceService;
/**
*
*/
@PostMapping("/add")
@Operation(summary = "新增设备", description = "添加新设备信息包括设备ID、名称、类型等")
public ResponseEntity<ResultVO<Device>> addDevice(@Valid @RequestBody Device device) {
try {
Device newDevice = deviceService.addDevice(device);
return ResponseEntity.ok(ResultVO.success(newDevice, "设备新增成功"));
} catch (Exception e) {
return ResponseEntity.ok(ResultVO.error(500, "设备新增失败: " + e.getMessage()));
}
}
/**
*
*/
@DeleteMapping("/delete/{deviceId}")
@Operation(summary = "删除设备", description = "根据设备ID删除指定设备需先解除终端绑定")
public ResponseEntity<ResultVO<Boolean>> deleteDevice(@PathVariable String deviceId) {
try {
deviceService.deleteDevice(deviceId);
return ResponseEntity.ok(ResultVO.success(true, "设备删除成功"));
} catch (Exception e) {
return ResponseEntity.ok(ResultVO.error(500, "设备删除失败: " + e.getMessage()));
}
}
}

@ -15,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
*
@ -143,4 +144,25 @@ public class DeviceService {
public long countByStatus(DeviceStatus status) {
return deviceRepository.findByStatus(status).size();
}
/**
*
*/
@Transactional
public void deleteDevice(String deviceId) {
// 1. 校验设备是否存在
Device device = getDeviceById(deviceId);
// 2. 检查设备是否已绑定终端
List<DeviceTerminalMapping> boundTerminals = terminalMappingRepository.findByDeviceId(deviceId);
if (!boundTerminals.isEmpty()) {
// 收集已绑定的终端ID便于前端提示
String terminalIds = boundTerminals.stream()
.map(DeviceTerminalMapping::getTerminalId)
.collect(Collectors.joining(","));
throw new RuntimeException("设备已绑定终端无法删除终端ID" + terminalIds + "");
}
// 3. 执行删除操作
deviceRepository.delete(device);
}
}
Loading…
Cancel
Save