// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Application.Entity; using DocumentFormat.OpenXml.Bibliography; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static SKIT.FlurlHttpClient.Wechat.Api.Models.ChannelsECMerchantAddFreightTemplateRequest.Types.FreightTemplate.Types; namespace Admin.NET.Application.CommonHelper; /// /// 事务记录库存状态、质检状态入参 /// public class TransferStockDetail { /// /// 数量 /// public decimal Quantity { get; set; } /// /// 库存状态 /// public StockStatusEnum? StockStatus { get; set; } /// /// 质检状态 /// public StockQcStatusEnum? StockQcStatus { get; set; } /// /// 锁定状态 /// public LockStatusEnum? LockStatus { get; set; } /// /// 锁定原因 /// [SugarColumn(ColumnName = "LockReason", ColumnDescription = "锁定原因", Length = 255)] public string? LockReason { get; set; } /// /// 锁定人 /// [SugarColumn(ColumnName = "LockUser", ColumnDescription = "锁定人", Length = 50)] public string? LockUser { get; set; } /// /// 锁定时间 /// [SugarColumn(ColumnName = "LockTime", ColumnDescription = "锁定时间")] public DateTime? LockTime { get; set; } } /// /// 事务记录入参 /// public class TransferDetail : TransferStockDetail { /// /// 跟踪号 /// public string SNCode { get; set; } /// /// 库区 /// public string AreaCode { get; set; } /// /// 库位编号 /// public string PlaceCode { get; set; } /// /// 容器编号 /// public string ContainerCode { get; set; } /// /// 库区名称 /// public string AreaName { get; set; } /// ///库位名称 /// public string PlaceName { get; set; } /// /// 容器名称 /// public string ContainerName { get; set; } } /// /// 事务记录其他入参 /// public class TransferOtherDetail { /// /// 关联单号 /// public string RelationNo { get; set; } /// /// 关联单行号 /// public string RelationNoLineNumber { get; set; } /// /// 备注 /// public string Remarks { get; set; } } public class LogRecordHelper { /// /// 创建库存变动记录 /// /// 业务类型信息 /// 源库存信息 /// 目标库存信息(包含库位 库区) /// 目标库区 /// 目标库位 /// 其他信息(关联单号、行号、备注等) /// public static WmsRecordTrans CreateWmsRecordTrans( WmsBaseBusinessType businessTypeInfo, v_wms_stock_quan sourceStockView, WmsStockQuan toStockQuan, WmsBasePlace toPlace, TransferOtherDetail transferOtherDetail ) { var addWmsRecordTrans = new WmsRecordTrans { MoveType = businessTypeInfo.MoveType, MoveTypeName = businessTypeInfo.MoveTypeName, BusinessType = businessTypeInfo.BusinessTypeValue, BusinessTypeName = businessTypeInfo.BusinessTypeName, Batch = toStockQuan?.Batch, SupplierBatch = toStockQuan?.SupplierBatch, //RelationOrderType = orderType, //RelationOrderTypeName = orderTypeName, RelationNo = transferOtherDetail?.RelationNo, RelationNoLineNumber = transferOtherDetail?.RelationNoLineNumber, SourceSNCode = sourceStockView?.SNCode, SourceQuantity = sourceStockView?.Quantity==null?0: sourceStockView?.Quantity, ToSNCode = toStockQuan?.SNCode, ToQuantity = toStockQuan?.Quantity==null?0 : toStockQuan?.Quantity, SourceStockStatus = sourceStockView?.StockStatus, SourceStockStatusName = sourceStockView?.StockStatusName, ToStockStatus = toStockQuan?.StockStatus, ToStockStatusName = toStockQuan?.StockStatusName, SourceQCStatus = sourceStockView?.QCStatus, SourceQCStatusName = sourceStockView?.QCStatusName, ToQCStatus = toStockQuan?.QCStatus, ToQCStatusName = toStockQuan?.QCStatusName, SourceAreaCode = sourceStockView?.AreaCode, SourceAreaName = sourceStockView?.AreaName, SourcePlaceCode = sourceStockView?.PlaceCode, SourcePlaceName = sourceStockView?.PlaceName, SourceContainerCode = sourceStockView?.ContainerCode, SourceContainerName = sourceStockView?.ContainerName, ToAreaCode = toPlace?.AreaCode, ToAreaName = toPlace?.AreaName, ToPlaceCode = toPlace?.PlaceCode, ToPlaceName = toPlace?.PlaceName, ToContainerCode = toStockQuan?.ContainerCode, //ToContainerName = targetDetail.ContainerName, #region 冻结信息 SourceLockStatus = sourceStockView?.LockStatus, ToLockStatus = toStockQuan?.LockStatus, OperReason = toStockQuan?.OperReason, OperUser = toStockQuan?.OperUser, OperTime = toStockQuan?.OperTime, #endregion ErpCode = toStockQuan?.ErpCode, ErpOrderNo = toStockQuan?.ErpOrderNo, ErpVoucher = toStockQuan?.ErpVoucher, MaterialCode = toStockQuan?.MaterialCode, MaterialName = toStockQuan?.MaterialName, MaterialUnit = toStockQuan?.MaterialUnit, SupplierCode = toStockQuan?.SupplierCode, SupplierName = toStockQuan?.SupplierName, Remarks = transferOtherDetail?.Remarks }; addWmsRecordTrans.ChangeQuantity = addWmsRecordTrans.ToQuantity - addWmsRecordTrans.SourceQuantity; return addWmsRecordTrans; } }