| | |
| | | using WIDESEA_Common.TaskEnum; |
| | | using WIDESEA_Common.StockEnum; |
| | | using WIDESEA_Common.LocationEnum; |
| | | using WIDESEA_Common.CommonEnum; |
| | | using WIDESEA_DTO.ToMes; |
| | | using System.Diagnostics; |
| | | using WIDESEA_Common.OtherEnum; |
| | | using WIDESEA_Core.Const; |
| | | |
| | | namespace WIDESEA_TaskInfoService |
| | | { |
| | |
| | | PushTasksToWCS(new List<Dt_Task> { task }); |
| | | return WebResponseContent.Instance.OK($"该æçå·²çæä»»å¡", _mapper.Map<WMSTaskDTO>(task)); |
| | | } |
| | | /* if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == OutTaskStatusEnum.New.ObjToInt()) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该ç«ç¹å·²ææªæ§è¡çä»»å¡"); |
| | | }*/ |
| | | |
| | | |
| | | //Dt_StockInfo stockInfo = _stockRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | |
| | | //if (stockInfo == null) |
| | | //{ |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); |
| | | //} |
| | | //var details = stockInfo.Details.FirstOrDefault(); |
| | | //if (!string.IsNullOrEmpty(stockInfo.LocationCode)) |
| | | //{ |
| | | // return WebResponseContent.Instance.Error($"该æçå·²ç»å®è´§ä½"); |
| | | //} |
| | | Dt_RoadwayInfo roadwayInfo = _roadwayInforepository.QueryFirst(x => x.InStationCode == stationCode); |
| | | if (roadwayInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°åå
¥åºç«å°å°å"); |
| | | } |
| | | Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo); |
| | | if (warehouse == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("æªæ¾å°è¯¥ä»åº"); |
| | | } |
| | | Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, warehouse.WarehouseId, "");// |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | var dt_Stock = new Dt_StockInfo |
| | | { |
| | | PalletCode = palletCode, |
| | | PalletType = 1, |
| | | LocationCode = locationInfo.LocationCode, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | }; |
| | | Dt_Task newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = stationCode, |
| | |
| | | OrderNo = "1", |
| | | Roadway = "1", |
| | | SourceAddress = "", |
| | | TargetAddress = "2-20-1", |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | WarehouseId = 1, |
| | | TargetAddress = locationInfo.LocationCode, |
| | | TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(), |
| | | WarehouseId = warehouse.WarehouseId, |
| | | //PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode) |
| | | Creater = "WCS", |
| | | CreateDate = DateTime.Now |
| | | CreateDate = DateTime.Now, |
| | | Depth = locationInfo.Depth, |
| | | }; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); |
| | | int taskId = BaseDal.AddData(newTask); |
| | | newTask.TaskId = taskId; |
| | | _stockRepository.AddData(dt_Stock); |
| | | //_stockRepository.UpdateData(stockInfo); |
| | | //_locationInfoRepository.UpdateData(locationInfo); |
| | | _locationInfoRepository.UpdateData(locationInfo); |
| | | _unitOfWorkManage.CommitTran(); |
| | | WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask); |
| | | |
| | | //PushTasksToWCS(new List<Dt_Task> { newTask }); |
| | | PushTasksToWCS(new List<Dt_Task> { newTask }); |
| | | return WebResponseContent.Instance.OK(data: wMSTaskDTO); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// å建å
¥åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="inboundTask"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public ApiResponse<object> sendEnTask(InOutboundTaskReceived inboundTask) |
| | | { |
| | | WebResponseContent webResponseContent = new WebResponseContent(); |
| | | |
| | | try |
| | | { |
| | | List<Dt_Task> AddtaskList = new List<Dt_Task>(); |
| | | List<Dt_LocationInfo> Adddt_Locations = new List<Dt_LocationInfo>(); |
| | | List<Dt_StockInfo> Adddtstockt = new List<Dt_StockInfo>(); |
| | | |
| | | if (inboundTask.palletInfoList.Count > 0) |
| | | { |
| | | List<Dt_Task> taskData = BaseDal.QueryData(); |
| | | List<Dt_StockInfo> Stockdata = _stockRepository.QueryData(); |
| | | |
| | | /*Dt_StationManger dt_Station = _stationMangerService.QueryPlatform(inboundTask.NodeCode); |
| | | if (dt_Station == null) return MESresponse($"æªæ¾å°ç«å°ä¿¡æ¯,ç«å°ç¼å·ï¼{inboundTask.NodeCode}", false);*/ |
| | | |
| | | foreach (PalletInfo palletInfo in inboundTask.palletInfoList) |
| | | { |
| | | Dt_LocationInfo location = null; |
| | | if (palletInfo.locationCode == null || palletInfo.locationCode == "") |
| | | { |
| | | location = _basicService.LocationInfoService.GetLocationInfo();//è·åå°æ°åºä½ |
| | | } |
| | | else |
| | | { |
| | | location = _locationInfoRepository.QueryFirst(x => x.LocationCode == palletInfo.locationCode); |
| | | } |
| | | if (location == null) return MESresponse($"æªæ¾å°è´§ä½ä¿¡æ¯,æ¡ç ï¼{palletInfo.palletCode}", false); |
| | | if (location.LocationStatus != (int)LocationStatusEnum.Free) return MESresponse($"æçæ¡ç ï¼{palletInfo.palletCode}ï¼æ¥æ¾å°çè´§ä½ï¼{location.LocationCode},ä¸ä¸ºç©ºè´§ä½ï¼", false); |
| | | |
| | | Dt_StockInfo dt_ = Stockdata.Where(x => x.PalletCode == palletInfo.palletCode).FirstOrDefault(); |
| | | if (dt_ == null) |
| | | { |
| | | //å建ç»çä¿¡æ¯ |
| | | var dt_Stock = new Dt_StockInfo |
| | | { |
| | | PalletCode = palletInfo.palletCode, |
| | | PalletType = 1, |
| | | LocationCode = location.LocationCode, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MESsubPalletCode = palletInfo.palletCode, |
| | | }; |
| | | Adddtstockt.Add(dt_Stock); |
| | | } |
| | | else |
| | | { |
| | | if(dt_.StockStatus == (int)StockStatusEmun.å·²å
¥åº) |
| | | { |
| | | return MESresponse($"该åºåæ¡ç å·²å
¥åºï¼ä¸å¯éå¤å
¥åº,æ¡ç ï¼{palletInfo.palletCode}", false); |
| | | } |
| | | } |
| | | |
| | | string TaregtAddres = ""; |
| | | if (inboundTask.NodeCode !="2011" && inboundTask.NodeCode != "2009") |
| | | { |
| | | int nextTaregt = int.Parse(inboundTask.NodeCode); |
| | | //ç¡®è®¤ç®æ ç«å°ï¼åºå®ï¼ |
| | | TaregtAddres = (nextTaregt + 1).ToString(); |
| | | } |
| | | else |
| | | { |
| | | TaregtAddres = location.RoadwayNo == "SC01" ? "2021" : "2020"; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | location.LocationStatus = (int)LocationStatusEnum.InStockLock; |
| | | |
| | | //çæç§»å¨ä»»å¡ |
| | | Dt_Task dt_Task = new() |
| | | { |
| | | PalletCode = palletInfo.palletCode, |
| | | TaskNum = GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | Roadway = location.RoadwayNo, |
| | | TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(), |
| | | SourceAddress = TaregtAddres, |
| | | TargetAddress = location.LocationCode, |
| | | CurrentAddress = TaregtAddres, |
| | | NextAddress = location.LocationCode, |
| | | Grade = 1, |
| | | Creater = "MES", |
| | | Depth = location.Depth, |
| | | CreateDate = DateTime.Now, |
| | | MEStaskId = inboundTask.TaskId, |
| | | MESbusinessId = inboundTask.BusinessId, |
| | | MESsubPalletCode = palletInfo.subPalletCode, |
| | | OutboundPlatform = inboundTask.NodeCode |
| | | }; |
| | | |
| | | Adddt_Locations.Add(location); |
| | | AddtaskList.Add(dt_Task); |
| | | } |
| | | if (Adddtstockt.Count > 0 && Adddt_Locations.Count > 0 && AddtaskList.Count > 0) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | |
| | | _stockRepository.AddData(Adddtstockt); |
| | | _locationInfoRepository.UpdateData(Adddt_Locations); |
| | | BaseDal.AddData(AddtaskList); |
| | | |
| | | var respon = PushTasksToWCS(AddtaskList, ""); |
| | | if (respon.Status) |
| | | { |
| | | _unitOfWorkManage.CommitTran(); //æäº¤äºå¡ |
| | | return MESresponse("", true); |
| | | } |
| | | else |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); //åæ»äºå¡ |
| | | return MESresponse($"ä¸ååºåºå¤±è´¥ï¼åå ï¼{respon.Message}ï¼", false); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | return MESresponse("ä»»å¡çæå¤±è´¥ï¼", false); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | return MESresponse("æ¥æ¶å°MESæçç¼ç åè¡¨æ æ°æ®ï¼", false); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); //åæ»äºå¡ |
| | | return MESresponse($"ä¸ååºåºå¤±è´¥ï¼åå ï¼{ex.Message}ï¼", false); |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |