1
HuBingJie
8 天以前 5da3a276b7847187a7c155ee069d3cd4c9e58074
´úÂë¹ÜÀí/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -51,9 +51,11 @@
using WIDESEA_Common.Log;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_Core.Utilities;
using WIDESEAWCS_DTO;
using WIDESEAWCS_DTO.Enum;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ISystemServices;
@@ -65,6 +67,7 @@
using WIDESEAWCS_QuartzJob.Models;
using WIDESEAWCS_QuartzJob.Repository;
using WIDESEAWCS_QuartzJob.Service;
using WIDESEAWCS_TaskInfoRepository;
using static Microsoft.IO.RecyclableMemoryStreamManager;
using static System.Net.Mime.MediaTypeNames;
@@ -80,6 +83,7 @@
        private readonly IMapper _mapper;
        private readonly IEquipmentStatusService _equipmentStatus;
        private readonly IAgvStationService _gvStationService;
        private readonly IRepository<AbnormalTask> _abnormalTask;
        private Dictionary<string, OrderByType> _taskOrderBy = new()
@@ -94,7 +98,7 @@
        public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList();
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository, IEquipmentStatusService equipmentStatus, IAgvStationService agvStationService) : base(BaseDal)
        public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ITask_HtyService task_HtyService, IRouterRepository routerRepository, IEquipmentStatusService equipmentStatus, IAgvStationService agvStationService, IRepository<AbnormalTask> abnormalTask) : base(BaseDal)
        {
            _routerService = routerService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -104,6 +108,7 @@
            _routerRepository = routerRepository;
            _equipmentStatus = equipmentStatus;
            _gvStationService = agvStationService;
            _abnormalTask = abnormalTask;
        }
        /// <summary>
@@ -144,7 +149,7 @@
                    if (item.type == 1)     //入库
                    {
                        Dt_Task dt_Task = new Dt_Task();
                        dt_Task.TaskNum = item.taskNo;
                        dt_Task.TaskNum = BaseDal.GetTaskNo().Result;
                        dt_Task.PalletCode = item.containerNo;    //暂无
                        dt_Task.Roadway = "RGV101";
                        dt_Task.TaskType = (int)TaskInboundTypeEnum.Inbound;
@@ -157,6 +162,7 @@
                        dt_Task.NextAddress = "";   //目前暂无
                        dt_Task.Grade = item.priority;
                        dt_Task.WMSId = 0;   //目前暂无
                        dt_Task.LJTaskNum= item.taskNo;
                        BaseDal.AddData(dt_Task);
                        content.code = 0;
@@ -185,7 +191,7 @@
                        AGVStation gVStation = _gvStationService.Corridorequipment(roadway);
                        Dt_Task dt_Task = new Dt_Task();
                        dt_Task.TaskNum = item.taskNo;
                        dt_Task.TaskNum = BaseDal.GetTaskNo().Result;
                        dt_Task.PalletCode = item.containerNo;    //暂无
                        dt_Task.Roadway = roadway;
                        dt_Task.TaskType = (int)TaskOutboundTypeEnum.Outbound;
@@ -198,6 +204,7 @@
                        dt_Task.NextAddress = gVStation.ZicheMotherinlaw.ToString();   //目前暂无
                        dt_Task.Grade = item.priority;
                        dt_Task.WMSId = 0;   //目前暂无
                        dt_Task.LJTaskNum = item.taskNo;
                        BaseDal.AddData(dt_Task);
                        content.code = 0;
@@ -285,6 +292,8 @@
        public Dt_Task ChildVehicleMission(AGVStation aGVStation)
        {
            Dt_Task dt_TasksUP = BaseDal.QueryFirst(x => x.Roadway == aGVStation.ChildPosiDeviceCode && (x.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheExecuting || x.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheFinish || x.TaskState == (int)TaskOutStatusEnum.RGV_OutZicheReleaseExecuting), TaskOrderBy);
            if (dt_TasksUP != null) return null;
            Dt_Task dt_Tasks2 = BaseDal.QueryFirst(x => x.Roadway == aGVStation.ChildPosiDeviceCode && x.CurrentAddress == aGVStation.MotherCardeputy.ToString() && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy);
            if (dt_Tasks2 != null) return dt_Tasks2;
@@ -300,6 +309,11 @@
        public Dt_Task GetFinhuoTask(string DeviceCode)
        {
            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)
@@ -325,7 +339,13 @@
        /// <param name="type">1:查找需要取货的任务</param>
        public Dt_Task PickupWarehouse(string DeviceCode)
        {
            return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InNew && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy);
            Dt_Task _Task = BaseDal.QueryFirst(x => x.Roadway == DeviceCode && (x.TaskState == (int)TaskInStatusEnum.Inexcepjxz || x.TaskState == (int)TaskInStatusEnum.InAbnormalFinish || x.TaskState == (int)TaskInStatusEnum.InexceptionalSelection || x.TaskState == (int)TaskInStatusEnum.InFinish_exceptionalSelection
             || x.TaskState == (int)TaskInStatusEnum.InAbnormalFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InPickupExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InPickupFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseExecuting || x.TaskState == (int)TaskInStatusEnum.RGV_InReleaseFinish));
            if (_Task == null)
            {
                return BaseDal.QueryFirst(x => x.Roadway == DeviceCode && x.TaskState == (int)TaskInStatusEnum.RGV_InNew && x.RGVTaskType == (int)RGVTaskTypeEnum.PickingUp, TaskOrderBy);
            }
            return null;
        }
@@ -336,7 +356,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 +375,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 +383,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 +431,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 +449,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 == "");
                    dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.NextAddress == ""&&x.TaskState == (int)TaskOutStatusEnum.RGV_OutPickupFinish);
                    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 +554,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 +564,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 +573,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 +852,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 +885,31 @@
                    : $"系统自动流程,任务状态从【{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")
                    {
                        AbnormalTask abnormalTask = _abnormalTask.QueryFirst(x=> x.TaskNum == task.TaskNum);
                        //异常排除任务时,异常上报
                        TaskResultIn(task.LJTaskNum.ToString(), task.NextAddress, 3,abnormalTask.ErrorContent);
                        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.LJTaskNum.ToString(), "", 2, "");
                        }
                        else if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                        {
                            TaskResultOut(task.LJTaskNum.ToString(), task.NextAddress, 2, "");
                            AutomaticTaskCompleted(task);   //任务完成
                            BaseDal.DeleteData(task);
                        }
                    }
                }
@@ -1263,7 +1305,7 @@
                    }
                    else if (item.type == "put")    //放货
                    {
/*                        if (item.status == 2)   //堆垛机执行中
/*                       if (item.status == 2)   //堆垛机执行中
                        {
                            Dt_Task dt_Task = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.Outbound && x.TaskState == (int)TaskOutStatusEnum.OutNewLj && x.Roadway == item.rgvTag);
                            if (dt_Task != null)
@@ -1366,7 +1408,7 @@
                            _task_HtyService.AddTaskHty(dt_Task);
                            BaseDal.DeleteData(dt_Task);
                            expoReverse.code = 0;
                            WriteLog.Write_Log("任务取消信息", "任务取消", "信息", $"任务号:{dt_Task.TaskNum},已取消");
                            WriteLog.Write_Log("兰剑调取任务取消信息", "任务取消", "信息", $"任务号:{dt_Task.TaskNum},已取消");
                        }
                        else
                        {
@@ -1441,11 +1483,13 @@
            StkRunStatusReturns LJReturns = HttpHelper.Post<StkRunStatusReturns>(urlLanJianWCSAPI + LanJiantaskResult, reception, "任务反馈接口");
            if (LJReturns.code == 0)
            {
                WriteLog.Write_Log("入库任务上传情况", "正常上传", "内容信息", $"任务编号:{taskNo},目标地址:{finalAddress},上传状态:{status},信息内容:{remark}");
                responseContent.OK("上传成功");
            }
            else
            {
                responseContent.OK("上传失败,原因:" + LJReturns.msg);
                WriteLog.Write_Log("入库任务上传情况", "上传失败", "内容信息", $"任务编号:{taskNo},目标地址:{finalAddress},上传状态:{status},信息内容:{remark}=====》上传失败,原因:{LJReturns.msg}");
                responseContent.Error("上传失败,原因:" + LJReturns.msg);
            }
            // åˆ›å»ºå¹¶èµ‹å€¼
            return responseContent;
@@ -1464,10 +1508,12 @@
            StkRunStatusReturns LJReturns = HttpHelper.Post<StkRunStatusReturns>(urlLanJianWCSAPI + LanJiantaskResult, reception, "任务反馈接口");
            if (LJReturns.code == 0)
            {
                WriteLog.Write_Log("出库任务上传情况", "正常上传", "内容信息", $"任务编号:{taskNo},目标地址:{finalAddress},上传状态:{status},信息内容:{remark}");
                responseContent.OK("上传成功");
            }
            else
            {
                WriteLog.Write_Log("出库任务上传情况", "上传失败", "内容信息", $"任务编号:{taskNo},目标地址:{finalAddress},上传状态:{status},信息内容:{remark}=====》上传失败,原因:{LJReturns.msg}");
                responseContent.OK("上传失败,原因:" + LJReturns.msg);
            }
            // åˆ›å»ºå¹¶èµ‹å€¼
@@ -1558,6 +1604,26 @@
                    return WebResponseContent.Instance.Error($"{Remark}失败!");
                }
                if (dt_task.NextAddress == "1001" || dt_task.NextAddress == "1002")
                {
                    //异常排除任务时,异常上报
                    TaskResultIn(dt_task.LJTaskNum.ToString(), dt_task.NextAddress, 3, "手动完成");
                }
                else
                {
                    if (dt_task.TaskType == (int)TaskInboundTypeEnum.Inbound && dt_task.NextAddress != "1001" && dt_task.NextAddress != "1002")
                    {
                        TaskResultIn(dt_task.LJTaskNum.ToString(), "", 2, "手动完成");
                    }
                    else if(dt_task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
                    {
                        TaskResultOut(dt_task.LJTaskNum.ToString(), dt_task.NextAddress, 2, "手动完成");
                    }
                }
                var deletetask = BaseDal.DeleteData(dt_task);
                if (deletetask == false)
                {
@@ -1626,11 +1692,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.LJTaskNum.ToString(), dt_task.NextAddress, 3, "任务取消");
                }
                else
                {
                    if (dt_task.TaskType == (int)TaskInboundTypeEnum.Inbound)
                    {
                        TaskResultIn(dt_task.LJTaskNum.ToString(), "", 3, "任务取消");
                    }
                    else
                    {
                        TaskResultOut(dt_task.LJTaskNum.ToString(), dt_task.NextAddress, 3, "任务取消");
                    }
                }
                bool deletetask = BaseDal.DeleteData(dt_task);
                if (!deletetask)
@@ -1709,6 +1790,58 @@
        }
        /// <summary>
        /// ä»»åŠ¡å¼‚å¸¸å®Œæˆï¼ˆå†™å…¥å¼‚å¸¸ä¿¡æ¯åŽï¼Œæ ‡è®°å¼‚å¸¸å®Œæˆï¼‰
        /// </summary>
        public WebResponseContent AbnormalComplete(AbnormalCompleteDTO completeDTO)
        {
            try
            {
                Dt_Task dt_task = BaseDal.QueryData().Where(x => x.TaskNum == completeDTO.taskNum).FirstOrDefault();
                if (dt_task == null) return WebResponseContent.Instance.Error($"未查询到任务");
                dt_task.NextAddress = completeDTO.station;
                dt_task.TargetAddress = completeDTO.station;
                //异常排除任务时,异常上报
                WebResponseContent webResponse = TaskResultIn(dt_task.LJTaskNum.ToString(), completeDTO.station, 3, completeDTO.message);
                if (webResponse.Status == false)
                {
                    return webResponse;
                }
                var db = BaseDal.Db as SqlSugarClient;
                db.Ado.BeginTran();
            BaseDal.DeleteData(dt_task);
                var res = _task_HtyService.AddData(new Dt_Task_hty
                {
                    TaskNum = dt_task.TaskNum,
                    PalletCode = dt_task.PalletCode,
                    Roadway = dt_task.Roadway,
                    TaskType = dt_task.TaskType,
                    TaskState = dt_task.TaskState,
                    SourceAddress = dt_task.SourceAddress,
                    TargetAddress = dt_task.TargetAddress,
                    CurrentAddress = dt_task.CurrentAddress,
                    NextAddress = dt_task.NextAddress,
                    WMSId = dt_task.WMSId,
                    Dispatchertime = dt_task.Dispatchertime,
                    Remark = "人工手动异常排出",
                    Creater = App.User.UserName,
                    CreateDate = DateTime.Now,
                    RGVTaskType = dt_task.RGVTaskType,
                    RGVCurrentexecution = dt_task.RGVCurrentexecution
                });
                //提交事务
                db.Ado.CommitTran();
                return WebResponseContent.Instance.OK("人工手动排出成功");
            }
            catch (Exception ex)
            {
                return WebResponseContent.Instance.Error(ex.ToString());
            }
        }
    }