海波 张
2025-06-04 2efbd25f2160cb68cf2464f370aca3d1ea21f86f
api/MoboxController.cs
@@ -3,7 +3,9 @@
using HH.WCS.ZhongCeJinTan.process;
using HH.WCS.ZhongCeJinTan.util;
using HH.WCS.ZhongCeJinTan.wms;
using Newtonsoft.Json;
using System.Linq;
using System.Threading.Tasks;
using System.Web.Http;
using static HH.WCS.ZhongCeJinTan.api.ApiModel;
@@ -12,7 +14,7 @@
    /// <summary>
    /// mobox调用
    /// </summary>
     [RoutePrefix("mobox")]
     //[RoutePrefix("mobox")]
    public class MoboxController : System.Web.Http.ApiController
    {
        [HttpPost]
@@ -46,9 +48,10 @@
        //作业任务强制完成 
        [HttpPost]
        //[Route("CompleteTask")]
        public SimpleResult CompleteTask(MoboxTaskBase model)
        {
            LogHelper.Info("CompleteTask 参数:" + JsonConvert.SerializeObject(model), "强制完成");
            var result = new SimpleResult();
            var task = TaskHelper.GetTask(model.TaskNo);
            if (task != null)
@@ -57,13 +60,55 @@
                {
                    result.resultMsg = "任务未执行,不允许强制完成!";
                }
                else if (task.S_B_STATE.Trim() != "未执行")
                else if (task.S_B_STATE.Trim() != "完成"&& task.S_B_STATE.Trim() != "取消")
                {
                    //已推送但是没有完成或者取消,通知hosttoagv
                    TaskHelper.UpdateStatus(model.TaskNo.Trim(), "完成");
                    if (task.S_SCHEDULE_TYPE.Contains("agv"))
                    {
                        //看小车有没有4取货完成
                        WmsTaskAction ac4 = TaskHelper.GetActionRecord(task.S_CODE, "4");
                        if (ac4 != null)
                        {
                            LogHelper.Info("CompleteTask agv任务已经取货完成,任务强制完成处理", "强制完成");
                            TaskHelper.UpdateStatus(task, "卸货完成");
                            LocationHelper.UnLockLoc(task.S_END_LOC);
                            TaskProcess.OperateStatus(task, 6);
                            //如果是二段任务则下发立库任务
                            var wcsTask = TaskHelper.GetTaskByState("未执行", "wcs", task.S_OP_CODE, "入库");
                            if (wcsTask != null)
                            {
                                LocationHelper.LockLoc(wcsTask.S_START_LOC, "出库锁", 2);
                                WcsTask.WcsTaskEntity(wcsTask);
                            }
                            TaskHelper.End(task);
                        }
                        else
                        {
                            LogHelper.Info("CompleteTask agv任务没有取货完成,任务取消处理", "强制完成");
                            var cancle = new cancleTaskParme();
                            cancle.task_no = task.S_CODE;
                            TaskProcess.cancelTask1(cancle);
                        }
                    }
                    if (task.S_SCHEDULE_TYPE.Contains("wcs")) {
                        LogHelper.Info("CompleteTask wcs任务强制完成处理", "强制完成");
                        LocationHelper.UnLockLoc(task.S_START_LOC);
                        TaskProcess.OperateStatus(task, 4);
                        LocationHelper.UnLockLoc(task.S_END_LOC);
                        TaskProcess.OperateStatus(task, 6);
                        TaskHelper.End(task);
                        LocationHelper.CreateUpAndDown(task);
                    }
                }
                else
                {
@@ -76,6 +121,8 @@
                result.resultCode = 1;
                result.resultMsg = "任务不存在";
            }
            LogHelper.Info("CompleteTask 返回:" + JsonConvert.SerializeObject(model), "强制完成");
            return result;
        }