using DataEntity.Share; using DataRWDAL.Device; using HxEnum; using MySql.Data.MySqlClient; using System; using System.Collections.ObjectModel; using System.Data; using XCommon.Log; using XCommon.MySql; using DataRWDAL.Base; using SqlSugar; using System.Dynamic; using DataRWDAL; namespace XImagingXhandler.XDAL { /// /// 菜单库表操作类 /// public class MethodDB : BaseDB { #region 从数据库获取工作站已实现的方法信息数据 /// /// 从数据库获取工作站已实现的方法信息数据 /// /// 实现的方法信息数据实体集合 public static ObservableCollection GetMethodFromdb() { using (var db = GetInstance()) { return new ObservableCollection(db.Queryable().Where(it => it.method_status.Equals(1)).OrderBy(it => it.method_id, SqlSugar.OrderByType.Asc).ToList()); } } #endregion #region 从数据库获取工作站已实现的方法信息数据---根据当前使用的设备 /// /// 从数据库获取工作站已实现的方法信息数据---根据当前使用的设备 /// /// 符合条件实现的方法信息数据实体集合 public static ObservableCollection GetMethodFromdb(string deviceName, bool isAddDevice = true) { ObservableCollection methods = new ObservableCollection(); string sqlstr = ""; try { using (var db = GetInstance()) { var query = db.Queryable("softwarersmethod", "t").AddJoinInfo("method", "l", "t.method_id=l.method_id and l.method_status=1", JoinType.Inner) .AddJoinInfo("softwareinformation", "lt", "lt.software_information_id=t.software_information_id and lt.software_device_number='" + deviceName + "'", JoinType.Inner) .Select("l.*"); var a = query.ToList(); foreach (ExpandoObject epo in a) { Method lq = epo.ToEntity(); methods.Add(lq); } if (isAddDevice) { // 根据项目ID,获取设备列表 var lstDevice = DeviceConfigDB.GetDeviceConfigListByProjectId(Shared.SoftwareInformation.software_information_id); foreach (var deviceItem in lstDevice) { Method m = new Method(); m.method_id = deviceItem.Id == null ? "0": deviceItem.Id; m.method_name = deviceItem.Name; m.method_status = EnumManagement.GetEnumValue(MethodStatusEnum.Valid); // 有效 m.method_content = deviceItem.Name; m.method_Tipcontent = string.Empty; m.method_ico = deviceItem.EquipmentImg; // 设备图片 m.method_group_id = EnumManagement.GetEnumValue(MethodGroupEnum.ThirdPart); // 第三方设备 m.method_support = EnumManagement.GetEnumValue(MethodSupportEnum.Support); // 支持 m.method_type = EnumManagement.GetEnumValue(MethodTypeEnum.SingleStep); // 单指令 //MethodEx mEx = new MethodEx(m); //mEx.device = deviceItem; methods.Add(m); } } } } catch (MySqlException me) { LoggerHelper.ErrorLog("执行:" + sqlstr, me); } return methods; } #endregion #region 更新method public static int UpdateMethodIntodb(Method method) { int iResult = 0; string sqlstr = ""; MySqlConnection mysqlcon = MySqlUtity.GetConnection(); // add MySqlCommand sqlcom = new MySqlCommand(); sqlstr = sqlcom.CommandText = @" update method SET " + "method_status=" + method.method_status + " where method_id='" + method.method_id + "'"; MySqlParameter[] commandParameters = new MySqlParameter[]{ }; try { iResult = MySqlUtity.ExecuteNonQuery(mysqlcon.ConnectionString, CommandType.Text, sqlcom.CommandText, commandParameters); } catch (Exception ex) { LoggerHelper.ErrorLog("执行:" + sqlstr, ex); } return iResult; } #endregion } }