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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using DataEntity;
using DataRWDAL.Base;
using HxEnum;
using SqlSugar;
using System.Collections.Generic;
using System.Linq;
using XCommon.SqlSugar;
using static HxEnum.OperationTypeEnum;
 
namespace XImagingXhandler.XDAL
{
    /// <summary>
    /// 错误状态表
    /// </summary>
    public class ErrorStateDB : BaseDB
    {
        /// <summary>
        /// 登录错误状态
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int AddErrorState(ErrorStateModel model)
        {
            using (var db = GetInstance())
            {
                return db.Insertable<ErrorStateModel>(model).ExecuteCommand();
            }
        }
 
        #region 跳过
        /// <summary>
        /// 跳过
        /// </summary>
        /// <param name="expId"></param>
        /// <param name="statusEnum"></param>
        /// <param name="expOperationTypeEnum"></param>
        public static void Continue(string expId, ExpStatusEnum statusEnum, NodeOperationTypeEnum expOperationTypeEnum)
        {
            UpStatus(expId, statusEnum, expOperationTypeEnum);
 
            UpdateErrorState();
        }
        #endregion
 
        #region 更新实验状态完成
        /// <summary>
        /// 更新实验状态完成
        /// </summary>
        /// <param name="id"></param>
        /// <param name="statusEnum"></param>
        /// <param name="expOperationTypeEnum"></param>
        private static void UpStatus(string id, ExpStatusEnum statusEnum, NodeOperationTypeEnum expOperationTypeEnum)
        {
            //var model = experimentBLL.GetExperimentById(id);
 
            //if (model != null)
            //{
            //    string executionLogId = Guid.NewGuid().ToString();
 
            //    #region 插入设备执行日志
            //    //string msg = $"实验:【{model.Name}】已{EnumManagement.GetFieldText(expOperationTypeEnum)}";
            //    //LogUtil.ClientLog(msg + "_插入设备执行日志");
            //    //new ExecutionLogBLL().AddExecutionLog(new ExecutionLogModel
            //    //{
            //    //    Id = executionLogId,
            //    //    ExperimentId = model.Id,
            //    //    Progress = 100,
            //    //    ExperimentStep = "中控软件",
            //    //    EquipmentAction = msg,
            //    //    StartTime = DateTime.Now,
            //    //    Equipment = "中控软件",
            //    //    Remark = msg,
            //    //    CreateTime = DateTime.Now
            //    //});
            //    #endregion
 
            //    #region 更新结束时间 
            //    //var experimentModel = new ExperimentBLL().GetExperimentById(model.Id);
            //    //experimentModel.Status = EnumManagement.GetEnumValue(statusEnum);
            //    //if (expOperationTypeEnum == ExpOperationTypeEnum.ExpOperationTypeCEnum)
            //    //{
            //    //    experimentModel.ExpEndTime = DateTime.Now;
            //    //}
            //    //var expTime = new ExperimentBLL().Update(experimentModel);
            //    //if (expTime != null)
            //    //{
            //    //    new ExecutionLogBLL().UpdateExecutionLogEndTime(executionLogId);   //修改结束时间
            //    //}
            //    #endregion
            //}
        }
        #endregion
 
        #region 修改错误状态
        /// <summary>
        /// 修改错误状态
        /// </summary>
        private static void UpdateErrorState()
        {
            #region 修改错误信息为已处理
            var getInfoList = GetInfoListTopNum(1);
            if (getInfoList != null && getInfoList.Count > 0)
            {
                var errorStateModel = GetInfoListTopNum(1).FirstOrDefault();
                errorStateModel.OperationState = EnumManagement.GetEnumValue(OperationStateEnum.OperationStateBEnum);
                Update(errorStateModel);   //修改状态
            }
            #endregion
        }
 
        /// <summary>
        /// 更新错误状态
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static int Update(ErrorStateModel model)
        {
            using (var db = GetInstance())
            {
                return db.Updateable<ErrorStateModel>(model).ExecuteCommand();
            }
        }
 
        /// <summary>
        /// 获取前几条数据
        /// </summary>
        /// <param name="topNum"></param> 
        /// <returns></returns>
        public static List<ErrorStateModel> GetInfoListTopNum(int topNum)
        {
            var operationStateEnum = EnumManagement.GetEnumValue(OperationStateEnum.OperationStateAEnum);
            var parameter = LinqExtensions.True<ErrorStateModel>();
            parameter = parameter.And(t => t.OperationState == operationStateEnum);
 
            var result = GetList<ErrorStateModel>(topNum, parameter, b => b.CreateTime, OrderByType.Asc);
            if (result != null && result.Count > 0)
            {
                return result.ToList();
            }
            return null;
        }
 
        #endregion 
    }
}