dengjunjie
5 天以前 4f39dcc195f28fa275fc2d065fbf1bf6a46c21b7
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -184,11 +184,11 @@
        /// <returns></returns>
        public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null)
        {
            if(taskTypeGroup == null)
            if (taskTypeGroup == null)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
            if(taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
            if (taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy);
            if(taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
            if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskStatus == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
            return null;
        }
@@ -201,7 +201,7 @@
        /// <returns>返回任务实体对象,可能为null</returns>
        public Dt_Task? QueryStackerCraneTask(string deviceNo, string currentAddress = "")
        {
            return BaseDal.QueryFirst(x => true, TaskOrderBy);
            return BaseDal.QueryFirst(x => x.TaskStatus == (int)InTaskStatusEnum.InNew || x.TaskStatus == (int)OutTaskStatusEnum.OutNew || x.TaskStatus == (int)RelocationTaskStatusEnum.RelocationNew, TaskOrderBy);
        }
        /// <summary>
@@ -212,7 +212,7 @@
        /// <returns>返回任务实体对象,可能为null</returns>
        public Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "")
        {
            Dt_Task taskGrade = BaseDal.QueryFirst(x =>true, TaskOrderBy);
            Dt_Task taskGrade = BaseDal.QueryFirst(x => true, TaskOrderBy);
            if (taskGrade != null)
            {
                return taskGrade;
@@ -390,7 +390,7 @@
            try
            {
                int oldState = task.TaskStatus;
                if (task.TaskType == (int)TaskTypeEnum.Outbound|| task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                {
                    task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
                }
@@ -419,7 +419,7 @@
                var response = HttpHelpers.Post<WebResponseContent>(url + "UpdateTaskStatus?taskNum=" + task.TaskNum, "", "更新任务状态");
                if (!response.Status)
                {
                    _unitOfWorkManage.RollbackTran();
                    throw new Exception(response.Message);
                }
                _unitOfWorkManage.CommitTran();
                _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工手动将任务状态从【{oldState}】跳转到【{task.TaskStatus}】" : $"系统自动流程,任务状态从【{oldState}】转到【{task.TaskStatus}】");
@@ -473,7 +473,7 @@
        /// </summary>
        /// <param name="taskNum">任务编号</param>
        /// <returns>返回处理结果</returns>
        public WebResponseContent StackCraneTaskCompleted(int taskNum)
        public WebResponseContent StackCraneTaskCompleted(int taskNum, string Modifier = "")
        {
            WebResponseContent content = new WebResponseContent();
            try
@@ -482,80 +482,51 @@
                if (task == null) return WebResponseContent.Instance.Error($"未找到该任务信息,任务号:【{taskNum}】");
                task.ModifyDate = DateTime.Now;
                task.Modifier = "WMS";
                if (App.User.UserId > 0) Modifier = App.User.UserName;
                task.Modifier = Modifier.IsNullOrEmpty() ? "WMS" : Modifier;
                if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)OutTaskStatusEnum.OutFinish;
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机出库完成");
                    if(App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (response.Status)
                        {
                            _unitOfWorkManage.CommitTran();
                            return content.OK();
                        }
                        else
                        {
                            _unitOfWorkManage.RollbackTran();
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    if (!Modifier.IsNullOrEmpty())
                    {
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (!response.Status) throw new Exception(response.Message);
                    }
                    return content.OK();
                }
                else if (task.TaskType == (int)TaskTypeEnum.Inbound  || task.TaskType == (int)TaskTypeEnum.PalletInbound)
                else if (task.TaskType == (int)TaskTypeEnum.Inbound || task.TaskType == (int)TaskTypeEnum.PalletInbound)
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)InTaskStatusEnum.InFinish;
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机入库完成");
                    if (App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (response.Status)
                        {
                            _unitOfWorkManage.CommitTran();
                            return content.OK();
                        }
                        else
                        {
                            _unitOfWorkManage.RollbackTran();
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    if (!Modifier.IsNullOrEmpty())
                    {
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (!response.Status) throw new Exception(response.Message);
                    }
                    return content.OK();
                }
                else if (task.TaskType== (int)TaskTypeEnum.Relocation)
                else if (task.TaskType == (int)TaskTypeEnum.Relocation)
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationFinish;
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机移库完成");
                    if (App.User.UserId > 0)
                    {
                        task.Modifier = "System";
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (response.Status)
                        {
                            _unitOfWorkManage.CommitTran();
                            return content.OK();
                        }
                        else
                        {
                            _unitOfWorkManage.RollbackTran();
                            return content = WebResponseContent.Instance.Error(response.Message);
                        }
                    }
                    BaseDal.DeleteData(task);
                    _task_HtyService.AddTaskHty(task);
                    _unitOfWorkManage.CommitTran();
                    if (!Modifier.IsNullOrEmpty())
                    {
                        var response = HttpHelpers.Post<WebResponseContent>(url + "TaskCompleted?taskNum=" + task.TaskNum, "", "任务完成");
                        if (!response.Status) throw new Exception(response.Message);
                    }
                    return content.OK();
                }
                else
@@ -565,12 +536,12 @@
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                content = WebResponseContent.Instance.Error($"任务完成异常,任务号:【{taskNum}】,异常信息:{ex.Message}");
                //_unitOfWorkManage.RollbackTran();
                content = WebResponseContent.Instance.OK($"任务完成异常,任务号:【{taskNum}】,异常信息:{ex.Message}");
            }
            finally
            {
                WriteLog.GetLog("完成任务").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "")}{Environment.NewLine}任务号:{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "完成任务");
                WriteLog.GetLog("完成任务").Write($"操作人:{(App.User.UserId > 0 ? App.User.UserName : "堆垛机")}{Environment.NewLine}任务号:{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "完成任务");
            }
            return content;
        }
@@ -585,7 +556,7 @@
                task.ModifyDate = DateTime.Now;
                task.Modifier = "WMS";
                if (task.TaskType == (int)TaskTypeEnum.Outbound  || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                if (task.TaskType == (int)TaskTypeEnum.Outbound || task.TaskType == (int)TaskTypeEnum.PalletOutbound)
                {
                    _unitOfWorkManage.BeginTran();
                    task.TaskStatus = (int)OutTaskStatusEnum.OutCancel;