AlarmSettingController.java 7.0 KB

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