From c2cdf0b95d4c9214646c860609b8c838d6ffa779 Mon Sep 17 00:00:00 2001 From: wangxinhui <wangxinhui@hnkhzn.com> Date: 星期五, 15 八月 2025 13:42:10 +0800 Subject: [PATCH] AGV,成品库代码更新上传 --- 项目代码/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs | 86 ++++++++++++++++++++++++++++-------------- 1 files changed, 57 insertions(+), 29 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" index 8728bfe..bd50d60 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs" @@ -16,6 +16,7 @@ using WIDESEA_Core; using WIDESEA_Core.Helper; using WIDESEA_DTO; +using WIDESEA_DTO.Basic; using WIDESEA_DTO.Task; using WIDESEA_Model.Models; @@ -198,6 +199,27 @@ List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && !x.RoadwayNo.Contains("SC01_YL")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? ""; } + return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("鏈壘鍒板彲鍒嗛厤宸烽亾"); + } + catch (Exception ex) + { + _unitOfWorkManage.RollbackTran(); + throw new Exception(ex.Message); + } + } + public string AssignCPRoadwayNo() + { + try + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == 2); + if (warehouse == null) + { + throw new Exception($"鏈壘鍒板贩閬撳搴斾粨搴撲俊鎭�"); + } + + string roadwayNo = ""; + List<LocationCount> locationCounts = Db.Queryable<Dt_LocationInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && x.RoadwayNo.Contains("CP")).GroupBy(x => x.RoadwayNo).Select(x => new LocationCount { RoadwayNo = x.RoadwayNo, Count = SqlFunc.AggregateCount(x) }).ToList(); + roadwayNo = locationCounts.OrderBy(x => x.Count).FirstOrDefault()?.RoadwayNo ?? ""; return !string.IsNullOrEmpty(roadwayNo) ? (roadwayNo) : throw new Exception("鏈壘鍒板彲鍒嗛厤宸烽亾"); } catch (Exception ex) @@ -429,46 +451,55 @@ WebResponseContent content = new WebResponseContent(); try { - string palletCode = @"^C\d{5}$"; // 姝e垯琛ㄨ揪寮� - bool isValid = Regex.IsMatch(barCode, palletCode); - if (!isValid) - { - return content.Error($"妗嗙爜鏍煎紡閿欒{barCode}"); - } - if (!OutStartPonits.Contains(startPoint)) + //string palletCode = @"^C\d{5}$"; // 姝e垯琛ㄨ揪寮� + //bool isValid = Regex.IsMatch(barCode, palletCode); + //if (!isValid) + //{ + // return content.Error($"妗嗙爜鏍煎紡閿欒{barCode}"); + //} + Dt_AGVStationInfo agvstation = _agvStationInfoRepository.QueryFirst(x=>x.AGVStationCode==startPoint); + if (agvstation==null) { return content.Error($"璧风偣閿欒{startPoint}"); } //鍒ゆ柇褰撳墠鐐逛綅鏄惁閲嶅 - Dt_Task taskOldPoint = BaseDal.QueryFirst(x => x.SourceAddress == startPoint && (x.TaskStatus == TaskStatusEnum.New.ObjToInt() || x.TaskStatus == TaskStatusEnum.Line_Execute.ObjToInt() || x.TaskStatus == TaskStatusEnum.Line_Executing.ObjToInt())); - //if (taskOldPoint != null) - //{ - // return content.Error($"绔欑偣{startPoint}宸插瓨鍦ㄤ换鍔�"); - //} + Dt_Task taskOldPoint = BaseDal.QueryFirst(x => x.SourceAddress == startPoint && x.TaskStatus == TaskStatusEnum.New.ObjToInt()); + if (taskOldPoint != null) + { + return content.Error($"绔欑偣{startPoint}宸插瓨鍦ㄤ换鍔�"); + } Dt_Task taskOld = BaseDal.QueryFirst(x => x.PalletCode == barCode); if (taskOld != null) { - return content.Error($"鑳舵{barCode}浠诲姟宸插瓨鍦�"); + return content.Error($"鎵樼洏{barCode}浠诲姟宸插瓨鍦�"); } - //if (_stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == barCode) != null) - //{ - // return content.Error($"鑳舵{barCode}搴撳瓨淇℃伅宸插瓨鍦�"); - //} - //todo:涓存椂瑙g粦 - Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == barCode); - if (_stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == barCode) != null) + Dt_ProStockInfo proStockInfoOld = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == barCode); + if (proStockInfoOld!=null) { - proStockInfo.PalletCode = proStockInfo.PalletCode + ":" + DateTime.Now.ToString("MM/dd"); + return content.Error($"鎵樼洏{barCode}宸插瓨鍦�"); } - //鑾峰彇鎴愬搧骞冲簱 - Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString()); + //鍒嗛厤宸烽亾 + string roadWay=AssignCPRoadwayNo(); + + //鑾峰彇鎴愬搧搴� + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.LLDCP.ToString()); + Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo() + { + PalletCode=barCode, + ProStockAttribute=ProStockAttributeEnum.绌烘墭.ObjToInt(), + PalletType=1, + LocationCode="", + WarehouseId=warehouse.WarehouseId, + StockStatus=StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt() + }; + Dt_Task newTask = new Dt_Task() { CurrentAddress = startPoint, Grade = 0, NextAddress = "", PalletCode = barCode, - Roadway = "CL01_CP", + Roadway = roadWay, SourceAddress = startPoint, TargetAddress = "", TaskType = TaskTypeEnum.EmptyProductBack.ObjToInt(), @@ -478,14 +509,11 @@ }; _unitOfWorkManage.BeginTran(); int taskId = BaseDal.AddData(newTask); - if (proStockInfo!=null) - { - _stockRepository.ProStockInfoRepository.UpdateData(proStockInfo); - } + _stockRepository.ProStockInfoRepository.AddData(proStockInfo); newTask.TaskId = taskId; _unitOfWorkManage.CommitTran(); //鎺ㄩ�佷换鍔� - PushTasksToWCS(new List<Dt_Task> { newTask }); + PushTasksToWCS(new List<Dt_Task> { newTask },"AGV"); content.OK("鍙戦�佹垚鍔�"); } catch (Exception ex) -- Gitblit v1.9.3