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
using HH.WCS.Mobox3.RiDong.apiMethod;
using HH.WCS.Mobox3.RiDong.generalMethod;
using HH.WCS.Mobox3.RiDong.process;
using HH.WCS.Mobox3.RiDong.util;
using HH.WCS.Mobox3.RiDong.wms;
using static HH.WCS.Mobox3.RiDong.util.ApiModel;
 
namespace HH.WCS.Mobox3.RiDong.core;
 
internal class WCSCore
{
    public static void OperateAgvTaskStatus(AgvTaskState model)
    {
        LogHelper.Info($"agv请求接口,任务号:{model.No}、请求状态{model.State}");
 
        if (string.IsNullOrEmpty(model.No))
        {
            // 无任务号请求(交管)
            DeviceProcess.Traffic(model.ForkliftNo, model.LockNo, model.State);
        }
        else
        {
            var task = WCSHelper.GetTask(model.No);
 
            if (task != null)
            {
                if (model.State <= 7)
                {
                    //有任务号请求
                    switch (model.State)
                    {
                        case 1:
                            WCSHelper.Begin(task);
                            break;
                        case 3:
                            WCSHelper.UpdateStatus(task, "开始取货");
                            break;
                        case 4:
                            WCSHelper.UpdateStatus(task, "取货完成");
                            // 货位解锁
                            EnterWareHouseService.LocationUnlock(task);
                            break;
                        case 5:
                            WCSHelper.UpdateStatus(task, "开始卸货");
                            break;
                        case 6:
                            // 修改状态
                            WCSHelper.UpdateStatus(task, "卸货完成");
                            break;
                        case 2:
                            WCSHelper.End(task);
                            // 仓库量表,容器货品等数据添加
                            EnterWareHouseService.CarTaskFinished(task);
                            break;
                        case 7:
                            TaskProcess.OperateStatus(task, 7);
                            WCSHelper.Fail(task);
                            break;
                    }
                    WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
                    //调用第三方接口(如果有)TaskProcess.ReportStatus
                }
                else
                {
                    //安全请求等
                    AGVMethod.OperateReq(task, model.State);
                }
            }
        }
    }
}