// 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;
|
|
|
|
/// <summary>
|
/// 事务记录库存状态、质检状态入参
|
/// </summary>
|
public class TransferStockDetail
|
{
|
/// <summary>
|
/// 数量
|
/// </summary>
|
public decimal Quantity { get; set; }
|
|
/// <summary>
|
/// 库存状态
|
/// </summary>
|
public StockStatusEnum? StockStatus { get; set; }
|
/// <summary>
|
/// 质检状态
|
/// </summary>
|
public StockQcStatusEnum? StockQcStatus { get; set; }
|
|
|
/// <summary>
|
/// 锁定状态
|
/// </summary>
|
public LockStatusEnum? LockStatus { get; set; }
|
|
|
|
/// <summary>
|
/// 锁定原因
|
/// </summary>
|
[SugarColumn(ColumnName = "LockReason", ColumnDescription = "锁定原因", Length = 255)]
|
|
public string? LockReason { get; set; }
|
|
|
/// <summary>
|
/// 锁定人
|
/// </summary>
|
[SugarColumn(ColumnName = "LockUser", ColumnDescription = "锁定人", Length = 50)]
|
|
public string? LockUser { get; set; }
|
|
|
/// <summary>
|
/// 锁定时间
|
/// </summary>
|
|
[SugarColumn(ColumnName = "LockTime", ColumnDescription = "锁定时间")]
|
public DateTime? LockTime { get; set; }
|
|
|
}
|
|
|
/// <summary>
|
/// 事务记录入参
|
/// </summary>
|
public class TransferDetail : TransferStockDetail
|
{
|
/// <summary>
|
/// 跟踪号
|
/// </summary>
|
public string SNCode { get; set; }
|
|
|
/// <summary>
|
/// 库区
|
/// </summary>
|
public string AreaCode { get; set; }
|
/// <summary>
|
/// 库位编号
|
/// </summary>
|
public string PlaceCode { get; set; }
|
/// <summary>
|
/// 容器编号
|
/// </summary>
|
public string ContainerCode { get; set; }
|
/// <summary>
|
/// 库区名称
|
/// </summary>
|
public string AreaName { get; set; }
|
/// <summary>
|
///库位名称
|
/// </summary>
|
public string PlaceName { get; set; }
|
/// <summary>
|
/// 容器名称
|
/// </summary>
|
public string ContainerName { get; set; }
|
}
|
|
/// <summary>
|
/// 事务记录其他入参
|
/// </summary>
|
public class TransferOtherDetail
|
{
|
/// <summary>
|
/// 关联单号
|
/// </summary>
|
public string RelationNo { get; set; }
|
/// <summary>
|
/// 关联单行号
|
/// </summary>
|
public string RelationNoLineNumber { get; set; }
|
/// <summary>
|
/// 备注
|
/// </summary>
|
public string Remarks { get; set; }
|
|
}
|
public class LogRecordHelper
|
{
|
|
|
|
|
|
/// <summary>
|
/// 创建库存变动记录
|
/// </summary>
|
/// <param name="businessTypeInfo">业务类型信息</param>
|
/// <param name="toStockQuan">源库存信息</param>
|
/// <param name="sourceStockView">目标库存信息(包含库位 库区)</param>
|
/// <param name="toArea">目标库区</param>
|
/// <param name="toPlace">目标库位</param>
|
/// <param name="transferOtherDetail">其他信息(关联单号、行号、备注等)</param>
|
/// <returns></returns>
|
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;
|
}
|
|
|
|
}
|