AlarmGroupController.java 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /*
  2. * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions are met:
  6. *
  7. * Redistributions of source code must retain the above copyright notice,
  8. * this list of conditions and the following disclaimer.
  9. * Redistributions in binary form must reproduce the above copyright
  10. * notice, this list of conditions and the following disclaimer in the
  11. * documentation and/or other materials provided with the distribution.
  12. * Neither the name of the dreamlu.net developer nor the names of its
  13. * contributors may be used to endorse or promote products derived from
  14. * this software without specific prior written permission.
  15. * Author: Chill 庄骞 (smallchill@163.com)
  16. */
  17. package org.springblade.alarm.alarmgroup.controller;
  18. import cn.hutool.core.lang.Assert;
  19. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  20. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  21. import com.baomidou.mybatisplus.core.metadata.IPage;
  22. import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
  23. import io.swagger.annotations.Api;
  24. import io.swagger.annotations.ApiOperation;
  25. import io.swagger.annotations.ApiParam;
  26. import lombok.AllArgsConstructor;
  27. import org.springblade.alarm.alarmgroup.entity.AlarmGroup;
  28. import org.springblade.alarm.alarmgroup.service.IAlarmGroupService;
  29. import org.springblade.alarm.alarmgroup.vo.AlarmGroupVO;
  30. import org.springblade.community.residential.entity.Residential;
  31. import org.springblade.community.residential.service.IResidentialService;
  32. import org.springblade.core.boot.ctrl.BladeController;
  33. import org.springblade.core.mp.support.Condition;
  34. import org.springblade.core.mp.support.Query;
  35. import org.springblade.core.secure.BladeUser;
  36. import org.springblade.core.tool.api.R;
  37. import org.springblade.core.tool.utils.Func;
  38. import org.springblade.homecare.alarmlist.entity.Alarm;
  39. import org.springblade.system.orgposition.service.IOrgPositionService;
  40. import org.springblade.utils.QueryWrapperUtil;
  41. import org.springframework.web.bind.annotation.*;
  42. import javax.validation.Valid;
  43. import java.util.List;
  44. /**
  45. * 告警处理组 控制器
  46. *
  47. * @author BladeX
  48. * @since 2020-11-29
  49. */
  50. @RestController
  51. @AllArgsConstructor
  52. @RequestMapping("alarm/alarmgroup")
  53. @Api(value = "告警处理组", tags = "告警处理组接口")
  54. public class AlarmGroupController extends BladeController {
  55. private IAlarmGroupService alarmGroupService;
  56. private IResidentialService residentialService;
  57. private IOrgPositionService orgPositionService;
  58. /**
  59. * 详情
  60. */
  61. @GetMapping("/detail")
  62. @ApiOperationSupport(order = 1)
  63. @ApiOperation(value = "详情", notes = "传入alarmGroup")
  64. public R<AlarmGroup> detail(AlarmGroup alarmGroup) {
  65. AlarmGroup detail = alarmGroupService.getOne(Condition.getQueryWrapper(alarmGroup));
  66. return R.data(detail);
  67. }
  68. /**
  69. * 分页 告警处理组
  70. */
  71. @GetMapping("/list")
  72. @ApiOperationSupport(order = 2)
  73. @ApiOperation(value = "分页", notes = "传入alarmGroup")
  74. public R<IPage<AlarmGroup>> list(AlarmGroup alarmGroup, Query query, BladeUser bladeUser) {
  75. LambdaQueryWrapper<AlarmGroup> wrapper = new QueryWrapperUtil<AlarmGroup>().getBasicQueryWrapper(AlarmGroup::getOrgPosition, alarmGroup, bladeUser, orgPositionService);
  76. IPage<AlarmGroup> pages = alarmGroupService.page(Condition.getPage(query), wrapper);
  77. return R.data(pages);
  78. }
  79. /**
  80. * 自定义分页 告警处理组
  81. */
  82. @GetMapping("/page")
  83. @ApiOperationSupport(order = 3)
  84. @ApiOperation(value = "分页", notes = "传入alarmGroup")
  85. public R<IPage<AlarmGroupVO>> page(AlarmGroupVO alarmGroup, Query query) {
  86. IPage<AlarmGroupVO> pages = alarmGroupService.selectAlarmGroupPage(Condition.getPage(query), alarmGroup);
  87. return R.data(pages);
  88. }
  89. /**
  90. * 新增 告警处理组
  91. */
  92. @PostMapping("/save")
  93. @ApiOperationSupport(order = 4)
  94. @ApiOperation(value = "新增", notes = "传入alarmGroup")
  95. public R save(@Valid @RequestBody AlarmGroup alarmGroup) {
  96. return R.status(alarmGroupService.save(alarmGroup));
  97. }
  98. /**
  99. * 修改 告警处理组
  100. */
  101. @PostMapping("/update")
  102. @ApiOperationSupport(order = 5)
  103. @ApiOperation(value = "修改", notes = "传入alarmGroup")
  104. public R update(@Valid @RequestBody AlarmGroup alarmGroup) {
  105. return R.status(alarmGroupService.updateById(alarmGroup));
  106. }
  107. /**
  108. * 新增或修改 告警处理组
  109. */
  110. @PostMapping("/submit")
  111. @ApiOperationSupport(order = 6)
  112. @ApiOperation(value = "新增或修改", notes = "传入alarmGroup")
  113. public R submit(@Valid @RequestBody AlarmGroup alarmGroup) {
  114. Residential residential = residentialService.getById(alarmGroup.getResidentialId());
  115. Assert.notNull(residential, "选择的归属不存在!");
  116. alarmGroup.setResidentialName(residential.getName());
  117. if (alarmGroup.getId() == null){
  118. alarmGroupService.saveOrUpdate(alarmGroup);
  119. }
  120. alarmGroup.setOrgPosition(residential.getOrgPosition() +"/"+alarmGroup.getId());
  121. return R.status(alarmGroupService.saveOrUpdate(alarmGroup));
  122. }
  123. /**
  124. * 删除 告警处理组
  125. */
  126. @PostMapping("/remove")
  127. @ApiOperationSupport(order = 7)
  128. @ApiOperation(value = "逻辑删除", notes = "传入ids")
  129. public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
  130. // return R.status(alarmGroupService.deleteLogic(Func.toLongList(ids)));
  131. return R.status(alarmGroupService.removeGroup(Func.toLongList(ids)));
  132. }
  133. /**
  134. * setOrgPosition
  135. */
  136. @PostMapping("/setOrgPosition")
  137. public R setOrgPosition() {
  138. List<AlarmGroup> alarmGroups = alarmGroupService.getBaseMapper().selectList(new QueryWrapper<>(new AlarmGroup()));
  139. for (int i=0;i<alarmGroups.size();i++){
  140. AlarmGroup alarmGroup = alarmGroups.get(i);
  141. Residential residential = residentialService.getById(alarmGroup.getResidentialId());
  142. alarmGroup.setOrgPosition(residential.getOrgPosition()+"/"+alarmGroup.getId());
  143. alarmGroupService.updateById(alarmGroup);
  144. }
  145. return R.success("success");
  146. }
  147. }