| | |
| | | { |
| | | private readonly ICabinOrderServices _cabinOrderServices; |
| | | private readonly IDeliveryOrderServices _deliveryOrderServices; |
| | | private readonly ICabinOrderHtyServices _cabinOrderHtyServices; |
| | | private readonly IDeliveryOrderHtyServices _deliveryOrderHtyServices; |
| | | private readonly ISupplyTaskService _supplyTaskService; |
| | | private readonly ISupplyTaskHtyService _supplyTaskHtyService; |
| | | private readonly IInventory_BatchServices _inventoryBatchServices; |
| | | private readonly IMessageInfoService _infoService; |
| | | public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService) : base(BaseDal) |
| | | public InventoryServices(IRepository<Dt_Inventory> BaseDal, ICabinOrderServices cabinOrderServices, IDeliveryOrderServices deliveryOrderServices, ISupplyTaskService supplyTaskService, IInventory_BatchServices inventoryBatchServices, IMessageInfoService infoService,ICabinOrderHtyServices cabinOrderlHtyServices,IDeliveryOrderHtyServices deliveryOrderHtyServices, ISupplyTaskHtyService supplyTaskHtyService) : base(BaseDal) |
| | | { |
| | | _cabinOrderServices = cabinOrderServices; |
| | | _deliveryOrderServices = deliveryOrderServices; |
| | | _supplyTaskService = supplyTaskService; |
| | | _inventoryBatchServices = inventoryBatchServices; |
| | | _infoService = infoService; |
| | | _cabinOrderHtyServices = cabinOrderlHtyServices; |
| | | _deliveryOrderHtyServices = deliveryOrderHtyServices; |
| | | _supplyTaskHtyService = supplyTaskHtyService; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="batch_num">æ¹å·</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="NotImplementedException"></exception> |
| | | public WebResponseContent GetInventoryList(int[] key) |
| | | public WebResponseContent GetInventoryList(int[] keys) |
| | | { |
| | | var responseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | |
| | | List<Dt_Inventory_Batch> UpdateBatches = new List<Dt_Inventory_Batch>(); |
| | | //æ ¹æ®idæ¥è¯¢åºåæ¹æ¬¡ä¿¡æ¯è¡¨ï¼è·åå°ä»ä»¬çååç¼ç åæ¹æ¬¡å· |
| | | var inventoryBatches = _inventoryBatchServices.Repository.QueryData(); //æ¥å
¨é¨ |
| | | var inventoryBatches = _inventoryBatchServices.Repository.QueryData(x => keys.Contains(x.Id)); //æ¥å
¨é¨ |
| | | |
| | | var inventory = inventoryBatches.Where(x => key.Contains(x.Id)).Select(x => new { x.MaterielCode, x.BatchNo }).ToList(); |
| | | if (inventory.Count < 1) |
| | | var url = "http://192.168.1.100:80/GYZ2/95fck/repositoryInfo"; |
| | | foreach (var item in inventoryBatches) |
| | | { |
| | | return WebResponseContent.Instance.Error("æ²¡ææ¾å°åºåæ¹æ¬¡ä¿¡æ¯"); |
| | | } |
| | | |
| | | var requestData = inventory.Select(x => new { goods_no = x.MaterielCode, batch_num = x.BatchNo }).Distinct().ToList(); |
| | | |
| | | foreach (var item in requestData) |
| | | { |
| | | |
| | | var url = "http://127.0.0.1:4523/m2/5660322-5340849-default/370999979?apifoxApiId=370999979"; |
| | | var result = HttpHelper.Post(url, new { item.goods_no, item.batch_num }.ToJsonString()); |
| | | var result = HttpHelper.Post(url, new { goods_no = item.MaterielCode, batch_num = item.BatchNo }.ToJsonString()); |
| | | |
| | | var response = JsonConvert.DeserializeObject<UpstreamResponse<InventoryInfo>>(result); |
| | | |
| | | if (response.resultCode != "0") |
| | | { |
| | | //return responseContent.Error(response.resultMsg ?? "䏿¸¸æ¥å£è¿å失败"); |
| | | _infoService.AddMessageInfo(MessageGroupByEnum.SynchronismAlarm, "Erpåæ¥å¤±è´¥", "䏿¸¸æ¥å£è¿å失败"); |
| | | continue; |
| | | |
| | | } |
| | | |
| | | if (response.data == null || !response.data.Any()) |
| | | { |
| | | return responseContent.OK("æ æ°åºåæ°æ®"); |
| | | } |
| | | var materialCodes = response.data.Select(x => x.goods_no).Distinct().ToList(); |
| | | var batchNos = response.data.Select(x => x.batch_num).Distinct().ToList(); |
| | | foreach (var inventoryInfo in response.data) |
| | | { |
| | | //// ä½¿ç¨ FirstOrDefault é¿å
æ¾ä¸å°è®°å½æ¶æåºå¼å¸¸ |
| | | var Inver = inventoryBatches.FirstOrDefault(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num); |
| | | |
| | | if (Inver != null) |
| | | { |
| | | Inver.ERPStockQuantity = inventoryInfo.business_qty; |
| | | UpdateBatches.Add(Inver); |
| | | } |
| | | } |
| | | if (response == null) continue; |
| | | var data = response.data.FirstOrDefault(); |
| | | if (data != null) |
| | | item.ERPStockQuantity = data.business_qty; |
| | | } |
| | | _inventoryBatchServices.UpdateData(UpdateBatches); |
| | | _inventoryBatchServices.UpdateData(inventoryBatches); |
| | | return responseContent.OK("åºåä¿¡æ¯åæ¥å®æ"); |
| | | |
| | | } |
| | |
| | | return responseContent.Error("åæ¥å¤±è´¥: " + ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// wcsåä¼ ç»æè°ç¨æçæ¹æ³ ä¸ç®¡æ¯å
¥åº åºåº çç¹é½ä¼è°ç¨è¿ä¸ªæ¥å£(ç°å¨ç¨è¿ä¸ª) |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <returns></returns> |
| | | |
| | | public ApiResponse<Dt_InventoryInfo> OrderFeedback(EdiOrderCallbackRequest request) |
| | | { |
| | |
| | | case "1": //å
¥åº |
| | | { |
| | | Dt_CabinOrder cabinOrder = _cabinOrderServices.Db.Queryable<Dt_CabinOrder>().Where(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == Warecode).Includes(x => x.Details).First(); |
| | | if (cabinOrder == null) throw new Exception($"æªæ¾å°å
¥åºåå·ã{request.externalOrderNo}ãçå
¥åºåä¿¡æ¯"); |
| | | if (cabinOrder == null) |
| | | { |
| | | //æ¥æ¾åå²å
¥åºåï¼å¦ææå°±è¿å0ç»ä¸æ¸¸ |
| | | |
| | | var inHty = _cabinOrderHtyServices.Repository.QueryData(x => x.Order_no == request.externalOrderNo && x.Warehouse_no == Warecode).ToList(); |
| | | if (inHty.Count>0) |
| | | { |
| | | return new ApiResponse<Dt_InventoryInfo> |
| | | { |
| | | code = "0", |
| | | msg = $"æå" |
| | | }; |
| | | } |
| | | throw new Exception($"æªæ¾å°å
¥åºåå·ã{request.externalOrderNo}ãçå
¥åºåä¿¡æ¯"); |
| | | |
| | | } |
| | | if (cabinOrder.OdrderStatus == "已宿") |
| | | return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = $"æå" }; |
| | | WebResponseContent content = _cabinOrderServices.CompleteLKInOrder(cabinOrder, request); |
| | |
| | | case "2": |
| | | { |
| | | Dt_DeliveryOrder deliveryOrder = _deliveryOrderServices.Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == Warecode).Includes(x => x.Details).First(); |
| | | if (deliveryOrder == null) throw new Exception($"æªæ¾å°åºåºåå·ã{request.externalOrderNo}ãçåºåºåä¿¡æ¯"); |
| | | if (deliveryOrder == null) |
| | | { |
| | | var outHty = _deliveryOrderHtyServices.Repository.QueryData(x => x.Out_no == request.externalOrderNo && x.Warehouse_no == Warecode).ToList(); |
| | | if (outHty.Count>0) |
| | | { |
| | | return new ApiResponse<Dt_InventoryInfo> |
| | | { |
| | | code = "0", |
| | | msg = $"æå" |
| | | }; |
| | | } |
| | | throw new Exception($"æªæ¾å°åºåºåå·ã{request.externalOrderNo}ãçåºåºåä¿¡æ¯"); |
| | | } |
| | | if (deliveryOrder.OutStatus == "已宿") |
| | | return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = $"æå" }; |
| | | WebResponseContent content = _deliveryOrderServices.CompleteLKOutOrder(deliveryOrder, request); |
| | |
| | | foreach (var detail in request.details) |
| | | { |
| | | Dt_SupplyTask? supplyTask = supplyTasks.Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo).FirstOrDefault(); |
| | | if (supplyTask == null) throw new Exception($"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãççç¹ä»»å¡"); |
| | | if (supplyTask == null) |
| | | { |
| | | var suppHty = _supplyTaskHtyService.Repository.QueryData(x => x.OrderNo == request.externalOrderNo && x.WarehouseCode == Warecode).ToList(); |
| | | if (suppHty.Count>0) |
| | | { |
| | | return new ApiResponse<Dt_InventoryInfo> |
| | | { |
| | | code = "0", |
| | | msg = $"æå" |
| | | }; |
| | | } |
| | | throw new Exception($"æªæ¾å°è®¢åå·ã{request.externalOrderNo}ãç©æç¼å·ã{detail.productCode}ãççç¹ä»»å¡"); |
| | | } |
| | | |
| | | if (detail.isLossOrProfit == 1) // çäº |
| | | { |
| | | supplyTask.SupplyQuantity = supplyTask.StockQuantity - detail.ea; |
| | |
| | | { |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/exceptionLog"; |
| | | var url = "http://192.168.1.100:80/GYZ2/95fck/exceptionLog"; |
| | | |
| | | var requestData = new |
| | | { |