TAlarmRecordController.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.szwl.controller;
  2. import cn.com.crbank.ommo.bean.ResultMessage;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.metadata.IPage;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  8. import com.szwl.constant.ResponseCodesEnum;
  9. import com.szwl.model.bo.R;
  10. import com.szwl.model.bo.ResponseModel;
  11. import com.szwl.model.entity.*;
  12. import com.szwl.model.utils.PushUtils;
  13. import com.szwl.service.TAdminService;
  14. import com.szwl.service.TAlarmRecordService;
  15. import com.szwl.service.TEquipmentService;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.apache.commons.lang.StringUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.http.HttpStatus;
  21. import org.springframework.http.ResponseEntity;
  22. import org.springframework.web.bind.annotation.*;
  23. import java.text.ParseException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.*;
  26. import java.util.stream.Collectors;
  27. /**
  28. * <p>
  29. * 报警信息 前端控制器
  30. * </p>
  31. *
  32. * @author wuhs
  33. * @since 2022-04-27
  34. */
  35. @Api(value = "/tAlarmRecord", tags = {"报警信息"})
  36. @RestController
  37. @RequestMapping("/tAlarmRecord")
  38. public class TAlarmRecordController {
  39. @Autowired
  40. TEquipmentService tEquipmentService;
  41. @Autowired
  42. TAlarmRecordService tAlarmRecordService;
  43. @Autowired
  44. TAdminService adminService;
  45. @ApiOperation(value = "消除报警")
  46. @PostMapping("/eliminate")
  47. public ResponseEntity<?> eliminate(@RequestBody TAlarmRecord param){
  48. TAlarmRecord tAlarmRecord = tAlarmRecordService.getById(param.getId());
  49. TEquipment equipment = tEquipmentService.getById(tAlarmRecord.getEquipmentId());
  50. JSONObject kindData = new JSONObject();
  51. kindData.put("id" , param.getId());
  52. kindData.put("content" , tAlarmRecord.getAlarmContent());
  53. // equipment.getGtClientId();
  54. tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("eliminate", kindData.toString()).toString());
  55. // PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("eliminate", kindData.toString()).toString());
  56. return ResponseEntity.status(HttpStatus.OK)
  57. .body(new ResultMessage().setCode(true).setData("0").setMessage("已发送"));
  58. }
  59. @ApiOperation(value = "获取分销信息列表 分页")
  60. @GetMapping("/pageAlarmRecord")
  61. public ResponseModel<IPage<?>> pageAlarmRecord(String adminId, String clientId, String name, Date startDate,Date endDate, long current, long size ) {
  62. TAdmin admin = adminService.getById(adminId);
  63. if(StringUtils.isEmpty(adminId)){
  64. return R.fail(ResponseCodesEnum.A0100);
  65. }
  66. LambdaQueryWrapper<TAlarmRecord> query = Wrappers.lambdaQuery();
  67. if(admin.getType()>1){
  68. query.eq(TAlarmRecord::getAdminId,admin.getId());
  69. }
  70. // 申泽平台管理员
  71. if (admin.getId() == 2738) {
  72. LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
  73. adminQuery.isNull(TAdmin::getCompanyType).or()
  74. .eq(TAdmin::getCompanyType, "0");
  75. List<Long> adminIds = adminService.list(adminQuery).stream()
  76. .map(TAdmin::getId).collect(Collectors.toList());
  77. query.in(TAlarmRecord::getAdminId,adminIds);
  78. }
  79. // 七云平台管理员
  80. if (admin.getId() == 2739) {
  81. LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
  82. adminQuery.eq(TAdmin::getCompanyType, "1");
  83. List<Long> adminIds = adminService.list(adminQuery).stream()
  84. .map(TAdmin::getId).collect(Collectors.toList());
  85. query.in(TAlarmRecord::getAdminId,adminIds);
  86. }
  87. if(StringUtils.isNotEmpty(clientId)){
  88. LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
  89. query1.like(TEquipment::getClientId,clientId);
  90. TEquipment equipment = tEquipmentService.getOnly(query1);
  91. if(admin.getType()>1){
  92. if(equipment.getAdminId().toString().equals(adminId)){
  93. query.eq(TAlarmRecord::getClientId,equipment.getClientId());
  94. }else {
  95. return R.fail("设备编号出错");
  96. }
  97. }else {
  98. query.like(TAlarmRecord::getClientId,clientId);
  99. }
  100. }
  101. if(StringUtils.isNotEmpty(name)){
  102. query.like(TAlarmRecord::getName,name);
  103. }
  104. if(startDate!=null){
  105. query.gt(TAlarmRecord::getOccurrenceTime,startDate);
  106. }
  107. if(endDate!=null){
  108. query.lt(TAlarmRecord::getOccurrenceTime,endDate);
  109. }
  110. query.orderByDesc(TAlarmRecord::getOccurrenceTime);
  111. Page<TAlarmRecord> page = new Page<>(current, size, true);
  112. IPage<TAlarmRecord> iPage = tAlarmRecordService.page(page, query);
  113. return R.ok(iPage);
  114. }
  115. @ApiOperation(value = "查询今天是否有报警")
  116. @GetMapping("/isAlarm")
  117. public ResponseModel<?> isAlarm(Long adminId, String todayDate){
  118. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  119. Date date = null;
  120. try {
  121. date = sdf.parse(todayDate);
  122. } catch (ParseException e) {
  123. e.printStackTrace();
  124. }
  125. Calendar calendar = new GregorianCalendar();
  126. Calendar calendarEnd = new GregorianCalendar();
  127. calendar.setTime(date);
  128. calendarEnd.setTime(date);
  129. calendar.set(Calendar.HOUR_OF_DAY, 0);
  130. calendar.set(Calendar.MINUTE, 0);
  131. calendar.set(Calendar.SECOND, 0);
  132. calendar.set(Calendar.MILLISECOND, 0);
  133. calendarEnd.set(Calendar.HOUR_OF_DAY, 23);
  134. calendarEnd.set(Calendar.MINUTE, 59);
  135. calendarEnd.set(Calendar.SECOND, 59);
  136. calendarEnd.set(Calendar.MILLISECOND, 999);
  137. Date dateStart = calendar.getTime();
  138. Date dateEnd = calendarEnd.getTime();
  139. LambdaQueryWrapper<TAlarmRecord> tAlarmRecord = new LambdaQueryWrapper<>();
  140. tAlarmRecord.eq(TAlarmRecord::getAdminId, adminId);
  141. tAlarmRecord.eq(TAlarmRecord::getIsEliminate, 0);
  142. tAlarmRecord.gt(TAlarmRecord::getOccurrenceTime, dateStart);
  143. tAlarmRecord.le(TAlarmRecord::getOccurrenceTime, dateEnd);
  144. tAlarmRecord.orderByAsc(TAlarmRecord::getOccurrenceTime);
  145. List<TAlarmRecord> list = tAlarmRecordService.list(tAlarmRecord);
  146. if (list.size() > 0) {
  147. Map<Long, TAlarmRecord> latestRecordsMap = new HashMap<>();
  148. for (TAlarmRecord alarmRecord : list) {
  149. latestRecordsMap.put(alarmRecord.getEquipmentId(), alarmRecord);
  150. }
  151. list = new ArrayList<>(latestRecordsMap.values());
  152. return R.ok(list);
  153. }
  154. return R.ok();
  155. }
  156. }