Files
WMS-Api/src/WMS.Web.Domain/Entitys/SerialNumbers.cs
18942506660 2f0e379087 修复bug
2024-04-03 11:07:35 +08:00

151 lines
4.8 KiB
C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using WMS.Web.Core;
using WMS.Web.Domain.Values;
namespace WMS.Web.Domain.Entitys
{
/// <summary>
/// 序列号
/// </summary>
[Serializable]
[Table("t_wms_serialnumbers")]
public class SerialNumbers : EntityBase
{
public SerialNumbers() { }
public SerialNumbers(string serialNumber, string materialNumber, int boxId, int opsBoxId, string creator, DateTime? createTime, DateTime? completeCartonTime)
{
this.SerialNumber = serialNumber;
this.MaterialNumber = materialNumber;
this.BoxId = boxId;
this.OpsBoxId = opsBoxId;
this.Creator = creator;
this.CreateTime = createTime == null ? DateTime.Now : (DateTime)createTime;
this.CompleteCartonTime = completeCartonTime;
}
/// <summary>
/// 主键 订单编号
/// </summary>
[Column("Id")]
public override int Id { get; set; }
/// <summary>
/// 序列号
/// </summary>
[Column("SerialNumber")]
public string SerialNumber { get; set; }
/// <summary>
/// 物料编码
/// </summary>
[Column("MaterialNumber")]
public string MaterialNumber { get; set; }
/// <summary>
/// wms箱ID
/// </summary>
[Column("BoxId")]
public int BoxId { get; set; }
/// <summary>
/// 对应老OPS的箱ID
/// </summary>
[Column("OpsBoxId")]
public int OpsBoxId { get; set; }
/// <summary>
/// 创建人(老ops过来)
/// </summary>
[Column("Creator")]
public string Creator { get; set; }
/// <summary>
/// 创建时间(老ops过来)
/// </summary>
[Column("CreateTime")]
public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 完成装箱时间
/// </summary>
[Column("CompleteCartonTime")]
public DateTime? CompleteCartonTime { get; set; }
/// <summary>
/// 出库单对应销售订单号
/// </summary>
[Column("SalBillNo")]
public string SalBillNo { get; set; }
/// <summary>
/// 出库时间
/// </summary>
[Column("OutStockTime")]
public DateTime? OutStockTime { get; set; }
/// <summary>
/// 采购单号
///</summary>
[Column("PurchaseBillNo")]
public string PurchaseBillNo { get; set; }
/// <summary>
/// 入库时间
/// </summary>
[Column("InStockTime")]
public DateTime? InStockTime { get; set; }
/// <summary>
/// 收货客户
///</summary>
[Column("CustomerId")]
public int CustomerId { get; set; } = 0;
/// <summary>
/// 是否出库
///</summary>
[Column("IsOutStock")]
public bool? IsOutStock { get; set; } = false;
/// <summary>
/// 操作(绑定箱信息)
/// </summary>
/// <param name="destBoxId">目标箱号</param>
public void Bind(int destBoxId, DateTime completeCartonTime)
{
this.BoxId = destBoxId;
this.CompleteCartonTime = completeCartonTime;
}
/// <summary>
/// 解绑
/// </summary>
public void UnBind()
{
this.BoxId = 0;
}
/// <summary>
/// 出库
/// </summary>
/// <param name="outStock">出库单</param>
public void OutStock(OutStock outStock, string materialNumber)
{
var outstockDetail = outStock.Details.FirstOrDefault(f => f.MaterialNumber == materialNumber);
if (outstockDetail == null) return;
//按产品出才解绑 按箱子出不解绑
if (outStock.Method == InventoryInOutMethod.Product)
UnBind();
if (outStock.Type == OutStockType.Sal)
{
this.SalBillNo = JsonConvert.SerializeObject(outstockDetail.ErpDetails.Select(s => s.SaleBillNo).ToList());
this.CustomerId = outStock.ReceiptCustomerId;
this.OutStockTime = DateTime.Now;
}
//标识出库
this.IsOutStock = true;
}
/// <summary>
/// 入库
/// </summary>
/// <param name="inStockBillNo">出库单号</param>
public void InStock(string inStockBillNo, InstockType type)
{
if (type == InstockType.Purchase)
{
this.PurchaseBillNo = inStockBillNo;
this.InStockTime = DateTime.Now;
}
}
}
}