| | |
| | | using HslCommunication; |
| | | using MailKit.Search; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | |
| | | } |
| | | public IRepository<Dt_InventoryInfo> Repository => BaseDal; |
| | | |
| | | /// <summary> |
| | | /// wcsåä¼ ç»æè°ç¨æçæ¹æ³ |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <returns></returns> |
| | | public ApiResponse<Dt_InventoryInfo> OrderFeedback(EdiOrderCallbackRequest request) |
| | | { |
| | | try |
| | | { |
| | | if (request == null || request.details == null || !request.details.Any()) |
| | | { |
| | | return new ApiResponse<Dt_InventoryInfo> { code = "500", msg = "请æ±åæ°æ æ" }; |
| | | } |
| | | |
| | | BaseDal.Db.Ado.BeginTran(); // å¼å¯äºå¡ |
| | | |
| | | foreach (var detail in request.details) |
| | | { |
| | | // è·åæç»ä¸çæ»å
¥åºæ°éï¼èªå¨è½¬ä¸ºæ£æ°ï¼ |
| | | decimal orderQty = detail.orderDetails? |
| | | .Sum(x => decimal.TryParse(x.quantity, out var q) ? Math.Abs(q) : 0) |
| | | ?? 0; |
| | | |
| | | //çç¹ |
| | | decimal diffQty = detail.stocktakingDetails? |
| | | .Sum(x => Convert.ToDecimal(x.differenceQuantity)) |
| | | ?? 0; |
| | | |
| | | // æ ¹æ®ç©æç¼å· + æ¹æ¬¡å· æ¥æ¾æ¯å¦å·²æåºå |
| | | var entity = BaseDal.Db.Queryable<Dt_InventoryInfo>() |
| | | .First(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo); |
| | | |
| | | if (entity == null) |
| | | { |
| | | // ð ä¸åå¨åæ°å»ºåºåè®°å½ |
| | | entity = new Dt_InventoryInfo |
| | | { |
| | | PalletCode = detail.orderDetails?.FirstOrDefault()?.palletCode ?? "", |
| | | WarehouseCode = 001.ToString(), // é»è®¤åºæ¿ç¼å·ï¼å¯æ ¹æ®ä¸å¡æ¹ |
| | | LocationCode = "", // ææ å¯ç©º |
| | | StockStatus = 1, // ç«åºåºå®ä¸º 1 |
| | | MaterielCode = detail.productCode ?? detail.productName, |
| | | MaterielName = detail.productName ?? "", |
| | | MaterielSpec = detail.productSpecifications ?? "", |
| | | BatchNo = detail.batchNo, |
| | | // 忬¡å
¥åºæ°é = å®é
å
¥åºæ°é |
| | | StockQuantity = 0, |
| | | OutboundQuantity = 0, |
| | | SupplyQuantity = 0, |
| | | InDate = DateTime.Now, |
| | | ProductionDate = detail.finishDate.ToString("yyyy-MM-dd"), |
| | | ShelfLife = 0, |
| | | ValidityPeriod = "", |
| | | Remark = "WCSåä¼ å建" |
| | | }; |
| | | } |
| | | |
| | | switch (request.orderType) |
| | | { |
| | | case "1": // å
¥åº |
| | | entity.StockQuantity += (float)orderQty; |
| | | entity.InDate = DateTime.Now; |
| | | entity.Remark = "å
¥åºååä¼ "; |
| | | break; |
| | | |
| | | case "2": // åºåº |
| | | entity.OutboundQuantity += (float)orderQty; |
| | | entity.StockQuantity -= (float)orderQty; |
| | | if (entity.StockQuantity < 0) entity.StockQuantity = 0; |
| | | entity.Remark = "åºåºååä¼ "; |
| | | break; |
| | | |
| | | case "3": // çç¹ |
| | | if (detail.stocktakingDetails != null && detail.stocktakingDetails.Any()) |
| | | { |
| | | foreach (var stock in detail.stocktakingDetails) |
| | | { |
| | | decimal diff = Convert.ToDecimal(stock.differenceQuantity); |
| | | if (stock.IsProfit == "1") // çç |
| | | { |
| | | entity.SupplyQuantity += (float)Math.Abs(diff); |
| | | } |
| | | else // çäº |
| | | { |
| | | entity.SupplyQuantity -= (float)Math.Abs(diff); |
| | | if (entity.SupplyQuantity < 0) entity.SupplyQuantity = 0; |
| | | } |
| | | entity.PalletCode = stock.palletCode; |
| | | entity.Remark = "çç¹ååä¼ "; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | |
| | | // æå
¥ææ´æ°æ°æ®åº |
| | | if (entity.Id == 0) |
| | | { |
| | | BaseDal.Db.Insertable(entity).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | BaseDal.Db.Updateable(entity).ExecuteCommand(); |
| | | } |
| | | } |
| | | |
| | | BaseDal.Db.Ado.CommitTran(); |
| | | return new ApiResponse<Dt_InventoryInfo> { code = "0", msg = "æå" }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | BaseDal.Db.Ado.RollbackTran(); |
| | | return new ApiResponse<Dt_InventoryInfo> { code = "500", msg = ex.Message }; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// æ¨éå¼å¸¸ä¿¡æ¯ç»ä¸æ¸¸ç³»ç»1.å
¥åºåæ¥å£ï¼2.å
¥åºåæ¥å®ææ¥å£ï¼3.åºåºåæ¥å£ï¼4.åºåºæ¥å®ææ¥å£ï¼5.è¯ååºç¡ä¿¡æ¯åæ¥æ¥å£ï¼6.ä¾åºåä¿¡æ¯æ¥å£ï¼7.客æ·ä¿¡æ¯æ¥å£ï¼8.åºå |
| | | /// </summary> |
| | | public void SendErrorToUpstream(int type, string code, string message, string remark) |
| | | { |
| | | try |
| | | { |
| | | var url = "http://121.37.118.63:80/GYZ2/95fck/exceptionLog"; |
| | | |
| | | var requestData = new |
| | | { |
| | | type = type.ToString(), |
| | | code = code, |
| | | message = message, |
| | | remark = remark |
| | | }; |
| | | |
| | | var result = HttpHelper.Post(url, requestData.ToJsonString()); |
| | | // å¯ä»¥ååºååæ£æ¥ resultCode æ¯å¦ä¸º0 |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | // è¿éä¸è¦åæå¼å¸¸äºï¼é¿å
æ»å¾ªç¯ |
| | | Console.WriteLine("å¼å¸¸æ¥å£æ¨é失败ï¼" + e.Message); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |