|
|
@@ -1,18 +1,26 @@
|
|
|
package com.coffee.bus.controller;
|
|
|
|
|
|
+import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.mapper.Mapper;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.coffee.bus.controller.vo.DeviceBindVo;
|
|
|
import com.coffee.bus.entity.BusDeviceEntity;
|
|
|
+import com.coffee.bus.entity.BusDeviceRunningEntity;
|
|
|
import com.coffee.bus.entity.BusHospitalEntity;
|
|
|
import com.coffee.bus.enums.DeviceAlarmEnum;
|
|
|
+import com.coffee.bus.enums.DeviceStatusEnum;
|
|
|
import com.coffee.bus.exception.BusinessException;
|
|
|
import com.coffee.bus.exception.ErrorStatus;
|
|
|
import com.coffee.bus.registry.device.DeviceRegistry;
|
|
|
+import com.coffee.bus.service.LocalBusDeviceRunningService;
|
|
|
import com.coffee.bus.service.LocalBusDeviceService;
|
|
|
+import com.coffee.bus.service.dto.DeviceQuery;
|
|
|
+import com.coffee.bus.service.dto.DeviceResult;
|
|
|
import com.coffee.common.crud.BaseService;
|
|
|
import com.coffee.common.crud.controller.BaseCrudController;
|
|
|
import com.coffee.common.exception.CustomException;
|
|
|
@@ -27,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.validation.constraints.NotNull;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author lifang
|
|
|
@@ -43,28 +52,28 @@ import java.util.Objects;
|
|
|
@Api(tags = "设备管理",description = "统一权限前缀(device:info),device:info:add")
|
|
|
public class BusDeviceController extends BaseCrudController<BusDeviceEntity, String> {
|
|
|
private final LocalBusDeviceService deviceService;
|
|
|
-
|
|
|
+ private final LocalBusDeviceRunningService runningService;
|
|
|
@PostMapping("/shift/bind")
|
|
|
@ApiOperation(value = "设备换绑",notes = "权限【device:info:shift】")
|
|
|
public R shift(@RequestBody DeviceBindVo vo,@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId){
|
|
|
if(StrUtil.isEmpty(vo.getBindTenantId())|| CollectionUtil.isEmpty(vo.getDeviceIds())){
|
|
|
throw new CustomException("选择的医院、设备不能为空");
|
|
|
}
|
|
|
- deviceService.shift(tenantId,vo.getDeviceIds(),vo.getBindTenantId());
|
|
|
- return R.success(DeviceAlarmEnum.values());
|
|
|
- }
|
|
|
-
|
|
|
- @PostMapping("/undo/bind")
|
|
|
- @ApiOperation(value = "设备解绑",notes = "即自动将该设备绑定到默认医院上,权限【device:info:undo】")
|
|
|
- public R undo(@RequestBody DeviceBindVo vo,@RequestAttribute("tenantId")@ApiParam(hidden = true) String tenantId){
|
|
|
- if( CollectionUtil.isEmpty(vo.getDeviceIds())){
|
|
|
- throw new CustomException("选择的设备不能为空");
|
|
|
+ List<String> deviceIds = vo.getDeviceIds();
|
|
|
+ List<BusDeviceRunningEntity> deviceList = runningService.listByIds(deviceIds);
|
|
|
+ if(deviceList.stream().anyMatch(device -> !device.getRunState().equals(DeviceStatusEnum.Shutdown))){
|
|
|
+ throw new CustomException("所选设备中有设备未处于关机状态,此次操作无法进行");
|
|
|
}
|
|
|
- //1为默认医院id
|
|
|
- deviceService.shift(tenantId,vo.getDeviceIds(),"1");
|
|
|
+ deviceService.shift(tenantId,vo.getDeviceIds(),vo.getBindTenantId());
|
|
|
return R.success(DeviceAlarmEnum.values());
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/query/page")
|
|
|
+ @SaCheckPermission("device:info:query")
|
|
|
+ @ApiOperation(value = "设备管理分页查询",notes = "权限【device:info:query】")
|
|
|
+ public R<IPage<DeviceResult>> pageQuery(@RequestBody DeviceQuery query){
|
|
|
+ return R.success(deviceService.pageQuery(query.getPage(),query));
|
|
|
+ }
|
|
|
/**
|
|
|
* 权限控制前缀
|
|
|
* @return
|