TEquipmentController.java 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. /**
  2. * Date:2019-09-23 17:09:15
  3. * author:吴洪双
  4. */
  5. package com.shawn.web.controller;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import java.util.Optional;
  9. import java.util.stream.Collectors;
  10. import com.shawn.model.dto.TAdminDTO;
  11. import com.shawn.model.dto.TEquipmentDTO;
  12. import com.shawn.model.entity.TAdmin;
  13. import com.shawn.model.entity.TAlarmRecord;
  14. import com.shawn.model.param.StatisticsParam;
  15. import com.shawn.service.interfac.TAdminServiceInterface;
  16. import com.shawn.service.interfac.TAlarmRecordServiceInterface;
  17. import com.shawn.util.BeanUtils;
  18. import com.shawn.util.PushUtils;
  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.PostMapping;
  23. import org.springframework.web.bind.annotation.RequestBody;
  24. import org.springframework.web.bind.annotation.RequestMapping;
  25. import org.springframework.web.bind.annotation.RestController;
  26. import com.shawn.model.dto.ResultMessage;
  27. import com.shawn.web.controller.base.BaseController;
  28. import com.shawn.model.entity.TEquipment;
  29. import com.shawn.model.entity.TEquipmentExample;
  30. import com.shawn.model.param.TEquipmentParam;
  31. import com.shawn.service.interfac.TEquipmentServiceInterface;
  32. import lombok.extern.apachecommons.CommonsLog;
  33. @CommonsLog
  34. @RestController
  35. @RequestMapping("TEquipment")
  36. public class TEquipmentController extends BaseController<TEquipment,TEquipmentExample,TEquipmentParam,Long>{
  37. @Autowired
  38. private TEquipmentServiceInterface tEquipmentService;
  39. @Autowired
  40. private TAdminServiceInterface tAdminService;
  41. @Autowired
  42. private TAlarmRecordServiceInterface tAlarmRecordService;
  43. @Autowired
  44. public TEquipmentController(TEquipmentServiceInterface service) {
  45. super(service);
  46. }
  47. @Override
  48. protected TEquipmentExample createNewExample() {
  49. return new TEquipmentExample();
  50. }
  51. @PostMapping("/getEquipmentListByUser")
  52. public ResponseEntity<?> getEquipmentListByUser(@RequestBody TAdmin param) {
  53. List<TAdminDTO> resultList = new ArrayList<>();
  54. if("admin".equals(param.getUsername())){ // 管理员查所有商家
  55. List<TAdmin> adminList = tAdminService.selectByOption(null);
  56. List<TEquipment> equipmentList = tEquipmentService.selectByOption(null);
  57. List<TAlarmRecord> alarmRecordList = tAlarmRecordService.getLastAlarmRecord(null);
  58. //获取当前用户今天所有机器的所以警报信息
  59. List<TAlarmRecord> alarmList = tAlarmRecordService.getAlarmList(null);
  60. resultList = adminList.stream().map(e ->{
  61. TAdminDTO dto = new TAdminDTO();
  62. BeanUtils.copyPropertiesIgnoreNull(e,dto,true);
  63. List<TEquipmentDTO> selList = equipmentList.stream()
  64. .filter(equipment ->e.getId().equals(equipment.getAdminId())) // 查对应的设备
  65. .map(equipment -> {
  66. TEquipmentDTO equipmentDTO = new TEquipmentDTO();
  67. BeanUtils.copyPropertiesIgnoreNull(equipment,equipmentDTO,true);
  68. Optional<TAlarmRecord> op = alarmRecordList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).findFirst();
  69. if(op.isPresent()){
  70. equipmentDTO.setAlarmContent(op.get().getAlarmContent());
  71. equipmentDTO.setOccurrenceTime(op.get().getOccurrenceTime());
  72. }
  73. //获取该机器的所有警报信息
  74. List<TAlarmRecord> eqAlarmList = alarmList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).collect(Collectors.toList());
  75. equipmentDTO.setAlarmList(eqAlarmList);
  76. return equipmentDTO;
  77. }).collect(Collectors.toList());
  78. dto.setEquipmentList(selList);
  79. return dto;
  80. }).collect(Collectors.toList());
  81. }else{ // 只查当前商家的设备列表
  82. TAdminDTO dto = new TAdminDTO();
  83. BeanUtils.copyPropertiesIgnoreNull(param,dto,true);
  84. TEquipmentExample example = new TEquipmentExample();
  85. TEquipmentExample.Criteria criteria = example.createCriteria();
  86. criteria.andAdminIdEqualTo(param.getId());
  87. List<TEquipment> equipmentList = tEquipmentService.selectByOption(example);
  88. List<TAlarmRecord> alarmRecordList = tAlarmRecordService.getLastAlarmRecord(param.getId());
  89. //获取当前用户今天所有机器的所以警报信息
  90. List<TAlarmRecord> alarmList = tAlarmRecordService.getAlarmList(param.getId());
  91. List<TEquipmentDTO> equipmentDTOList = equipmentList.stream().map(equipment -> {
  92. TEquipmentDTO equipmentDTO = new TEquipmentDTO();
  93. BeanUtils.copyPropertiesIgnoreNull(equipment,equipmentDTO,true);
  94. Optional<TAlarmRecord> op = alarmRecordList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).findFirst();
  95. if(op.isPresent()){
  96. equipmentDTO.setAlarmContent(op.get().getAlarmContent());
  97. equipmentDTO.setOccurrenceTime(op.get().getOccurrenceTime());
  98. }
  99. //获取该机器的所有警报信息
  100. List<TAlarmRecord> eqAlarmList = alarmList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).collect(Collectors.toList());
  101. equipmentDTO.setAlarmList(eqAlarmList);
  102. return equipmentDTO;
  103. }).collect(Collectors.toList());
  104. dto.setEquipmentList(equipmentDTOList);
  105. resultList.add(dto);
  106. }
  107. return ResponseEntity.status(HttpStatus.OK)
  108. .body(new ResultMessage().setCode(true).setData(resultList).setMessage("SUCCESS"));
  109. }
  110. @PostMapping("/updateName")
  111. public ResponseEntity<?> updateName(@RequestBody TEquipment equipment){
  112. Boolean t=tEquipmentService.updateById(equipment);
  113. if(t==true){
  114. return ResponseEntity.status(HttpStatus.OK)
  115. .body(new ResultMessage().setCode(true).setData(t).setMessage("修改成功"));
  116. }else {
  117. return ResponseEntity.status(HttpStatus.OK)
  118. .body(new ResultMessage().setCode(false).setData(t).setMessage("修改失败"));
  119. }
  120. }
  121. //获取机器数量
  122. @PostMapping("/getMachineNum")
  123. public ResponseEntity<?> getMachineNum(@RequestBody StatisticsParam param) {
  124. String machineTotalNum ="";
  125. String machineUseNum = "";
  126. String equipmentId = param.getEquipmentId();
  127. //判断是否有机器id传入
  128. if(equipmentId!=null && equipmentId!=""){
  129. Long id = Long.valueOf(equipmentId);
  130. TEquipment equipment = tEquipmentService.selectEntityById(id);
  131. Long adminId = equipment.getAdminId();
  132. String dminId = String.valueOf(adminId);
  133. param.setAdminId(dminId);
  134. machineTotalNum = tEquipmentService.findMachineTotalNum(param);
  135. machineUseNum = tEquipmentService.findMachineUseNum(param);
  136. }else{
  137. machineTotalNum = tEquipmentService.findMachineTotalNum(param);
  138. machineUseNum = tEquipmentService.findMachineUseNum(param);
  139. }
  140. List<String> list = new ArrayList<>();
  141. list.add(machineTotalNum);
  142. list.add(machineUseNum);
  143. return ResponseEntity
  144. .status(HttpStatus.OK)
  145. .body(new ResultMessage()
  146. .setCode(true)
  147. .setData(list)
  148. .setMessage("SUCCESS"));
  149. }
  150. //机器睡眠
  151. @PostMapping("/sleep")
  152. public ResponseEntity<?> sleep(@RequestBody StatisticsParam param) {
  153. String equipmentId = param.getEquipmentId();
  154. Long id = Long.valueOf(equipmentId);
  155. TEquipment equipment = tEquipmentService.selectEntityById(id);
  156. if (equipment == null) {
  157. // return ERROR_MESSAGE;
  158. }
  159. String eqeStatus = "0";
  160. String code = param.getAdminId();
  161. if (code.equals("1")) {
  162. eqeStatus = "1";
  163. equipment.setIsSleep(true);
  164. }else {
  165. equipment.setIsSleep(false);
  166. }
  167. tEquipmentService.updateById(equipment);
  168. PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("is_sleep", eqeStatus).toString());
  169. return ResponseEntity
  170. .status(HttpStatus.OK)
  171. .body(new ResultMessage()
  172. .setCode(true)
  173. .setData("SUCCESS")
  174. .setMessage("SUCCESS"));
  175. }
  176. }