DeviceCache.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.gzlh.utils;
  2. import cn.hutool.json.JSONUtil;
  3. import com.gzlh.bus.SysConfig;
  4. import com.gzlh.config.ModuleEnum;
  5. import com.gzlh.config.dto.CaputreSetting;
  6. import com.gzlh.config.dto.SerialSetting;
  7. import com.gzlh.config.dto.VoiceSetting;
  8. import com.gzlh.device.capture.brand.CaptureBrandType;
  9. import com.gzlh.device.rfid.brand.ElectronBrandType;
  10. import com.gzlh.device.led.brand.LedBrandType;
  11. import com.gzlh.device.print.brand.PrintBrandType;
  12. import com.gzlh.device.voice.brand.VoiceBrandType;
  13. import com.gzlh.device.weighbridge.brand.WeighbridgeBrandType;
  14. import com.gzlh.entity.DeviceStatus;
  15. import lombok.extern.slf4j.Slf4j;
  16. import org.springframework.util.StringUtils;
  17. import java.util.Date;
  18. import java.util.List;
  19. import java.util.Map;
  20. import java.util.concurrent.ConcurrentHashMap;
  21. import java.util.stream.Collectors;
  22. @Slf4j
  23. public class DeviceCache {
  24. private static DeviceStatus deviceStatus = new DeviceStatus();
  25. private static Map<String, Date> plcTimeMap = new ConcurrentHashMap<String, Date>();
  26. static boolean interrupt = false;
  27. static String plcStatus = "";
  28. public static void setPlcStatus(String status) {
  29. plcStatus = status;
  30. }
  31. public static String getPlcStatus() {
  32. return plcStatus;
  33. }
  34. public static void putTime(String k, Date v) {
  35. plcTimeMap.put(k, v);
  36. }
  37. public static Date getTime(String k) {
  38. return plcTimeMap.get(k);
  39. }
  40. public static void resetTimeMap() {
  41. plcTimeMap = new ConcurrentHashMap<String, Date>();
  42. ;
  43. }
  44. public static String getDeviceStatusJson() {
  45. return JSONUtil.toJsonStr(deviceStatus);
  46. }
  47. public static void deviceStatusInit() {
  48. SerialSetting serialSetting = SysConfig.serialSetting;
  49. deviceStatus.setChannelCode(SysConfig.channelSetting.getChannelCode());
  50. deviceStatus.setChannelName(SysConfig.channelSetting.getChannelName());
  51. CaputreSetting caputreSetting = SysConfig.caputreSetting;
  52. if (caputreSetting.isEnable()) {
  53. DeviceStatus.Device capture = new DeviceStatus.Device(caputreSetting.getHost(),
  54. caputreSetting.getPort(),
  55. CaptureBrandType.getBrandByCode(caputreSetting.getBrand()),
  56. ModuleEnum.CAPTURE_MODULE.getModuleZh());
  57. deviceStatus.getDeviceList().add(capture);
  58. }
  59. if (serialSetting.getPlc().getEnable()) {
  60. DeviceStatus.Device plc = new DeviceStatus.Device(serialSetting.getHost(),
  61. serialSetting.getPlc().getPort(),
  62. "smart 200",
  63. ModuleEnum.PLC_MODULE.getModuleZh());
  64. deviceStatus.getDeviceList().add(plc);
  65. }
  66. if (serialSetting.getLed().getEnable()) {
  67. DeviceStatus.Device led = new DeviceStatus.Device(serialSetting.getHost(),
  68. serialSetting.getLed().getPort(),
  69. LedBrandType.getBrandByCode(serialSetting.getLed().getBrand()),
  70. ModuleEnum.LED_MODULE.getModuleZh());
  71. deviceStatus.getDeviceList().add(led);
  72. }
  73. if (serialSetting.getWeighbridge().getEnable()) {
  74. DeviceStatus.Device weighbridge = new DeviceStatus.Device(serialSetting.getHost(),
  75. serialSetting.getWeighbridge().getPort(),
  76. WeighbridgeBrandType.getBrandByCode(serialSetting.getWeighbridge().getBrand()),
  77. ModuleEnum.WEIGHBRIDGE_MODULE.getModuleZh());
  78. deviceStatus.getDeviceList().add(weighbridge);
  79. }
  80. if (serialSetting.getElectron().getEnable()) {
  81. DeviceStatus.Device electron = new DeviceStatus.Device(serialSetting.getHost(),
  82. serialSetting.getElectron().getPort(),
  83. ElectronBrandType.getBrandByCode(serialSetting.getElectron().getBrand()),
  84. ModuleEnum.ELECTRON_MODULE.getModuleZh());
  85. deviceStatus.getDeviceList().add(electron);
  86. }
  87. if (serialSetting.getPrint() != null && serialSetting.getPrint().isEnable()) {
  88. SerialSetting.PrintSetting printSetting = serialSetting.getPrint();
  89. DeviceStatus.Device electron = new DeviceStatus.Device(printSetting.getIp(),
  90. printSetting.getPort(),
  91. PrintBrandType.getBrandByCode(printSetting.getBrand()),
  92. ModuleEnum.PRINT_MODULE.getModuleZh());
  93. deviceStatus.getDeviceList().add(electron);
  94. }
  95. VoiceSetting voiceSetting = SysConfig.voiceSetting;
  96. if (voiceSetting != null && voiceSetting.isEnable()) {
  97. DeviceStatus.Device voice = new DeviceStatus.Device(voiceSetting.getHost(),
  98. voiceSetting.getPort(),
  99. VoiceBrandType.getBrandByCode(voiceSetting.getBrand()),
  100. ModuleEnum.VOICE_MODULE.getModuleZh());
  101. deviceStatus.getDeviceList().add(voice);
  102. }
  103. }
  104. public static boolean isInterrupt() {
  105. return interrupt;
  106. }
  107. public static void setInterrupt(boolean interrupt) {
  108. DeviceCache.interrupt = interrupt;
  109. }
  110. public static void changeDeviceStatus(String name, int status) {
  111. deviceStatus.getDeviceList().stream().filter(device -> device.getName().equalsIgnoreCase(name))
  112. .forEach(e -> e.setStatus(status));
  113. }
  114. public static void changeDeviceStatus(String name, int status, String eMsg) {
  115. deviceStatus.getDeviceList().stream().filter(device -> device.getName().equalsIgnoreCase(name))
  116. .forEach(e -> e.setStatus(status).setEMsg(eMsg));
  117. }
  118. public static void changeDeviceStatus(String name, String eMsg) {
  119. deviceStatus.getDeviceList().stream().filter(device -> device.getName().equalsIgnoreCase(name))
  120. .forEach(device -> {
  121. device.setEMsg(eMsg);
  122. });
  123. }
  124. }