陈嘉乐
2021-01-11 631f94758c3cb42abcdda8094e77895f376eff16
HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
old mode 100755 new mode 100644
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using HDL_ON.Entity;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
@@ -104,7 +105,6 @@
            }
            return logicId;
        }
        /// <summary>
        /// 封装Dictionary对象
        /// </summary>
@@ -137,8 +137,8 @@
        {
            List<Entity.Room> roomList = new List<Entity.Room>();
            Entity.Room room1 = new Entity.Room();
            room1.roomName = name;//默认一个房间名为:全部区域
            room1.uid = "全部区域";//默认sid用识别该房间
            room1.roomName = name;//自定义默认一个房间名为:6688
            room1.roomId = "6688";//自定义默认id用识别该房间
            roomList.Add(room1);//默认添加到房间列表里
            var roomLists = GetGatewayRoomList();
            for (int i = 0; i < roomLists.Count; i++)
@@ -179,18 +179,24 @@
        {
            List<HDL_ON.Entity.Function> deviceLists = new List<Entity.Function>();
            List<HDL_ON.Entity.Function> lists = GetGatewayDeviceList();
            foreach (var dev in lists)
            if (room.roomId == "6688")
            {
                if (dev.roomIds.Find((id) => id == room.uid) != null)
                //默认一个房间名:6688
                //显示网关全部设备
                deviceLists = lists;
            }
            else
            {
                for (int i = 0; i < lists.Count; i++)
                {
                    deviceLists.Add(dev);
                }
                if (room.uid == "全部区域")
                {
                    //房间名为全部区域时,显示网关全部设备
                    deviceLists = lists;
                }
                    var dev = lists[i];
                    if (dev.roomIds.Find((id) => id == room.roomId) != null)
                    {
                        //添加属于这个房间的设备;
                        deviceLists.Add(dev);
                    }
                }
            }
            return deviceLists;
        }
@@ -244,12 +250,10 @@
        {
            string roomName = "";
            List<HDL_ON.Entity.Room> roomLists = GetGatewayRoomList();
            for (int i = 0; i < device.roomIds.Count; i++)
            {
                var dev = device.roomIds[i];
                var room = roomLists.Find((c) => c.uid == dev);
                var room = roomLists.Find((c) => c.roomId == dev);
                if (room != null)
                {
                    roomName += room.floorName + "." + room.roomName + ",";
@@ -263,33 +267,33 @@
        /// </summary>
        /// <param name="functionType">设备类型</param>
        /// <returns></returns>
        public static string GetIconPath(FunctionType functionType)
        public static string GetIconPath(string functionType)
        {
            string strPath = "";
            switch (functionType)
            {
                case FunctionType.Relay:
                case FunctionType.RGB:
                case FunctionType.RGBW:
                case FunctionType.ColorTemperature:
                case FunctionType.Dimmer:
                case SPK.LightSwitch:
                case SPK.LightRGB:
                case SPK.LightRGBW:
                case SPK.LightCCT:
                case SPK.LightDimming:
                    {
                        strPath = "LogicIcon/lightloguc.png";
                    }
                    break;
                case FunctionType.Curtain:
                case FunctionType.RollingShutter:
                case FunctionType.MotorCurtain:
                case SPK.CurtainSwitch:
                case SPK.CurtainRoller:
                case SPK.CurtainTrietex:
                    {
                        strPath = "LogicIcon/curtainlogic.png";
                    }
                    break;
                case FunctionType.AC:
                case SPK.AcStandard:
                    {
                        strPath = "LogicIcon/airconditionerlogic.png";
                    }
                    break;
                case FunctionType.FloorHeating:
                case SPK.FloorHeatStandard:
                    {
                        strPath = "LogicIcon/heatlogic.png";
                    }
@@ -307,24 +311,24 @@
        {
            List<string> deviceStrTypeList = new List<string>();
            deviceStrTypeList.Clear();
            var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer || device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB || device.functionType == FunctionType.RGBW);
            var lightjosn = deviceList.Find((device) => device.spk == SPK.LightSwitch || device.spk == SPK.LightDimming || device.spk == SPK.LightCCT || device.spk == SPK.LightRGB || device.spk == SPK.LightRGBW);
            if (lightjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Lights));
            }
            var curtainjosn = deviceList.Find((device) => device.functionType == FunctionType.Curtain || device.functionType == FunctionType.MotorCurtain || device.functionType == FunctionType.RollingShutter);
            var curtainjosn = deviceList.Find((device) => device.spk == SPK.CurtainSwitch || device.spk == SPK.CurtainTrietex || device.spk == SPK.CurtainRoller);
            if (curtainjosn != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.Curtain));
            }
            var ac = deviceList.Find((device) => device.functionType == FunctionType.AC);
            var ac = deviceList.Find((device) => device.spk == SPK.AcStandard);
            if (ac != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.AC));
            }
            var floorHeating = deviceList.Find((device) => device.functionType == FunctionType.FloorHeating);
            var floorHeating = deviceList.Find((device) => device.spk == SPK.FloorHeatStandard);
            if (floorHeating != null)
            {
                deviceStrTypeList.Add(Language.StringByID(StringId.FloorHeating));
@@ -337,30 +341,30 @@
        /// </summary>
        /// <param name="deviceType">设备类型(灯光类,窗帘类。)</param>
        /// <returns></returns>
        public static List<FunctionType> GetDeviceTypeFunctionList(string deviceType)
        public static List<string> GetDeviceTypeFunctionList(string deviceType)
        {
            List<FunctionType> functionTypeList = new List<FunctionType>();
            List<string> functionTypeList = new List<string>();
            if (deviceType == Language.StringByID(StringId.Lights))
            {
                functionTypeList.Add(FunctionType.Relay);
                functionTypeList.Add(FunctionType.Dimmer);
                functionTypeList.Add(FunctionType.RGB);
                functionTypeList.Add(FunctionType.RGBW);
                functionTypeList.Add(FunctionType.ColorTemperature);
                functionTypeList.Add(SPK.LightSwitch);
                functionTypeList.Add(SPK.LightDimming);
                functionTypeList.Add(SPK.LightRGB);
                functionTypeList.Add(SPK.LightRGBW);
                functionTypeList.Add(SPK.LightCCT);
            }
            else if (deviceType == Language.StringByID(StringId.Curtain))
            {
                functionTypeList.Add(FunctionType.Curtain);
                functionTypeList.Add(FunctionType.RollingShutter);
                functionTypeList.Add(FunctionType.MotorCurtain);
                functionTypeList.Add(SPK.CurtainSwitch);
                functionTypeList.Add(SPK.CurtainRoller);
                functionTypeList.Add(SPK.CurtainTrietex);
            }
            else if (deviceType == Language.StringByID(StringId.AC))
            {
                functionTypeList.Add(FunctionType.AC);
                functionTypeList.Add(SPK.AcStandard);
            }
            else if (deviceType == Language.StringByID(StringId.FloorHeating))
            {
                functionTypeList.Add(FunctionType.FloorHeating);
                functionTypeList.Add(SPK.FloorHeatStandard);
            }
            return functionTypeList;
@@ -369,37 +373,37 @@
        /// 条件/目标支持设备
        /// </summary>
        /// <returns></returns>
        public static List<FunctionType> GetSupportEquipment(string if_type)
        public static List<string> GetSupportEquipment(string if_type)
        {
            List<FunctionType> deviceTypeList = new List<FunctionType>();
            List<string> deviceTypeList = new List<string>();
            switch (if_type)
            {
                case condition_if:
                    {
                        deviceTypeList.Add(FunctionType.Relay);
                        deviceTypeList.Add(FunctionType.RGB);
                        deviceTypeList.Add(FunctionType.RGBW);
                        deviceTypeList.Add(FunctionType.Dimmer);
                        deviceTypeList.Add(FunctionType.ColorTemperature);
                        deviceTypeList.Add(FunctionType.Curtain);
                        deviceTypeList.Add(FunctionType.RollingShutter);
                        deviceTypeList.Add(FunctionType.MotorCurtain);
                        deviceTypeList.Add(FunctionType.AC);
                        deviceTypeList.Add(FunctionType.FloorHeating);
                        deviceTypeList.Add(SPK.LightSwitch);
                        deviceTypeList.Add(SPK.LightRGB);
                        deviceTypeList.Add(SPK.LightRGBW);
                        deviceTypeList.Add(SPK.LightDimming);
                        deviceTypeList.Add(SPK.LightCCT);
                        deviceTypeList.Add(SPK.CurtainSwitch);
                        deviceTypeList.Add(SPK.CurtainRoller);
                        deviceTypeList.Add(SPK.CurtainTrietex);
                        deviceTypeList.Add(SPK.AcStandard);
                        deviceTypeList.Add(SPK.FloorHeatStandard);
                    }
                    break;
                case target_if:
                    {
                        deviceTypeList.Add(FunctionType.Relay);
                        deviceTypeList.Add(FunctionType.RGB);
                        deviceTypeList.Add(FunctionType.RGBW);
                        deviceTypeList.Add(FunctionType.Dimmer);
                        deviceTypeList.Add(FunctionType.ColorTemperature);
                        deviceTypeList.Add(FunctionType.Curtain);
                        deviceTypeList.Add(FunctionType.RollingShutter);
                        deviceTypeList.Add(FunctionType.MotorCurtain);
                        deviceTypeList.Add(FunctionType.AC);
                        deviceTypeList.Add(FunctionType.FloorHeating);
                        deviceTypeList.Add(SPK.LightSwitch);
                        deviceTypeList.Add(SPK.LightRGB);
                        deviceTypeList.Add(SPK.LightRGBW);
                        deviceTypeList.Add(SPK.LightDimming);
                        deviceTypeList.Add(SPK.LightCCT);
                        deviceTypeList.Add(SPK.CurtainSwitch);
                        deviceTypeList.Add(SPK.CurtainRoller);
                        deviceTypeList.Add(SPK.CurtainTrietex);
                        deviceTypeList.Add(SPK.AcStandard);
                        deviceTypeList.Add(SPK.FloorHeatStandard);
                    }
                    break;
            }
@@ -411,13 +415,13 @@
        /// <param name="functionType">源数据列表1</param>
        /// <param name="deviceList">源数据列表2</param>
        /// <returns></returns>
        public static List<Entity.Function> GetShowDeviceList(List<FunctionType> functionType, List<HDL_ON.Entity.Function> deviceList)
        public static List<Entity.Function> GetShowDeviceList(List<string> functionType, List<HDL_ON.Entity.Function> deviceList)
        {
            List<HDL_ON.Entity.Function> devList = new List<Entity.Function>();
            for (int i = 0; i < deviceList.Count; i++)
            {
                var dev = deviceList[i];
                if (functionType.Contains(dev.functionType))
                if (functionType.Contains(dev.spk))
                {
                    ///过滤掉不需要显示的设备
                    devList.Add(dev);
@@ -435,7 +439,7 @@
        /// <returns></returns>
        public static List<Entity.Function> GetFunctionDeviceList(Entity.Room room, string str)
        {
            List<FunctionType> functionTypeList = GetSupportEquipment(str);
            List<string> functionTypeList = GetSupportEquipment(str);
            //返回房间设备列表
            var roomDeviceList = GetRoomDevice(room);
            //返回最终支持显示出来的设备列表