feat: 全系统窗体升级 - 配置驱动通用单据页(BillPage)、原料专用单据页、宽屏弹窗及日期转换优化

This commit is contained in:
2026-08-16 03:58:22 +08:00
parent 1bec470647
commit 9f416561d6
33 changed files with 3379 additions and 96 deletions
@@ -282,14 +282,19 @@ public class DataController : ControllerBase
return matches.Count == 1 ? matches[0] : null;
}
/// <summary>请求体 JSON 序列化选项:大小写不敏感 + 宽松日期解析(兼容 "yyyy-MM-dd HH:mm:ss"</summary>
private static readonly System.Text.Json.JsonSerializerOptions BodyJsonOptions = new()
{
PropertyNameCaseInsensitive = true,
Converters = { new Converters.FlexibleDateTimeConverter() }
};
/// <summary>将请求体 JSON 转换为目标实体对象</summary>
private object? ConvertBody(string table, object body)
{
if (!EntityCatalog.TryGet(table, out var entityType)) return null;
var json = System.Text.Json.JsonSerializer.Serialize(body,
new System.Text.Json.JsonSerializerOptions { PropertyNameCaseInsensitive = true });
return System.Text.Json.JsonSerializer.Deserialize(json, entityType,
new System.Text.Json.JsonSerializerOptions { PropertyNameCaseInsensitive = true });
var json = System.Text.Json.JsonSerializer.Serialize(body, BodyJsonOptions);
return System.Text.Json.JsonSerializer.Deserialize(json, entityType, BodyJsonOptions);
}
/// <summary>提取请求体中出现的字段名(用于部分更新,属性名大小写不敏感)</summary>
@@ -57,7 +57,8 @@ public class MetaController : ControllerBase
["PackageId"] = ("Fims_Package", "PackageNo", null, null),
["GradeId"] = ("BaseCommon_GradeStandard", "Name", null, null),
["RepackId"] = ("RawMaterial_Repack", "PlanNo", null, null),
["PurchaseId"] = ("RawMaterial_Purchase", "BillNo", null, null)
["PurchaseId"] = ("RawMaterial_Purchase", "BillNo", null, null),
["WarehouseId"] = ("RawMaterial_Warehouse", "Name", null, null)
};
/// <summary>
@@ -71,6 +72,8 @@ public class MetaController : ControllerBase
["RawMaterial_Repack"] = ("PlanNo", "RZ", "yyyyMMdd", 3, "", "-"),
["RawMaterial_OutStock"] = ("BillNo", "YLC", "yyyyMMdd", 4, "", "-"),
["RawMaterial_Purchase"] = ("BillNo", "CG", "yyyyMMdd", 4, "", "-"),
["RawMaterial_Warehouse"] = ("Code", "CK", "yyyyMMdd", 3, "", "-"),
["RawMaterial_Inspect"] = ("Code", "YJ", "yyyyMMdd", 3, "", "-"),
["Process_Trial"] = ("BillNo", "SY", "yyyyMMdd", 3, "", "-"),
["Process_ProcessZhuangkou"] = ("Code", "GYZ", "yyyy", 3, "-", "-"),
["Process_Sheet"] = ("SheetNo", "GYD", "yyyyMMdd", 3, "", "-"),
@@ -78,8 +78,20 @@ public class WorkBenchController : ControllerBase
trend.Add(new { date = day.ToString("MM-dd"), weight = sum });
}
// ===== 待办列表(工单 + 工作流审批)=====
var pendingOrders = await _db.Select<ProPlan_WorkOrder>()
.Where(w => w.Flag == 1 && (w.Status == 0 || w.Status == 1 || w.Status == 2 || w.Status == 4))
.OrderByDescending(w => w.AddTime)
.Limit(8)
.ToListAsync(w => new { w.Id, w.OrderNo, w.ProcessZhuangkouId, w.Status, w.PlanStartDate });
// ===== 庄口产量占比(近30天,Top 8=====
var zkIds = trendRaw.Select(x => x.ProcessZhuangkouId).Distinct().ToList();
var zkIds = trendRaw.Select(x => x.ProcessZhuangkouId)
.Concat(warnList.Select(x => x.ProcessZhuangkouId))
.Concat(pendingOrders.Select(x => x.ProcessZhuangkouId))
.Where(id => id > 0)
.Distinct()
.ToList();
var zkNames = new List<Process_ProcessZhuangkou>();
if (zkIds.Count > 0)
{
@@ -88,22 +100,16 @@ public class WorkBenchController : ControllerBase
.ToListAsync();
}
var nameMap = zkNames.ToDictionary(x => x.Id, x => string.IsNullOrEmpty(x.Name) ? $"庄口{x.Id}" : x.Name);
// 庄口名称优先取 Name,其次庄口编号 Code(明码),避免把内部 Id 展示出来
var nameMap = zkNames.ToDictionary(x => x.Id, x => string.IsNullOrEmpty(x.Name) ? (string.IsNullOrEmpty(x.Code) ? $"庄口{x.Id}" : x.Code) : x.Name);
var zhuangkou = trendRaw
.GroupBy(x => x.ProcessZhuangkouId)
.Select(g => new { name = nameMap.GetValueOrDefault(g.Key) ?? $"庄口{g.Key}", value = g.Sum(x => x.OutputWeight) })
.Select(g => new { name = nameMap.GetValueOrDefault(g.Key) ?? "未知庄口", value = g.Sum(x => x.OutputWeight) })
.OrderByDescending(x => x.value)
.Take(8)
.Select(x => (object)x)
.ToList();
// ===== 待办列表(工单 + 工作流审批)=====
var pendingOrders = await _db.Select<ProPlan_WorkOrder>()
.Where(w => w.Flag == 1 && (w.Status == 0 || w.Status == 1 || w.Status == 2 || w.Status == 4))
.OrderByDescending(w => w.AddTime)
.Limit(8)
.ToListAsync(w => new { w.Id, w.OrderNo, w.ProcessZhuangkouId, w.Status, w.PlanStartDate });
var todos = new List<object>();
foreach (var o in pendingOrders)
{
@@ -0,0 +1,30 @@
using System.Globalization;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace F9MES.Api.Converters;
/// <summary>
/// 宽松 DateTime 转换器:
/// 兼容前端 el-date-picker 输出的 "yyyy-MM-dd HH:mm:ss"(空格分隔)以及标准 ISO 8601(T 分隔)格式。
/// 序列化保持与默认一致的 ISO 8601 输出,仅放宽反序列化。
/// </summary>
public class FlexibleDateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
{
var s = reader.GetString();
if (!string.IsNullOrWhiteSpace(s)
&& DateTime.TryParse(s, CultureInfo.InvariantCulture, DateTimeStyles.None, out var dt))
return dt;
return default;
}
if (reader.TokenType == JsonTokenType.Null) return default;
return reader.GetDateTime();
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
=> writer.WriteStringValue(value);
}
@@ -149,6 +149,9 @@ public class InitDataService
// 原料管理
MenuItem("/3", "原料庄口", "/rawmaterial/zhuangkou", "RawMaterial/zhuangkou");
MenuItem("/3", "原料入库", "/rawmaterial/instock", "RawMaterial/instock");
MenuItem("/3", "原料检验", "/rawmaterial/inspect", "RawMaterial/inspect");
MenuItem("/3", "原料仓库", "/rawmaterial/warehouse", "RawMaterial/warehouse");
MenuItem("/3", "仓储环境", "/rawmaterial/envrecord", "RawMaterial/envrecord");
MenuItem("/3", "翻包管理", "/rawmaterial/repack", "RawMaterial/repack");
MenuItem("/3", "原料出库", "/rawmaterial/outstock", "RawMaterial/outstock");
MenuItem("/3", "原料库存", "/rawmaterial/stock", "RawMaterial/stock");
@@ -17,8 +17,8 @@ public class BizBoss_CostAllocate : BaseEntity
[Column]
public long PeriodId { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -47,8 +47,8 @@ public class BizBoss_Profit : BaseEntity
[Column]
public long PeriodId { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -17,8 +17,8 @@ public class Fims_Batch : BaseEntity
[Column(DbType = "varchar(50)")]
public string BatchNo { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -72,8 +72,8 @@ public class Fims_Package : BaseEntity
[Column]
public long BatchId { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -127,8 +127,8 @@ public class Fims_InStock : BaseEntity
[Column(DbType = "varchar(50)")]
public string BillNo { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -262,8 +262,8 @@ public class Fims_OutStockItem : BaseEntity
[Table(Name = "Fims_Stock")]
public class Fims_Stock : BaseEntity
{
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -127,8 +127,8 @@ public class FlexPay_PieceResult : BaseEntity
[Column]
public long EmployeeId { get; set; }
/// <summary>关联工艺庄口ID</summary>
[Description("关联工艺庄口ID")]
/// <summary>关联工艺庄口</summary>
[Description("关联工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
+12 -12
View File
@@ -23,8 +23,8 @@ public class Lims_SpoolCheck : BaseEntity
[Column]
public DateTime CheckDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -83,8 +83,8 @@ public class Lims_BlackBoard : BaseEntity
[Column]
public DateTime CheckDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -138,8 +138,8 @@ public class Lims_Denier : BaseEntity
[Column]
public DateTime CheckDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -203,8 +203,8 @@ public class Lims_Moisture : BaseEntity
[Column]
public DateTime CheckDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -258,8 +258,8 @@ public class Lims_Abnormal : BaseEntity
[Column]
public int CheckType { get; set; } = 0;
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -303,8 +303,8 @@ public class Lims_GradeResult : BaseEntity
[Column(DbType = "varchar(50)")]
public string GradeNo { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -17,8 +17,8 @@ public class ProHou_Daily : BaseEntity
[Column]
public DateTime DailyDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -62,8 +62,8 @@ public class ProHou_SpoolLedger : BaseEntity
[Column(DbType = "varchar(50)")]
public string Code { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -147,8 +147,8 @@ public class ProHou_WeighBig : BaseEntity
[Column(DbType = "varchar(50)")]
public string BillNo { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -17,8 +17,8 @@ public class ProPlan_WorkOrder : BaseEntity
[Column(DbType = "varchar(50)")]
public string OrderNo { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -82,8 +82,8 @@ public class ProPlan_Change : BaseEntity
[Column(DbType = "varchar(50)")]
public string ChangeNo { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -122,8 +122,8 @@ public class ProQian_ShiftTime : BaseEntity
[Column]
public long EmployeeId { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -167,8 +167,8 @@ public class ProQian_CocoonBoiling : BaseEntity
[Column]
public DateTime BoilDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -197,8 +197,8 @@ public class ProQian_ThreadRecord : BaseEntity
[Column]
public DateTime RecordDate { get; set; }
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -52,8 +52,8 @@ public class ProXuan_Daily : BaseEntity
[Column]
public long TeamId { get; set; }
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -97,8 +97,8 @@ public class ProXuan_Quality : BaseEntity
[Column]
public DateTime QualityDate { get; set; }
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -127,8 +127,8 @@ public class ProXuan_Quality : BaseEntity
[Table(Name = "ProXuan_TempStock")]
public class ProXuan_TempStock : BaseEntity
{
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -23,13 +23,13 @@ public class Process_Trial : BaseEntity
[Column]
public int TrialType { get; set; } = 0;
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
/// <summary>工艺庄口ID(可选)</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口(可选)</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -93,8 +93,8 @@ public class Process_ProcessZhuangkou : BaseEntity
[Column(DbType = "decimal(6,2)")]
public decimal Progress { get; set; }
/// <summary>关联原料庄口ID(可选)</summary>
[Description("关联原料庄口ID")]
/// <summary>关联原料庄口(可选)</summary>
[Description("关联原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -183,8 +183,8 @@ public class Process_Sheet : BaseEntity
[Column(DbType = "varchar(100)")]
public string Name { get; set; } = "";
/// <summary>工艺庄口ID</summary>
[Description("工艺庄口ID")]
/// <summary>工艺庄口</summary>
[Description("工艺庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -17,8 +17,8 @@ public class Qums_GrainCount : BaseEntity
[Column(DbType = "varchar(50)")]
public string BillNo { get; set; } = "";
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -11,6 +11,7 @@ namespace F9MES.Domain.RawMaterial;
/// <summary>原料庄口(编号规则:YLZ+yyyyMMdd+3位流水,如 YLZ20260815-001</summary>
[Table(Name = "RawMaterial_Zhuangkou")]
[Description("原料庄口")]
public class RawMaterial_Zhuangkou : BaseEntity
{
/// <summary>庄口编号(自动生成 YLZ20260815-001</summary>
@@ -72,6 +73,51 @@ public class RawMaterial_Zhuangkou : BaseEntity
[Description("状态:0=收茧中 1=已入库 2=翻包中 3=已领完")]
[Column]
public int Status { get; set; } = 0;
/// <summary>综合等级(如 3A/2A/A,参照生丝等级)</summary>
[Description("综合等级")]
[Column(DbType = "varchar(20)")]
public string? Grade { get; set; }
/// <summary>上车茧率(%,缫丝适制性)</summary>
[Description("上车茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? LoadingCocoonRate { get; set; }
/// <summary>上茧率(%,好茧占比)</summary>
[Description("上茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? GoodCocoonRate { get; set; }
/// <summary>茧层率(%,茧层占全茧重比例)</summary>
[Description("茧层率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? ShellRate { get; set; }
/// <summary>出丝率(%,缫丝得丝率)</summary>
[Description("出丝率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? ReelableRate { get; set; }
/// <summary>解舒率(%,缫丝解舒性能)</summary>
[Description("解舒率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? Reelability { get; set; }
/// <summary>含水量/回潮率(%,干茧需防潮)</summary>
[Description("含水量/回潮率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? MoistureRate { get; set; }
/// <summary>建议储存仓库IDRawMaterial_Warehouse</summary>
[Description("建议储存仓库ID")]
[Column]
public long WarehouseId { get; set; }
/// <summary>建议储存期(月)</summary>
[Description("建议储存期(月)")]
[Column]
public int? ShelfLifeMonths { get; set; }
}
/// <summary>原料入库单(磅码单过磅)</summary>
@@ -83,8 +129,8 @@ public class RawMaterial_InStock : BaseEntity
[Column(DbType = "varchar(50)")]
public string BillNo { get; set; } = "";
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -143,8 +189,8 @@ public class RawMaterial_Repack : BaseEntity
[Column(DbType = "varchar(50)")]
public string PlanNo { get; set; } = "";
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -228,8 +274,8 @@ public class RawMaterial_OutStock : BaseEntity
[Column(DbType = "varchar(50)")]
public string BillNo { get; set; } = "";
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -268,8 +314,8 @@ public class RawMaterial_OutStock : BaseEntity
[Table(Name = "RawMaterial_Stock")]
public class RawMaterial_Stock : BaseEntity
{
/// <summary>原料庄口ID</summary>
[Description("原料庄口ID")]
/// <summary>原料庄口</summary>
[Description("原料庄口")]
[Column]
public long ZhuangkouId { get; set; }
@@ -378,3 +424,226 @@ public class RawMaterial_PurchaseItem : BaseEntity
[Column(DbType = "decimal(14,2)")]
public decimal InQuantity { get; set; }
}
/// <summary>原料仓库(干茧仓/冷冻鲜茧仓(冷库)/下脚料仓)</summary>
[Table(Name = "RawMaterial_Warehouse")]
[Description("原料仓库")]
public class RawMaterial_Warehouse : BaseEntity
{
/// <summary>仓库编号</summary>
[Description("仓库编号")]
[Column(DbType = "varchar(50)")]
public string Code { get; set; } = "";
/// <summary>仓库名称</summary>
[Description("仓库名称")]
[Column(DbType = "varchar(100)")]
public string Name { get; set; } = "";
/// <summary>仓库类型:0=干茧仓 1=冷冻鲜茧仓(冷库) 2=下脚料仓</summary>
[Description("仓库类型:0=干茧仓 1=冷冻鲜茧仓 2=下脚料仓")]
[Column]
public int WarehouseType { get; set; } = 0;
/// <summary>库区/仓位说明</summary>
[Description("库区/仓位")]
[Column(DbType = "varchar(200)")]
public string? Area { get; set; }
/// <summary>温度下限(℃,0=不限)</summary>
[Description("温度下限(℃)")]
[Column(DbType = "decimal(8,2)")]
public decimal? TempMin { get; set; }
/// <summary>温度上限(℃,0=不限)</summary>
[Description("温度上限(℃)")]
[Column(DbType = "decimal(8,2)")]
public decimal? TempMax { get; set; }
/// <summary>湿度下限(%RH</summary>
[Description("湿度下限(%RH")]
[Column(DbType = "decimal(8,2)")]
public decimal? HumiMin { get; set; }
/// <summary>湿度上限(%RH,干茧防霉需控制在 60-70</summary>
[Description("湿度上限(%RH")]
[Column(DbType = "decimal(8,2)")]
public decimal? HumiMax { get; set; }
/// <summary>库容量(吨)</summary>
[Description("库容量(吨)")]
[Column(DbType = "decimal(12,2)")]
public decimal? Capacity { get; set; }
/// <summary>当前存量(吨)</summary>
[Description("当前存量(吨)")]
[Column(DbType = "decimal(12,2)")]
public decimal? CurrentLoad { get; set; }
/// <summary>负责人</summary>
[Description("负责人")]
[Column(DbType = "varchar(50)")]
public string? Manager { get; set; }
/// <summary>状态:0=停用 1=启用</summary>
[Description("状态:0=停用 1=启用")]
[Column]
public int Status { get; set; } = 1;
}
/// <summary>仓储环境记录(干茧仓防霉湿度、冷库鲜茧温度巡检)</summary>
[Table(Name = "RawMaterial_EnvRecord")]
[Description("仓储环境记录")]
public class RawMaterial_EnvRecord : BaseEntity
{
/// <summary>仓库IDRawMaterial_Warehouse</summary>
[Description("仓库ID")]
[Column]
public long WarehouseId { get; set; }
/// <summary>记录时间</summary>
[Description("记录时间")]
[Column]
public DateTime RecordTime { get; set; }
/// <summary>实测温度(℃)</summary>
[Description("实测温度(℃)")]
[Column(DbType = "decimal(8,2)")]
public decimal? Temperature { get; set; }
/// <summary>实测湿度(%RH</summary>
[Description("实测湿度(%RH")]
[Column(DbType = "decimal(8,2)")]
public decimal? Humidity { get; set; }
/// <summary>达标状态:0=达标 1=温度超标 2=湿度超标 3=温湿度均超标</summary>
[Description("达标状态:0=达标 1=温度超标 2=湿度超标 3=均超标")]
[Column]
public int AlarmStatus { get; set; } = 0;
/// <summary>处理措施</summary>
[Description("处理措施")]
[Column(DbType = "varchar(200)")]
public string? Measure { get; set; }
/// <summary>记录人</summary>
[Description("记录人")]
[Column(DbType = "varchar(50)")]
public string? Recorder { get; set; }
}
/// <summary>原料检验单(蚕茧入库质检与定级)</summary>
[Table(Name = "RawMaterial_Inspect")]
[Description("原料检验单")]
public class RawMaterial_Inspect : BaseEntity
{
/// <summary>检验单号(YJ+日期+流水)</summary>
[Description("检验单号(YJ+日期+流水)")]
[Column(DbType = "varchar(50)")]
public string Code { get; set; } = "";
/// <summary>原料庄口IDRawMaterial_Zhuangkou</summary>
[Description("原料庄口ID")]
[Column]
public long ZhuangkouId { get; set; }
/// <summary>关联入库单IDRawMaterial_InStock,可空)</summary>
[Description("关联入库单ID")]
[Column]
public long InStockId { get; set; }
/// <summary>检验日期</summary>
[Description("检验日期")]
[Column]
public DateTime CheckDate { get; set; }
/// <summary>蚕茧类型:0=干茧 1=冷冻鲜茧</summary>
[Description("蚕茧类型:0=干茧 1=冷冻鲜茧")]
[Column]
public int CocoonType { get; set; } = 0;
/// <summary>取样重量(kg</summary>
[Description("取样重量(kg")]
[Column(DbType = "decimal(14,2)")]
public decimal? SampleWeight { get; set; }
/// <summary>上车茧率(%</summary>
[Description("上车茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? LoadingCocoonRate { get; set; }
/// <summary>上茧率(%</summary>
[Description("上茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? GoodCocoonRate { get; set; }
/// <summary>下脚茧率(%</summary>
[Description("下脚茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? WasteCocoonRate { get; set; }
/// <summary>茧层率(%</summary>
[Description("茧层率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? ShellRate { get; set; }
/// <summary>出丝率(%</summary>
[Description("出丝率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? ReelableRate { get; set; }
/// <summary>解舒率(%</summary>
[Description("解舒率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? Reelability { get; set; }
/// <summary>含水量/回潮率(%</summary>
[Description("含水量/回潮率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? MoistureRate { get; set; }
/// <summary>霉茧率(%</summary>
[Description("霉茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? MoldyRate { get; set; }
/// <summary>内印茧率(%</summary>
[Description("内印茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? InnerPrintRate { get; set; }
/// <summary>黄斑茧率(%</summary>
[Description("黄斑茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? YellowSpotRate { get; set; }
/// <summary>柴印茧率(%</summary>
[Description("柴印茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? ChaiPrintRate { get; set; }
/// <summary>双宫茧率(%</summary>
[Description("双宫茧率(%")]
[Column(DbType = "decimal(8,2)")]
public decimal? DoubleCocoonRate { get; set; }
/// <summary>综合等级(参照生丝等级 6A-2A/A</summary>
[Description("综合等级")]
[Column(DbType = "varchar(20)")]
public string? Grade { get; set; }
/// <summary>检验结论:0=合格 1=降级 2=拒收</summary>
[Description("检验结论:0=合格 1=降级 2=拒收")]
[Column]
public int Conclusion { get; set; } = 0;
/// <summary>检验员</summary>
[Description("检验员")]
[Column(DbType = "varchar(50)")]
public string? Inspector { get; set; }
/// <summary>备注</summary>
[Description("备注")]
[Column(DbType = "varchar(500)")]
public string? Remark { get; set; }
}
@@ -18,8 +18,8 @@ public class WmsFu_Stock : BaseEntity
[Column]
public long MaterialId { get; set; }
/// <summary>来源庄口ID(工艺庄口,可为0汇总)</summary>
[Description("来源庄口ID")]
/// <summary>来源庄口(工艺庄口,可为0汇总)</summary>
[Description("来源庄口")]
[Column]
public long ProcessZhuangkouId { get; set; }
@@ -53,8 +53,8 @@ public class WmsFu_InStock : BaseEntity
[Column]
public long MaterialId { get; set; }
/// <summary>工艺庄口ID(来源)</summary>
[Description("工艺庄口ID(来源)")]
/// <summary>工艺庄口(来源)</summary>
[Description("工艺庄口(来源)")]
[Column]
public long ProcessZhuangkouId { get; set; }