123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package com.gzlh.utils;
- import cn.hutool.json.JSONUtil;
- import com.gzlh.bus.SysConfig;
- import com.gzlh.config.ModuleEnum;
- import com.gzlh.config.dto.CaputreSetting;
- import com.gzlh.config.dto.SerialSetting;
- import com.gzlh.config.dto.VoiceSetting;
- import com.gzlh.device.capture.brand.CaptureBrandType;
- import com.gzlh.device.rfid.brand.ElectronBrandType;
- import com.gzlh.device.led.brand.LedBrandType;
- import com.gzlh.device.print.brand.PrintBrandType;
- import com.gzlh.device.voice.brand.VoiceBrandType;
- import com.gzlh.device.weighbridge.brand.WeighbridgeBrandType;
- import com.gzlh.entity.DeviceStatus;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.util.StringUtils;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.concurrent.ConcurrentHashMap;
- import java.util.stream.Collectors;
- @Slf4j
- public class DeviceCache {
- private static DeviceStatus deviceStatus = new DeviceStatus();
- private static Map<String, Date> plcTimeMap = new ConcurrentHashMap<String, Date>();
- static boolean interrupt = false;
- static String plcStatus = "";
- public static void setPlcStatus(String status) {
- plcStatus = status;
- }
- public static String getPlcStatus() {
- return plcStatus;
- }
- public static void putTime(String k, Date v) {
- plcTimeMap.put(k, v);
- }
- public static Date getTime(String k) {
- return plcTimeMap.get(k);
- }
- public static void resetTimeMap() {
- plcTimeMap = new ConcurrentHashMap<String, Date>();
- ;
- }
- public static String getDeviceStatusJson() {
- return JSONUtil.toJsonStr(deviceStatus);
- }
- public static void deviceStatusInit() {
- SerialSetting serialSetting = SysConfig.serialSetting;
- deviceStatus.setChannelCode(SysConfig.channelSetting.getChannelCode());
- deviceStatus.setChannelName(SysConfig.channelSetting.getChannelName());
- CaputreSetting caputreSetting = SysConfig.caputreSetting;
- if (caputreSetting.isEnable()) {
- DeviceStatus.Device capture = new DeviceStatus.Device(caputreSetting.getHost(),
- caputreSetting.getPort(),
- CaptureBrandType.getBrandByCode(caputreSetting.getBrand()),
- ModuleEnum.CAPTURE_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(capture);
- }
- if (serialSetting.getPlc().getEnable()) {
- DeviceStatus.Device plc = new DeviceStatus.Device(serialSetting.getHost(),
- serialSetting.getPlc().getPort(),
- "smart 200",
- ModuleEnum.PLC_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(plc);
- }
- if (serialSetting.getLed().getEnable()) {
- DeviceStatus.Device led = new DeviceStatus.Device(serialSetting.getHost(),
- serialSetting.getLed().getPort(),
- LedBrandType.getBrandByCode(serialSetting.getLed().getBrand()),
- ModuleEnum.LED_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(led);
- }
- if (serialSetting.getWeighbridge().getEnable()) {
- DeviceStatus.Device weighbridge = new DeviceStatus.Device(serialSetting.getHost(),
- serialSetting.getWeighbridge().getPort(),
- WeighbridgeBrandType.getBrandByCode(serialSetting.getWeighbridge().getBrand()),
- ModuleEnum.WEIGHBRIDGE_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(weighbridge);
- }
- if (serialSetting.getElectron().getEnable()) {
- DeviceStatus.Device electron = new DeviceStatus.Device(serialSetting.getHost(),
- serialSetting.getElectron().getPort(),
- ElectronBrandType.getBrandByCode(serialSetting.getElectron().getBrand()),
- ModuleEnum.ELECTRON_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(electron);
- }
- if (serialSetting.getPrint() != null && serialSetting.getPrint().isEnable()) {
- SerialSetting.PrintSetting printSetting = serialSetting.getPrint();
- DeviceStatus.Device electron = new DeviceStatus.Device(printSetting.getIp(),
- printSetting.getPort(),
- PrintBrandType.getBrandByCode(printSetting.getBrand()),
- ModuleEnum.PRINT_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(electron);
- }
- VoiceSetting voiceSetting = SysConfig.voiceSetting;
- if (voiceSetting != null && voiceSetting.isEnable()) {
- DeviceStatus.Device voice = new DeviceStatus.Device(voiceSetting.getHost(),
- voiceSetting.getPort(),
- VoiceBrandType.getBrandByCode(voiceSetting.getBrand()),
- ModuleEnum.VOICE_MODULE.getModuleZh());
- deviceStatus.getDeviceList().add(voice);
- }
- }
- public static boolean isInterrupt() {
- return interrupt;
- }
- public static void setInterrupt(boolean interrupt) {
- DeviceCache.interrupt = interrupt;
- }
- public static void changeDeviceStatus(String name, int status) {
- deviceStatus.getDeviceList().stream().filter(device -> device.getName().equalsIgnoreCase(name))
- .forEach(e -> e.setStatus(status));
- }
- public static void changeDeviceStatus(String name, int status, String eMsg) {
- deviceStatus.getDeviceList().stream().filter(device -> device.getName().equalsIgnoreCase(name))
- .forEach(e -> e.setStatus(status).setEMsg(eMsg));
- }
- public static void changeDeviceStatus(String name, String eMsg) {
- deviceStatus.getDeviceList().stream().filter(device -> device.getName().equalsIgnoreCase(name))
- .forEach(device -> {
- device.setEMsg(eMsg);
- });
- }
- }
|