using Admin.NET.Core.TaskModule.Enum; using iWareSql.MyDbContext; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareCC.Common.Helper { /// /// 事务记录库存状态、质检状态入参 /// public class TransferStockDetail { /// /// 数量 /// public decimal Quantity { get; set; } /// /// 库存状态 /// public int? StockStatus { get; set; } /// /// 库存状态名称 /// public string StockStatusName { get; set; } /// /// 质检状态 /// public int? StockQcStatus { get; set; } /// /// 质检状态名称 /// public string StockQcStatusName { 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 int? RelationOrderType { get; set; } /// /// 关联单类型名称 /// public string RelationOrderTypeName { get; set; } /// /// 备注 /// public string Remarks { get; set; } } public class LogRecordHelper { /// /// 创建事务记录-仅库存或质检状态或数量变更用 /// /// /// /// /// /// 源信息 /// 目标信息 /// /// public static wms_record_trans CreateWmsRecordTrans(wms_task task, v_wms_stock_quan wmsStockQuanView, TransferDetail sourceTransferDetail, TransferDetail targetTransferDetail, TransferOtherDetail transferOtherDetail) { wms_record_trans addWmsRecordTrans = new wms_record_trans() { Id=Yitter.IdGenerator.YitIdHelper.NextId(), MoveType = (int)task.MoveType, MoveTypeName = task.MoveTypeName, BusinessType = task.BusinessType, BusinessTypeName = task.BusinessTypeName, Batch = wmsStockQuanView.Batch, SupplierBatch = wmsStockQuanView.SupplierBatch, //RelationOrderType = orderType, //RelationOrderTypeName = relationOrderTypeName, //RelationNo = transferOtherDetail?.RelationNo, //RelationNoLineNumber = transferOtherDetail?.RelationNoLineNumber, SourceSNCode = sourceTransferDetail.SNCode, ToSNCode = targetTransferDetail.SNCode, #region 变动属性 SourceQuantity = sourceTransferDetail.Quantity, ToQuantity = targetTransferDetail.Quantity, SourceStockStatus = (int)sourceTransferDetail?.StockStatus, SourceStockStatusName = sourceTransferDetail?.StockStatusName, ToStockStatus = (int)targetTransferDetail?.StockStatus, ToStockStatusName = targetTransferDetail?.StockStatusName, SourceQCStatus = (int)sourceTransferDetail?.StockQcStatus, SourceQCStatusName = sourceTransferDetail?.StockQcStatusName, ToQCStatus = (int)targetTransferDetail?.StockQcStatus, ToQCStatusName = targetTransferDetail?.StockQcStatusName, #endregion SourceAreaCode = sourceTransferDetail.AreaCode, SourceAreaName = sourceTransferDetail.AreaName, SourcePlaceCode = sourceTransferDetail.PlaceCode, SourcePlaceName = sourceTransferDetail.PlaceName, SourceContainerCode = sourceTransferDetail.ContainerCode, SourceContainerName = sourceTransferDetail.ContainerName, ToAreaCode = targetTransferDetail.AreaCode, ToAreaName = targetTransferDetail.AreaName, ToPlaceCode = targetTransferDetail.PlaceCode, ToPlaceName = targetTransferDetail.PlaceName, ToContainerCode = targetTransferDetail.ContainerCode, ToContainerName = targetTransferDetail.ContainerName, ErpCode = wmsStockQuanView.ErpCode, ErpOrderNo = wmsStockQuanView.ErpOrderNo, ErpVoucher = wmsStockQuanView.ErpVoucher, MaterialCode = wmsStockQuanView.MaterialCode, MaterialName = wmsStockQuanView.MaterialName, SupplierCode = wmsStockQuanView.SupplierCode, SupplierName = wmsStockQuanView.SupplierName, MaterialUnit = wmsStockQuanView.MaterialUnit,//库存单位 Remarks = transferOtherDetail?.Remarks, CreateTime = DateTime.Now, CreateUserId = 0, CreateUserName =FormCC.WcsSysUserName }; //变更数量=目标数量-源数量(根据业务场景有正负值,如:收货是正值,发货是负值) addWmsRecordTrans.ChangeQuantity = addWmsRecordTrans.ToQuantity - addWmsRecordTrans.SourceQuantity; return addWmsRecordTrans; } } }