AlarmSettingController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.huaxu.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  4. import com.huaxu.common.StringUtils;
  5. import com.huaxu.dto.AlarmSettingDto;
  6. import com.huaxu.entity.AlarmSetting;
  7. import com.huaxu.entity.GisSetting;
  8. import com.huaxu.model.AjaxMessage;
  9. import com.huaxu.model.LoginUser;
  10. import com.huaxu.model.Pagination;
  11. import com.huaxu.model.ResultStatus;
  12. import com.huaxu.service.AlarmSettingService;
  13. import com.huaxu.service.SceneService;
  14. import com.huaxu.util.UserUtil;
  15. import com.huaxu.util.OrgInfoUtil;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import io.swagger.annotations.ApiParam;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.util.List;
  22. /**
  23. * 报警设置控制层
  24. *
  25. * @author yjy
  26. * @since 2020-11-17
  27. */
  28. @RestController
  29. @RequestMapping("/alarmSetting")
  30. @Api(tags = "报警管理")
  31. public class AlarmSettingController {
  32. /**
  33. * 服务对象
  34. */
  35. @Autowired
  36. private AlarmSettingService alarmSettingService;
  37. @Autowired
  38. private SceneService sceneService;
  39. @Autowired
  40. private OrgInfoUtil orgInfoUtil;
  41. /**
  42. * 删除多条数据
  43. *
  44. * @param ids
  45. * @return Response对象
  46. */
  47. @RequestMapping(value = "deleteByAlarmIds", method = RequestMethod.POST)
  48. @ApiOperation(value = "删除报警配置信息")
  49. public AjaxMessage<Boolean> deleteByAlarmIds(@ApiParam(value = "报警配置ids", required = true) @RequestBody Long[] ids) {
  50. boolean result = alarmSettingService.deleteByAlarmIds(ids);
  51. return new AjaxMessage<>(ResultStatus.OK, result);
  52. }
  53. /**
  54. * 修改数据
  55. *
  56. * @param
  57. * @return Response对象
  58. */
  59. @RequestMapping(value = "updateByAlarmId", method = RequestMethod.POST)
  60. @ApiOperation(value = "修改报警配置信息")
  61. public AjaxMessage<Boolean> updateByAlarmId(@ApiParam(value = "报警配置信息", required = true) @RequestBody AlarmSetting alarmSetting) {
  62. if(alarmSetting.getId()==null) {
  63. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  64. }
  65. LoginUser currentUser = UserUtil.getCurrentUser();
  66. alarmSetting.setUpdateBy(currentUser.getUsername());
  67. boolean result = alarmSettingService.updateByAlarmId(alarmSetting);
  68. return new AjaxMessage<>(ResultStatus.OK, result);
  69. }
  70. /**
  71. * 增加数据
  72. *
  73. * @param
  74. * @return Response对象
  75. */
  76. @RequestMapping(value = "insertBatch", method = RequestMethod.POST)
  77. @ApiOperation(value = "批量增加报警配置信息",notes = "alarmType 为参数报警或状态报警")
  78. public AjaxMessage<Boolean> insertBatch(@ApiParam(value = "报警配置列表", required = true) @RequestBody List<AlarmSetting> listAlarmSetting) {
  79. LoginUser currentUser = UserUtil.getCurrentUser();
  80. for (AlarmSetting alarm:listAlarmSetting) {
  81. if(!(alarm.getAlarmType().equals("参数报警")||alarm.getAlarmType().equals("状态报警"))||alarm.getDeviceId()==null||
  82. (alarm.getAlarmType().equals("参数报警")&&(alarm.getAttributeId()==null|| StringUtils.isEmpty(alarm.getAlarmCondition())||alarm.getAlarmValue()==null))||
  83. (alarm.getAlarmType().equals("状态报警")&&(StringUtils.isEmpty(alarm.getAlarmCondition())||alarm.getAlarmValue()==null))){
  84. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  85. }
  86. alarm.setCreateBy(currentUser.getUsername());
  87. alarm.setTenantId(currentUser.getTenantId());
  88. alarm.setStatus(1);
  89. }
  90. boolean result = alarmSettingService.insertBatch(listAlarmSetting);
  91. return new AjaxMessage<>(ResultStatus.OK, result);
  92. }
  93. /**
  94. * 分页查询报警设置数据
  95. *
  96. * @param attributeName 报警参数
  97. * @param sceneId 场景id
  98. * @return
  99. */
  100. @RequestMapping(value = "selectPage", method = RequestMethod.GET)
  101. @ApiOperation(value = "分页查询报警设置数据")
  102. public AjaxMessage<Pagination<AlarmSettingDto>> selectPage(
  103. @ApiParam(value = "页数", required = true)@RequestParam Integer pageNum,
  104. @ApiParam(value = "条数", required = true)@RequestParam Integer pageSize,
  105. @ApiParam(value = "报警设置id", required = false) @RequestParam(required = false) Integer id,
  106. @ApiParam(value = "报警参数", required = false) @RequestParam(required = false) String attributeName,
  107. @ApiParam(value = "场景id", required = false) @RequestParam(required = false) Long sceneId) {
  108. AlarmSettingDto alarmSettingDto=new AlarmSettingDto();
  109. alarmSettingDto.setId(id);
  110. alarmSettingDto.setAttributeName(attributeName);
  111. alarmSettingDto.setSceneId(sceneId);
  112. alarmSettingDto.setSceneIds(sceneService.findByParentIdsLike(sceneId));
  113. IPage<AlarmSettingDto> iPage = new Page<>(pageNum, pageSize);
  114. iPage = alarmSettingService.selectPage(iPage, alarmSettingDto);
  115. Pagination<AlarmSettingDto> pages = new Pagination<>(iPage);
  116. for(AlarmSettingDto alarm : pages.getList()){
  117. alarm.setCompanyOrgName(orgInfoUtil.getOrgName(alarm.getCompanyOrgId()));
  118. alarm.setDeptOrgName(orgInfoUtil.getOrgName(alarm.getDeptOrgId()));
  119. }
  120. return new AjaxMessage<>(ResultStatus.OK, pages);
  121. }
  122. /**
  123. * 根据设备id查询属性信息
  124. *
  125. * @param deviceId
  126. * @return
  127. */
  128. @RequestMapping(value = "selectAttributes", method = RequestMethod.GET)
  129. @ApiOperation(value = "根据设备id查询属性信息")
  130. public AjaxMessage<List<AlarmSettingDto>> selectAttributes(@RequestParam Integer deviceId) {
  131. if(deviceId==null) {
  132. return new AjaxMessage<>(ResultStatus.PARAM_ERROR);
  133. }
  134. List<AlarmSettingDto> result = alarmSettingService.selectAttributes(deviceId);
  135. return new AjaxMessage<>(ResultStatus.OK, result);
  136. }
  137. }