杨张扬
2025-06-18 b32cf3fbbd4f981d9a218dc3601962395c2a0d70
core/WCSCore.cs
@@ -162,72 +162,52 @@
                                case 7:
                                    Task task10 = Task.Run(() =>
                                    {
                                        if (TN_Task.S_TYPE == "满托下线入库" || TN_Task.S_TYPE == "PDA满托下线入库")
                                        if (TN_Task.S_TYPE.Contains("满托下线入库") || TN_Task.S_TYPE.Contains("PDA满托下线入库") || TN_Task.S_END_AREA == Settings.Areas[1])
                                        {
                                            TaskProcess.OperateStatus(TN_Task, 7);//异常处理
                                        }
                                        else
                                        {
                                            WCSHelper.Fail(TN_Task);//任务状态改成错误
                                            LocationHelper.UnLockLoc(TN_Task.S_END_LOC);
                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))
                                            if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 4))//未取货完成
                                            {
                                                LocationHelper.UnLockLoc(TN_Task.S_START_LOC);
                                            }
                                                WCSHelper.Fail(TN_Task);//任务状态改成错误
                                            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);
                                                    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
                                            {
                                                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:
                                    
                                    Task task11 = Task.Run(() =>
                                    {
                                        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))
                                            {
                                                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))
                                            {
                                                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);
                                                }
                                                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);
                                                }
                                        LogHelper.Info($"异常和取消操作 请求结果成功{res}");
                                            }
                                            else
                                            {
                                                LogHelper.Info($"异常和取消操作 请求结果失败{res}");
                                            }
                                           
                                        }
                                    });
                                    break;
                            }
                            WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);