1
pulg
2025-06-26 06a54c7ac91fed8ece7dd6bedf724539af3c38ff
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
using HH.WCS.Hexafluo.dispatch;
using HH.WCS.Hexafluo.wms;
using HH.WCS.SJML.Bll;
using HH.WCS.SJML.util;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.Web.Http;
using static HH.WCS.SJML.api.ApiModel;
 
namespace HH.WCS.Hexafluo.api
{
    /// <summary>
    /// mobox调用
    /// </summary>
    public class MoboxController : System.Web.Http.ApiController
    {
        [HttpPost]
        public SimpleResult CancelTask(MoboxTaskBase model)
        {
            var result = new SimpleResult();
            try
            {
                var logPara = LogType.LogPara("完工回报");
                LogHelper.TaskDetail(logPara, "Mobox完工回报参数:" + JsonConvert.SerializeObject(model));
                var task = TaskHelper.GetTask(model.TaskNo);
                var SataeLis = SataeList[model.State];
                if (task != null)
                {
                    //if (SataeLis.Trim() == "未执行")
                    //{
                    //    //未执行直接修改状态为取消
                    //    TaskHelper.UpdateStatus(model.TaskNo, "取消");
                    //    result.resultMsg = "任务未执行,直接取消";
                    //}
                    //else if (task.S_B_STATE.Trim() != "取消" && task.S_B_STATE.Trim() != "完成")
                    //{
                    //    //已推送但是没有完成或者取消,通知hosttoagv
                    //    NDCHelper.Cancel(task.S_TASK_NO.Trim());
                    //    result.resultMsg = "任务取消已经发送给小车";
                    //}
                    //else
                    //{
                    //    result.resultCode = 1;
                    //    result.resultMsg = "任务已结束";
                    //}
                    if (SataeLis == "取消")
                    {
                        if (task.S_NOTE.Equals("agv任务") && (task.S_B_STATE.Trim() == "取消" || task.S_B_STATE.Trim() == "完成"))
                        {
                            result.resultCode = 1;
                            LogHelper.TaskDetail(logPara, "完工回报返回:" + JsonConvert.SerializeObject(result));
                            return result;
                        }
                        if (task.S_NOTE.Equals("agv任务") && (task.S_B_STATE != "已推送" || task.S_B_STATE != "未执行") && task.S_TYPE == "出库")
                        {
                            result.resultMsg = "agv任务不是已推送或未执行状态,禁止取消";
                            result.resultCode = 1;
                            LogHelper.TaskDetail(logPara, "完工回报返回:" + JsonConvert.SerializeObject(result));
                            return result;
                        }
                    }
 
                    var ta = BLLCreator.CreateSingleton<StateTaskBLL>().ExecuteState(model.TaskNo, SataeLis, logPara, task);
                    if (task.S_NOTE.Equals("agv任务") && (task.S_B_STATE.Trim() != "取消" && task.S_B_STATE.Trim() != "完成") && model.State == 22 && ta.Success)
                    {
                        NDCHelper.Cancel(task.S_TASK_NO);//取消agv任务
                        LogHelper.TaskDetail(logPara, "通知agv取消任务--强制完成");
                    }
                    //if (task.S_NOTE.Equals("agv任务") && SataeLis == "取消" && ta.Success)
                    //{
                    //    //已推送但是没有完成或者取消,通知hosttoagv
                    //    NDCHelper.Cancel(task.S_TASK_NO.Trim());
                    //    result.resultMsg = "任务取消已经发送给小车";
                    //    //if (task.S_B_STATE.Trim() == "已推送")
                    //    //{
                    //    //    NDCHelper.Cancel(task.S_TASK_NO.Trim());
                    //    //    result.resultMsg = "任务取消已经发送给小车";
                    //    //}
                    //    //else
                    //    //{
                    //    //}
                    //}
                    LogHelper.TaskDetail(logPara, "完工回报返回:" + JsonConvert.SerializeObject(ta));
                    result.resultMsg = ta.Msg;
                    if (ta.Success)
                    {
                        result.resultCode = 1;
                    }
                }
                else
                {
                    result.resultCode = 1;
                    result.resultMsg = "任务不存在";
                }
                return result;
            }
            catch (System.Exception ex)
            {
 
                result.resultCode = 1;
                result.resultMsg = ex.Message;
                return result;
            }
 
 
 
        }
 
        [HttpPost]
        public SimpleResult CompleteTask(MoboxTaskBase model)
        {
            var result = new SimpleResult();
            return result;
        }
 
        public static Dictionary<int, string> SataeList = new Dictionary<int, string>()
        {
            {1,"执行中"},//开始执行
            {3 ,"开始取货"},//开始取货
            {4 ,"取货完成"},//取货完成
            {5 ,"开始卸货"},//开始卸货
            {6 ,"卸货完成"},//卸货完成
            {2 ,"完成"},//完成
            {7 ,"取消"},//取消
            {22 ,"完成"},//完成
        };
    }
}