@ -4,11 +4,13 @@ package com.fuyuanshen.equipment.controller;
import com.alibaba.excel.EasyExcel ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.fuyuanshen.common.core.constant.ResponseMessageConstants ;
import com.fuyuanshen.common.core.domain.R ;
import com.fuyuanshen.common.core.domain.ResponseVO ;
import com.fuyuanshen.common.core.domain.model.LoginUser ;
import com.fuyuanshen.common.core.utils.file.FileUtil ;
import com.fuyuanshen.common.mybatis.core.page.TableDataInfo ;
import com.fuyuanshen.common.satoken.utils.LoginHelper ;
import com.fuyuanshen.common.web.core.BaseController ;
import com.fuyuanshen.customer.mapper.CustomerMapper ;
import com.fuyuanshen.equipment.domain.Device ;
import com.fuyuanshen.equipment.domain.dto.DeviceExcelImportDTO ;
@ -49,7 +51,7 @@ import java.util.List;
@RestController
@RequiredArgsConstructor
@RequestMapping ( " /api/device " )
public class DeviceController {
public class DeviceController extends BaseController {
private final ISysOssService ossService ;
private final DeviceService deviceService ;
@ -72,106 +74,106 @@ public class DeviceController {
// @Log("新增设备")
@Operation ( summary = " 新增设备 " )
@PostMapping ( value = " /add " )
public ResponseVO < Object > addDevice ( @Validated @ModelAttribute DeviceForm deviceForm ) {
public R< Void > addDevice ( @Validated @ModelAttribute DeviceForm deviceForm ) {
try {
deviceService . addDevice ( deviceForm ) ;
} catch ( Exception e ) {
log . error ( " addDevice error: " + e . getMessage ( ) ) ;
return ResponseVO . fail ( e . getMessage ( ) ) ;
return R . fail ( e . getMessage ( ) ) ;
}
return ResponseVO . success ( null ) ;
return R. ok ( ) ;
}
// @Log("修改设备")
@Operation ( summary = " 修改设备 " )
@PutMapping ( value = " /update " )
public ResponseVO < Object > updateDevice ( @Validated @ModelAttribute DeviceForm deviceForm ) {
public R< Void > updateDevice ( @Validated @ModelAttribute DeviceForm deviceForm ) {
try {
deviceService . update ( deviceForm ) ;
} catch ( Exception e ) {
e . printStackTrace ( ) ;
log . error ( " updateDevice error: " + e . getMessage ( ) ) ;
return ResponseVO . fail ( " 出错了 " ) ;
return R . fail ( e . getMessage ( ) ) ;
}
return ResponseVO . success ( null ) ;
return R. ok ( ) ;
}
@Operation ( summary = " 设备详情 " )
@GetMapping ( value = " /detail/{id} " )
public ResponseVO < Object > getDevice ( @PathVariable Long id ) {
public R< Device > getDevice ( @PathVariable Long id ) {
Device device = deviceService . getById ( id ) ;
return ResponseVO . success ( device ) ;
return R. ok ( device ) ;
}
// @Log("删除设备")
@Operation ( summary = " 删除设备 " )
@DeleteMapping ( value = " /delete " )
public ResponseVO < Object > deleteDevice ( @Parameter ( name = " 传ID数组[] " ) @RequestBody List < Long > ids ) {
public R< Void > deleteDevice ( @Parameter ( name = " 传ID数组[] " ) @RequestBody List < Long > ids ) {
deviceService . deleteAll ( ids ) ;
return ResponseVO . success ( ResponseMessageConstants . DELETE_SUCCESS ) ;
return R. ok ( ) ;
}
@Operation ( summary = " 设备定位 " )
@GetMapping ( value = " /locateDevice " )
public ResponseVO < Object > locateDevice ( DeviceQueryCriteria criteria ) throws IOException {
public R< List < Device > > locateDevice ( DeviceQueryCriteria criteria ) throws IOException {
List < Device > devices = deviceService . queryAllDevices ( criteria ) ;
return ResponseVO . success ( devices ) ;
return R. ok ( devices ) ;
}
// @Log("分配客户")
@Operation ( summary = " 分配客户 " )
@PutMapping ( value = " /assignCustomer " )
public ResponseVO < Object > assignCustomer ( @Validated @RequestBody CustomerVo customerVo ) {
public R< Void > assignCustomer ( @Validated @RequestBody CustomerVo customerVo ) {
deviceService . assignCustomer ( customerVo ) ;
return ResponseVO . success ( null ) ;
return R. ok ( ) ;
}
// @Log("撤回设备")
@Operation ( summary = " 撤回分配设备 " )
@PostMapping ( value = " /withdraw " )
public ResponseVO < Object > withdrawDevice ( @RequestBody List < Long > ids ) {
public R< Void > withdrawDevice ( @RequestBody List < Long > ids ) {
try {
deviceService . withdrawDevice ( ids ) ;
} catch ( Exception e ) {
log . error ( " updateDevice error: " + e . getMessage ( ) ) ;
return ResponseVO . fail ( " 出错了 " ) ;
return R . fail ( e . getMessage ( ) ) ;
}
return ResponseVO . success ( null ) ;
return R. ok ( ) ;
}
/**
* @param deviceForm
* @param i d
* @return
* @ModelAttribute 主要用于将请求参数绑定到 Java 对象上,它会从 HTTP 请求的查询参数( Query Parameters)
* 或表单数据( Form Data) 中提取值, 并自动填充到指定的对象属性中。
*/
// @Log("解绑设备")
@Operation ( summary = " 解绑设备 " )
@Pos tMapping ( value = " /unbind " )
public ResponseVO < Object > unbindDevice ( @Validated @ModelAttribute DeviceForm deviceForm ) {
deviceService . unb indDevice( deviceForm ) ;
return ResponseVO . success ( " 解绑成功!!! " ) ;
@Operation ( summary = " WEB端 解绑设备" )
@Ge tMapping ( value = " /unbind " )
public R< Void > unbindDevice ( @Validated Long id ) {
return toAjax ( deviceService . webUnB indDevice( id ) ) ;
}
@Operation ( summary = " 导出数据设备 " )
@GetMapping ( value = " /download " )
public void exportDevice ( HttpServletResponse response , DeviceQueryCriteria criteria ) throws IOException {
public R < Void > exportDevice ( HttpServletResponse response , DeviceQueryCriteria criteria ) throws IOException {
List < Device > devices = deviceService . queryAll ( criteria ) ;
exportService . export ( devices , response ) ;
return R . ok ( ) ;
}
@Operation ( summary = " 导入设备数据 " )
@PostMapping ( value = " /import " , consumes = " multipart/form-data " )
public ResponseVO < ImportResult > importData ( @Parameter ( name = " 文件 " , required = true ) @RequestPart ( " file " ) MultipartFile file ) throws BadRequestException {
public R < ImportResult > importData ( @Parameter ( name = " 文件 " , required = true ) @RequestPart ( " file " ) MultipartFile file ) throws BadRequestException {
String suffix = FileUtil . getExtensionName ( file . getOriginalFilename ( ) ) ;
if ( ! ( " xlsx " . equalsIgnoreCase ( suffix ) ) ) {
@ -195,13 +197,13 @@ public class DeviceController {
// 设置响应消息
String message = String . format ( " 成功导入 %d 条数据,失败 %d 条 " , result . getSuccessCount ( ) , result . getFailureCount ( ) ) ;
// 返回带有正确泛型的响应
return ResponseVO . < ImportResult > success ( message , result ) ;
return R. ok ( message , result ) ;
} catch ( Exception e ) {
log . error ( " 导入设备数据出错: {} " , e . getMessage ( ) , e ) ;
// 在异常情况下,设置默认结果
String errorMessage = String . format ( " 导入失败: %s。成功 %d 条,失败 %d 条 " , e . getMessage ( ) , result . getSuccessCount ( ) , result . getFailureCount ( ) ) ;
// 使用新方法确保类型正确
return ResponseVO . < ImportResult > fail ( errorMessage , result ) ;
return R. fail ( errorMessage , result ) ;
}
}