lss
4 天以前 17e3ef45fe0a6b6f8a147b50740834ac734f9317
HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs
@@ -1,5 +1,6 @@
using HH.WCS.DaYang.dispatch;
using HH.WCS.DaYang.process;
using HH.WCS.DaYang.util;
using HH.WCS.DaYang.wms;
using System;
using System.Collections.Generic;
@@ -22,6 +23,11 @@
                var TN_Task = WCSHelper.GetTask(model.No);
                if (TN_Task != null)
                {
                    if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2))
                    {
                        LogHelper.Info($"任务{TN_Task.S_CODE}已经完成,不接受状态处理");
                        return;
                    }
                    if (model.State <= 7)
                    {
@@ -50,15 +56,38 @@
                            case 6:
                                WCSHelper.UpdateStatus(TN_Task, "卸货完成");
                                TaskProcess.OperateStatus(TN_Task, 6);
                                //if (TN_Task.S_TYPE == "入库")
                                //{
                                //    WMSHelper.AddWHInventory(TN_Task);
                                //}
                                // WMSHelper.AddAZLInventory(TN_Task);
                                if (TN_Task.S_TYPE == "物料入库")
                                {
                                    //入库完成 修改入库时间
                                    var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE);
                                    if (cntrItme != null)
                                    {
                                        ContainerHelper.UpdateInTime(cntrItme);
                                    }
                                    else
                                    {
                                        LogHelper.Info($"任务{TN_Task.S_CODE},卸货完成,并无托盘物料绑定关系");
                                    }
                                }
                                break;
                            #endregion
                            case 2:
                                WCSHelper.End(TN_Task);
                                //查询当前任务是否存在作业,如果有作业则完成作业
                                if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE))
                                {
                                    var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 1, 2 });
                                    if (NowmsTask == null)
                                    {
                                        var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
                                        if (WmsTask == null)
                                        {
                                            WmsTask.N_B_STATE = 3;
                                            WMSHelper.UpdateTaskState(WmsTask);
                                        }
                                    }
                                }
                                break;
                            case 7:
                                TaskProcess.OperateStatus(TN_Task, 7);
@@ -83,11 +112,20 @@
        public static Result<Empty> NotifyTaskStatus(NotifyTaskStatusModel model)
        {
            Result<Empty> result = new Result<Empty>() { Code = 1, Msg = "反馈成功" };
            try
            {
                var TN_Task = WCSHelper.GetTask(model.TaskNo);
                if (TN_Task != null)
                {
                    if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2))
                    {
                        result.Code = 2;
                        result.Msg = $"任务{TN_Task.S_CODE}已经完成,不接受状态处理";
                        LogHelper.Info($"NotifyTaskStatus:{result.Msg}");
                        return result;
                    }
                    if (model.Status <= 7)
                    {
                        //有任务号请求
@@ -103,6 +141,10 @@
                            case 4:
                                WCSHelper.UpdateStatus(TN_Task, "取货完成");
                                TaskProcess.OperateStatus(TN_Task, 4);
                                if (TN_Task.S_START_AREA== "YCLLKQ")
                                {
                                    WMSHelper.OnShelves(TN_Task,2);
                                }
                                break;
                            case 5:
                                WCSHelper.UpdateStatus(TN_Task, "开始卸货");
@@ -110,10 +152,60 @@
                            case 6:
                                WCSHelper.UpdateStatus(TN_Task, "卸货完成");
                                TaskProcess.OperateStatus(TN_Task, 6);
                                if (TN_Task.S_TYPE== "叠盘机呼叫空托")
                                {
                                    var db = new SqlHelper<object>().GetInstance();
                                    var containern = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == TN_Task.S_CNTR_CODE).First();
                                    if (containern != null)
                                    {
                                        containern.S_SOURCE = "1";
                                        db.Updateable<Container>(containern).UpdateColumns(a => new { a.S_SOURCE }).ExecuteCommand();
                                    }
                                }
                                if (TN_Task.S_END_AREA == "YCLLKQ")
                                {
                                    //上下架记录
                                    WMSHelper.OnShelves(TN_Task, 1);
                                    //入库完成 修改入库时间
                                    var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE);
                                    if (cntrItme != null)
                                    {
                                        ContainerHelper.UpdateInTime(cntrItme);
                                    }
                                    else
                                    {
                                        LogHelper.Info($"任务{TN_Task.S_CODE},卸货完成,并无托盘物料绑定关系");
                                    }
                                }
                                break;
                            #endregion
                            case 2:
                                WCSHelper.End(TN_Task);
                                //查询当前任务是否存在作业,如果有作业则完成作业
                                if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE))
                                {
                                    var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 0, 1, 2 });
                                    if (NowmsTask == null)
                                    {
                                        var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
                                        if (WmsTask != null)
                                        {
                                            WmsTask.N_B_STATE = 3;
                                            WMSHelper.UpdateTaskState(WmsTask);
                                        }
                                    }
                                }
                                if (TN_Task.S_TYPE == "指定出库")
                                {
                                    var db = new SqlHelper<object>().GetInstance();
                                    LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());
                                    var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).First();
                                    if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).ExecuteCommand(); }
                                }
                                break;
                            case 7:
                                TaskProcess.OperateStatus(TN_Task, 7);
@@ -140,7 +232,7 @@
                result.Msg = $"Error:ex";
                LogHelper.Info($"EquipmentInfo:{result.Msg}");
                return result;
            }
        }