123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- package com.gzlh.utils;
- import cn.hutool.json.JSONUtil;
- import com.gzlh.bus.SysConfig;
- import com.gzlh.config.ModuleEnum;
- import com.gzlh.config.SystemObject;
- import com.gzlh.config.dto.CaputreSetting;
- import com.gzlh.config.dto.SerialSetting;
- import com.gzlh.device.capture.brand.CaptureBrandType;
- import com.gzlh.device.electron.brand.ElectronBrandType;
- import com.gzlh.device.led.brand.LedBrandType;
- import com.gzlh.device.weighbridge.brand.WeighbridgeBrandType;
- import com.gzlh.entity.DeviceStatus;
- 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;
- 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 = null;
- 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() {
- if (StringUtils.isEmpty(deviceStatus.getChannelCode())) {
- deviceStatusInit();
- }
- 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);
- }
- }
- public static DeviceStatus getDeviceStatus() {
- return deviceStatus;
- }
- public static Map<String, Date> getTimeMap() {
- return plcTimeMap;
- }
- public static boolean isInterrupt() {
- return interrupt;
- }
- public static void setInterrupt(boolean interrupt) {
- DeviceCache.interrupt = interrupt;
- }
- public static void changeDeviceStatus(String name, int status) {
- List<DeviceStatus.Device> devices = DeviceCache.getDeviceStatus().getDeviceList();
- if (devices.stream().anyMatch(device -> device.getName().equalsIgnoreCase(name))) {
- devices.stream().filter(device -> device.getName().equalsIgnoreCase(name))
- .map(e -> e.setStatus(status)).collect(Collectors.toList());
- }
- }
- }
|