EnvDeviceController.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.huimv.guowei.admin.controller;
  2. import com.alibaba.druid.util.StringUtils;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.huimv.guowei.admin.common.utils.Result;
  6. import com.huimv.guowei.admin.common.utils.ResultCode;
  7. import com.huimv.guowei.admin.entity.EnvDevice;
  8. import com.huimv.guowei.admin.entity.EnvDeviceEquipment;
  9. import com.huimv.guowei.admin.service.IEnvDeviceEquipmentService;
  10. import com.huimv.guowei.admin.service.IEnvDeviceService;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import org.springframework.transaction.interceptor.TransactionAspectSupport;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.annotation.Resource;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. import java.util.Map;
  18. /**
  19. * <p>
  20. * 前端控制器
  21. * </p>
  22. *
  23. * @author author
  24. * @since 2023-06-01
  25. */
  26. @RestController
  27. @RequestMapping("/env-device")
  28. @CrossOrigin
  29. public class EnvDeviceController {
  30. @Resource
  31. private IEnvDeviceService envDeviceService;
  32. @Resource
  33. private IEnvDeviceEquipmentService envDeviceEquipmentService;
  34. @PostMapping("/listDevice")
  35. public Result listDevice(@RequestBody Map<String ,String> paramsMap){
  36. String deviceType = paramsMap.get("deviceType");
  37. String farmId = paramsMap.get("farmId");
  38. String pageNo = paramsMap.get("pageNum");
  39. String pageSize = paramsMap.get("pageSize");
  40. Page<EnvDevice> page = new Page(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
  41. return new Result(ResultCode.SUCCESS,envDeviceService.page(page, new QueryWrapper<EnvDevice>()
  42. .eq(!StringUtils.isEmpty(deviceType),"device_type",deviceType)
  43. .eq("farm_id",farmId).orderByDesc("id")));
  44. }
  45. @PostMapping("/listH5Device")
  46. public Result listH5Device(@RequestBody Map<String ,String> paramsMap){
  47. String deviceType = paramsMap.get("deviceType");
  48. String farmId = paramsMap.get("farmId");
  49. String pageNo = paramsMap.get("pageNum");
  50. String pageSize = paramsMap.get("pageSize");
  51. Page<EnvDevice> page = new Page(Integer.parseInt(pageNo),Integer.parseInt(pageSize));
  52. if (deviceType.equals("1")){
  53. return new Result(ResultCode.SUCCESS,envDeviceService.page(page, new QueryWrapper<EnvDevice>()
  54. .eq(!StringUtils.isEmpty(deviceType),"device_type",deviceType)
  55. .eq("farm_id",farmId).orderByDesc("id")));
  56. }else {
  57. return new Result(ResultCode.SUCCESS, envDeviceService.page(page, new QueryWrapper<EnvDevice>()
  58. .in("device_type", 2, 3)
  59. .eq("farm_id", farmId).orderByDesc("id")));
  60. }
  61. }
  62. @PostMapping("/listScale")
  63. public Result listScale(@RequestBody Map<String ,String> paramsMap){
  64. String farmId = paramsMap.get("farmId");
  65. return new Result(ResultCode.SUCCESS,envDeviceService.list(new QueryWrapper<EnvDevice>().eq("farm_id",farmId).eq("device_type",2)));
  66. }
  67. @PostMapping("/addDevice")
  68. @Transactional(rollbackFor = RuntimeException.class)
  69. public Result addDevice(@RequestBody Map<String ,Object> paramsMap){
  70. String deviceCode = (String) paramsMap.get("deviceCode");
  71. String unitId = (String) paramsMap.get("unitId");
  72. String unitName = (String) paramsMap.get("unitName");
  73. String buildLocation = (String) paramsMap.get("buildLocation");
  74. String farmId = (String) paramsMap.get("farmId");
  75. Integer deviceType = (Integer) paramsMap.get("deviceType");
  76. // String deviceName = unitName;
  77. String deviceName = (String) paramsMap.get("deviceName");
  78. // switch (deviceType){
  79. // case 1: deviceName += "环控";
  80. // break;
  81. // case 2: deviceName += "移动电子秤";
  82. // break;
  83. // case 3: deviceName += "固定电子秤";
  84. // break;
  85. // }
  86. if (envDeviceService.count(new QueryWrapper<EnvDevice>().eq("device_code",deviceCode)) != 0){
  87. return new Result(10001,"设备编码已存在!",false);
  88. }
  89. if (deviceType == 1){
  90. if (envDeviceService.count(new QueryWrapper<EnvDevice>().eq("unit_Id",unitId).eq("device_type",1)) != 0){
  91. return new Result(10001,"栋舍已存在环控设备!",false);
  92. }
  93. }
  94. EnvDevice envDevice = new EnvDevice();
  95. envDevice.setDeviceCode(deviceCode);
  96. envDevice.setDeviceName(deviceName);
  97. envDevice.setDeviceType(deviceType);
  98. envDevice.setBuildLocation(buildLocation);
  99. if (deviceType != 2){
  100. envDevice.setUnitName(unitName);
  101. envDevice.setUnitId(Integer.parseInt(unitId));
  102. }
  103. envDevice.setFarmId(Integer.parseInt(farmId));
  104. envDeviceService.save(envDevice);
  105. //环控设备
  106. if (deviceType == 1){
  107. List<Integer> list = (List<Integer>) paramsMap.get("device");
  108. int fan = 1;
  109. int tp = 1;
  110. int spray = 1;
  111. for (int i = 0; i <list.size() ; i++) {
  112. EnvDeviceEquipment envDeviceEquipment = new EnvDeviceEquipment();
  113. envDeviceEquipment.setFarmId(Integer.parseInt(farmId));
  114. envDeviceEquipment.setEquipmentPort(i+1);
  115. envDeviceEquipment.setUnitId(Integer.parseInt(unitId));
  116. envDeviceEquipment.setDeviceCode(deviceCode);
  117. switch (list.get(i)){
  118. case 1:
  119. envDeviceEquipment.setEquipmentName("风机"+fan);
  120. envDeviceEquipment.setEquipmentType(1);
  121. envDeviceEquipment.setDeviceAlias(unitName+"风机");
  122. fan++;
  123. break;
  124. case 2:
  125. envDeviceEquipment.setEquipmentName("传送带"+tp);
  126. envDeviceEquipment.setEquipmentType(2);
  127. envDeviceEquipment.setDeviceAlias(unitName+"传送带");
  128. tp++;
  129. break;
  130. case 3:
  131. envDeviceEquipment.setEquipmentName("喷雾"+spray);
  132. envDeviceEquipment.setEquipmentType(3);
  133. envDeviceEquipment.setDeviceAlias(unitName+"喷雾");
  134. spray++;
  135. break;
  136. }
  137. if (!envDeviceEquipmentService.save(envDeviceEquipment)) {
  138. TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
  139. return new Result(10001,"操作失败",false);
  140. }
  141. }
  142. }
  143. return Result.SUCCESS();
  144. }
  145. @PostMapping("/deleteDevice")
  146. @Transactional
  147. public Result deleteDevice(@RequestBody Map<String ,String> paramsMap){
  148. String deviceCode = paramsMap.get("deviceCode");
  149. envDeviceService.remove(new QueryWrapper<EnvDevice>().eq("device_code",deviceCode));
  150. envDeviceEquipmentService.remove(new QueryWrapper<EnvDeviceEquipment>().eq("device_code",deviceCode));
  151. return Result.SUCCESS();
  152. }
  153. @PostMapping("/getDeviceStatus")
  154. public Result getDeviceStatus(@RequestBody Map<String ,String> paramsMap){
  155. String farmId = paramsMap.get("farmId");
  156. double rate = 0.0;
  157. Map resultMap = new HashMap();
  158. int total = envDeviceService.count(new QueryWrapper<EnvDevice>().eq("farm_id", farmId));
  159. resultMap.put("totalDevice", total);
  160. int deviceOn = envDeviceService.count(new QueryWrapper<EnvDevice>().eq("farm_id", farmId).eq("device_status", 1));
  161. int deviceOff = envDeviceService.count(new QueryWrapper<EnvDevice>().eq("farm_id", farmId).eq("device_status", 0));
  162. resultMap.put("deviceOn", deviceOn);
  163. resultMap.put("deviceOff", deviceOff);
  164. if (deviceOff == 0 && deviceOn != 0){
  165. rate = 100;
  166. }
  167. if (deviceOff != 0){
  168. rate = (deviceOn/total)*100;
  169. }
  170. resultMap.put("onlineRate",rate);
  171. return new Result(ResultCode.SUCCESS,resultMap);
  172. }
  173. }