Admin
2025-11-25 18828b299d8208cfba1e70b08ba86b4e9c5b91f5
´úÂë¹ÜÀí/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -302,6 +302,11 @@
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing, TaskOrderBy);
        }
        public Dt_Task ChacheGetFinhuoTask(string DeviceCode)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskOutStatusEnum.RGV_OutPickupExecuting, TaskOrderBy);
        }
        public Dt_Task GetOutkouFinhuoTask(string DeviceCode, string curraderr)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskOutStatusEnum.RGV_OutPickupFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing && x.NextAddress != "", TaskOrderBy);
@@ -336,7 +341,7 @@
        /// <param name="type">1:查找需要取货的任务   2:查找需要放货的任务</param>
        public Dt_Task GetInkouFinhuoTask(string DeviceCode)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.NextAddress != "" && x.TaskState == (int)TaskInStatusEnum.RGV_InPickupFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing, TaskOrderBy);
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.NextAddress != "" && (x.TaskState == (int)TaskInStatusEnum.RGV_InPickupFinish || x.TaskState == (int)TaskInStatusEnum.InexceptionalSelection) && x.RGVTaskType == (int)RGVTaskTypeEnum.Placing, TaskOrderBy);
        }
        /// <summary>
@@ -355,7 +360,7 @@
        /// <returns></returns>
        public Dt_Task MothermachinemovementTask2(string DeviceCode)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarExecuting && x.RGVTaskType == (int)RGVTaskTypeEnum.TravelingOnly), TaskOrderBy);
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting || x.TaskState == (int)TaskInStatusEnum.InFinish), TaskOrderBy);
        }
        /// <summary>
@@ -363,7 +368,7 @@
        /// </summary>
        public Dt_Task MothermacTask(string DeviceCode)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting || x.TaskState == (int)TaskInStatusEnum.InFinish && x.RGVTaskType == (int)RGVTaskTypeEnum.TravelingOnly), TaskOrderBy);
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish || x.TaskState == (int)TaskInStatusEnum.SC_InExecuting || x.TaskState == (int)TaskInStatusEnum.InFinish ), TaskOrderBy);
        }
        /// <summary>
@@ -411,8 +416,9 @@
        /// <param name="DeviceCode"></param>
        public Dt_Task ViceChariotPickupTask2(string DeviceCode)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish) && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy);
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InZicheReleaseFinish), TaskOrderBy);
        }
@@ -428,15 +434,20 @@
                {
                    dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState== (int)TaskInStatusEnum.InexceptionalSelection);
                    if (dt_Task == null) return webResponse.Error("未找到需要修改的任务,无需修改");
                    dt_Task.NextAddress = NextAddress;
                    BaseDal.UpdateData(dt_Task);
                    return webResponse.OK("任务放货地址修改成功");
                }
                else
                {
                    dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.NextAddress == "");
                    if (dt_Task == null) return webResponse.Error("未找到需要修改的任务,无需修改");
                    dt_Task.NextAddress = NextAddress;
                    BaseDal.UpdateData(dt_Task);
                    return webResponse.OK("任务放货地址修改成功");
                }
                if (dt_Task == null) return webResponse.Error("未找到需要修改的任务,无需修改");
                dt_Task.NextAddress = NextAddress;
                BaseDal.UpdateData(dt_Task);
                return webResponse.OK("任务放货地址修改成功");
            }
            catch (Exception ex)
            {
@@ -528,7 +539,7 @@
            try
            {
                int oldState = task.TaskState;
                if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)
                if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.TaskState != (int)TaskInStatusEnum.InexceptionalSelection)
                {
                    if (task.TaskState >= (int)TaskInStatusEnum.InFinish)
                    {
@@ -538,11 +549,6 @@
                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                    task.TaskState = nextStatus;
                    /*if (task.TaskState == (int)TaskInStatusEnum.RGV_InPickupExecuting)  //当下发入库口取货中,则调取兰剑接口
                    {
                        TaskResultIn(task.TaskNum.ToString(),"",1,"");
                    }*/
                }
                else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                {
@@ -552,6 +558,12 @@
                    }
                    int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
                    task.TaskState = nextStatus;
                }
                else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.TaskState== (int)TaskInStatusEnum.InexceptionalSelection)
                {
                    int nextStatus = (int)TaskInStatusEnum.Inexcepjxz;
                    task.TaskState = nextStatus;
                }
@@ -825,13 +837,17 @@
            try
            {
                if (task.TaskType == (int)TaskInboundTypeEnum.Inbound)  //正常流程
                if (task.TaskType == (int)TaskInboundTypeEnum.Inbound )  //正常流程
                {
                    HandleInboundTask(task);
                }
                else if (task.TaskType == (int)TaskInboundTypeEnum.Inbound && (task.NextAddress == "1001" || task.NextAddress == "1002"))
                {
                    task.TaskState = (int)TaskInStatusEnum.RGV_InMothercarFinish;
                    if(task.NextAddress == "1001" || task.NextAddress == "1002")
                    {
                        task.TaskState = (int)TaskInStatusEnum.InFinish_exceptionalSelection;
                    }
                    else
                    {
                        HandleInboundTask(task);
                    }
                }
                else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                {
@@ -854,20 +870,27 @@
                    : $"系统自动流程,任务状态从【{oldstaterem}】转到【{afterstaterem}】");
                if (task.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish || task.TaskState == (int)TaskOutStatusEnum.OutFinish)   //入库任务完成
                if (task.TaskState == (int)TaskInStatusEnum.RGV_InMothercarFinish || task.TaskState == (int)TaskOutStatusEnum.OutFinish || task.TaskState == (int)TaskInStatusEnum.InFinish_exceptionalSelection)   //入库任务完成
                {
                    
                    if (task.NextAddress == "1001" || task.NextAddress == "1002")
                    {
                        //异常排除任务时,异常上报
                        TaskResultIn(task.TaskNum.ToString(), task.NextAddress, 3, "");
                        AutomaticTaskCompleted(task);   //任务完成
                        BaseDal.DeleteData(task);
                    }
                    else
                    {
                        //正常任务,正常上报
                        TaskResultIn(task.TaskNum.ToString(), "", 2, "");
                        /*AutomaticTaskCompleted(task);   //任务完成
                        BaseDal.DeleteData(task);*/
                        if(task.TaskType == (int)TaskInboundTypeEnum.Inbound && task.NextAddress != "1001" && task.NextAddress != "1002")
                        {
                            TaskResultIn(task.TaskNum.ToString(), "", 2, "");
                        }
                        else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                        {
                            TaskResultOut(task.TaskNum.ToString(), task.NextAddress, 2, "");
                        }
                    }
                }
@@ -1558,6 +1581,26 @@
                    return WebResponseContent.Instance.Error($"{Remark}失败!");
                }
                if (dt_task.NextAddress == "1001" || dt_task.NextAddress == "1002")
                {
                    //异常排除任务时,异常上报
                    TaskResultIn(dt_task.TaskNum.ToString(), dt_task.NextAddress, 3, "手动完成");
                }
                else
                {
                    if (dt_task.TaskType == (int)TaskInboundTypeEnum.Inbound && dt_task.NextAddress != "1001" && dt_task.NextAddress != "1002")
                    {
                        TaskResultIn(dt_task.TaskNum.ToString(), "", 2, "手动完成");
                    }
                    else if(dt_task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                    {
                        TaskResultOut(dt_task.TaskNum.ToString(), dt_task.NextAddress, 2, "手动完成");
                    }
                }
                var deletetask = BaseDal.DeleteData(dt_task);
                if (deletetask == false)
                {
@@ -1626,11 +1669,26 @@
                    db.Ado.RollbackTran();
                    return WebResponseContent.Instance.Error("取消任务失败!");
                }
                /*int oldState = dt_task.TaskState;
                _taskExecuteDetailService.AddTaskExecuteDetail(
    dt_task.TaskId,
    $"自动任务状态从【{oldState}】进入到【{dt_Task_Hty.TaskState}】"
);*/
                if (dt_task.NextAddress == "1001" || dt_task.NextAddress == "1002")
                {
                    //异常排除任务时,异常上报
                    TaskResultIn(dt_task.TaskNum.ToString(), dt_task.NextAddress, 3, "任务取消");
                }
                else
                {
                    if (dt_task.TaskType == (int)TaskInboundTypeEnum.Inbound)
                    {
                        TaskResultIn(dt_task.TaskNum.ToString(), "", 3, "任务取消");
                    }
                    else
                    {
                        TaskResultOut(dt_task.TaskNum.ToString(), dt_task.NextAddress, 3, "任务取消");
                    }
                }
                bool deletetask = BaseDal.DeleteData(dt_task);
                if (!deletetask)