ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/CodeChunks.dbBinary files differ
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.14.1204.46620/SemanticSymbols.dbBinary files differ
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs
@@ -920,52 +920,48 @@ { Type type = typeof(TEntity); Assembly assembly = type.Assembly; Type? htyType = assembly.GetType(type.FullName + "_Hty"); Type? htyType = assembly.GetTypes().FirstOrDefault(t => !t.IsInterface && !t.IsAbstract && type.IsAssignableFrom(t) && typeof(IBaseHistoryEntity).IsAssignableFrom(t)); if (htyType != null) { object? obj2 = Activator.CreateInstance(htyType); PropertyInfo keyPro = typeof(TEntity).GetKeyProperty(); PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType)); PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId)); if (obj2 != null && keyPro != null && operateTypePro != null && sourceIdPro != null) List<object> list = new List<object>(); foreach (var item in entities) { List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList(); List<object> list = new List<object>(); foreach (var item in entities) object? obj = Activator.CreateInstance(htyType); PropertyInfo keyPro = typeof(TEntity).GetKeyProperty(); PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType)); PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId)); if (obj != null && keyPro != null && operateTypePro != null && sourceIdPro != null) { object? obj = Activator.CreateInstance(htyType); if (obj != null) { operateTypePro.SetValue(obj, operateType.ToString()); sourceIdPro.SetValue(obj, keyPro.GetValue(item)); for (int i = 0; i < propertyInfos.Count; i++) { PropertyInfo propertyInfo = propertyInfos[i]; PropertyInfo? property = type.GetProperty(propertyInfo.Name); operateTypePro.SetValue(obj, operateType.ToString()); sourceIdPro.SetValue(obj, keyPro.GetValue(item)); if (property != null) List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList(); for (int i = 0; i < propertyInfos.Count; i++) { PropertyInfo propertyInfo = propertyInfos[i]; PropertyInfo? property = type.GetProperty(propertyInfo.Name); if (property != null && property.CanWrite) { if (propertyInfo.Name == nameof(BaseEntity.Modifier)) { if (propertyInfo.Name == nameof(BaseEntity.Modifier)) { propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System"); } else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate)) { propertyInfo.SetValue(obj, DateTime.Now); } else { propertyInfo.SetValue(obj, property.GetValue(item)); } propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System"); } else { propertyInfo.SetValue(obj, property.GetValue(item)); } } list.Add(obj); } } if (list.Count > 0) _db.InsertableByObject(list).AS(type.Name + "_Hty").ExecuteCommand(); list.Add(obj); } } if (list != null && list.Any()) _db.InsertableByObject(list).AS(htyType.Name).ExecuteCommand(); } return DeleteData(entities); } ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundService.cs
@@ -3,6 +3,7 @@ using Dm.filter; using MailKit.Search; using Mapster; using Microsoft.IdentityModel.Tokens; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using Org.BouncyCastle.Asn1.Ocsp; @@ -1447,7 +1448,6 @@ { if (allocatedQuantity <= 0) break; //if (item.OrderQuantity - item.MoveQty - item.OverOutQuantity >= allocatedQuantity) //{ // item.OverOutQuantity += allocatedQuantity; @@ -1500,7 +1500,7 @@ lockInfo.SortedQuantity = lockInfo.SortedQuantity + actualOutboundQuantity; if (lockInfo.SortedQuantity == lockInfo.AssignQuantity) if (lockInfo.SortedQuantity >= lockInfo.AssignQuantity) { _outboundLockInfoRepository.DeleteAndMoveIntoHty(lockInfo, WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å®æ); } @@ -1546,6 +1546,22 @@ _feedbackMesService.BarcodeFeedback(newBarcode); } // å é¤éå®è®°å½ï¼å¦æåºåºæç»å ¨é¨å®æï¼ ä¸CalculateActualOutboundQuantityæ¹æ³é颿³¨é代ç 2é1ä½¿ç¨ if (CheckOutboundOrderDetailCompletedByMatCode(request.OrderNo, lockInfo.MaterielCode, outboundOrderDetails.First())) { Func<Dt_OutStockLockInfo, bool> supWhere = x => string.IsNullOrEmpty(outboundOrderDetails.First().SupplyCode) ? true : x.SupplyCode == outboundOrderDetails.First().SupplyCode; Func<Dt_OutStockLockInfo, bool> wareWhere = x => string.IsNullOrEmpty(outboundOrderDetails.First().WarehouseCode) ? true : x.WarehouseCode == outboundOrderDetails.First().WarehouseCode; List<Dt_OutStockLockInfo> stockLockInfos = _outboundLockInfoRepository.QueryData(x => x.OrderNo == request.OrderNo && x.MaterielCode == stockDetail.MaterielCode).Where(supWhere).Where(wareWhere).ToList(); if (stockLockInfos != null && stockLockInfos.Any()) { _outboundLockInfoRepository.DeleteAndMoveIntoHty(stockLockInfos, WIDESEA_Core.Enums.OperateTypeEnum.èªå¨å é¤); } } // æ£æ¥åºåºåæ¯å¦å®æ if (CheckOutboundOrderCompleted(request.OrderNo)) { @@ -1556,6 +1572,7 @@ _feedbackMesService.OutboundFeedback(outboundOrder.OrderNo); } } } catch (Exception ex) { @@ -1603,6 +1620,8 @@ /// </summary> private decimal CalculateActualOutboundQuantity(Dt_StockInfoDetail stockDetail, List<Dt_OutboundOrderDetail> outboundDetails, Dt_OutStockLockInfo lockInfo) { // decimal availableOutboundQuantity = lockInfo.AssignQuantity - lockInfo.SortedQuantity; decimal availableOutboundQuantity = lockInfo.AssignQuantity; decimal detailRemainingQuantity = outboundDetails.Sum(x => x.OrderQuantity - x.OverOutQuantity - x.MoveQty);//outboundDetail.OrderQuantity - outboundDetail.OverOutQuantity; @@ -1879,6 +1898,20 @@ return details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty); } /// <summary> /// æ£æ¥åºåºåæç»æ¯å¦å®æ /// </summary> public bool CheckOutboundOrderDetailCompletedByMatCode(string orderNo, string materialCode, Dt_OutboundOrderDetail outboundOrderDetail) { Dt_OutboundOrder outboundOrder = _outboundRepository.QueryFirst(x => x.OrderNo == orderNo); if (outboundOrder == null) return false; List<Dt_OutboundOrderDetail> details = _detailRepository.QueryData(x => x.OrderId == outboundOrder.Id && x.MaterielCode == materialCode && (string.IsNullOrEmpty(outboundOrderDetail.SupplyCode) || x.SupplyCode == outboundOrderDetail.SupplyCode) && (string.IsNullOrEmpty(outboundOrderDetail.WarehouseCode) || x.WarehouseCode == outboundOrderDetail.WarehouseCode)); // æ£æ¥æææç»çå·²åºæ°éæ¯å¦é½çäºåæ®æ°é return details.All(x => x.OverOutQuantity >= x.OrderQuantity - x.MoveQty); } #endregion #region å空箱