| | |
| | | using Microsoft.Extensions.Logging; |
| | | using MailKit.Search; |
| | | using System.Reflection.Metadata; |
| | | using static WIDESEA_ITaskInfoService.ITaskService; |
| | | |
| | | namespace WIDESEA_TaskInfoService |
| | | { |
| | |
| | | /// </summary> |
| | | /// <param name="PalletCode"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent GenerateInventoryInformation(string SourceAddress, string PalletCode) |
| | | public WebResponseContent GenerateInventoryInformation(GenerateInv generate) |
| | | { |
| | | |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == PalletCode); |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | if (task != null) |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"å·²æè¯¥æççå
¥åºä»»å¡ï¼æçå·ï¼{task.PalletCode}"); |
| | | } |
| | | else |
| | | { |
| | | Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == PalletCode); |
| | | if (dt_StockInfo == null) |
| | | Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode); |
| | | if (dt_StockInfo != null) |
| | | { |
| | | Dt_LocationInfo newLocation; |
| | | Dt_LocationInfo newSourceAddress; |
| | | newSourceAddress = _basicService.LocationInfoService.GetLocationplatform(SourceAddress); |
| | | newSourceAddress = _basicService.LocationInfoService.GetLocationplatform(generate.SourceAddress); |
| | | newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo); |
| | | string[] Pallet = PalletCode.Split("-"); |
| | | //string[] Pallet = PalletCode.Split("-"); |
| | | if (newLocation != null && newSourceAddress != null) |
| | | { |
| | | |
| | |
| | | //çæå
¥åºä»»å¡ |
| | | Dt_Task dt_Task = new() |
| | | { |
| | | PalletCode = PalletCode, |
| | | PalletCode = generate.PalletCode, |
| | | TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), |
| | | Roadway = newLocation.RoadwayNo, |
| | | TaskType = newSourceAddress.LocationType == (int)LocationTypeEnum.EmptyOut ? TaskTypeEnum.PalletInbound.ObjToInt() : TaskTypeEnum.Inbound.ObjToInt(), |
| | |
| | | Depth = newLocation.Depth, |
| | | CreateDate = DateTime.Now, |
| | | }; |
| | | Dt_StockInfo dt_Stock = new() |
| | | { |
| | | PalletCode = PalletCode, |
| | | LocationCode = newLocation.LocationCode, |
| | | IsFull = true, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MaterialType = newSourceAddress.LocationType == (int)LocationTypeEnum.EmptyIn ? (int)InventoryMaterialType.空æ: |
| | | (newSourceAddress.LocationType == (int)LocationTypeEnum.FinishedIn ? (int)InventoryMaterialType.æå: (int)InventoryMaterialType.åææ), |
| | | Materialweight = float.Parse(Pallet[3]), |
| | | }; |
| | | |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | if (newLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt()) |
| | | { |
| | |
| | | } |
| | | BaseDal.AddData(dt_Task); |
| | | _basicService.LocationInfoService.UpdateData(newLocation); |
| | | _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | |
| | | |
| | | |
| | | _unitOfWorkManage.CommitTran(); |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºçèµ·ç¹:{SourceAddress},æç»ç¹{newSourceAddress.RoadwayNo}ï¼ä¿¡æ¯"); |
| | | return content = WebResponseContent.Instance.Error($"æªæ¾å°å¯¹åºçèµ·ç¹:{generate.SourceAddress},æç»ç¹{newSourceAddress.RoadwayNo}ï¼ä¿¡æ¯"); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | return content = WebResponseContent.Instance.Error($"该æçå·å·²å
¥åºï¼è¯·æ ¸å¯¹æçå·:{PalletCode}"); |
| | | Queryinventory(generate.PalletCode); |
| | | return content = WebResponseContent.Instance.Error($"ç»çï¼è¯·æ ¸å¯¹æçå·:{generate.PalletCode}"); |
| | | } |
| | | } |
| | | |
| | |
| | | /// <returns></returns> |
| | | public WebResponseContent Queryinventory(string palletCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | string[] targetCodes = palletCode.Split("-"); |
| | | if (targetCodes[2] == "2") |
| | | |
| | | try |
| | | { |
| | | List<Dt_LocationInfo> LocationInfo = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationType == (int)LocationStatusEnum.Free).ToList(); |
| | | if (LocationInfo.Count < 40) |
| | | WebResponseContent content = new WebResponseContent(); |
| | | string result = palletCode.Substring(0, 2); |
| | | Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == result); |
| | | if (dt_Inbound != null) |
| | | { |
| | | Dt_StockInfo dt_Stock = new() |
| | | { |
| | | PalletCode = palletCode, |
| | | IsFull = true, |
| | | StockStatus = (int)StockStatusEmun.ç»çæå, |
| | | Creater = "WMS", |
| | | CreateDate = DateTime.Now, |
| | | MaterialType = (int)InventoryMaterialType.åææ, |
| | | Materialweight = 0, |
| | | }; |
| | | |
| | | |
| | | _unitOfWorkManage.BeginTran(); |
| | | _stockService.StockInfoService.Repository.AddData(dt_Stock); |
| | | if (dt_Stock.Id != null) |
| | | { |
| | | string part2 = palletCode.Substring(2, 8); |
| | | |
| | | string part3 = palletCode.Split('#')[1]; |
| | | Dt_StockInfoDetail dt_StockInfoDetail = new() |
| | | { |
| | | StockId = dt_Stock.Id, |
| | | MaterielCode = result, //ç©æç¼å· |
| | | MaterielName = dt_Inbound.OrderNo, //æè´¨ |
| | | OrderNo = 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.Error(); |
| | | return content = WebResponseContent.Instance.Error("æªæ¾å°è¯¥ç±»åçè§£æ"); |
| | | } |
| | | } |
| | | else |
| | | catch (Exception ex) |
| | | { |
| | | return content = WebResponseContent.Instance.OK(); |
| | | |
| | | throw; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | } |