Tjiny
2025-05-19 4c8b2eea64bcd0ae14602a2a6e993b2d04c80ee0
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
using HH.WCS.Mobox3.RiDong.generalMethod;
using SqlSugar;
using DateTime = System.DateTime;
 
namespace HH.WCS.Mobox3.RiDong.models;
 
/// <summary>
/// 作业表
/// </summary>
[SugarTable("TN_Operation")]
public class Operation : BaseModel
{
    /// <summary>
    /// 业务状态(0:等待,1:执行,2:完成,3:错误,4:启动失败,5:暂停启动,6:任务未创建、7:任务取消)
    /// </summary>
    public string S_B_STATE { get; set; } = "等待";
 
    /// <summary>
    /// 业务状态(0:等待,1:执行,2:完成,3:错误,4:启动失败,5:暂停启动,6:任务未创建、7:任务取消)
    /// </summary>
    public int N_B_STATE { get; set; }
 
    /// <summary>
    /// 当前任务状态(各个设备交互点,进度:根据项目自定义)
    /// </summary>
    public string S_TASK_STATE { get; set; }
 
    /// <summary>
    /// 作业编码
    /// </summary>
    public string S_CODE { get; set; }
 
    /// <summary>
    /// 起点货位
    /// </summary>
    public string S_START_LOC { get; set; }
    
    /// <summary>
    /// 扩展字段(用来当作中转货位)
    /// </summary>
    public string S_EXT_ATTR1 { get; set; }
    
    /// <summary>
    /// 扩展字段(任务组)
    /// </summary>
    public int S_EXT_ATTR2 { get; set; }
 
    /// <summary>
    /// 终点货位
    /// </summary>
    public string S_END_LOC { get; set; }
 
    /// <summary>
    /// 作业类型(1:常规入库,2:常规出库,3:盘点入库,4:盘点出库,5:指引出库,6:紧急出库)
    /// </summary>
    public string S_TYPE { get; set; }
 
    /// <summary>
    /// 作业类型(1:常规入库,2:常规出库,3:盘点入库,4:盘点出库,5:指引出库,6:紧急出库)
    /// </summary>
    public int N_TYPE { get; set; }
 
    /// <summary>
    /// 作业定义名称
    /// </summary>
    public string S_OP_DEF_NAME { get; set; }
 
    /// <summary>
    /// 任务开始时间
    /// </summary>
    public DateTime T_START_TIME { get; set; }
 
    /// <summary>
    /// 任务结束时间
    /// </summary>
    public DateTime T_END_TIME { get; set; }
 
    /// <summary>
    /// 容器编码
    /// </summary>
    public string S_CNTR_CODE { get; set; }
    
    /// <summary>
    /// 托盘类型(新增字段)(0:子拖,1:母拖)
    /// </summary>
    public int N_CNTR_TYPE { get; set; } = 1;
 
    /// <summary>
    /// mobox脚本自动运行启动开关
    /// </summary>
    public string C_AUTO_START { get; set; } = "N";
 
    /// <summary>
    /// 起点仓库
    /// </summary>
    public string S_START_WH { get; set; } = "RDCK";
        
    /// <summary>
    /// 起点库区
    /// </summary>
    public string S_START_AREA { get; set; } = "RDKQ";
    
    /// <summary>
    /// 终点仓库
    /// </summary>
    public string S_END_WH { get; set; } = "RDCK";
        
    /// <summary>
    /// 终点库区
    /// </summary>
    public string S_END_AREA { get; set; } = "RDKQ";
 
    /// <summary>
    /// 配盘单号
    /// </summary>
    public string S_DC_NO { get; set; }
        
    /// <summary>
    /// 盘点单号
    /// </summary>
    public string S_COUNT_NO { get; set; }
 
    /// <summary>
    /// 出库方向
    /// </summary>
    public string S_OUT_TARGET { get; set; }
    
    /// <summary>
    /// 巷道
    /// </summary>
    public int N_ROADWAY { get; set; }
 
    /// <summary>
    /// 0 等待/1 执行/2 完成/3 错误/4 启劢失败 /5 暂停启劢
    /// </summary>
    /// <returns></returns>
    internal static string GetStateStr(int state) {
        var status = "";
        switch (state) {
            case 0: status = "等待"; break;
            case 1: status = "执行"; break;
            case 2: status = "完成"; break;
            case 3: status = "错误"; break;
            case 4: status = "启动失败"; break;
            case 5: status = "暂停失败"; break;
            case 6: status = "任务未创建"; break;
            case 7: status = "任务取消"; break;
        }
        return status;
    }
 
    /// <summary>
    /// 根据传递数字判断任务类型
    /// 1:常规入库、2:常规出库、3:盘点入库、4:盘点出库、5:退库任务
    /// </summary>
    /// <param name="v"></param>
    /// <returns></returns>
    internal static string GetTypeStr(int v) {
        var str = "";
        switch (v) {
            case 1: str = "常规入库"; break;
            case 2: str = "常规出库"; break;
            case 3: str = "盘点入库"; break;
            case 4: str = "盘点出库"; break;
            case 5: str = "指引出库"; break;
            case 6: str = "紧急出库"; break;
            case 7: str = "空托出库"; break;
        }
        return str;
    }
    
    /// <summary>
    /// 根据传递数字判断任务类型
    /// 1:常规入库、2:常规出库、3:盘点入库、4:盘点出库、5:退库任务
    /// </summary>
    /// <param name="v"></param>
    /// <returns></returns>
    internal static int GetGroup(int v) {
        var str = 0;
        switch (v) {
            case 0: str = 0; break;
            case 1: str = 1; break;
            case 2: str = 1; break;
            case 3: str = 2; break;
            case 4: str = 2; break;
            case 5: str = 3; break;
        }
        return str;
    }
 
    /// <summary>
    /// 根据传递货位,找到对应的立库区
    /// </summary>
    /// <param name="loc"></param>
    /// <returns></returns>
    public static string GetArea(string loc)
    {
        var location = AdoSqlMethod<Location>.QueryFirst(p=>p.S_CODE == loc);
 
        return location.S_AREA_CODE;
    }
}