| | |
| | | public string MESbusinessId { get; set; } |
| | | public string MESsubPalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºå£ |
| | | /// </summary> |
| | | public string OutboundPlatform { get; set; } |
| | | |
| | | } |
| | | } |
| | |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Dt_Task GetOutTaskInfo(string PLCaddress); |
| | | |
| | | /// <summary> |
| | | /// 2楼åºåºå£ç³è¯·åæ¶ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Dt_Task GetOutTaskInfo2(string PalletCode); |
| | | } |
| | | } |
| | |
| | | [ExporterHeader(DisplayName = "æçç¼å·åæ")] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "æçç¼å·åæ")] |
| | | public string MESsubPalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºå£ |
| | | /// </summary> |
| | | public string OutboundPlatform { get; set; } |
| | | } |
| | | } |
| | |
| | | task.ModifyDate = DateTime.Now; |
| | | BaseDal.UpdateData(task); |
| | | content = HttpHelperh.Get<WebResponseContent>($"{urlTaskCompleted}?TaskNum={task.TaskNum}"); |
| | | Console.WriteLine("ä»»å¡å®æ"); |
| | | Console.WriteLine("ä»»å¡å®æï¼wmsåé¦ä¿¡æ¯ï¼"+content.Message); |
| | | //BaseDal.DeleteData(task); |
| | | // _task_HtyService.AddTaskHty(task); éè¦æ·»å ç§»å
¥åå² |
| | | //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"åºåºå®æ"); |
| | |
| | | { |
| | | return BaseDal.QueryFirst(x => x.TargetAddress== PLCaddress && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish, TaskOrderBy); |
| | | } |
| | | |
| | | public Dt_Task GetOutTaskInfo2(string PalletCode) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.PalletCode == PalletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting, TaskOrderBy); |
| | | } |
| | | } |
| | | } |
| | |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Threading.Tasks; |
| | | using WIDESEA_Comm.Http; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.Helper; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | |
| | | // åºåº |
| | | if (conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && !ACK)//åºåº |
| | | { |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode))//éè´å
¥åº |
| | | if (!string.IsNullOrEmpty(conveyorLineInfoRead.Barcode)) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.EndPos, 2011, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, 1111, item.StationCode); |
| | | |
| | | Dt_Task dt_Ta = _taskService.GetOutTaskInfo2(conveyorLineInfoRead.Barcode); |
| | | if (dt_Ta != null) |
| | | { |
| | | device.SetValue(W_ConveyorLineDB.ACK, true, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.EndPos, dt_Ta.OutboundPlatform, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | |
| | | //å é¤ä»»å¡ |
| | | _taskRepository.DeleteData(dt_Ta); |
| | | } |
| | | } |
| | | } |
| | | else if (!conveyorLineSignalRead.STB && !conveyorLineSignalRead.ACK && conveyorLineStatus.Online && conveyorLineStatus.Goods && !conveyorLineStatus.Alarm && !STB && ACK) |
| | |
| | | if (dt_Ta != null) |
| | | { |
| | | Dt_Router dt_Router = _routerRepository.QueryFirst(x => x.StartPosi == dt_Ta.TargetAddress); |
| | | //å åæºä»»å¡å®æä¸ä¸å°åæ¹æè¾é线ä¸ä¸å°åï¼è®¾å¤ç¼å·æ¹æè¾é线 |
| | | _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum); |
| | | |
| | | device.SetValue(W_ConveyorLineDB.TaskNo, dt_Ta.TaskNum, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.EndPos, dt_Router.NextPosi, item.StationCode); |
| | | device.SetValue(W_ConveyorLineDB.STB, true, item.StationCode); |
| | | //å é¤ä»»å¡ |
| | | _taskRepository.DeleteData(dt_Ta); |
| | | //å åæºä»»å¡å®æä¸ä¸å°åæ¹æè¾é线ä¸ä¸å°åï¼è®¾å¤ç¼å·æ¹æè¾é线 |
| | | _taskService.UpdateTaskStatusToNext(dt_Ta.TaskNum); |
| | | |
| | | if (dt_Ta.TargetAddress !="2021" && dt_Ta.TargetAddress != "2020") |
| | | { |
| | | //å é¤ä»»å¡ |
| | | _taskRepository.DeleteData(dt_Ta); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// åºä½åé
,æ å··éå·è¿è¡åé
å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public Dt_LocationInfo? GetLocationInfo() |
| | | { |
| | | lock (_locker) |
| | | { |
| | | List<LocationCache> removeItems = locationCaches.Where(x => (DateTime.Now - x.DateTime).TotalMinutes > 20).ToList();//æ¥è¯¢æ·»å éæåéè¶
è¿5åéçè´§ä½ |
| | | int count = removeItems.Count; |
| | | for (int i = 0; i < count; i++) |
| | | { |
| | | locationCaches.Remove(removeItems[i]);//ç§»é¤æ¥è¯¢æ·»å éæåéè¶
è¿5åéçè´§ä½ |
| | | } |
| | | |
| | | List<string> lockLocations = locationCaches.Select(x => x.LocationCode).ToList(); |
| | | |
| | | List<Dt_LocationInfo> locationInfos = BaseDal.QueryData();//æ¥è¯¢å··éææè´§ä½ä¿¡æ¯ |
| | | List<Dt_LocationInfo> emptyLocations = locationInfos.Where(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && !lockLocations.Contains(x.LocationCode)).OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenByDescending(x => x.Depth).ThenBy(x => x.Row).ToList();//æ¥è¯¢ç©ºè´§ä½ä¿¡æ¯å¹¶æé¤5åéå
åé
çè´§ä½,æ ¹æ®å±ãåãæ·±åº¦ãè¡æåº |
| | | |
| | | |
| | | for (int i = 0; i < emptyLocations.Count; i++) |
| | | { |
| | | if (emptyLocations[i].Depth == 1)//夿æ¯å¦1æ·±è´§ä½ |
| | | { |
| | | Dt_LocationInfo? sencondDepthLocation = locationInfos.FirstOrDefault(x => Math.Abs(x.Row - emptyLocations[i].Row) == 1 && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);//æ¥è¯¢2深货ä½å¯¹åºç1æ·±è´§ä½æ¯å¦ä¸ºç©º,鲿¢åºç°åé
1深货ä½è2深货ä½ä¸ºç©ºçæ
åµ |
| | | if (sencondDepthLocation != null && sencondDepthLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = sencondDepthLocation.LocationCode }); |
| | | return sencondDepthLocation;//1深货ä½å2深货ä½é½ä¸ºç©ºçæ
åµä¸,ä¼å
åé
2æ·±è´§ä½ |
| | | } |
| | | else |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode }); |
| | | return emptyLocations[i]; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Dt_LocationInfo? sencondDepthLocation = locationInfos.FirstOrDefault(x => Math.Abs(x.Row - emptyLocations[i].Row) == 1 && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);//æ¥è¯¢2深货ä½å¯¹åºç1æ·±è´§ä½æ¯å¦ä¸ºç©º |
| | | if (sencondDepthLocation != null && sencondDepthLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode }); |
| | | return emptyLocations[i]; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 夿巷éå
ç§»åº,è·åè´§ä½ |
| | | /// </summary> |
| | | /// <param name="roadway"></param> |
| | | /// <returns></returns> |
| | | public Dt_LocationInfo? GetLocation(string roadway) |
| | | { |
| | | lock (_locker) |
| | | { |
| | | List<LocationCache> removeItems = locationCaches.Where(x => (DateTime.Now - x.DateTime).TotalMinutes > 20).ToList();//æ¥è¯¢æ·»å éæåéè¶
è¿20åéçè´§ä½ |
| | | int count = removeItems.Count; |
| | | for (int i = 0; i < count; i++) |
| | | { |
| | | locationCaches.Remove(removeItems[i]);//ç§»é¤æ¥è¯¢æ·»å éæåéè¶
è¿5åéçè´§ä½ |
| | | } |
| | | |
| | | List<string> lockLocations = locationCaches.Select(x => x.LocationCode).ToList(); |
| | | |
| | | List<Dt_LocationInfo> locationInfos = BaseDal.QueryData(x => x.RoadwayNo == roadway && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && !lockLocations.Contains(x.LocationCode));//æ¥è¯¢å··éææè´§ä½ä¿¡æ¯ |
| | | |
| | | |
| | | List<Dt_LocationInfo> emptyLocations = locationInfos.Where(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && !lockLocations.Contains(x.LocationCode)).OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenByDescending(x => x.Depth).ThenBy(x => x.Row).ToList();//æ¥è¯¢ç©ºè´§ä½ä¿¡æ¯å¹¶æé¤20åéå
åé
çè´§ä½,æ ¹æ®å±ãåãæ·±åº¦ãè¡æåº |
| | | |
| | | |
| | | for (int i = 0; i < emptyLocations.Count; i++) |
| | | { |
| | | if (emptyLocations[i].Depth == 1)//夿æ¯å¦1æ·±è´§ä½ |
| | | { |
| | | Dt_LocationInfo? sencondDepthLocation = locationInfos.FirstOrDefault(x => Math.Abs(x.Row - emptyLocations[i].Row) == 1 && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);//æ¥è¯¢2深货ä½å¯¹åºç1æ·±è´§ä½æ¯å¦ä¸ºç©º,鲿¢åºç°åé
1深货ä½è2深货ä½ä¸ºç©ºçæ
åµ |
| | | if (sencondDepthLocation != null && sencondDepthLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = sencondDepthLocation.LocationCode }); |
| | | return sencondDepthLocation;//1深货ä½å2深货ä½é½ä¸ºç©ºçæ
åµä¸,ä¼å
åé
2æ·±è´§ä½ |
| | | } |
| | | else |
| | | { |
| | | if (sencondDepthLocation != null && sencondDepthLocation.LocationStatus != LocationStatusEnum.Lock.ObjToInt()) //å¤æäºæ·±æ ä»»å¡ |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode }); |
| | | return emptyLocations[i]; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | Dt_LocationInfo? sencondDepthLocation = locationInfos.FirstOrDefault(x => Math.Abs(x.Row - emptyLocations[i].Row) == 1 && x.Layer == emptyLocations[i].Layer && x.Column == emptyLocations[i].Column);//æ¥è¯¢2深货ä½å¯¹åºç1æ·±è´§ä½æ¯å¦ä¸ºç©º |
| | | |
| | | if (sencondDepthLocation != null && sencondDepthLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | | locationCaches.Add(new LocationCache { DateTime = DateTime.Now, LocationCode = emptyLocations[i].LocationCode }); |
| | | return emptyLocations[i]; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// è·åå¯ç¨è´§ä½ |
| | | /// </summary> |
| | |
| | | public string MESbusinessId { get; set; } |
| | | public string MESsubPalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºå
¥åºå£ |
| | | /// </summary> |
| | | public string OutboundPlatform { get; set; } |
| | | |
| | | } |
| | | } |
| | |
| | | /// <param name="heightType"></param> |
| | | /// <returns></returns> |
| | | Dt_LocationInfo? AssignLocation(string roadwayNo,int warehouseId, string beRelocationCode = ""); |
| | | |
| | | /// <summary> |
| | | /// åºä½åé
,æ å··éå·è¿è¡åé
å |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | Dt_LocationInfo? GetLocationInfo(); |
| | | |
| | | /// <summary> |
| | | /// 夿巷éå
ç§»åº,è·åè´§ä½ |
| | | /// </summary> |
| | | /// <param name="roadway"></param> |
| | | /// <returns></returns> |
| | | Dt_LocationInfo? GetLocation(string roadway); |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | [ExporterHeader(DisplayName = "MESä¸å¡æµid")] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "MESä¸å¡æµid")] |
| | | public string MESbusinessId { get; set; } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æçç¼å·åæ |
| | | /// </summary> |
| | |
| | | [ExporterHeader(DisplayName = "æçç¼å·åæ")] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "æçç¼å·åæ")] |
| | | public string MESsubPalletCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// åºåºå£ |
| | | /// </summary> |
| | | [ImporterHeader(Name = "åºåºå£")] |
| | | [ExporterHeader(DisplayName = "åºåºå£")] |
| | | [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "åºåºå£")] |
| | | public string OutboundPlatform { get; set; } |
| | | } |
| | | } |
| | |
| | | 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); |
| | | /*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 == "") |
| | | { |
| | | Dt_Warehouse warehouse = _warehouseRepository.QueryFirst(x => x.WarehouseCode == dt_Station.StackerCraneCode); |
| | | |
| | | location = _basicService.LocationInfoService.AssignLocation(dt_Station.StackerCraneCode, warehouse.WarehouseId, "");//è·åå°æ°åºä½ |
| | | location = _basicService.LocationInfoService.GetLocationInfo();//è·åå°æ°åºä½ |
| | | } |
| | | else |
| | | { |
| | |
| | | if (location == null) return MESresponse($"æªæ¾å°è´§ä½ä¿¡æ¯,æ¡ç ï¼{palletInfo.palletCode}", false); |
| | | if (location.LocationStatus != (int)LocationStatusEnum.Free) return MESresponse($"æçæ¡ç ï¼{palletInfo.palletCode}ï¼æ¥æ¾å°çè´§ä½ï¼{location.LocationCode},ä¸ä¸ºç©ºè´§ä½ï¼", false); |
| | | |
| | | |
| | | //å建ç»çä¿¡æ¯ |
| | | var dt_Stock = new Dt_StockInfo |
| | | Dt_StockInfo dt_ = Stockdata.Where(x => x.PalletCode == palletInfo.palletCode).FirstOrDefault(); |
| | | if (dt_ == null) |
| | | { |
| | | PalletCode = palletInfo.palletCode, |
| | | PalletType = 1, |
| | | LocationCode = location.LocationCode, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MESsubPalletCode = palletInfo.palletCode, |
| | | }; |
| | | //å建ç»çä¿¡æ¯ |
| | | 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; |
| | | |
| | | //çæç§»å¨ä»»å¡ |
| | |
| | | Roadway = location.RoadwayNo, |
| | | TaskType = TaskInboundTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskInStatusEnum.Line_InExecuting.ObjToInt(), |
| | | SourceAddress = dt_Station.StationCode, |
| | | SourceAddress = TaregtAddres, |
| | | TargetAddress = location.LocationCode, |
| | | CurrentAddress = dt_Station.StationCode, |
| | | CurrentAddress = TaregtAddres, |
| | | NextAddress = location.LocationCode, |
| | | Grade = 1, |
| | | Creater = "MES", |
| | |
| | | CreateDate = DateTime.Now, |
| | | MEStaskId = inboundTask.TaskId, |
| | | MESbusinessId = inboundTask.BusinessId, |
| | | MESsubPalletCode = palletInfo.subPalletCode |
| | | MESsubPalletCode = palletInfo.subPalletCode, |
| | | OutboundPlatform = inboundTask.NodeCode |
| | | }; |
| | | Adddtstockt.Add(dt_Stock); |
| | | |
| | | Adddt_Locations.Add(location); |
| | | AddtaskList.Add(dt_Task); |
| | | } |
| | |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | dt_StockInfo.StockStatus = (int)StockStatusEmun.åºåºéå®; |
| | | locationInfo.LocationStatus = (int)LocationStatusEnum.InStockLock; |
| | | |
| | | |
| | | |
| | | string TaregtAddres = ""; |
| | | if (outbound.NodeCode != "2011" && outbound.NodeCode != "2009") |
| | | { |
| | | int nextTaregt = int.Parse(outbound.NodeCode); |
| | | //ç¡®è®¤ç®æ ç«å°ï¼åºå®ï¼ |
| | | TaregtAddres = (nextTaregt - 1).ToString(); |
| | | } |
| | | else |
| | | { |
| | | TaregtAddres = locationInfo.RoadwayNo == "SC01" ? "2021" : "2020"; |
| | | } |
| | | |
| | | //çæç§»å¨ä»»å¡ |
| | | Dt_Task dt_Task = new() |
| | | { |
| | |
| | | Creater = "MES", |
| | | Depth = locationInfo.Depth, |
| | | CreateDate = DateTime.Now, |
| | | MEStaskId= outbound.TaskId, |
| | | MESbusinessId= outbound.BusinessId, |
| | | MESsubPalletCode= dt_StockInfo.MESsubPalletCode |
| | | MEStaskId = outbound.TaskId, |
| | | MESbusinessId = outbound.BusinessId, |
| | | MESsubPalletCode = dt_StockInfo.MESsubPalletCode, |
| | | OutboundPlatform = outbound.NodeCode |
| | | }; |
| | | Adddtstockt.Add(dt_StockInfo); |
| | | Addlocations.Add(locationInfo); |
| | |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | |
| | | _stockRepository.DeleteData(Adddtstockt); |
| | | _stockRepository.UpdateData(Adddtstockt); |
| | | _locationInfoRepository.UpdateData(Addlocations); |
| | | BaseDal.DeleteData(Addtaskdt); |
| | | BaseDal.AddData(Addtaskdt); |
| | | |
| | | var respon = PushTasksToWCS(Addtaskdt,""); |
| | | if (respon.Status) |
| | |
| | | if (_Task != null) return content.Error($"è´§ä½ç¼å·:{Locatask}çæµ
è´§ä½åºå·²æä»»å¡ï¼ä¸å¯è¿è¡ç§»åº"); |
| | | |
| | | //è¿è¡è·åæ°çåºä½ |
| | | Dt_LocationInfo? Nextlocation = _basicService.LocationInfoService.AssignLocation(DeepLocation.RoadwayNo, 0, "");//è·åå°æ°åºä½ |
| | | Dt_LocationInfo? Nextlocation = _basicService.LocationInfoService.GetLocation(DeepLocation.RoadwayNo);//è·åå°æ°åºä½ |
| | | if (Nextlocation == null) |
| | | { |
| | | return content.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | |
| | | task.TaskStatus = TaskOutStatusEnum.OutFinish.ObjToInt(); |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | |
| | | _stockRepository.DeleteData(stockInfo); |
| | | _locationInfoRepository.UpdateData(locationInfo); //ä¿®æ¹æç©ºè´§ä½ |
| | | |
| | | BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.èªå¨å®æ : OperateTypeEnum.äººå·¥å®æ); |
| | | _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockStatusEmun.åºåºå®æ.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum); |
| | | _locationStatusChangeRecordService.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockStatusEmun.åºåºå®æ.ObjToInt(), "1", task.TaskNum); |
| | | /*WebResponseContent content = TaskCompletionFeedback(task); |
| | | if (!content.Status) |
| | | { |
| | |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return webResponse.Error($"ç§»åºä»»å¡å®æå¤±è´¥ï¼ä»»å¡idï¼{task.TaskNum},é误åå ï¼{ex.Message}"); |
| | | return webResponse.Error($"åºåºä»»å¡å®æå¤±è´¥ï¼ä»»å¡idï¼{task.TaskNum},é误åå ï¼{ex.Message}"); |
| | | throw; |
| | | } |
| | | |