schangxiang@126.com
2025-11-04 f5ed29dc26c7cd952d56ec5721a2efc43cd25992
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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
{
    /// <summary>
    /// 菜单库表操作类
    /// </summary>
    public class MethodDB : BaseDB
    {
        #region 从数据库获取工作站已实现的方法信息数据
        /// <summary>
        /// 从数据库获取工作站已实现的方法信息数据
        /// </summary>
        /// <returns>实现的方法信息数据实体集合</returns>
        public static ObservableCollection<Method> GetMethodFromdb()
        {
            using (var db = GetInstance())
            {
                return new ObservableCollection<Method>(db.Queryable<Method>().Where(it => it.method_status.Equals(1)).OrderBy(it => it.method_id, SqlSugar.OrderByType.Asc).ToList());
            }
        }
        #endregion
 
        #region 从数据库获取工作站已实现的方法信息数据---根据当前使用的设备
        /// <summary>
        /// 从数据库获取工作站已实现的方法信息数据---根据当前使用的设备
        /// </summary>
        /// <returns>符合条件实现的方法信息数据实体集合</returns>
        public static ObservableCollection<Method> GetMethodFromdb(string deviceName, bool isAddDevice = true)
        {
            ObservableCollection<Method> methods = new ObservableCollection<Method>();
            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<Method>();
                        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
    }
}