2
schangxiang@126.com
2024-10-01 ffa9dc9c2d28c0b8d88b26d483ba9667e316db01
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
using iWareCC.Common.Helper;
using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareSql;
using iWareSql.DataAccess;
using iWareSql.DBModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using XiGang.Core.Model;
 
namespace iWareCC
{
    /// <summary>
    /// 1014库位转运到1020线程
    /// </summary>
    public static class Place1014To1020Task
    {
        public static void Handler()
        {
            while (true)
            {
                // SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "";
                Thread.Sleep(2000);//休眠2秒
                try
                {
                    if (SystemValue.isAllowRuning_Place1014To1020Task && SystemValue.isStartedModel)
                    {
                        if (FormCC.RGV_1020_NoHasCategory_COUNT <= 25)
                        {
                            SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1020站点,25秒内光电显示有货,无须处理转运到1020任务";
                            continue;
                        }
 
                        using (DbModel context = new DbModel())
                        {
                            EDevice rgvLocation = EDevice.拆盘机入口1014;
 
                            var stationCode = Convert.ToInt32(rgvLocation).ToString();
                            var isGD_HasCatogryForRgvStattion = MyExtendHelper.IsGD_HasCatogryForRgvStattionFor2(stationCode);
                            V_AllStore store = null;
                            var isSys_HasCatogryForRgvStattion = MyExtendHelper.IsSys_HasCatogryForRgvStattion(context, stationCode, ref store);
                            var isExistOtherTaskDoing = PartTaskHandler.IsExistOtherTaskDoing(stationCode);
                            var isExistOtherTaskDoingForDeviceTaskTypeEnum_立库空托到拆盘机入口 = PartTaskHandler.IsExistOtherTaskDoingForDeviceTaskTypeEnum(DeviceTaskTypeEnum.立库空托到拆盘机入口);
                            var isExistOtherTaskDoingForDeviceTaskTypeEnum_空托转运到拆盘机入口 = PartTaskHandler.IsExistOtherTaskDoingForDeviceTaskTypeEnum(DeviceTaskTypeEnum.空托转运到拆盘机入口);
 
                            if (isGD_HasCatogryForRgvStattion == false)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,光电显示无货,无须处理转运到1020任务";
                                continue;
                            }
                            else if (isSys_HasCatogryForRgvStattion == false)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示无货,无须处理转运到1020任务";
                                continue;
                            }
                            else if (isExistOtherTaskDoing == true)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示有其他任务占用,无须处理转运到1020任务";
                                continue;
                            }
                            else if (isExistOtherTaskDoingForDeviceTaskTypeEnum_立库空托到拆盘机入口 == true)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示有立库空托到拆盘机入口任务占用,无须处理转运到1020任务";
                                continue;
                            }
                            else if (isExistOtherTaskDoingForDeviceTaskTypeEnum_空托转运到拆盘机入口 == true)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014站点,系统显示有空托转运到拆盘机入口任务占用,无须处理转运到1020任务";
                                continue;
                            }
 
                            //判断1020
                            EDevice rgvLocation_1020 = EDevice.拆盘机1020;
                            isGD_HasCatogryForRgvStattion = MyExtendHelper.IsGD_HasCatogryForRgvStattion(((int)rgvLocation_1020).ToString());
                            if (isGD_HasCatogryForRgvStattion == true)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1020站点,光电显示有货,无须处理转运到1020任务";
                                continue;
                            }
 
                            ////等待30秒,确定拆盘机无货才可以创建任务,因为拆盘机在拆盘的时候,光电可能有一瞬间是 无货的状态 [EditBy shaocx,2022-04-29]
                            //Thread.Sleep(30 * 1000);
                            //rgvLocation_1020 = EDevice.拆盘机1020;
                            //isGD_HasCatogryForRgvStattion = MyExtendHelper.IsGD_HasCatogryForRgvStattion(((int)rgvLocation_1020).ToString());
                            //if (isGD_HasCatogryForRgvStattion == true)
                            //{
                            //    SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1020站点,光电显示有货,无须处理转运到1020任务";
                            //    continue;
                            //}
 
 
                            #region  处理
                            var fr = MyExtendHelper.DoHandler(context, store, EDevice.拆盘机1020);
                            if (fr.result == false)
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "错误:拆盘机入口1014处新建从 1014库位转运到1020线程 任务失败:" + fr.resMsg;
                            }
                            else
                            {
                                SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "成功创建拆盘机入口1014处新建 1014库位转运到1020 任务";
                            }
                            #endregion
 
                            continue;
 
                        }
                    }
                }
                catch (Exception ex)
                {
                    SystemWarningMsg._lbl_Alert_Place1014To1020TaskTask = "1014库位转运到1020线程出现异常:" + ex.Message;
                    Log4NetHelper.WriteErrorLog(LogType.CCWCFService, "Place1014To1020Task 出现异常:" + ex.Message, ex);
                }
            }
        }
    }
}