杨张扬
2025-06-12 52adedb218549cde2bdc60c3b338e360e72d94a6
core/WCSCore.cs
@@ -1,5 +1,6 @@
using HH.WCS.Mobox3.DoubleCoin.device;
using HH.WCS.Mobox3.DoubleCoin.dispatch;
using HH.WCS.Mobox3.DoubleCoin.models;
using HH.WCS.Mobox3.DoubleCoin.process;
using HH.WCS.Mobox3.DoubleCoin.util;
using HH.WCS.Mobox3.DoubleCoin.wms;
@@ -86,7 +87,7 @@
                                    {
                                        returnS7Ok(TN_Task);
                                    });
                                    break;
                                case 5:
                                    WCSHelper.UpdateStatus(TN_Task, "开始卸货");//任务状态改成开始卸货
@@ -141,6 +142,18 @@
                                        }
                                    });
                                    Task task19 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_END_AREA == Settings.Areas[1])
                                        {
                                            SpecHelper.UpdateInventoryM_RuKu(TN_Task.S_CNTR_CODE);
                                        }
                                        else
                                        {
                                            LogHelper.Info($"更新WMS库存明细的入库时间跳过,TN_Task.S_END_AREA: {TN_Task.S_END_AREA }不等于 Settings.Areas[1]:{Settings.Areas[1]}");
                                        }
                                    });
                                    break;
                                case 2:
                                    WCSHelper.End(TN_Task);//任务状态改成结束
@@ -149,11 +162,11 @@
                                case 7:
                                    Task task10 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库")
                                        if (TN_Task.S_TYPE == "满托下线入库" || TN_Task.S_TYPE == "PDA满托下线入库")
                                        {
                                            TaskProcess.OperateStatus(TN_Task, 7);//异常处理
                                        }
                                        else if(TN_Task.S_TYPE == "满托出库上线")
                                        else
                                        {
                                            WCSHelper.Fail(TN_Task);//任务状态改成错误
                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
@@ -161,15 +174,23 @@
                                            {
                                                LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                            }
                                            var db = new SqlHelper<object>().GetInstance();
                                            var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == TN_Task.S_CNTR_CODE);
                                            if (cginfo != null)
                                            {
                                                SpecHelper.DeleteInventoryM(cginfo.S_ID);
                                            }
                                        }
                                    });
                                    break;
                                case 8:
                                    
                                    Task task11 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库")
                                        if (TN_Task.S_TYPE == "满托下线入库" || TN_Task.S_TYPE == "PDA满托下线入库")
                                        {
                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
                                            if (res != null && (res.err_code ==50002 || res.err_code == 0))
@@ -192,6 +213,13 @@
                                                {
                                                    LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                                }
                                                var db = new SqlHelper<object>().GetInstance();
                                                var cginfo = db.Queryable<TN_CG_Detail>().First(a => a.S_CNTR_CODE == TN_Task.S_CNTR_CODE);
                                                if (cginfo != null)
                                                {
                                                    SpecHelper.DeleteInventoryM(cginfo.S_ID);
                                                }
                                            }
                                            else
                                            {