schangxiang@126.com
2024-09-03 a635f1bbbaf5ebacde78f9d1bcb9b34bc2359902
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
 
using iWare_SCADA_Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
 
namespace iWare_SCADA_BusinessLogical.Utils
{
    /// <summary>
    /// 业务系统帮助类
    /// </summary>
    public class SystemBussinessHelper
    {
 
        /// <summary>
        /// 模拟时间(返回秒)
        /// </summary>
        /// <param name="workingProcedure"></param>
        /// <returns></returns>
        public static int MoNiTimeForWorkingProcedure(string workingProcedure)
        {
            switch (workingProcedure)
            {
                case "OP10":
                case "OP40":
                    return 4;
                case "OP20":
                    return 2 * 60;
                case "OP30":
                    return 2 * 60;
                case "OP35":
                    return 1 * 60;
                case "OP50":
                    return 3 * 60;
                case "OP60":
                    return 4 * 60;
                default:
                    return 1 * 60;
            }
        }
 
        /// <summary>
        /// 校验读取的二维码是否正确
        /// </summary>
        /// <param name="workPieceID"></param>
        /// <returns></returns>
        public static bool ValidateIsRightWorkPieceID(string workPieceID)
        {
            if (string.IsNullOrEmpty(workPieceID))
            {
                return false;
            }
            if (workPieceID.Length == 22)
            {
                var n_workPieceID = workPieceID.Trim();
                if (n_workPieceID.Length == 22)
                {
                    if (n_workPieceID.IndexOf("ERROR") > -1)
                    {
                        return false;
                    }
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
 
        /// <summary>
        /// 设置 WorkPieceInfo 的DataCapturePointCname
        /// </summary>
        /// <param name="workPieceLog"></param>
        /// <param name="_DataCapturePointCode"></param>
        /// <param name="_DataCapturePointName"></param>
        public static void SetWorkPieceInfoMiddleForCreatedUserName(ref WorkPieceInfo workPiece, string _DataCapturePointName)
        {
            workPiece.DataCapturePointCname = _DataCapturePointName;
        }
 
        /// <summary>
        /// 设置 WorkPieceInfo 的UpdateDataCapturePointCname
        /// </summary>
        /// <param name="workPieceLog"></param>
        /// <param name="_DataCapturePointCode"></param>
        /// <param name="_DataCapturePointName"></param>
        public static void SetWorkPieceInfoMiddleForUpdateDataCapturePointCname(ref WorkPieceInfo workPiece, string _DataCapturePointName)
        {
            workPiece.UpdateDataCapturePointCname = _DataCapturePointName;
        }
 
        /// <summary>
        /// 设置WorkPieceLog 的创建人
        /// </summary>
        /// <param name="workPieceLog"></param>
        /// <param name="_DataCapturePointCode"></param>
        /// <param name="_DataCapturePointName"></param>
        public static void SetWorkPieceLogMiddleForCreatedUserName(ref WorkPieceLogMiddle workPieceLog, string _DataCapturePointCode, string _DataCapturePointName)
        {
            workPieceLog.CreatedUserName = _DataCapturePointCode;
            workPieceLog.DataCapturePointCname = _DataCapturePointName;
        }
        /// <summary>
        /// 设置WorkPieceLog 的创建人
        /// </summary>
        /// <param name="workPieceLog"></param>
        /// <param name="_DataCapturePointCode"></param>
        /// <param name="_DataCapturePointName"></param>
        public static void SetWorkPieceLogMiddleForCreatedUserName(ref WorkPieceLog workPieceLog, string _DataCapturePointCode, string _DataCapturePointName)
        {
            workPieceLog.CreatedUserName = _DataCapturePointCode;
            workPieceLog.DataCapturePointCname = _DataCapturePointName;
        }
 
        /// <summary>
        /// 设置WorkPieceLog 的更新人
        /// </summary>
        /// <param name="workPieceLog"></param>
        /// <param name="_DataCapturePointCode"></param>
        /// <param name="_DataCapturePointName"></param>
        public static void SetWorkPieceLogMiddleForUpdatedUserName(ref WorkPieceLogMiddle workPieceLog, string _DataCapturePointCode, string _DataCapturePointName)
        {
            workPieceLog.UpdatedUserName = _DataCapturePointCode;
            workPieceLog.UpdateDataCapturePointCname = _DataCapturePointName;
        }
 
 
        /// <summary>
        /// 是否允许修改WorkPieceState 为WIP
        /// </summary>
        /// <param name="info"></param>
        /// <param name="db"></param>
        /// <param name="logMiddle"></param>
        /// <returns></returns>
        public static bool IsAllowUpdateWorkPieceStateToWip(WorkPieceInfo info, DbModel db, WorkPieceLogMiddle logMiddle)
        {
            //这里修复OP10、OP40 因为PLC先推 SPC推出、再推 产品下线问题,导致 产品下线更新数据时,把SPC数据覆盖的问题 【Editby shaocx,2024-08-27】
            if (logMiddle.WorkingProcedure == "OP10" || logMiddle.WorkingProcedure == "OP40")
            {
                var curPross = db.WorkPieceProcess.Where(x => x.WorkPieceID == info.WorkPieceID).OrderByDescending(x => x.Id).FirstOrDefault();
                if (curPross != null && curPross.OperationType == OperationType.SPC.ToString())
                {
                    return false;
                }
                return true;
            }
            return true;
        }
    }
}