zxx
2025-07-04 c119ea611cc0e3704cc3be71b5009795323982be
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
using HH.WCS.XiaoMi.dispatch;
using HH.WCS.XiaoMi.process;
using HH.WCS.XiaoMi.util;
using HH.WCS.XiaoMi.wms;
using System;
using System.Collections.Generic;
using System.Linq;
using static HH.WCS.XiaoMi.api.ApiModel;
 
namespace HH.WCS.XiaoMi.core
{
    internal class WCSCore
    { 
        public static void OperateAgvTaskStatus(AgvTaskState model)
        {
            var TN_Task = WCSHelper.GetTask(model.No);
            if (TN_Task != null)
            {
                if (model.State <= 7)
                {
 
                    //有任务号请求
                    switch (model.State)
                    {
                        case 1:
                            WCSHelper.Begin(TN_Task);
                            break;
                        #region MyRegion
                        case 3:
                            WCSHelper.UpdateStatus(TN_Task, "开始取货");
                            break;
                        case 4:
                            WCSHelper.UpdateStatus(TN_Task, "取货完成");
                            TaskProcess.OperateStatus(TN_Task, 4);
                            break;
                        case 5:
                            WCSHelper.UpdateStatus(TN_Task, "开始卸货");
                            break;
                        case 6:
                            WCSHelper.UpdateStatus(TN_Task, "卸货完成");
                            TaskProcess.OperateStatus(TN_Task, 6);
                            break;
                        #endregion
                        case 2:
                            WCSHelper.End(TN_Task);
 
                            break;
                        case 7:
                            TaskProcess.OperateStatus(TN_Task, 7);
                            WCSHelper.Fail(TN_Task);
                            break;
                    }
                    WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
 
                }
                
            }
        }
 
        /// <summary>
        /// 任务分发,根据调度类型发给不同的调度系统
        /// </summary>
        internal static void Dispatch()
        {
            //查询任务
            //获取所有等待的任务
            var list = WCSHelper.GetTaskListByState("等待"); ;
            if (list.Count > 0)
            {
                
                list.ForEach(task =>
                {
 
                    if (!TaskProcess.Intercept(task))
                    {
                        //使用自定义任务推送
                        //TaskProcess.SendGZTask(task);
                        TaskProcess.SendXmTask(task);
                        
                    }
 
                });
 
 
            }
        }
    }
}