using FreeSql.DataAnnotations;
using F9WebAiTest.Domain.Common;
namespace F9WebAiTest.Domain.Entities.Prod;
// 选茧日报(对应 F9 生产-选剥茧 XBJ\XJRB 三张表:日报主表 / 计划 / 计划明细)
// 数据口径:
// 1) XjrbRecord 日报:某日某工艺庄口一条,记录干茧领入与 8 类茧(联统/好五级/六级/绵/双宫/下脚/茧衣/茧花)的
// 包数与重量,另含「退回」、合计重量、联统率、盈亏。
// 2) XjrbPlan 计划:按领料单(原料出库单)下达的选茧计划,含计划的 8 类茧与选茧盈亏、是否完成。
// 3) XjrbItem 计划明细:挂在计划下的每日选茧进度行(外键 XjrbPlanId),完成勾选后回写计划盈亏。
//
// 盈亏 / 联统率口径(对齐 F9 GetXjrbCountYingkuiQuery):
// 累计区间 = 同庄口下 Date < 当前日期 的历史日报(含当前录入值)
// yllr = Σ 干茧领入重量(含当前)
// ltj = Σ 联统茧重量(含当前)
// all = Σ (联统+好五级+六级+绵+双宫+下脚+茧衣+茧花) 重量(含当前,不含退回)
// 联统率 = yllr != 0 ? (ltj / yllr) * 100 : 0
// 盈亏 = all - yllr
/// 选茧日报主表(F9 biz_prod_xbj_xjrb)
[Table(Name = "XjrbRecords")]
public class XjrbRecord : BaseEntity
{
public DateTime Date { get; set; } // 选茧日期
public long GyzkId { get; set; } // 工艺庄口
public int YlLrBaoshu { get; set; } // 干茧领入包数
public decimal YlLrZhongliang { get; set; } // 干茧领入重量
public int LtjBaoshu { get; set; } // 联统茧包数
public decimal LtjZhongliang { get; set; } // 联统茧重量
public int HwjjBaoshu { get; set; } // 好五级茧包数
public decimal HwjjZhongliang { get; set; } // 好五级茧重量
public int LjjBaoshu { get; set; } // 六级茧包数
public decimal LjjZhongliang { get; set; } // 六级茧重量
public int MjBaoshu { get; set; } // 绵茧包数
public decimal MjZhongliang { get; set; } // 绵茧重量
public int SgjBaoshu { get; set; } // 双宫茧包数
public decimal SgjZhongliang { get; set; } // 双宫茧重量
public int XjjBaoshu { get; set; } // 下脚茧包数
public decimal XjjZhongliang { get; set; } // 下脚茧重量
public int JyBaoshu { get; set; } // 茧衣包数
public decimal JyZhongliang { get; set; } // 茧衣重量
public int JhBaoshu { get; set; } // 茧花包数
public decimal JhZhongliang { get; set; } // 茧花重量
public decimal TotalZhongliang { get; set; } // 合计重量(上述 8 项重量之和)
public int ThBaoshu { get; set; } // 退回包数
public decimal ThZhongliang { get; set; } // 退回重量
public decimal LiantongRate { get; set; } // 联统率(%)
public decimal Yingkui { get; set; } // 盈亏
}
/// 选茧计划(F9 biz_prod_xbj_xjrb_plan):按领料单下达,含计划盈亏与完成标记
[Table(Name = "XjrbPlans")]
public class XjrbPlan : BaseEntity
{
public DateTime Date { get; set; } // 日期
public long GyzkId { get; set; } // 工艺庄口
public long YllingliaodanId { get; set; } // 领料单(原料出库单)ID
public int YlBaoshu { get; set; } // 原料领入包数
public decimal YlZhongliang { get; set; } // 原料领入重量
public int LtjBaoshu { get; set; } // 联统茧包数
public decimal LtjZhongliang { get; set; } // 联统茧重量
public int HwjjBaoshu { get; set; } // 好五级茧包数
public decimal HwjjZhongliang { get; set; } // 好五级茧重量
public int WjjBaoshu { get; set; } // 五级茧包数
public decimal WjjZhongliang { get; set; } // 五级茧重量
public int SgjBaoshu { get; set; } // 双宫茧包数
public decimal SgjZhongliang { get; set; } // 双宫茧重量
public int XjjBaoshu { get; set; } // 下脚茧包数
public decimal XjjZhongliang { get; set; } // 下脚茧重量
public int JyBaoshu { get; set; } // 茧衣包数
public decimal JyZhongliang { get; set; } // 茧衣重量
public int JhBaoshu { get; set; } // 茧花包数
public decimal JhZhongliang { get; set; } // 茧花重量
public decimal TotalZhongliang { get; set; } // 合计重量
public decimal LiantongRate { get; set; } // 联统率(%)
public decimal Yingkui { get; set; } // 选茧盈亏
public bool IsFinish { get; set; } // 是否选茧完成(完成后禁止改动明细)
}
/// 选茧计划明细(F9 biz_prod_xbj_xjrb_item):挂在计划下的每日选茧进度行
[Table(Name = "XjrbItems")]
public class XjrbItem : BaseEntity
{
public long XjrbPlanId { get; set; } // 选茧计划ID
public DateTime Date { get; set; } // 选茧日期
public int LtjBaoshu { get; set; } // 联统茧包数
public decimal LtjZhongliang { get; set; } // 联统茧重量
public int HwjjBaoshu { get; set; } // 好五级茧包数
public decimal HwjjZhongliang { get; set; } // 好五级茧重量
public int WjjBaoshu { get; set; } // 五级茧包数
public decimal WjjZhongliang { get; set; } // 五级茧重量
public int SgjBaoshu { get; set; } // 双宫茧包数
public decimal SgjZhongliang { get; set; } // 双宫茧重量
public int XjjBaoshu { get; set; } // 下脚茧包数
public decimal XjjZhongliang { get; set; } // 下脚茧重量
public int JyBaoshu { get; set; } // 茧衣包数
public decimal JyZhongliang { get; set; } // 茧衣重量
public int JhBaoshu { get; set; } // 茧花包数
public decimal JhZhongliang { get; set; } // 茧花重量
public decimal TotalZhongliang { get; set; } // 合计重量
public bool IsFinish { get; set; } // 是否选茧完成(勾选后回写计划盈亏)
}