using OASystem.Domain.Entities.PersonnelModule; using OASystem.Domain.Enums; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OASystem.Domain.ViewModels.PersonnelModule { /// /// 物品详细信息 View /// public class GoodsInfoView:Pm_GoodsInfo { } #region 物品领用List [SugarTable(tableName: "Pm_GoodsInfo", tableDescription: "物品信息表")] public class GoodsListView { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public string Name { get; set; } public int Type { get; set; } [SugarColumn(IsIgnore = true)] public string TypeName { get; set; } public decimal StockQuantity { get; set; } public string Unit { get; set; } //SugarColumn(IsIgnore = true), [Navigate(NavigateType.OneToMany, nameof(GoodsListReceiveView.GoodsId))] //[Navigate(NavigateType.OneToMany, nameof(GoodsListReceiveView.GoodsId), nameof(Id))] public List Receives { get; set; }//注意禁止给books手动赋值 [SugarColumn(IsIgnore = true)] public decimal WaitAuditQuantity { get { var quantity = 0.00M; if (Receives.Count > 0) { quantity = Receives.Sum(x => x.Quantity); } return quantity; } } [SugarColumn(IsIgnore = true)] public string StockQuantityLabel { get { var str = ""; if (WaitAuditQuantity > 0) { str = $"物品待审核数量合计:{WaitAuditQuantity.ToString("#0.00")}"; } return str; } } public int LastUpdateUserId { get; set; } [Navigate(NavigateType.OneToOne, nameof(Type))] public GoodsListSetDataView TypeData { get; set; } [Navigate(NavigateType.OneToOne, nameof(LastUpdateUserId))] public GoodsListUsersView UserData { get; set; } public DateTime LastUpdateTime { get; set; } public string Remark { get; set; } public int IsDel { get; set; } } [SugarTable(tableName: "Pm_GoodsReceive", tableDescription: "物品领用表")] public class GoodsListReceiveView { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// 商品Id /// Pm_GoodsInfo Id /// public int GoodsId { get; set; } /// /// 领用数量 /// public decimal Quantity { get; set; } /// /// 审核状态 /// public GoodsAuditEnum AuditStatus { get; set; } = GoodsAuditEnum.Pending; public int IsDel { get; set; } } [SugarTable(tableName: "Sys_SetData", tableDescription: "")] public class GoodsListSetDataView { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// /// public string Name { get; set; } } [SugarTable(tableName: "Sys_Users", tableDescription: "")] public class GoodsListUsersView { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } /// /// /// public string CnName { get; set; } } #endregion /// /// 物品类型View /// [SugarTable("Sys_SetDataType")] public class GoodsTypeView { /// /// 物品类型Id /// [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public string Name { get; set; } [Navigate(NavigateType.OneToMany, nameof(GoodsSubTypeView.STid))] public List SubTypeItems { get; set; } public string Remark { get; set; } public int IsDel { get; set; } } /// /// 物品Sub类型 /// View /// [SugarTable("Sys_SetData")] public class GoodsSubTypeView { /// /// 物品类型Id /// [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public int STid { get; set; } public string Name { get; set; } public int IsDel { get; set; } } public class GoodsReceiveView { public int Id { get; set; } public int GroupId { get; set; } public int GoodsId { get; set; } public string GoodsName { get; set; } public decimal Quantity { get; set; } public string Unit { get; set; } public string Reason { get; set; } public string Remark { get; set; } public GoodsAuditEnum AuditStatus { get; set; } public string AuditStatusText { get { return AuditStatus.GetEnumDescription(); } } public int AuditUserId { get; set; } public string AuditUserName { get; set; } public DateTime AuditTime { get; set; } public string CreateUserName { get; set; } public DateTime CreateTime { get; set; } } /// /// /// public class GoodsReceiveListView: GoodsReceiveView { public string GoodsType { get; set; } } public class GoodsReceiveListMobileView : GoodsReceiveListView { public string GroupName { get; set; } } /// /// /// public class GoodsReceiveInfoView : GoodsReceiveView { public string GoodsStorageInfo { get; set; } public object? QuantityInfos { get; set; } public object? GoodsStorageInfoStr { get; set; } public string GoodsType { get; set; } } public class GoodsReceiveInfoMobileView : GoodsReceiveInfoView { public string GroupName { get; set; } } /// /// /// public class GoodsReceiveLinkStorageView { public int StorageId { get; set; } public decimal Quantity { get; set; } } }