wangxinhui
2025-09-26 9ae0890dd74771ba9edd44d4830e0de37f8d9938
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs
@@ -45,11 +45,19 @@
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (autoIssueDTO == null)
                {
                    return content.Error("传入信息不能为空");
                }
                //获取对应单据
                Dt_OutMESOrder? outMESOrder = _outMESOrderRepository.QueryFirst(x=>x.OutDetailId==autoIssueDTO.OutDetailId);
                if (outMESOrder==null)
                {
                    return content.Error($"领料计划{nameof(MESAutoIssueDTO.OutDetailId)}{autoIssueDTO.OutDetailId}不存在");
                }
                if (outMESOrder.OutMESOrderStatus==OutOrderStatusEnum.关闭.ObjToInt())
                {
                    return content.Error($"领料计划{nameof(MESAutoIssueDTO.OutDetailId)}{outMESOrder.ProductOrderNo}工单已关闭");
                }
                //获取周转位置编号
                Dt_AGVStationInfo? stationInfo = _agvStationInfoRepository.QueryFirst(x=>x.MESPointCode==autoIssueDTO.PointCode);
@@ -61,15 +69,15 @@
                {
                    return content.Error($"领料计划周转位{nameof(MESAutoIssueDTO.PointCode)}{autoIssueDTO.PointCode}存在空托");
                }
                Dt_Task? task = BaseDal.QueryData(x => x.OrderNo == outMESOrder.OutMESOrderNo && x.TaskStatus==TaskStatusEnum.CallPending.ObjToInt()).OrderByDescending(x=>x.Grade).ThenBy(x=>x.TaskNum).FirstOrDefault();
                //获取任务
                if (task==null)
                {
                    return content.Error($"未找到领料计划编号{outMESOrder.ProductOrderNo}可配送任务");
                }
                task.TaskStatus = TaskStatusEnum.New.ObjToInt();
                task.TargetAddress= stationInfo.AGVStationCode;
                PushTasksToWCS(new List<Dt_Task> { task });
                //Dt_Task? task = BaseDal.QueryData(x => x.OrderNo == outMESOrder.OutMESOrderNo && x.TaskStatus==TaskStatusEnum.CallPending.ObjToInt()).OrderByDescending(x=>x.Grade).ThenBy(x=>x.TaskNum).FirstOrDefault();
                ////获取任务
                //if (task==null)
                //{
                //    return content.Error($"未找到领料计划编号{outMESOrder.ProductOrderNo}可配送任务");
                //}
                //task.TaskStatus = TaskStatusEnum.New.ObjToInt();
                //task.TargetAddress= stationInfo.AGVStationCode;
                //PushTasksToWCS(new List<Dt_Task> { task });
                return content.OK("叫料成功");
            }
            catch (Exception ex)
@@ -78,5 +86,74 @@
            }
            return content;
        }
        public WebResponseContent ReceiveManualIssue(MESManualIssueDTO manualIssueDTO)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (manualIssueDTO == null)
                {
                    return content.Error("传入信息不能为空");
                }
                //获取对应单据
                Dt_OutMESOrder? outMESOrder = _outMESOrderRepository.QueryFirst(x => x.OutDetailId == manualIssueDTO.OutDetailId);
                if (outMESOrder == null)
                {
                    return content.Error($"领料计划{nameof(MESAutoIssueDTO.OutDetailId)}{manualIssueDTO.OutDetailId}不存在");
                }
                if (outMESOrder.OutMESOrderStatus == OutOrderStatusEnum.关闭.ObjToInt())
                {
                    return content.Error($"领料计划{nameof(MESAutoIssueDTO.OutDetailId)}{outMESOrder.ProductOrderNo}工单已关闭");
                }
                //获取周转位置编号
                Dt_AGVStationInfo? stationInfo = _agvStationInfoRepository.QueryFirst(x => x.MESPointCode == manualIssueDTO.PointCode);
                if (stationInfo == null)
                {
                    return content.Error($"领料计划周转位{nameof(MESAutoIssueDTO.PointCode)}{manualIssueDTO.PointCode}不存在");
                }
                //Dt_Task? task = BaseDal.QueryData(x => x.OrderNo == outMESOrder.OutMESOrderNo && x.TaskStatus == TaskStatusEnum.CallPending.ObjToInt()).OrderByDescending(x => x.Grade).ThenBy(x => x.TaskNum).FirstOrDefault();
                ////获取任务
                //if (task == null)
                //{
                //    return content.Error($"未找到领料计划编号{outMESOrder.ProductOrderNo}可配送任务");
                //}
                //task.TaskStatus = TaskStatusEnum.New.ObjToInt();
                //task.TargetAddress = stationInfo.AGVStationCode;
                //PushTasksToWCS(new List<Dt_Task> { task });
                return content.OK("叫料成功");
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
        public WebResponseContent ReceiveReturnIssue(List<MESReturnIssueDTO> returnIssueDTOs)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                if (returnIssueDTOs==null || returnIssueDTOs.Count<=0)
                {
                    return content.Error("传入信息不能为空");
                }
                //获取所有AGV点位
                List<Dt_AGVStationInfo> aGVStationInfos= _agvStationInfoRepository.QueryData(x => !string.IsNullOrEmpty(x.MESPointCode));
                MESReturnIssueDTO? returnIssueDTO = returnIssueDTOs.FirstOrDefault(x=> !aGVStationInfos.Select(x=>x.MESPointCode).Contains(x.PointCode));
                if (returnIssueDTO != null)
                {
                    return content.Error($"周转位{nameof(MESReturnIssueDTO.PointCode)}{returnIssueDTO.PointCode}不存在");
                }
                content.OK("呼叫成功");
            }
            catch (Exception ex)
            {
                content.Error(ex.Message);
            }
            return content;
        }
    }
}