package com.ruoyi.web.controller.system;
|
|
import java.util.Collections;
|
import java.util.List;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PutMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.constant.HttpStatus;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.core.page.PageDomain;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableSupport;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.system.domain.TDetectionCabinet;
|
import com.ruoyi.system.domain.vo.DiscoveredCabinetVo;
|
import com.ruoyi.system.service.IDetectionCabinetDiscoveryService;
|
import com.ruoyi.system.service.ITDetectionCabinetService;
|
|
/**
|
* 检测柜管理 Controller
|
*
|
* @author ruoyi
|
*/
|
@RestController
|
@RequestMapping("/system/detectionCabinet")
|
public class TDetectionCabinetController extends BaseController
|
{
|
private final ITDetectionCabinetService detectionCabinetService;
|
|
private final IDetectionCabinetDiscoveryService detectionCabinetDiscoveryService;
|
|
/**
|
* 构造检测柜管理控制器。
|
*
|
* @param detectionCabinetService 检测柜业务服务
|
* @param detectionCabinetDiscoveryService 检测柜设备发现服务
|
*/
|
public TDetectionCabinetController(ITDetectionCabinetService detectionCabinetService,
|
IDetectionCabinetDiscoveryService detectionCabinetDiscoveryService)
|
{
|
this.detectionCabinetService = detectionCabinetService;
|
this.detectionCabinetDiscoveryService = detectionCabinetDiscoveryService;
|
}
|
|
/**
|
* 分页查询检测柜,可按设备综合信息、创建时间和运行状态筛选。
|
*
|
* @param detectionCabinet 查询条件
|
* @return 分页结果
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(TDetectionCabinet detectionCabinet)
|
{
|
startPage();
|
List<TDetectionCabinet> list = detectionCabinetService.selectDetectionCabinetList(detectionCabinet);
|
return getDataTable(list);
|
}
|
|
/**
|
* 查询当前可发现的检测柜列表。
|
*
|
* @return 可发现检测柜分页数据
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:list')")
|
@GetMapping("/discovered/list")
|
public TableDataInfo discoveredList()
|
{
|
List<DiscoveredCabinetVo> devices = detectionCabinetDiscoveryService.selectDiscoveredCabinetList();
|
PageDomain pageDomain = TableSupport.buildPageRequest();
|
int pageNum = pageDomain.getPageNum() == null || pageDomain.getPageNum() < 1 ? 1 : pageDomain.getPageNum();
|
int pageSize = pageDomain.getPageSize() == null || pageDomain.getPageSize() < 1 ? 10 : pageDomain.getPageSize();
|
int fromIndex = Math.min((pageNum - 1) * pageSize, devices.size());
|
int toIndex = Math.min(fromIndex + pageSize, devices.size());
|
List<DiscoveredCabinetVo> rows = fromIndex == toIndex
|
? Collections.emptyList()
|
: devices.subList(fromIndex, toIndex);
|
TableDataInfo result = new TableDataInfo(rows, devices.size());
|
result.setCode(HttpStatus.SUCCESS);
|
result.setMsg("查询成功");
|
return result;
|
}
|
|
/**
|
* 查询检测柜详情。
|
*
|
* @param cabinetId 检测柜主键
|
* @return 检测柜详情
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:query')")
|
@GetMapping("/{cabinetId}")
|
public AjaxResult getInfo(@PathVariable Long cabinetId)
|
{
|
return success(detectionCabinetService.selectDetectionCabinetById(cabinetId));
|
}
|
|
/**
|
* 新增检测柜,创建人取当前登录用户。
|
*
|
* @param detectionCabinet 检测柜信息
|
* @return 操作结果
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:add')")
|
@Log(title = "检测柜管理", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@Validated @RequestBody TDetectionCabinet detectionCabinet)
|
{
|
detectionCabinet.setCreateBy(getUsername());
|
return toAjax(detectionCabinetService.insertDetectionCabinet(detectionCabinet));
|
}
|
|
/**
|
* 修改检测柜基础信息,更新人取当前登录用户。
|
*
|
* @param detectionCabinet 检测柜信息
|
* @return 操作结果
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:edit')")
|
@Log(title = "检测柜管理", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@Validated @RequestBody TDetectionCabinet detectionCabinet)
|
{
|
detectionCabinet.setUpdateBy(getUsername());
|
return toAjax(detectionCabinetService.updateDetectionCabinet(detectionCabinet));
|
}
|
|
/**
|
* 切换检测柜启禁用状态,测试中的检测柜不能禁用。
|
*
|
* @param detectionCabinet 检测柜主键及目标状态
|
* @return 操作结果
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:changeStatus')")
|
@Log(title = "检测柜管理", businessType = BusinessType.UPDATE)
|
@PutMapping("/changeStatus")
|
public AjaxResult changeStatus(@RequestBody TDetectionCabinet detectionCabinet)
|
{
|
detectionCabinet.setUpdateBy(getUsername());
|
return toAjax(detectionCabinetService.updateDetectionCabinetStatus(detectionCabinet));
|
}
|
|
/**
|
* 批量逻辑删除检测柜,测试中的检测柜不能删除。
|
*
|
* @param cabinetIds 检测柜主键数组
|
* @return 操作结果
|
*/
|
@PreAuthorize("@ss.hasPermi('system:detectionCabinet:remove')")
|
@Log(title = "检测柜管理", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{cabinetIds}")
|
public AjaxResult remove(@PathVariable Long[] cabinetIds)
|
{
|
return toAjax(detectionCabinetService.deleteDetectionCabinetByIds(cabinetIds, getUsername()));
|
}
|
}
|