| | |
| | | using MailKit.Search; |
| | | using System.Reflection.Metadata; |
| | | using static WIDESEA_ITaskInfoService.ITaskService; |
| | | using static WIDESEA_Common.HouseInventoryIn; |
| | | using WIDESEA_Common; |
| | | using Parameter = WIDESEA_Common.Parameter; |
| | | using WIDESEA_Core.LogHelper; |
| | | using WIDESEA_DTO.Task; |
| | | using WIDESEA_Core.TaskEnum; |
| | | using WIDESEA_Model.Models.Inbound; |
| | | using WIDESEA_Common.OrderEnum; |
| | | |
| | | namespace WIDESEA_TaskInfoService |
| | | { |
| | | public partial class TaskService |
| | | { |
| | | |
| | | |
| | | /// <summary> |
| | | /// ä»
ç³è¯·ä»»å¡ï¼è®©WCSæ ¹æ®è·¯ç±ç¡®å®ä¸ä¸å°å |
| | | /// </summary> |
| | | /// <param name="stationCode"></param> |
| | | /// <param name="palletCode"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode, string palletCode, int heightType) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | //PushTasksToWCS(new List<Dt_Task> { task }); |
| | | return WebResponseContent.Instance.Error($"该æç{palletCode}å·²çæä»»å¡"); |
| | | } |
| | | Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | |
| | | if (stockInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.åæåºåºå®æ.ObjToInt()) |
| | | { |
| | | |
| | | } |
| | | ///夿æ¯å¦åå¨ååºå,è¿è¡åååºä½é»è¾ |
| | | string returnOrderNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.OrderNo; |
| | | Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => x.OrderNo == returnOrderNo && x.OrderStatus == InOrderStatusEnum.æªå¼å§.ObjToInt()); |
| | | Dt_RoadwayInfo returnRoadwayInfo = new Dt_RoadwayInfo(); |
| | | if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode)) |
| | | { |
| | | Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode); |
| | | if (locationInfo1 == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ååºåä¸è¯¥åºä½{returnOrder.LocationCode}æªæ¾å°"); |
| | | } |
| | | returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo); |
| | | } |
| | | |
| | | if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该ç«ç¹å·²ææªæ§è¡çä»»å¡"); |
| | | } |
| | | |
| | | var details = stockInfo.Details.FirstOrDefault(); |
| | | if (!string.IsNullOrEmpty(stockInfo.LocationCode)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该æçå·²ç»å®è´§ä½"); |
| | | } |
| | | Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); |
| | | if (roadwayInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥å
¥åºç«å°å°å"); |
| | | } |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo); |
| | | if (warehouse == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("æªæ¾å°è¯¥ä»åº"); |
| | | } |
| | | Dt_LocationInfo? locationInfo = new Dt_LocationInfo(); |
| | | if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode)) |
| | | { |
| | | locationInfo = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode); |
| | | if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Disable.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt()) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该ååºåè´§ä½{locationInfo.LocationCode}ééå®ç¶ææè´§ä½å¯ç¨ç¶æä¸æ£ç¡®ï¼è¯·æ£æ¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, stockInfo.PalletType, warehouse.WarehouseId, "", heightType);//, stockInfo.WarehouseId |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | } |
| | | |
| | | Dt_Task newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = "", |
| | | Grade = 0, |
| | | NextAddress = returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode, |
| | | PalletCode = palletCode, |
| | | OrderNo = details.OrderNo, |
| | | Roadway = roadwayInfo.RoadwayNo, |
| | | SourceAddress = "", |
| | | TargetAddress = locationInfo.LocationCode, |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | WarehouseId = stockInfo.WarehouseId, |
| | | PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode) |
| | | Creater = "WCS", |
| | | CreateDate = DateTime.Now |
| | | }; |
| | | string MaterielCode = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode; |
| | | float Quantity = (float)stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity); |
| | | if (MaterielCode != null && Quantity != null) |
| | | { |
| | | newTask.MaterielCode = MaterielCode; |
| | | newTask.Quantity = (float)Quantity; |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.使éåº.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.SurplusReturn.ObjToInt(); |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.忣å
¥åº.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.ReverseIn.ObjToInt(); |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.çç¹åºå宿.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.InInventory.ObjToInt(); |
| | | } |
| | | //if (stockInfo.StockStatus == StockStatusEmun.æå¨ç»çæå.ObjToInt()) |
| | | //{ |
| | | // stockInfo.StockStatus = StockStatusEmun.æå¨ç»çå
¥åºç¡®è®¤.ObjToInt(); |
| | | //} |
| | | //else if (stockInfo.StockStatus == StockStatusEmun.MESéåº.ObjToInt()) |
| | | //{ |
| | | // newTask.TaskType = TaskTypeEnum.MesMatReturn.ObjToInt(); |
| | | //} |
| | | //else if (stockInfo.StockStatus == StockStatusEmun.MES空æéåº.ObjToInt()) |
| | | //{ |
| | | // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId && x.PalletType == stockInfo.PalletType); |
| | | // //todo å°æçææ¶æªå¯ç¨ |
| | | // if (palletTypeInfo.LocaitonCount == 2) |
| | | // { |
| | | // newTask.TaskType = TaskTypeEnum.MesPalletLargeReturn.ObjToInt(); |
| | | // } |
| | | // else |
| | | // { |
| | | // newTask.TaskType = TaskTypeEnum.MesPalletSmallReturn.ObjToInt(); |
| | | // } |
| | | //} |
| | | //else |
| | | //{ |
| | | stockInfo.StockStatus = StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt(); |
| | | locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); |
| | | //} |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | int taskId = BaseDal.AddData(newTask); |
| | | newTask.TaskId = taskId; |
| | | if (returnOrder != null) |
| | | { |
| | | returnOrder.OrderStatus = InOrderStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | _returnOrderRepository.UpdateData(returnOrder); |
| | | } |
| | | _stockRepository.StockInfoRepository.UpdateData(stockInfo); |
| | | _locationInfoService.UpdateData(locationInfo); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask); |
| | | if (warehouse.WarehouseCode.Contains("CP")) |
| | | { |
| | | PushTasksWCS(new List<Dt_Task> { newTask }); |
| | | } |
| | | else |
| | | { |
| | | PushTasksToWCS(new List<Dt_Task> { newTask }); |
| | | } |
| | | return WebResponseContent.Instance.OK(data: wMSTaskDTO); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | public WebResponseContent CPDeviceRequestInboundTaskSimple(string stationCode, string palletCode, int heightType, string courceAddress) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该æç{palletCode}å·²çæä»»å¡"); |
| | | } |
| | | Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | |
| | | if (stockInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); |
| | | } |
| | | |
| | | Dt_RoadwayInfo returnRoadwayInfo = new Dt_RoadwayInfo(); |
| | | if (stockInfo.StockStatus == StockStatusEmun.åæåºåºå®æ.ObjToInt()) |
| | | { |
| | | Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode); |
| | | if (locationInfo1 == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ååºåä¸è¯¥åºä½{stockInfo.LocationCode}æªæ¾å°"); |
| | | } |
| | | returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); |
| | | } |
| | | ///夿æ¯å¦åå¨ååºå,è¿è¡åååºä½é»è¾ |
| | | string returnOrderNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.OrderNo; |
| | | Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => (x.OrderNo == returnOrderNo || x.LPNNo == palletCode) && x.OrderStatus == InOrderStatusEnum.æªå¼å§.ObjToInt()); |
| | | if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode)) |
| | | { |
| | | Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode); |
| | | if (locationInfo1 == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"ååºåä¸è¯¥åºä½{returnOrder.LocationCode}æªæ¾å°"); |
| | | } |
| | | returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); |
| | | } |
| | | |
| | | if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该ç«ç¹å·²ææªæ§è¡çä»»å¡"); |
| | | } |
| | | |
| | | var details = stockInfo.Details.FirstOrDefault(); |
| | | if (!string.IsNullOrEmpty(stockInfo.LocationCode)) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该æçå·²ç»å®è´§ä½"); |
| | | } |
| | | Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode)); |
| | | if (roadwayInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥å
¥åºç«å°å°å"); |
| | | } |
| | | |
| | | Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo); |
| | | if (warehouse == null) |
| | | { |
| | | return WebResponseContent.Instance.Error("æªæ¾å°è¯¥ä»åº"); |
| | | } |
| | | |
| | | Dt_LocationInfo? locationInfo = new Dt_LocationInfo(); |
| | | if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode)) |
| | | { |
| | | locationInfo = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode); |
| | | if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Disable.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt()) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该ååºåè´§ä½{locationInfo.LocationCode}ééå®ç¶ææè´§ä½å¯ç¨ç¶æä¸æ£ç¡®ï¼è¯·æ£æ¥"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, stockInfo.PalletType, warehouse.WarehouseId, "", heightType);//, stockInfo.WarehouseId |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | } |
| | | Dt_Task newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = courceAddress, |
| | | Grade = 0, |
| | | NextAddress = returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode, |
| | | PalletCode = palletCode, |
| | | OrderNo = details.OrderNo, |
| | | Roadway = roadwayInfo.RoadwayNo, |
| | | SourceAddress = courceAddress, |
| | | TargetAddress = locationInfo.LocationCode, |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | WarehouseId = stockInfo.WarehouseId, |
| | | PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode) |
| | | Creater = "WCS", |
| | | CreateDate = DateTime.Now |
| | | }; |
| | | string MaterielCode = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode; |
| | | float Quantity = (float)stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity); |
| | | if (MaterielCode != null && Quantity != null) |
| | | { |
| | | newTask.MaterielCode = MaterielCode; |
| | | newTask.Quantity = (float)Quantity; |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.使éåº.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.SurplusReturn.ObjToInt(); |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.忣å
¥åº.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.ReverseIn.ObjToInt(); |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.çç¹åºå宿.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.InInventory.ObjToInt(); |
| | | } |
| | | if (stockInfo.StockStatus == StockStatusEmun.åæåºåºå®æ.ObjToInt()) |
| | | { |
| | | newTask.TaskType = TaskTypeEnum.InSyncretism.ObjToInt(); |
| | | } |
| | | //if (stockInfo.StockStatus == StockStatusEmun.æå¨ç»çæå.ObjToInt()) |
| | | //{ |
| | | // stockInfo.StockStatus = StockStatusEmun.æå¨ç»çå
¥åºç¡®è®¤.ObjToInt(); |
| | | //} |
| | | //else if (stockInfo.StockStatus == StockStatusEmun.MESéåº.ObjToInt()) |
| | | //{ |
| | | // newTask.TaskType = TaskTypeEnum.MesMatReturn.ObjToInt(); |
| | | //} |
| | | //else if (stockInfo.StockStatus == StockStatusEmun.MES空æéåº.ObjToInt()) |
| | | //{ |
| | | // Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId && x.PalletType == stockInfo.PalletType); |
| | | // //todo å°æçææ¶æªå¯ç¨ |
| | | // if (palletTypeInfo.LocaitonCount == 2) |
| | | // { |
| | | // newTask.TaskType = TaskTypeEnum.MesPalletLargeReturn.ObjToInt(); |
| | | // } |
| | | // else |
| | | // { |
| | | // newTask.TaskType = TaskTypeEnum.MesPalletSmallReturn.ObjToInt(); |
| | | // } |
| | | //} |
| | | //else |
| | | //{ |
| | | else |
| | | { |
| | | stockInfo.StockStatus = StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt(); |
| | | } |
| | | locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); |
| | | //} |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | int taskId = BaseDal.AddData(newTask); |
| | | newTask.TaskId = taskId; |
| | | if (returnOrder != null) |
| | | { |
| | | returnOrder.OrderStatus = InOrderStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | _returnOrderRepository.UpdateData(returnOrder); |
| | | } |
| | | _stockRepository.StockInfoRepository.UpdateData(stockInfo); |
| | | _locationInfoService.UpdateData(locationInfo); |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask); |
| | | |
| | | PushTasksWCS(new List<Dt_Task> { newTask }); |
| | | |
| | | return WebResponseContent.Instance.OK(data: wMSTaskDTO); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¿åå
¥åºä»åº |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent ApplyLocation(string palletCode) |
| | | { |
| | | try |
| | | { |
| | | Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | |
| | | if (stockInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°ç»çä¿¡æ¯"); |
| | | } |
| | | return WebResponseContent.Instance.OK(data: stockInfo.WarehouseId); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// å
¥åºä»»å¡ç³è¯·åé
è´§ä½ |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡å·</param> |
| | | /// <param name="roadwayNo">å··éå·</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent AssignInboundTaskLocation(int taskNum, string roadwayNo) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥å
¥åºä»»å¡"); |
| | | } |
| | | |
| | | if (_basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress) != null) |
| | | { |
| | | return WebResponseContent.Instance.OK(data: task.TargetAddress); |
| | | } |
| | | |
| | | Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, task.PalletType);//, task.WarehouseId |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | |
| | | task.Roadway = roadwayNo; |
| | | task.TargetAddress = locationInfo.LocationCode; |
| | | |
| | | task.TaskStatus = TaskStatusEnum.SC_Execute.ObjToInt(); |
| | | |
| | | |
| | | |
| | | LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | //_recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationStatusEnum.Lock, LocationChangeType.InboundAssignLocation); |
| | | //_basicService.LocationInfoService.UpdateLocationStatus(locationInfo, task.PalletType, LocationStatusEnum.Lock, task.WarehouseId); |
| | | BaseDal.UpdateData(task); |
| | | _unitOfWorkManage.CommitTran(); |
| | | return WebResponseContent.Instance.OK(data: locationInfo.LocationCode); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ç«åºå
¥åºæä»¤ä¸ä¼ |
| | | /// </summary> |
| | | /// <param name="stationCode">èµ·å§å°å</param> |
| | | /// <param name="palletCode">æçç¼å·</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent InboundRequest(string stationCode, string roadwayNo, string palletCode) |
| | | { |
| | | // è¾å
¥éªè¯ |
| | | if (string.IsNullOrWhiteSpace(palletCode)) |
| | | return WebResponseContent.Instance.Error("请è¾å
¥æ£ç¡®æçå·"); |
| | | |
| | | try |
| | | { |
| | | Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"该æç{palletCode}å·²çæä»»å¡"); |
| | | } |
| | | // è·åå
¥åºåæç» |
| | | var inboundOrderDet = GetInboundOrderDetail(palletCode); |
| | | if (inboundOrderDet == null) |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°æçå· {palletCode} 对åºçå
¥åºåæç»"); |
| | | |
| | | // è·åå
¥åºå |
| | | var inboundOrder = GetInboundOrder(inboundOrderDet.OrderId); |
| | | if (inboundOrder == null) |
| | | return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåä¿¡æ¯"); |
| | | |
| | | // éªè¯å
¥åºåæç» |
| | | if (inboundOrder.Details == null || inboundOrder.Details.Count == 0) |
| | | return WebResponseContent.Instance.Error($"å
¥åºå {inboundOrder.OrderNo} 没ææç»ä¿¡æ¯"); |
| | | |
| | | // è·åä»åºåå··éä¿¡æ¯ |
| | | var warehouse = GetWarehouse(inboundOrder.WarehouseId); |
| | | var roadwayInfo = GetRoadwayInfo(warehouse.WarehouseCode); |
| | | |
| | | var dt_Stock = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode); |
| | | // æ£æ¥å
¥åºè¯·æ± |
| | | var checkResult = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, dt_Stock); |
| | | if (!checkResult.Item1) |
| | | return WebResponseContent.Instance.Error(checkResult.Item2); |
| | | |
| | | // åé
åºä½å¹¶æ´æ°æ°æ® |
| | | Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, dt_Stock.PalletType, dt_Stock.WarehouseId);// |
| | | //Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, TaskTypeEnum.Inbound.ObjToInt()); |
| | | if (locationInfo == null) |
| | | { |
| | | return WebResponseContent.Instance.Error($"è´§ä½åé
失败,æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | |
| | | Dt_Task newTask = new Dt_Task() |
| | | { |
| | | CurrentAddress = "", |
| | | Grade = 0, |
| | | NextAddress = stationCode, |
| | | PalletCode = palletCode, |
| | | Roadway = roadwayNo, |
| | | SourceAddress = "", |
| | | TargetAddress = locationInfo.LocationCode, |
| | | TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | TaskStatus = TaskStatusEnum.New.ObjToInt(), |
| | | WarehouseId = dt_Stock.WarehouseId, |
| | | PalletType = dt_Stock.PalletType, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | |
| | | LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus; |
| | | _unitOfWorkManage.BeginTran(); |
| | | Db.InsertNav(dt_Stock).Include(x => x.Details).ExecuteCommand(); |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus.ObjToInt(), LocationStatusEnum.Lock.ObjToInt(), LocationChangeType.InboundAssignLocation.ObjToInt()); |
| | | //_basicService.LocationInfoService.UpdateLocationStatus(locationInfo, newTask.PalletType, LocationStatusEnum.Lock, newTask.WarehouseId); |
| | | int taskId = BaseDal.AddData(newTask); |
| | | newTask.TaskId = taskId; |
| | | _stockRepository.StockInfoRepository.UpdateData(dt_Stock); |
| | | _unitOfWorkManage.CommitTran(); |
| | | WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask); |
| | | |
| | | PushTasksToWCS(new List<Dt_Task> { newTask }); |
| | | if (newTask.WarehouseId == 5) PutFinish(stationCode); |
| | | return WebResponseContent.Instance.OK(data: wMSTaskDTO); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | private Dt_InboundOrderDetail GetInboundOrderDetail(string palletCode) |
| | | { |
| | | return BaseDal.Db.Queryable<Dt_InboundOrderDetail>() |
| | | .Where(x => x.LPNNo == palletCode) |
| | | .First(); |
| | | } |
| | | |
| | | private Dt_InboundOrder GetInboundOrder(int orderId) |
| | | { |
| | | return BaseDal.Db.Queryable<Dt_InboundOrder>() |
| | | .Where(x => x.Id == orderId) |
| | | .Includes(x => x.Details) |
| | | .First(); |
| | | } |
| | | |
| | | private Dt_Warehouse GetWarehouse(int warehouseId) |
| | | { |
| | | return _basicService.WarehouseService.Repository |
| | | .QueryFirst(x => x.WarehouseId == warehouseId); |
| | | } |
| | | |
| | | private Dt_RoadwayInfo GetRoadwayInfo(string warehouseCode) |
| | | { |
| | | return _basicService.RoadwayInfoService.Repository |
| | | .QueryFirst(x => x.RoadwayNo == warehouseCode); |
| | | } |
| | | |
| | | private Dt_StockInfo GetOrCreateStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse) |
| | | { |
| | | var stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>() |
| | | .Where(x => x.PalletCode == palletCode) |
| | | .Includes(x => x.Details) |
| | | .First(); |
| | | decimal beforeQuantity = 0; |
| | | if (stockInfo == null) |
| | | { |
| | | stockInfo = CreateNewStockInfo(palletCode, inboundOrder, inboundOrderDet, warehouse); |
| | | //CreateStockInfoDetail(stockInfo, inboundOrder, inboundOrderDet); |
| | | } |
| | | else |
| | | { |
| | | if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt()) |
| | | { |
| | | return null; |
| | | } |
| | | beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity); |
| | | } |
| | | |
| | | return stockInfo; |
| | | } |
| | | |
| | | private Dt_StockInfo CreateNewStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse) |
| | | { |
| | | var dt_StockInfoDetail = new Dt_StockInfoDetail |
| | | { |
| | | //StockId = stockInfo.Id, |
| | | MaterielCode = inboundOrderDet.MaterielCode, |
| | | MaterielName = inboundOrderDet.MaterielName, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | LinId = inboundOrderDet.LinId, |
| | | StockQuantity = inboundOrderDet.OrderQuantity, |
| | | Status = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | Id = inboundOrderDet.LinId.ObjToInt(), |
| | | }; |
| | | |
| | | var dt_Stock = new Dt_StockInfo |
| | | { |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | PalletCode = palletCode, |
| | | PalletType = GetPalletType(warehouse, palletCode), |
| | | IsFull = true, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MaterialType = (int)InventoryMaterialType.æå, |
| | | Materialweight = 0, |
| | | Wlstatus = (int)InventoryMaterialStatus.åæ ¼, |
| | | Mgeneratetime = DateTime.Now, |
| | | WarehouseId = warehouse.WarehouseId, |
| | | Details = new List<Dt_StockInfoDetail> { dt_StockInfoDetail } |
| | | }; |
| | | |
| | | //_stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | Db.InsertNav(dt_Stock).Include(x => x.Details).ExecuteCommand(); |
| | | return _stockService.StockInfoService.Repository.GetStockInfo(palletCode); |
| | | } |
| | | |
| | | private void CreateStockInfoDetail(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet) |
| | | { |
| | | var dt_StockInfoDetail = new Dt_StockInfoDetail |
| | | { |
| | | StockId = stockInfo.Id, |
| | | MaterielCode = inboundOrderDet.MaterielCode, |
| | | MaterielName = inboundOrderDet.MaterielName, |
| | | OrderNo = inboundOrder.OrderNo, |
| | | BatchNo = inboundOrderDet.BatchNo, |
| | | LinId = inboundOrderDet.LinId, |
| | | StockQuantity = inboundOrderDet.OrderQuantity, |
| | | Status = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | Id = inboundOrderDet.LinId.ObjToInt(), |
| | | }; |
| | | |
| | | _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail); |
| | | } |
| | | |
| | | //æ¥è¯¢ä»åºæçè´§ç©ç±»å |
| | | public int GetPalletType(Dt_Warehouse warehouse, string palletCode) |
| | | { |
| | | if (warehouse.WarehouseCode.Contains("BC")) |
| | | { |
| | | Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3)); |
| | | if (palletTypeInfo == null) |
| | | { |
| | | throw new Exception($"æçå·é误"); |
| | | } |
| | | return palletTypeInfo.PalletType; |
| | | } |
| | | else |
| | | { |
| | | Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2)); |
| | | if (palletTypeInfo == null) |
| | | { |
| | | throw new Exception($"æçå·é误"); |
| | | } |
| | | return palletTypeInfo.PalletType; |
| | | } |
| | | return 0; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | #region |
| | | //public WebResponseContent InboundRequest(SaveModel saveModel) |
| | | //{ |
| | | // string palletCode = saveModel.palletCode; |
| | | // if (saveModel.palletCode == null) return WebResponseContent.Instance.Error($"请è¾å
¥æ£ç¡®æçå·"); |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // try |
| | | // { |
| | | // Dt_InboundOrderDetail inboundOrderDet = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.LPNNo == palletCode).First(); |
| | | // Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderDet.OrderId).Includes(x => x.Details).First(); |
| | | // if (inboundOrder == null) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåä¿¡æ¯"); |
| | | // } |
| | | // Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId); |
| | | // Dt_RoadwayInfo roadwayInfo = _basicService.RoadwayInfoService.Repository.QueryFirst(x => x.RoadwayNo == warehouse.WarehouseCode); |
| | | // if (roadwayInfo != null) { } |
| | | |
| | | // if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0) |
| | | // { |
| | | // return WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåæç»ä¿¡æ¯"); |
| | | // } |
| | | // Dt_StockInfo stockInfo1 = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | // if (stockInfo1 == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // BatchNo = inboundOrderDet.BatchNo, |
| | | // PalletCode = palletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.æå, |
| | | // Materialweight = 0, |
| | | // Wlstatus = (int)InventoryMaterialStatus.åæ ¼, |
| | | // Mgeneratetime = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.GetStockInfo(palletCode); |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo.Id, |
| | | // MaterielCode = inboundOrderDet.MaterielCode, //ç©æå· |
| | | // MaterielName = inboundOrderDet.MaterielName, //ç©æåç§° |
| | | // OrderNo = inboundOrder.OrderNo, //ç©æè¯¦æ
|
| | | // BatchNo = inboundOrderDet.BatchNo, //ç©ææ¹æ¬¡ |
| | | // LinId = inboundOrderDet.LinId, //SerialNumber = targetCodes[2].ToString(), //å
å· |
| | | // //BatchNoName = dt_Int.OrderNo, |
| | | // StockQuantity = inboundOrderDet.OrderQuantity, //éé |
| | | // //OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // Id = inboundOrderDet.LinId.ObjToInt(), |
| | | // }; |
| | | // _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail); |
| | | // } |
| | | // Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First(); |
| | | // (bool, string) result = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, stockInfo); |
| | | // if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); |
| | | // content = AssignLocUpdateData(roadwayInfo.InSCStationCode, TaskTypeEnum.Inbound.ObjToInt(), palletCode, true, stockInfo, inboundOrder.OrderNo); |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // content = WebResponseContent.Instance.Error(ex.Message); |
| | | // } |
| | | // return content; |
| | | //} |
| | | #endregion |
| | | public string ReceiveWMSInventoryIn = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSInventoryIn"]; |
| | | /// <summary> |
| | | /// çç¹å·®å¼æ°éåä¼ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public WebResponseContent InventoryIn(string name, int qty) |
| | | { |
| | | WebResponseContent content = new(); |
| | | try |
| | | { |
| | | Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == name); |
| | | Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id); |
| | | Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.LPNNo == stockInfo.PalletCode); |
| | | Dt_OutboundOrder outboundOrder = _outboundService.OutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetail.OrderId); |
| | | HouseInventoryIn houseInboundPassBack = new HouseInventoryIn(); |
| | | houseInboundPassBack.ApiType = "StockCountController"; |
| | | houseInboundPassBack.Method = "AsrsFinishedStockCount"; |
| | | |
| | | data data = new data(); |
| | | data.InventoryIn data1 = new data.InventoryIn(); |
| | | data1.No = outboundOrder.OrderNo; |
| | | data.InventoryIn.Inbound inbound = new data.InventoryIn.Inbound(); |
| | | inbound.LinId = outboundOrderDetail.LinId; |
| | | inbound.LPN_No = outboundOrderDetail.LPNNo; |
| | | inbound.MaterielCode = outboundOrderDetail.MaterielCode; |
| | | inbound.OrderQuantity = outboundOrderDetail.OrderQuantity; |
| | | inbound.BatchNo = outboundOrderDetail.BatchNo; |
| | | inbound.FinishQty = qty; |
| | | inbound.WarehouseCode = outboundOrderDetail.WarehouseCode; |
| | | inbound.StorageAreaCode = outboundOrderDetail.StorageAreaCode; |
| | | inbound.StorageLocationCode = outboundOrderDetail.StorageLocationCode; |
| | | data1.DetailList.Add(inbound); |
| | | data.Value.Add(data1); |
| | | houseInboundPassBack.Parameters.Add(data); |
| | | Authentication authentication = new Authentication() |
| | | { |
| | | ApiType = "AuthenticationController", |
| | | Parameters = new List<Parameter> |
| | | { |
| | | new Parameter { Value = "LKAdmin"}, |
| | | new Parameter { Value = "LKAdmin"}, |
| | | }, |
| | | Method = "Login", |
| | | }; |
| | | var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "ç»å½WMSè´¦å·"); |
| | | var Ticket = responses1.Context["Ticket"].ToString(); |
| | | var InvOrgId = responses1.Context["InvOrgId"].ToString(); |
| | | if (Ticket != null) |
| | | { |
| | | houseInboundPassBack.Context = new Dictionary<string, string>(); |
| | | houseInboundPassBack.Context.Add("Ticket", Ticket); |
| | | houseInboundPassBack.Context.Add("InvOrgId", InvOrgId); |
| | | var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSInventoryIn, houseInboundPassBack, "ç«åºå
¥åºæ°éåä¼ WMS"); |
| | | } |
| | | content = WebResponseContent.Instance.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
¥åºåé
è´§ä½åå¤çæ°æ® |
| | | /// </summary> |
| | | /// <param name="stationCode">èµ·å§å°å</param> |
| | | /// <param name="taskType">ä»»å¡ç±»å</param> |
| | | /// <param name="palletCode">æçç¼å·</param> |
| | | /// <param name="isUpdateStock">æ¯å¦æ´æ°ç»çä¿¡æ¯--åºåç©æå
¥åºå空æå
¥åº</param> |
| | | /// <param name="stockInfo">ç»çä¿¡æ¯--å¯ç©º</param> |
| | | /// <param name="orderNo">订åå·--å¯ç©º</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | private WebResponseContent AssignLocUpdateData(string stationCode, int taskType, string palletCode, bool isUpdateStock = true, Dt_StockInfo? stockInfo = null, |
| | | string orderNo = "") |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_InboundOrder dt_Int = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderNo == orderNo); |
| | | Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, taskType); |
| | | //Dt_LocationInfo dt_LocationInfo = null; |
| | | if (locationInfo != null) |
| | | { |
| | | Dt_Task task = new() |
| | | { |
| | | CurrentAddress = "0", |
| | | Grade = 0, |
| | | PalletCode = palletCode, |
| | | NextAddress = "0", |
| | | Roadway = locationInfo.RoadwayNo, |
| | | SourceAddress = stationCode, |
| | | TargetAddress = locationInfo.LocationCode, |
| | | TaskStatus = InTaskStatusEnum.InNew.ObjToInt(), |
| | | TaskType = taskType, |
| | | OrderNo = orderNo, |
| | | CreateDate = DateTime.Now, |
| | | Creater = "WMS" |
| | | }; |
| | | BaseDal.AddData(task); |
| | | int beforeStatus = locationInfo.LocationStatus; |
| | | if (isUpdateStock) |
| | | { |
| | | locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); |
| | | _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false); |
| | | |
| | | if (stockInfo != null && stockInfo.Details != null && stockInfo.Details.Count > 0) |
| | | { |
| | | orderNo = stockInfo.Details.FirstOrDefault()?.OrderNo ?? ""; |
| | | |
| | | stockInfo.StockStatus = StockStatusEmun.å
¥åºç¡®è®¤.ObjToInt(); |
| | | //stockInfo.LocationCode = task.TargetAddress; |
| | | _stockService.StockInfoService.Repository.UpdateData(stockInfo); |
| | | } |
| | | else |
| | | { |
| | | return content = WebResponseContent.Instance.Error("æªæ¾å°åºåä¿¡æ¯"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt(); |
| | | _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false); |
| | | } |
| | | //ä¸åå
¥åºä»»å¡è³WCS |
| | | //var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, task, "ä¸åä»»å¡å
¥åº"); |
| | | dt_Int.OrderStatus = InboundStatusEnum.å
¥åºä¸.ObjToInt(); |
| | | _inboundService.InbounOrderService.Repository.UpdateData(dt_Int); |
| | | _basicService.LocationInfoService.Repository.UpdateData(locationInfo); |
| | | _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), orderNo, task.TaskNum); |
| | | return content = WebResponseContent.Instance.OK(data: task); |
| | | } |
| | | return content = WebResponseContent.Instance.Error("æªæ¾å°å¯åé
è´§ä½"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éªè¯æ°æ® |
| | | /// </summary> |
| | | /// <param name="stationCode">èµ·å§å°å</param> |
| | | /// <param name="palletCode">æçç¼å·</param> |
| | | /// <param name="isCheckStock">æ¯å¦æ£æ¥ç»çä¿¡æ¯--åºåç©æå
¥åºå空æå
¥åº</param> |
| | | /// <param name="stockInfo">ç»çä¿¡æ¯--å¯ç©º</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | private (bool, string) CheckRequestInbound(string stationCode, string palletCode, bool isCheckStock = true, Dt_StockInfo? stockInfo = null) |
| | | { |
| | | if (BaseDal.QueryFirst(x => x.PalletCode == palletCode) != null) |
| | | { |
| | | return (false, "该æçå·å·²æä»»å¡"); |
| | | } |
| | | if (BaseDal.QueryFirst(x => (x.SourceAddress == stationCode || x.CurrentAddress == stationCode) && x.TaskStatus == InTaskStatusEnum.InNew.ObjToInt()) != null) |
| | | { |
| | | return (false, "å½åå
¥åºç«å°å·²æä¸æ¡æ°å»ºä»»å¡"); |
| | | } |
| | | if (isCheckStock) |
| | | { |
| | | if (stockInfo == null) |
| | | { |
| | | return (false, "æªæ¾å°ç»çä¿¡æ¯"); |
| | | } |
| | | if (stockInfo.StockStatus != StockStatusEmun.ç»çæå.ObjToInt()) |
| | | { |
| | | return (false, "该ç»çç¶æä¸å¯å
¥åº"); |
| | | } |
| | | if (!string.IsNullOrEmpty(stockInfo.LocationCode)) |
| | | { |
| | | return (false, "该æçå·²ç»å®è´§ä½"); |
| | | } |
| | | if (stockInfo.Details == null || stockInfo.Details.Count == 0) |
| | | { |
| | | return (false, "没æåºåæç»ä¿¡æ¯"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (_stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == palletCode) != null) |
| | | { |
| | | return (false, "该æçå·²åå¨åºå
"); |
| | | } |
| | | } |
| | | |
| | | return (true, "æå"); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçæ¡ç ï¼èµ·ç¹ä½ç½®ï¼çæå
¥åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="PalletCode"></param> |
| | | /// <returns></returns> |
| | | //public WebResponseContent GenerateInventoryInformation(GenerateInv generate) |
| | | //{ |
| | | |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // try |
| | | // { |
| | | // Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // if (task != null) |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"å·²æè¯¥æççå
¥åºä»»å¡ï¼æçå·ï¼{task.PalletCode}"); |
| | | // } |
| | | // else |
| | | // { |
| | | |
| | | // //if ((generate.SourceAddress == "R01-003-041-011-01" || generate.SourceAddress == "R01-002-043-001-01" || generate.SourceAddress == "R02-003-027-011-01")) |
| | | // //{ |
| | | // Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // if (dt_StockInfo2 == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.空æ, |
| | | // Materialweight = 0, |
| | | // Wlstatus = (int)InventoryMaterialStatus.空æ, |
| | | // Mgeneratetime = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | // } |
| | | // //} |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode && x.StockStatus == (int)StockStatusEmun.ç»çæå); |
| | | // if (dt_StockInfo != null) |
| | | // { |
| | | // Dt_LocationInfo newLocation; |
| | | // Dt_LocationInfo newSourceAddress; |
| | | // newSourceAddress = _basicService.LocationInfoService.GetLocationplatform(generate.SourceAddress); |
| | | // int Locationtype = 1; //é»è®¤ä¸º9 |
| | | // if (dt_StockInfo.MaterialType == (int)InventoryMaterialType.æå || (generate.SourceAddress == "R01-003-041-001-01" && dt_StockInfo.MaterialType == (int)InventoryMaterialType.åææ)) |
| | | // { |
| | | // Locationtype = 11; |
| | | |
| | | // } |
| | | // else if (dt_StockInfo.MaterialType == (int)InventoryMaterialType.åææ) |
| | | // { |
| | | // Locationtype = 10; |
| | | // } |
| | | |
| | | // if (dt_StockInfo.MaterialType == (int)InventoryMaterialType.æå) |
| | | // { |
| | | // string[] targetCodes = dt_StockInfo.PalletCode.Split("*"); |
| | | // Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderName == targetCodes[0]); |
| | | // if (dt_Inbound.Startingcolumn != 0 || dt_Inbound.Terminationcolumn != 0) |
| | | // { |
| | | // newLocation = _basicService.LocationInfoService.GetLocation2(newSourceAddress.RoadwayNo, Locationtype, dt_Inbound.Startingcolumn, dt_Inbound.Terminationcolumn); |
| | | // } |
| | | // else |
| | | // { |
| | | // newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype); |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype); |
| | | // } |
| | | |
| | | |
| | | // //string[] Pallet = PalletCode.Split("-"); |
| | | // if (newLocation != null && newSourceAddress != null) |
| | | // { |
| | | // //çæå
¥åºä»»å¡ |
| | | // Dt_Task dt_Task = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | // Roadway = newLocation.RoadwayNo, |
| | | // TaskType = TaskTypeEnum.Inbound.ObjToInt(), |
| | | // TaskStatus = InTaskStatusEnum.InNew.ObjToInt(), |
| | | // SourceAddress = newSourceAddress.LocationCode, |
| | | // TargetAddress = newLocation.LocationCode, |
| | | // CurrentAddress = newSourceAddress.LocationCode, |
| | | // NextAddress = newLocation.LocationCode, |
| | | // Grade = 1, |
| | | // Creater = "WMS", |
| | | // Depth = newLocation.Depth, |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = dt_StockInfo.MaterialType |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // if (newLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | // { |
| | | // newLocation.LocationStatus = newSourceAddress.LocationType == (int)LocationTypeEnum.EmptyOut ? LocationStatusEnum.PalletLock.ObjToInt() : LocationStatusEnum.Lock.ObjToInt(); |
| | | // } |
| | | // BaseDal.AddData(dt_Task); |
| | | // _basicService.LocationInfoService.UpdateData(newLocation); |
| | | |
| | | // _unitOfWorkManage.CommitTran(); |
| | | |
| | | // return content = WebResponseContent.Instance.OK(data: dt_Task); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºçèµ·ç¹:{generate.SourceAddress},æç»ç¹{newSourceAddress.RoadwayNo}ï¼ä¿¡æ¯"); |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // //Queryinventory(generate.PalletCode); |
| | | // return content = WebResponseContent.Instance.Error($"ç»çï¼è¯·æ ¸å¯¹æçå·:{generate.PalletCode}"); |
| | | // } |
| | | |
| | | // } |
| | | |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"çæå
¥åºä»»å¡åºéï¼åºéä¿¡æ¯:{ex.Message}"); |
| | | // throw; |
| | | // } |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// æ¥è¯¢1å··éåºåï¼æ¯å¦è¿è¡è¿è¡å
¥åº //带åç»éæ°æ¼æ¥ |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public WebResponseContent Queryinventory3(GenerateInv generate) |
| | | //{ |
| | | // try |
| | | // { |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // string result = generate.PalletCode.Substring(0, 2); |
| | | // Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == result); |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // if (dt_Inbound != null) |
| | | // { |
| | | // if (dt_StockInfo == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.åææ, |
| | | // Materialweight = 0, |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | |
| | | // string part2 = generate.PalletCode.Substring(2, 8); |
| | | |
| | | // string part3 = generate.PalletCode.Split('#')[1]; |
| | | // Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo2.Id, |
| | | // MaterielCode = result, //ç©æç¼å· |
| | | // MaterielName = dt_Inbound.OrderNo, //æè´¨ |
| | | // OrderNo = generate.PalletCode, //åæ®ï¼æçæ¡ç ï¼ |
| | | // BatchNo = part2, //æ¹æ¬¡å· |
| | | // SerialNumber = part3, //åºåå· |
| | | // StockQuantity = 1, //åºåå· |
| | | // OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail); |
| | | |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // return content = WebResponseContent.Instance.OK(); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(); |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error("æªæ¾å°è¯¥ç±»åçè§£æ"); |
| | | // } |
| | | |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | |
| | | // throw; |
| | | // } |
| | | //} |
| | | |
| | | ///// <summary> |
| | | ///// è§£æåºå |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //public WebResponseContent Queryinventory(GenerateInv generate) |
| | | //{ |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // try |
| | | // { |
| | | |
| | | // string[] targetCodes = generate.PalletCode.Split("*"); |
| | | // if (targetCodes.Length == 4) |
| | | // { |
| | | // Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderName == targetCodes[0]); |
| | | |
| | | // if (dt_Inbound != null) |
| | | // { |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // if (dt_Inbound.OrderType == (int)InventoryMaterialType.åææ) //0ä¸ºåææç¼ç |
| | | // { |
| | | // List<Dt_LocationInfo> locationInfos = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationStatus == (int)LocationStatusEnum.Free && x.Depth == 1 && x.EnableStatus == (int)EnableStatusEnum.Normal && x.LocationType == (int)LocationTypeEnum.MaterialsCube); |
| | | |
| | | // if (dt_StockInfo == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.åææ, |
| | | // Materialweight = decimal.Parse(targetCodes[3]), |
| | | // Wlstatus = (int)InventoryMaterialStatus.å¾
æ£, |
| | | // Mgeneratetime = DateTime.Now, |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | // Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // string part2 = targetCodes[1].Substring(0, 2); //è§£æç©ææ¹æ¬¡æ¾è¯¦æ
|
| | | // Dt_InboundOrder dt_Int = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == part2); |
| | | |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo2.Id, |
| | | // MaterielCode = dt_Inbound.OrderName, //ç©æå· |
| | | // MaterielName = dt_Inbound.UpperOrderNo, //ç©æåç§° |
| | | // OrderNo = dt_Inbound.OrderNo, //ç©æè¯¦æ
|
| | | // BatchNo = targetCodes[1].ToString(), //ç©ææ¹æ¬¡ |
| | | // SerialNumber = targetCodes[2].ToString(), //å
å· |
| | | // BatchNoName = dt_Int.OrderNo, |
| | | // //StockQuantity = decimal.Parse(targetCodes[3].ToString()), //éé |
| | | // OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | |
| | | // }; |
| | | // _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail); |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // if (locationInfos.Count < 50) |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 3); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // if (dt_StockInfo.StockStatus == (int)StockStatusEmun.ç»çæå) |
| | | // { |
| | | // if (locationInfos.Count < 50) |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 3); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"åºåå·²æè¯¥æ¡ç ï¼æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | |
| | | // } |
| | | // } |
| | | // else if (dt_Inbound.OrderType == (int)InventoryMaterialType.æå) |
| | | // { |
| | | // if (dt_StockInfo == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.æå, |
| | | // Materialweight = decimal.Parse(targetCodes[3]), |
| | | // Wlstatus = (int)InventoryMaterialStatus.å¾
æ£, |
| | | // Mgeneratetime = DateTime.Now, |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | // Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo2.Id, |
| | | // MaterielCode = dt_Inbound.OrderName, //ç©æå· |
| | | // MaterielName = dt_Inbound.UpperOrderNo, //ç©æåç§° |
| | | // OrderNo = dt_Inbound.OrderNo, //ç©æè¯¦æ
|
| | | // BatchNo = targetCodes[1].ToString(), //ç©ææ¹æ¬¡ |
| | | // BatchNoName = "", |
| | | // SerialNumber = targetCodes[2], //å
å· |
| | | // //StockQuantity = decimal.Parse(targetCodes[3]), //éé |
| | | // OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail); |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // else |
| | | // { |
| | | // if (dt_StockInfo.StockStatus == (int)StockStatusEmun.ç»çæå) |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"åºåå·²æè¯¥æ¡ç ï¼æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"æªæ¾å°æ¡ç è§£æï¼æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"æªæ¾å°å
¥åºåï¼æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"è§£æçæçæ¡ç é¿åº¦ä¸è¶³4,æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"ç³»ç»å··éå
¥åºæ¥å£è§£æé误ï¼é误ï¼{ex.Message}"); |
| | | // throw; |
| | | // } |
| | | //} |
| | | |
| | | //public WebResponseContent Queryinventory2(GenerateInv generate) |
| | | //{ |
| | | // try |
| | | // { |
| | | // WebResponseContent content = new WebResponseContent(); |
| | | // string result = generate.PalletCode.Substring(0, 2); |
| | | // if (result == "B-") |
| | | // { |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // if (dt_StockInfo == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.æå, |
| | | // Materialweight = 0, |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | |
| | | // //string part2 = generate.PalletCode.Substring(2, 8); |
| | | |
| | | // //string part3 = generate.PalletCode.Split('#')[1]; |
| | | // Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo2.Id, |
| | | // MaterielCode = dt_StockInfo2.PalletCode, //ç©æç¼å· |
| | | // MaterielName = dt_StockInfo2.PalletCode, //æè´¨ |
| | | // OrderNo = dt_StockInfo2.PalletCode, //åæ®ï¼æçæ¡ç ï¼ |
| | | // BatchNo = dt_StockInfo2.PalletCode, //æ¹æ¬¡å· |
| | | // SerialNumber = dt_StockInfo2.PalletCode, //åºåå· |
| | | // StockQuantity = 1, //åºåå· |
| | | // OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail); |
| | | |
| | | // _unitOfWorkManage.CommitTran(); |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // else |
| | | // { |
| | | // if (dt_StockInfo.StockStatus == (int)StockStatusEmun.ç»çæå) |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"åºåå·²æè¯¥æ¡ç ï¼æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == result); |
| | | // Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() |
| | | // && x.LocationType == (int)LocationTypeEnum.MaterialsCube); |
| | | // if (dt_Inbound != null) |
| | | // { |
| | | // if (dt_StockInfo == null) |
| | | // { |
| | | // Dt_StockInfo dt_Stock = new() |
| | | // { |
| | | // PalletCode = generate.PalletCode, |
| | | // IsFull = true, |
| | | // StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // MaterialType = (int)InventoryMaterialType.åææ, |
| | | // Materialweight = 0, |
| | | // }; |
| | | // _unitOfWorkManage.BeginTran(); |
| | | // _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | |
| | | // string part2 = generate.PalletCode.Substring(2, 8); |
| | | |
| | | // string part3 = generate.PalletCode.Split('#')[1]; |
| | | // Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | // Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | // { |
| | | // StockId = dt_StockInfo2.Id, |
| | | // MaterielCode = result, //ç©æç¼å· |
| | | // MaterielName = dt_Inbound.OrderNo, //æè´¨ |
| | | // OrderNo = generate.PalletCode, //åæ®ï¼æçæ¡ç ï¼ |
| | | // BatchNo = part2, //æ¹æ¬¡å· |
| | | // SerialNumber = part3, //åºåå· |
| | | // StockQuantity = 1, //åºåå· |
| | | // OutboundQuantity = 1, //åºåå· |
| | | // Status = (int)StockStatusEmun.ç»çæå, |
| | | // Creater = "WMS", |
| | | // CreateDate = DateTime.Now, |
| | | // }; |
| | | // _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail); |
| | | |
| | | // _unitOfWorkManage.CommitTran(); |
| | | |
| | | |
| | | // if (locationinfoData.Count > 40) |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 3); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // if (dt_StockInfo.StockStatus == (int)StockStatusEmun.ç»çæå) |
| | | // { |
| | | // if (locationinfoData.Count > 40) |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 3); |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.OK(data: 1); |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error($"åºåå·²æè¯¥æ¡ç ï¼æ¡ç ä¿¡æ¯ï¼{generate.PalletCode}"); |
| | | // } |
| | | // } |
| | | |
| | | // } |
| | | // else |
| | | // { |
| | | // return content = WebResponseContent.Instance.Error("æªæ¾å°è¯¥ç±»åçè§£æ"); |
| | | // } |
| | | |
| | | // } |
| | | // } |
| | | // catch (Exception ex) |
| | | // { |
| | | |
| | | // throw; |
| | | // } |
| | | //} |
| | | } |
| | | } |