MercPcDeviceController.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.xy.controller;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.core.util.BooleanUtil;
  5. import cn.hutool.core.util.ObjectUtil;
  6. import cn.hutool.core.util.StrUtil;
  7. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  8. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  9. import com.xy.annotate.RestMappingController;
  10. import com.xy.annotation.LogOperate;
  11. import com.xy.collections.list.JArrayList;
  12. import com.xy.collections.map.JMap;
  13. import com.xy.device.EnumDeviceActiveStatus;
  14. import com.xy.device.EnumDeviceFreezeStatus;
  15. import com.xy.device.EnumDeviceOnlineStatus;
  16. import com.xy.dto.*;
  17. import com.xy.dto.be.MercDto;
  18. import com.xy.dto.common.MercPlaceDto;
  19. import com.xy.entity.*;
  20. import com.xy.enums.LogEnum;
  21. import com.xy.enums.MercStatus;
  22. import com.xy.service.*;
  23. import com.xy.service.be.MercFeignService;
  24. import com.xy.service.be.MercService;
  25. import com.xy.service.common.MercLineService;
  26. import com.xy.service.common.MercPlaceService;
  27. import com.xy.service.factory.device.DeviceFactory;
  28. import com.xy.utils.*;
  29. import com.xy.utils.Enum.AlgorithmTypeEnum;
  30. import com.xy.utils.enums.*;
  31. import com.xy.vo.DeviceDetailVO;
  32. import io.swagger.annotations.Api;
  33. import io.swagger.annotations.ApiOperation;
  34. import lombok.AllArgsConstructor;
  35. import org.springframework.validation.annotation.Validated;
  36. import org.springframework.web.bind.annotation.PostMapping;
  37. import org.springframework.web.bind.annotation.RequestBody;
  38. import javax.validation.Valid;
  39. import java.time.LocalDateTime;
  40. import java.util.List;
  41. import java.util.Map;
  42. import java.util.Objects;
  43. import java.util.stream.Collectors;
  44. import static com.xy.utils.Beans.copy;
  45. /**
  46. * 商管PC-设备
  47. */
  48. @RestMappingController("merc-pc/device")
  49. @AllArgsConstructor
  50. @Api(tags = "商管PC-设备")
  51. public class MercPcDeviceController {
  52. private final DeviceInfoServiceImpl deviceService;
  53. private final MercService mercService;
  54. private final DeviceStatusServiceImpl deviceStatusService;
  55. private final DeviceEventMsgService deviceEventMsgService;
  56. @ApiOperation("设备分页-商户")
  57. @PostMapping("page")
  58. public R<PageBean<DeviceInfoDto.Vo2>> page(@RequestBody DeviceInfoDto.Page page) {
  59. page.setMercId(page.getMercId() == null ? MercAuthUtils.getMercId() : page.getMercId());
  60. //非商户管理员,按设备权限过滤
  61. if (!MercAuthUtils.isMercAdmin()) {
  62. List<Long> mercDeviceIds = getMercDeviceIds(true);
  63. if (CollUtil.isEmpty(mercDeviceIds)) {
  64. return R.ok(new PageBean<>());
  65. }
  66. page.setDeviceIdList(mercDeviceIds);
  67. }
  68. PageBean<DeviceInfoDto.Vo2> vo2PageBean = deviceService.queryPage(page);
  69. return R.ok(vo2PageBean);
  70. }
  71. @ApiOperation("设备分页-统计")
  72. @PostMapping("pageCount")
  73. public R<DeviceInfoDto.PageCount> pageCount(@RequestBody DeviceInfoDto.Page page) {
  74. page.setMercId(page.getMercId() == null ? MercAuthUtils.getMercId() : page.getMercId());
  75. //非商户管理员,按设备权限过滤
  76. List<Long> mercDeviceIds = getMercDeviceIds(true);
  77. if (CollUtil.isEmpty(mercDeviceIds)) {
  78. return R.ok(new DeviceInfoDto.PageCount ());
  79. }
  80. page.setMyDeviceIds(mercDeviceIds);
  81. return R.ok(deviceService.pageCountForPc(page));
  82. }
  83. /**
  84. * 获取商户设备列表
  85. *
  86. * @return {@link List}<{@link Long}>
  87. */
  88. public List<Long> getMercDeviceIds(Boolean showNoActive) {
  89. MercDto.MercDevicesDTO mercDevicesDTO = new MercDto.MercDevicesDTO();
  90. mercDevicesDTO.setMercAdmin(MercAuthUtils.isMercAdmin());
  91. mercDevicesDTO.setMercId(MercAuthUtils.getMercId());
  92. Long userId = MercAuthUtils.getMercAuth().getUserInfo().getUserId();
  93. mercDevicesDTO.setUserId(userId);
  94. mercDevicesDTO.setShowNoActive(showNoActive);
  95. List<Long> deviceIds = R.feignCheckData(mercService.getMercDevices(mercDevicesDTO));
  96. return deviceIds;
  97. }
  98. @ApiOperation("设备温度异常事件测试")
  99. @PostMapping("testDeviceTempAlarm")
  100. public R<?> testDeviceTempAlarm(@RequestBody DeviceInfoDto.Vo vo) {
  101. //添加事件
  102. String msg = "温度异常-温度阈值%d - %d,当前温度%d";
  103. DeviceEventMsgDto.Save deviceEventMsg = new DeviceEventMsgDto.Save()
  104. .setDeviceId(vo.getDeviceId());
  105. deviceEventMsg.setCode(DeviceErrorRecordTypesEnum.T.getCode());
  106. deviceEventMsg.setMsg(String.format(msg, -30, 30, 40));
  107. deviceEventMsgService.save(deviceEventMsg);
  108. return R.ok();
  109. }
  110. }