´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/fdd7913b-53cb-4968-b953-7b7a7fdaa3e3.vsidxBinary files differ
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs
@@ -27,17 +27,10 @@ WebResponseContent MaterielGroup(SaveModel saveModel); /// <summary> /// å ¥åºå®æä¸æ¥ å¼ç¨ /// </summary> /// <returns></returns> #region å¼ç¨ WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo,Dt_InboundOrder inboundOrder, List<ERPInboundDetailModel> detailModels); #endregion /// <summary> /// å ¥åºå®æä¸æ¥ /// </summary> /// <returns></returns> WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder,List<Dt_StockInfoDetail> stockInfoDetails); WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder); /// <summary> /// /// </summary> ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs
@@ -24,5 +24,6 @@ WebResponseContent TestOutUpload(int id,List<Dt_OutStockLockInfo>? outStockLockInfos=null); string CreateCodeByRule(string ruleCode); ERPIssueModel GetERPIssueModel(Dt_OutboundOrder outboundOrder, string WarehouseCode); WebResponseContent PushERPOutBound(int outId, string WarehouseCode); } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs
@@ -342,7 +342,6 @@ List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>(); List<int> detailKeys = new List<int>(); int newCount = 0; foreach (var model in models) { if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null) @@ -373,7 +372,7 @@ EffectiveDate = model.EffectiveDate, InboundOrderRowNo = notGroupDetail.RowNo, }; newCount++; oldCount++; if (stockInfo.Id > 0) { @@ -389,8 +388,7 @@ } //å ¥åºæç»æ°å¢å®ææ°é //int newCount = inboundOrderDetails.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; if (inboundOrder.Details.Count == (newCount + oldCount)) if (inboundOrder.Details.Count == oldCount) { inboundOrder.OrderStatus = InOrderStatusEnum.å ¥åºå®æ.ObjToInt(); } @@ -412,39 +410,9 @@ _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.Inbound); _unitOfWorkManage.CommitTran(); #region 䏿¥ERPå ¥åºå®æ List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>(); foreach (var item in stockInfo.Details) { ERPInboundDetailModel detailModel = new ERPInboundDetailModel() { ExpiryDate = item.EffectiveDate ?? "", LocationCode = warehouse.WarehouseCode, MaterialsCode = item.MaterielCode, MfgDate = item.ProductionDate ?? "", QtyCustoms = "0", Quantity = item.StockQuantity.ToString(), Rack = stockInfo.LocationCode, ReceiptCode = inboundOrder.UpperOrderNo, ReceiptSerNo = item.InboundOrderRowNo.ToString() }; detailModels.Add(detailModel); } ERPInboundModel eRPInboundModel = new ERPInboundModel() { Code = CreateCodeByRule(nameof(RuleCodeEnum.RLCodeRule)), CreatorCode = inboundOrder.Creater, EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), SuppliersId = inboundOrder.SupplierId, Type = "S", UniqueTag = inboundOrder.Id.ToString(), WarehouseCode = warehouse.WarehouseCode, Way = 1, Details = detailModels }; //æ¨éERP æµè¯æ³¨é _invokeERPService.InvokeInboundOrderApi(eRPInboundModel); #region å ¥åºå®æä¸æ¥ERP if (inboundOrder.OrderStatus == InOrderStatusEnum.å ¥åºå®æ.ObjToInt()) FeedbackInboundOrder(inboundOrder); #endregion content.OK(); } @@ -766,59 +734,10 @@ return content; } /// <summary> /// å ¥åºå®æä¸æ¥ERP å¼ç¨ /// </summary> /// <returns></returns> #region å¼ç¨ public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, List<ERPInboundDetailModel> detailModels) { WebResponseContent content = new WebResponseContent(); try { if (inboundOrder.Details.Count == 0) { return WebResponseContent.Instance.Error($"æªæ¾å°å ¥åºåæç»ä¿¡æ¯"); } if (inboundOrder.OrderStatus == InOrderStatusEnum.å ¥åºå®æ.ObjToInt()) { return WebResponseContent.Instance.Error($"å ¥åºåæ®å·²å®æ"); } Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId); if (warehouse == null) { return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); } ERPInboundModel model = new ERPInboundModel() { Code = CreateCodeByRule(nameof(RuleCodeEnum.RLCodeRule)), CreatorCode = inboundOrder.Creater,//æµè¯ EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), SuppliersId = inboundOrder.SupplierId, Type = "S", UniqueTag = inboundOrder.Id.ToString(), WarehouseCode = warehouse.WarehouseCode, Way = 1, Details = detailModels }; //æ¨éERP æµè¯æ³¨é _invokeERPService.InvokeInboundOrderApi(model); return WebResponseContent.Instance.OK(); } catch (Exception ex) { _unitOfWorkManage.RollbackTran(); content.Error(ex.Message); } return content; } #endregion /// <summary> /// å ¥åºå®æä¸æ¥ERP /// </summary> /// <returns></returns> public WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder, List<Dt_StockInfoDetail> stockInfoDetails) public WebResponseContent FeedbackInboundOrder(Dt_InboundOrder inboundOrder) { WebResponseContent content = new WebResponseContent(); try @@ -827,25 +746,20 @@ { return WebResponseContent.Instance.Error($"æªæ¾å°å ¥åºåæç»ä¿¡æ¯"); } List<Dt_StockInfoDetail> stockInfoDetails = _stockRepository.StockInfoDetailRepository.QueryData(x => x.OrderNo == inboundOrder.InboundOrderNo); if (stockInfoDetails.Count==0) { return WebResponseContent.Instance.Error($"æªæ¾å°åºåæç»ä¿¡æ¯"); } List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.QueryData(x => stockInfoDetails.Select(x => x.StockId).ToList().Contains(x.Id)); Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId); if (warehouse == null) { return WebResponseContent.Instance.Error($"æªæ¾å°ä»åºä¿¡æ¯"); } List<ERPInboundDetailModel>? detailModels = null; List<ERPInboundDetailModel>? detailModels = new List<ERPInboundDetailModel>(); foreach (var item in stockInfoDetails) { Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.Id == item.StockId); if (detailModels!=null && detailModels.FirstOrDefault(x=>x.Rack==stockInfo.LocationCode)!=null) { var detailModel = detailModels.FirstOrDefault(x => x.Rack == stockInfo.LocationCode); detailModel.Quantity = (Convert.ToDouble(detailModel.Quantity) + item.StockQuantity).ToString(); } else { ERPInboundDetailModel detailModel = new ERPInboundDetailModel() { @@ -855,17 +769,16 @@ MfgDate = item.ProductionDate ?? "", QtyCustoms = "0", Quantity = item.StockQuantity.ToString(), Rack = stockInfo.LocationCode, Rack = stockInfos.FirstOrDefault(x => x.Id == item.StockId).LocationCode, ReceiptCode = inboundOrder.UpperOrderNo, ReceiptSerNo = item.InboundOrderRowNo.ToString() }; detailModels.Add(detailModel); } } ERPInboundModel model = new ERPInboundModel() { Code = CreateCodeByRule(nameof(RuleCodeEnum.RLCodeRule)), CreatorCode = inboundOrder.Creater,//æµè¯ CreatorCode = inboundOrder.Creater, EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), SuppliersId = inboundOrder.SupplierId, @@ -875,7 +788,7 @@ Way = 1, Details = detailModels }; //æ¨éERP æµè¯æ³¨é //æ¨éERP _invokeERPService.InvokeInboundOrderApi(model); return WebResponseContent.Instance.OK(); } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs
@@ -628,5 +628,36 @@ return WebResponseContent.Instance.Error(ex.Message); } } /// <summary> /// æ ¹æ®åºåºåæ¨éERPç³»ç» /// </summary> /// <param name="outId"></param> /// <param name="WarehouseCode"></param> /// <returns></returns> public WebResponseContent PushERPOutBound(int outId, string WarehouseCode) { WebResponseContent content=new WebResponseContent(); try { //è·ååºåºå Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.Id == outId).Includes(x => x.Details).First(); if (outboundOrder == null) { return content.Error("åºåºåä¸åå¨"); } if (outboundOrder.Details.Count!=(outboundOrder.Details.Where(x=>x.OrderDetailStatus==OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count)||outboundOrder.OrderStatus!=OutOrderStatusEnum.åºåºå®æ.ObjToInt()) { return content.Error("该åºåºåæªå®æ"); } ERPIssueModel issueModel = GetERPIssueModel(outboundOrder, WarehouseCode); string response=_invokeERPService.InvokeOutStandardsApi(issueModel); return content.OK(response); } catch (Exception ex) { content.Error(ex.Message); } return content; } } } ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -214,16 +214,15 @@ #endregion Dt_InboundOrder? inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == stockInfo.Details.FirstOrDefault().OrderNo).Includes(x => x.Details).First(); Dt_InboundOrderDetail? inboundOrderDetail = null; List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>(); if (stockInfo.StockStatus == StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt()) { if (inboundOrder == null) { return WebResponseContent.Instance.Error($"对åºå ¥åºåä¸åå¨"); } //æ¥è¯¢å宿çå ¥åºæç»æ°é int overCount = inboundOrder.Details.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count; Dt_InboundOrderDetail? inboundOrderDetail = null; if (stockInfo.StockStatus == StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt()) { inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.RowNo == stockInfo.Details.FirstOrDefault()?.InboundOrderRowNo); foreach (var item in stockInfo.Details) { @@ -253,12 +252,11 @@ { inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Inbounding.ObjToInt(); } detailModels.Add(detailModel); } } if (inboundOrder.Details.Count == overCount) { inboundOrder.OrderStatus = InOrderStatusEnum.å ¥åºå®æ.ObjToInt(); } } if ((stockInfo.StockStatus == StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt() || stockInfo.StockStatus == StockStatusEmun.æå¨ç»çå ¥åºç¡®è®¤.ObjToInt()) && warehouse.WarehouseCode == WarehouseEnum.HA64.ToString()) @@ -292,20 +290,14 @@ _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details); _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationStatusEnum.InStock, LocationChangeType.InboundCompleted); _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, stockInfo.Details.Sum(x => x.StockQuantity), stockInfo.Details.Sum(x => x.StockQuantity), StockChangeTypeEnum.Inbound, taskNum); if (inboundOrder != null) { _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder); if (inboundOrderDetail!=null) { _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail); } } _unitOfWorkManage.CommitTran(); if (stockInfo.StockStatus == StockStatusEmun.å ¥åºç¡®è®¤.ObjToInt() && inboundOrder.OrderStatus== InOrderStatusEnum.å ¥åºå®æ.ObjToInt()) { List<Dt_StockInfoDetail> stockInfoDetails = _stockRepository.StockInfoDetailRepository.QueryData(x => x.OrderNo == inboundOrder.InboundOrderNo); _inboundOrderService.FeedbackInboundOrder(inboundOrder, stockInfoDetails); } if (inboundOrder.OrderStatus == InOrderStatusEnum.å ¥åºå®æ.ObjToInt()) _inboundOrderService.FeedbackInboundOrder(inboundOrder); return WebResponseContent.Instance.OK(); } catch (Exception ex) ´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Outbound/OutboundOrderController.cs
@@ -63,5 +63,16 @@ { return Service.CreateCodeByRule(nameof(RuleCodeEnum.FLCodeRule)); } /// <summary> /// 使ç¨åºåºå宿ERPåºåºæ¨é /// </summary> /// <param name="outId">åºåºåID</param> /// <param name="WarehouseCode">ä»åºä»£å·</param> /// <returns></returns> [HttpPost, Route("PushERPOutBound"), AllowAnonymous] public WebResponseContent PushERPOutBound(int outId, string WarehouseCode) { return Service.PushERPOutBound(outId, WarehouseCode); } } }