杨张扬
2025-06-20 276869b6204afa07dabd957aa247def78b14818c
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;
@@ -161,58 +162,53 @@
                                case 7:
                                    Task task10 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库")
                                        if (TN_Task.S_TYPE.Contains("满托下线入库") || TN_Task.S_TYPE.Contains("PDA满托下线入库"))
                                        {
                                            TaskProcess.OperateStatus(TN_Task, 7);//异常处理
                                        }
                                        else if(TN_Task.S_TYPE == "满托出库上线")
                                        {
                                            WCSHelper.Fail(TN_Task);//任务状态改成错误
                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
                                            {
                                                LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                            }
                                        }
                                    });
                                    break;
                                case 8:
                                    Task task11 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库")
                                        {
                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
                                            if (res != null && (res.err_code ==50002 || res.err_code == 0))
                                            {
                                                TaskProcess.OperateStatus(TN_Task, 7);//异常处理
                                            }
                                            else
                                            {
                                                LogHelper.Info($"异常和取消操作 请求结果失败{res}");
                                            }
                                        }
                                        else
                                        {
                                            var res = NDCApi.CancelOrder(TN_Task.S_CODE);
                                            if (res != null && (res.err_code == 50002 || res.err_code == 0))
                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//未取货完成
                                            {
                                                WCSHelper.Fail(TN_Task);//任务状态改成错误
                                                LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                                if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
                                                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)
                                                {
                                                    LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                                    db.Deleteable<TN_InventoryM>().Where(it => it.S_ID == cginfo.S_ID || it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand();
                                                }
                                                else
                                                {
                                                    db.Deleteable<TN_InventoryM>().Where(it => it.RFID == TN_Task.S_CNTR_CODE).ExecuteCommand();
                                                }
                                            }
                                            else
                                            {
                                                LogHelper.Info($"异常和取消操作 请求结果失败{res}");
                                                WCSHelper.End(TN_Task);//任务状态改成结束
                                                LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());
                                            }
                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                            LocationHelper.UnLockLoc(TN_Task.S_START_LOC);//解锁起点终点
                                        }
                                    });
                                    break;
                                case 8:
                                    var res = NDCApi.CancelOrder(TN_Task.S_CODE);
                                    if (res != null && (res.err_code == 50002 || res.err_code == 0))
                                    {
                                        LogHelper.Info($"异常和取消操作 请求结果成功{res}");
                                    }
                                    else
                                    {
                                        LogHelper.Info($"异常和取消操作 请求结果失败{res}");
                                    }
                                    break;
                            }
                            WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                            //调用第三方接口(如果有)TaskProcess.ReportStatus,添加任务动作关系表