using System.Diagnostics;
using Admin.NET.Core;
using Admin.NET.Plugin.AiDOP.Entity;
using SqlSugar;
namespace Admin.NET.Plugin.AiDOP.Infrastructure;
///
/// 运营指标主数据种子:从 KPI 清单 Excel 灌入 115 条指标(L1=32, L2=60, L3=23)。
///
public static class AidopKpiMasterSeed
{
public static void EnsureSeed(ISqlSugarClient db, long tenantId = 0)
{
if (tenantId <= 0)
tenantId = SqlSugarConst.DefaultTenantId;
try
{
if (db.Queryable().Where(x => x.TenantId == tenantId).Any())
return;
SeedAll(db, tenantId);
}
catch (Exception ex)
{
Trace.TraceWarning("KpiMaster seed: " + ex);
}
}
private static void SeedAll(ISqlSugarClient db, long tenantId)
{
// ── L1 ──
var l1_s1_1 = Ins(db, tenantId, "S1_L1_001", "S1", 1, null, "订单评审周期(天)", "天", "lower_is_better", 1, true,
"从订单下达到交期确认的时长",
"每个订单的评审周期=D2-D1",
"1、订单评审周期=统计期间订单评审时长合计/统计期订单总数\n2、例如:3月有20个订单,订单评审时长合计30天,订单评审周期=30/20=1.5天",
"S1-订单管理", "天", "供应链/计划部",
"rdate", "销售订单-下单日期(系统还需记录订单交期确认日期,此功能待开发)");
var l1_s1_2 = Ins(db, tenantId, "S1_L1_002", "S1", 1, null, "订单评审满足率(%)", "%", "higher_is_better", 2, true,
"规定时间内交期确认的订单占总订单的比例",
"规定时间内交期确认的订单数量/订单总数",
"1、规定时间内交期确认的订单数量=从订单下达之日起3天内完成交期确认的订单数量,规定时间可配置\n2、例如:4月30个订单,3天内交期确认25个订单,评审满足率=25/30=83%",
"S1-订单管理", "天", "供应链/计划部",
"", "");
var l1_s1_3 = Ins(db, tenantId, "S1_L1_003", "S1", 1, null, "主计划人效(行/人)", "行/人", "higher_is_better", 3, true,
"统计期内交期确认的订单行数比主计划人数",
"统计期内交期确认的订单行数/主计划人数",
"1、统计期内交期确认的订单行数量=某月完成交期确认的订单行数量\n2、例如:5月完成交期确认的订单有300行主计划3人,主计划人效=300/3=100行/人",
"S1-订单管理", "天", "供应链/计划部",
"", "");
var l1_s1_4 = Ins(db, tenantId, "S1_L1_004", "S1", 1, null, "成品库存周转(天)", "天", "lower_is_better", 4, true,
"成品库存周转天数",
"(D2/D1)*30天",
"1、成品库存周转天数计算:月均销售成本指当月成品销售成本,月初和月末库存指计算日所在月度的期初和期末库存金额,例如:6月30日计算日,D1=(6月销售成本)=100万,D2=(6月1日库存+6月30日库存)/2=200万,成品库存周转天数=200/100=2*30天=60天\n2、每个SKU的在库库存周转天数计算:月平均库存数量/月销售出库数量,例如:5月30日计算日,D1=(5月销售出库数量)=50个,D2=5月平均库存数量=150个,SKU库存周转天数=150/50*30天=90天\n3、月度销售成本=成品BOM物料*单价*销售出库数量,库存成本=成品BOM物料*单价*库存数量",
"S7-成品仓储", "天", "供应链/计划部",
"", "");
var l1_s2_1 = Ins(db, tenantId, "S2_L1_001", "S2", 1, null, "订单排程周期(天)", "天", "lower_is_better", 5, true,
"从订单交期确认到完成订单生产排程的时长",
"每个订单的排程周期=D2-D1",
"1、订单排程周期=∑(订单行对应工单排程完成日期-订单交期确认日期)/订单行数\n2、例如:订单有3行,订单排程周期=(1+2+2)/3=1.6天",
"S2-生产排程", "天", "供应链/计划部",
"", "");
var l1_s2_2 = Ins(db, tenantId, "S2_L1_002", "S2", 1, null, "订单排程满足率(%)", "%", "higher_is_better", 6, true,
"规定时间内完成生产排程的订单占总订单的比例",
"规定时间内完成生产排程的订单数量/订单总数",
"1、规定时间内完成排程的订单数量=从订单下达之日起3天内完成完成排程的订单数量,规定时间可配置\n2、例如:4月有30个订单,8小时内完成排程20个订单,订单排程满足率=20/30=67%",
"S2-生产排程", "天", "供应链/计划部",
"", "");
var l1_s2_3 = Ins(db, tenantId, "S2_L1_003", "S2", 1, null, "订单排程人效(行/人)", "行/人", "higher_is_better", 7, true,
"统计期内完成生产排程的订单行数比生产计划人数",
"统计期内完成生产排程的订单行数/生产计划人数",
"1、统计期内完成排程的订单行数量=某月完成完成排程的订单行数量\n2、例如:5月完成完成排程的订单有300行生产计划5人,订单排程人效=300/5=60行/人",
"S2-生产排程", "天", "供应链/计划部",
"", "");
var l1_s2_4 = Ins(db, tenantId, "S2_L1_004", "S2", 1, null, "在制库存周转(天)", "天", "lower_is_better", 8, true,
"在制库存的周转天数\n(衡量在制品库存健康度,以较少的生产投入满足交付需求,提高资金周转效率)",
"D1/D2*30天",
"1、在制库存周转天数计算:月度工单入库成本指当月生产工单合格入库的成本金额,月平均在制库存指统计月度期初和期末库存金额的平均值,例如:6月30日计算日,D1=(6月1日在制库存+6月30日在制库存)/2=50万,D2=(6月生产工单入库成本)=100万,在制库存周转天数=50/100=0.5*30天=15天\n2、SKU的在制库存周转天数计算:月平均在制库存数量/月入库数量,例如:5月30日计算日,D1=(5月平均在制库存数量)=50个,D2=5月入库数量=150个,SKU在制库存周转天数=50/150*30天=10天",
"S6-生产执行", "天", "供应链/计划部\n生产部",
"QtyOrder、QtyComplete、QtyChangeAdvance、QtyChangeOut、createTime", "工单在制数量、进出存-出库-入库-交易时间");
var l1_s3_1 = Ins(db, tenantId, "S3_L1_001", "S3", 1, null, "物料计划周期(天)", "天", "lower_is_better", 9, true,
"从订单生产排程完成到物料交货计划发布的时长",
"每个订单的物料计划周期=D2-D1",
"1、物料计划周期=统计期间物料计划时长合计/统计期订单总数\n2、例如:3月有20个订单,物料计划时长合计60天,物料计划周期=60/20=3天",
"S3-物料计划", "天", "供应链/计划部",
"", "");
var l1_s3_2 = Ins(db, tenantId, "S3_L1_002", "S3", 1, null, "物料计划满足率(%)", "%", "higher_is_better", 10, true,
"规定时间内完成物料计划的工单占总工单的比例",
"规定时间内完成物料计划的工单数量/工单总数",
"1、规定时间内完成物料计划的工单数量=从工单下达之日起3天内完成完成物料计划的工单数量,规定时间可配置\n2、例如:4月有30个工单,规定时间内完成完成物料计划有20个工单,物料计划满足率=20/30=",
"S3-物料计划", "天", "供应链/计划部",
"", "");
var l1_s3_3 = Ins(db, tenantId, "S3_L1_003", "S3", 1, null, "物料计划人效(行/人)", "行/人", "higher_is_better", 11, true,
"统计期内完成物料计划的行数比物料计划人数",
"统计期内完成物料计划的行数/物料计划人数",
"1、统计期内完成物料计划的工单行数量=某月完成完成物料计划的工单行数量\n2、例如:5月完成完成物料计划的行数有500行物料计划5人,物料计划人效=500/5=100行/人",
"S3-物料计划", "天", "供应链/计划部",
"", "");
var l1_s3_4 = Ins(db, tenantId, "S3_L1_004", "S3", 1, null, "物料库存周转(天)", "天", "lower_is_better", 12, true,
"从物料收货到配送至线边的库存(含半成品)周转天数\n(衡量物料计划和采购掌控物料供应链的能力,以较少的物料库存资金占用满足生产需求)",
"D1/D2*30天",
"1、物料库存周转天数计算:当月出库成本指当月出库物料成本金额,月平均库存指月度期初和期末库存金额的平均值,例如:6月,D1=(6月1日物料库存+6月30日物料库存)/2=600万,D2=(6月生产物料出库成本)=200万,物料库存周转=600/200=3*30天=90天,每个SKU的库存周转天数={(月初库存数量+月末库存数量)/2}/过去30天平均每天出库数量\n2、出库成本=物料单价*出库数量;库存金额=物料单价*库存数量",
"S5-物料仓储", "天", "供应链/计划部",
"UpdateTime、QtyRct、AvailStatusQty、Assay", "生产领料单-修改日期、已发数量\n日库存记录-非限制库存+质检库存、创建时间");
var l1_s4_1 = Ins(db, tenantId, "S4_L1_001", "S4", 1, null, "物料交货周期(天)", "天", "lower_is_better", 13, true,
"用于度量从物料交货计划发布到物料收货之间的天数。\n(衡量物料交付周期,识别瓶颈物料缩短交付周期)",
"D=物料交货单收货日期-物料交货单发布日期",
"1、每月统计当月物料的平均交付周期。\n2、例如:3月交付的物料共3次,则该物料的平均交货周期=(10+8+7)/3=8.3天。",
"S4-交货管理", "天", "采购部",
"submitdate\njhshrq\nsuppliercode", "交货单-发布日期\n交货单-收货日期");
var l1_s4_2 = Ins(db, tenantId, "S4_L1_002", "S4", 1, null, "物料交货满足率(%)", "%", "higher_is_better", 14, true,
"用于度量按时完成交货的交货单比例。\n(衡量物料交付满足率,识别瓶颈物料提高满足率)",
"S=按时完成物料交货单数量/物料交货单总数",
"1、每月统计当月物料的平均交付周期。\n2、例如:3月交付的物料共3次,则该物料的平均交付周期=(100%+80%+70%)/3=83.3%。",
"S4-交货管理", "天", "采购部",
"submitdate\njhshrq\nsuppliercode", "交货单-发布日期\n交货单-收货日期");
var l1_s4_3 = Ins(db, tenantId, "S4_L1_003", "S4", 1, null, "物料采购人效(颗/人)", "颗/人", "higher_is_better", 15, true,
"统计期内完成收货的物料数量比物料采购人数\n(衡量物料采购工作效率)",
"H=完成收货的物料数量/物料采购人数",
"1、每月统计当月物料采购人效。\n2、例如:3月交付的物料数量1000颗/采购人数4人,则物料采购人效=1000/4=250颗/人。",
"S4-交货管理", "天", "采购部",
"", "");
var l1_s4_4 = Ins(db, tenantId, "S4_L1_004", "S4", 1, null, "采购在途周转(天)", "天", "lower_is_better", 16, true,
"采购在途周转天数\n(分析从供应商发出物料到收货,以较少的采购资金占用满足生产物料需求)",
"D1/D2*30天",
"1、采购在途周转天数计算:当月入库成本指当月物料入库金额,月平均物料成本指物料采购在途金额,例如:6月,D1=6月30日物料采购在途金额=300万,D2=(6月物料入库成本)=200万,物料库存周转=300/200=1.5*30天=45天,每个SKU的在途库存周转天数={(月初库存数量+月末库存数量)/2}/过去30天平均每天入库数量\n2、入库成本=物料单价*入库数量;库存金额=物料单价*在途数量",
"S4-交货管理", "天", "采购部",
"", "");
var l1_s5_1 = Ins(db, tenantId, "S5_L1_001", "S5", 1, null, "物料上线周期(天)", "天", "lower_is_better", 17, true,
"物料从收货到物料配送到生产线完成的时长\n(衡量工单物料配送到生产线的时效)",
"物料上线周期=(物料配送到生产线日期-物料收货日期)",
"1、物料上线周期=物料发到生产线日期-物料收货日期,例如:某工单物料上线周期=3月5日-3月1日=4天;\n2、物料X批次上线周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的物料上线周期=(2+3+3+2+4)/5=2.8天;",
"S5-物料仓储", "天", "仓储物流部",
"", "是否可以用工单投产日期=物料配送到生产线日期");
var l1_s5_2 = Ins(db, tenantId, "S5_L1_002", "S5", 1, null, "物料上线满足率(%)", "%", "higher_is_better", 18, true,
"用于度量按时完成上线的工单物料比例。\n(衡量物料上线满足率,识别瓶颈物料提高满足率)",
"S=工单开工日期前完成物料上线行数/工单物料总行数",
"1、每月统计当月工单物料的平均上线满足率。\n2、例如:3月工单物料共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l1_s5_3 = Ins(db, tenantId, "S5_L1_003", "S5", 1, null, "物料仓储人效(个/人)", "个/人", "higher_is_better", 19, true,
"统计期内完成物料上线的工单物料数量比物料仓储人数\n(衡量物料仓储工作效率)",
"H=完成上线的工单物料数量/物料仓储人数",
"1、每月统计当月物料仓储人效。\n2、例如:3月上线的工单物料共10000个/仓储人数4人,则该物料仓储人效=10000/4=2500个/人。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l1_s6_1 = Ins(db, tenantId, "S6_L1_001", "S6", 1, null, "订单制造周期(天)", "天", "lower_is_better", 20, true,
"从订单投产到订单完工的时长",
"每个订单的制造周期=D2-D1",
"1、订单制造周期=最晚一行物料的完工日期-最早一行物料的投产日期\n2、例如:订单有5行物料,最晚一行物料的完工日期是12月31日,最早一行物料的投产日期是12月1日,则订单制造周期=12月31日-12月1日=30天",
"S6-生产执行", "天", "生产部",
"", "");
var l1_s6_2 = Ins(db, tenantId, "S6_L1_002", "S6", 1, null, "订单制造满足率(%)", "%", "higher_is_better", 21, true,
"计划时间内完成制造的订单占总订单的比例",
"计划时间内完成制造的订单数量/订单总数",
"1、计划时间内完成制造的订单数量=按订单的物料行数分别统计\n2、例如:订单有3行物料,则订单制造满足率=(100+120+150)/(120+150+200)=79%",
"S6-生产执行", "天", "生产部",
"", "");
var l1_s6_3 = Ins(db, tenantId, "S6_L1_003", "S6", 1, null, "订单制造人效(个/人)", "个/人", "higher_is_better", 22, true,
"统计期内完成制造的订单数量比生产人数",
"统计期内完成制造的订单数量/生产人数",
"1、统计期内完成制造的订单数量=某订单有5个工单合计完成制造的数量\n2、例如:5月完成制造的订单数量10000个,生产10人,订单制造人效=10000/10=1000个/人",
"S6-生产执行", "天", "生产部",
"", "");
var l1_s7_1 = Ins(db, tenantId, "S7_L1_001", "S7", 1, null, "订单发货周期(天)", "天", "lower_is_better", 23, true,
"销售订单从FQC报检到完成发货的天数\n(衡量销售订单发货时效)",
"订单发货周期=(订单最后一行物料发货日期-订单最先一行物料FQC报检日期)",
"1、订单发货周期=最晚一行物料的发货日期-最早一行物料的FQC报检日期\n2、例如:订单有5行物料,最晚一行物料的发货日期是12月31日,最早一行物料的FQC报检日期是12月11日,则订单发货周期=12月31日-12月11日=20天",
"S7-FQC检验\nS7-发货管理", "天", "质量部\n仓储物流部",
"", "");
var l1_s7_2 = Ins(db, tenantId, "S7_L1_002", "S7", 1, null, "订单发货满足率(%)", "%", "higher_is_better", 24, true,
"按订单确认的交货日期完成发货的行数占比\n(衡量仓库发货能力指标,更好服务销售)",
"(D1/D2)*100%",
"1、订单发货满足率=在确认交期前发货的行数/该订单总行数*100%,例如:订单共10行,8行在交期前全部发货,2行未发货,则订单发货满足率=80%;\n2、例如:6月份10个订单共100行,其中在交货日期前完成发货的共80行,则6月份的订单发货满足率=80/100*100%=80%;",
"S7-发货管理", "天", "仓储物流部",
"", "");
var l1_s7_3 = Ins(db, tenantId, "S7_L1_003", "S7", 1, null, "成品仓储人效(个/人)", "个/人", "higher_is_better", 25, true,
"统计期内完成发货订单数量比成品仓储人数\n(衡量成品仓储工作效率)",
"H=完成发货的订单物料数量/成品仓储人数",
"1、每月统计当月成品仓储人效。\n2、例如:3月订单发货成品共20000个/仓储人数4人,则成品仓储人效=20000/4=5000个/人。",
"S7-发货管理", "天", "仓储物流部",
"", "");
var l1_s8_1 = Ins(db, tenantId, "S8_L1_001", "S8", 1, null, "各类异常事件数量(个)", "个", "lower_is_better", 26, true,
"统计期内各类异常事件数量\n(测量各类型异常事件发生频率,识别改善机会)",
"按预设的异常事件类型,分别统计异常事件的数量",
"例如:设备异常,实时监控设备异常,累计设备异常发生的次数;物料异常,物料未按期交货;质量异常,实时监控质量问题;交付异常,未按销售通知单发货日期发货;",
"S8-异常管理", "实时", "经营管理部",
"", "");
var l1_s8_2 = Ins(db, tenantId, "S8_L1_002", "S8", 1, null, "各类异常事件处理时效(小时)", "", "lower_is_better", 27, true,
"统计期内各类异常事件数量处理时效\n(测量各类型异常事件处理效率,识别改善机会)",
"按预设的异常事件类型,分别统计异常事件处理花费的时间",
"例如:设备异常,统计每次设备异常处理的时间,累计总时间;物料异常,从触发异常到收货处理时间;质量异常,从触发异常到质量问题关闭;交付异常,从触发异常到发货;",
"S8-异常管理", "实时", "经营管理部",
"", "");
var l1_s9_1 = Ins(db, tenantId, "S9_L1_001", "S9", 1, null, "质量退货率(PPM)", "PPM", "lower_is_better", 28, true,
"客户因质量问题退货数量占发货数量比率\n(衡量客户质量表现)",
"质量退货率=累计客户因质量问题退货数量/累计总发货数量",
"1、可以分解到每月和累计,再分解到每个订单统计质量退货率;\n2、例如:3月累计共发货数量1000件,累计客户因质量问题退货10件,则3月质量退货率=10/1000=1%=10000PPM,高于目标5000PPM,自动报警",
"S7-退货管理", "天", "经营管理部",
"", "");
var l1_s9_2 = Ins(db, tenantId, "S9_L1_002", "S9", 1, null, "订单交付周期(天)", "天", "lower_is_better", 29, true,
"从订单评审到订单发货的时效\n(衡量整个供应链交付能力)",
"订单交付周期=订单评审+订单排程+物料计划+物料上线+工单制造+订单发货",
"系统自动监控每个订单执行关键节点计划时间和实际时间的差异,并实时预警\n例如:某订单的物料齐套上线的日期迟于工单计划开工日期,自动报警",
"S9-运营指标", "天", "经营管理部",
"", "");
var l1_s9_3 = Ins(db, tenantId, "S9_L1_003", "S9", 1, null, "订单交付满足率(%)", "%", "higher_is_better", 30, true,
"齐套发货的订单行占订单总行数的比例\n(衡量整个供应链交付能力)",
"订单交付满足率=齐套发货的订单行数/订单总行数",
"系统自动监控每个订单物料上线、工单制造、订单发货的满足率,并实时预警\n例如:某订单按照销售发货通知单发货日期前完成齐套发货的订单行数是25行,订单总行数是50行,则订单交付满足率=25/50=50%,自动报警",
"S9-运营指标", "天", "经营管理部",
"", "");
var l1_s9_4 = Ins(db, tenantId, "S9_L1_004", "S9", 1, null, "生产效率(%)", "%", "higher_is_better", 31, true,
"生产效率\n(衡量生产效率的能力)",
"生产效率=有效产出工时/投入总生产工时",
"例如:某天生产投入总工时12小时,异常停机2小时,有效产出工时10小时,生产效率=10/12=83%,低于目标95%,自动报警",
"S9-运营指标", "天", "经营管理部",
"", "");
var l1_s9_5 = Ins(db, tenantId, "S9_L1_005", "S9", 1, null, "全库存周转(天)", "天", "lower_is_better", 32, true,
"全库存周转天数\n(衡量全库存周转速度,现金流健康程度)",
"全库存周转天数=成品库存周转+在制工单周转+物料库存周转",
"全库存周转天数由成品周转、在制周转和物料周转构成,可以进一步按照状态分解为在途、在库、自制、收货、检验、上架、备货等,当全库存周转天数高于目标时,自动报警",
"S9-运营指标", "天", "经营管理部",
"", "");
// ── L2 ──
var l2_s1_1 = Ins(db, tenantId, "S1_L2_001", "S1", 2, l1_s1_1, "合同评审周期(天)", "天", "lower_is_better", 1, false,
"从通知下达到合同签订的时长",
"每个合同的评审周期=D2-D1",
"1、合同评审周期=统计期间合同评审时长合计/统计期合同总数\n2、例如:3月有10个合同,合同评审时长合计30天,合同评审周期=30/10=3天",
"S1-产销协同", "天", "商务部",
"", "");
var l2_s1_2 = Ins(db, tenantId, "S1_L2_002", "S1", 2, l1_s1_2, "合同评审满足率(%)", "%", "higher_is_better", 2, false,
"规定时间内合同确认的数量占合同总数的比例",
"规定时间内合同签订数量/合同总数",
"1、规定时间内合同签订的合同数量=从合同下达之日起3天内完成合同签订的合同数量,规定时间可配置\n2、例如:4月有30个合同,规定时间内完成合同签订有20个合同,合同评审满足率=20/30=66.7%",
"S1-产销协同", "天", "商务部",
"", "");
var l2_s1_3 = Ins(db, tenantId, "S1_L2_003", "S1", 2, l1_s1_3, "合同评审人效(个/人)", "个/人", "higher_is_better", 3, false,
"统计期内合同签订数量比销售人数",
"统计期内合同签订数量/销售人数",
"1、统计期内合同签订的合同行数量=某月完成合同签订的合同行数量\n2、例如:5月完成合同签订的合同有300行合同工程师3人,合同工程师人效=300/3=100个/人",
"S1-产销协同", "天", "商务部",
"", "");
var l2_s1_4 = Ins(db, tenantId, "S1_L2_004", "S1", 2, l1_s1_1, "BOM评审周期(天)", "天", "lower_is_better", 4, false,
"从订单下达到BOM确认的时长",
"每个BOM的评审周期=D2-D1",
"1、BOM评审周期=统计期间BOM评审时长合计/统计期BOM总数\n2、例如:3月有20个BOM,BOM评审时长合计30天,BOM评审周期=30/20=1.5天",
"S1-产销协同", "天", "工程部",
"", "");
var l2_s1_5 = Ins(db, tenantId, "S1_L2_005", "S1", 2, l1_s1_2, "BOM评审满足率(%)", "%", "higher_is_better", 5, false,
"规定时间内BOM确认的订单占总订单的比例",
"规定时间内BOM确认的订单数量/订单总数",
"1、规定时间内BOM确认的订单数量=从订单下达之日起3天内完成BOM确认的订单数量,规定时间可配置\n2、例如:4月有30个订单,规定时间内完成BOM确认有20个订单,订单评审满足率=20/30=66.7%",
"S1-产销协同", "天", "工程部",
"", "");
var l2_s1_6 = Ins(db, tenantId, "S1_L2_006", "S1", 2, l1_s1_3, "BOM设计人效(个/人)", "个/人", "higher_is_better", 6, false,
"统计期内BOM确认的订单行数比BOM工程师人数",
"统计期内BOM确认的订单行数/BOM工程师人数",
"1、统计期内BOM确认的订单行数量=某月完成BOM确认的订单行数量\n2、例如:5月完成BOM确认的订单有300行BOM工程师3人,BOM工程师人效=300/3=100个/人",
"S1-产销协同", "天", "工程部",
"", "");
var l2_s1_7 = Ins(db, tenantId, "S1_L2_007", "S1", 2, l1_s1_1, "工艺评审周期(天)", "天", "lower_is_better", 7, false,
"从订单下达到工艺确认的时长",
"每个工艺的评审周期=D2-D1",
"1、工艺评审周期=统计期间工艺评审时长合计/统计期工艺总数\n2、例如:3月有20个工艺,工艺评审时长合计30天,工艺评审周期=30/20=1.5天",
"S1-产销协同", "天", "工程部",
"", "");
var l2_s1_8 = Ins(db, tenantId, "S1_L2_008", "S1", 2, l1_s1_2, "工艺评审满足率(%)", "%", "higher_is_better", 8, false,
"规定时间内工艺确认的订单占总订单的比例",
"规定时间内工艺确认的订单数量/订单总数",
"1、规定时间内工艺确认的订单数量=从订单下达之日起3天内完成工艺确认的订单数量,规定时间可配置\n2、例如:4月有30个订单,规定时间内完成工艺确认有20个订单,订单评审满足率=20/30=66.7%",
"S1-产销协同", "天", "工程部",
"", "");
var l2_s1_9 = Ins(db, tenantId, "S1_L2_009", "S1", 2, l1_s1_3, "工艺设计人效(个/人)", "个/人", "higher_is_better", 9, false,
"统计期内工艺确认的订单行数比工艺工程师人数",
"统计期内工艺确认的订单行数/工艺工程师人数",
"1、统计期内工艺确认的订单行数量=某月完成工艺确认的订单行数量\n2、例如:5月完成工艺确认的订单有300行工艺工程师3人,工艺工程师人效=300/3=100个/人",
"S1-产销协同", "天", "工程部",
"", "");
var l2_s1_10 = Ins(db, tenantId, "S1_L2_010", "S1", 2, l1_s1_1, "交期评审周期(天)", "天", "lower_is_better", 10, false,
"从订单下达到交期确认的时长",
"每个交期的评审周期=D2-D1",
"1、交期评审周期=统计期间交期评审时长合计/统计期交期总数\n2、例如:3月有20个交期,交期评审时长合计30天,交期评审周期=30/20=1.5天",
"S1-产销协同", "天", "供应链/计划部",
"rdate", "销售交期-下单日期(系统还需记录交期交期确认日期,此功能待开发)");
var l2_s1_11 = Ins(db, tenantId, "S1_L2_011", "S1", 2, l1_s1_2, "交期评审满足率(%)", "%", "higher_is_better", 11, false,
"规定时间内交期确认的交期占总订单的比例",
"规定时间内交期确认的订单数量/交期总数",
"1、规定时间内交期确认的订单数量=从交期下达之日起3天内完成交期确认的订单数量,规定时间可配置\n2、例如:4月有30个订单,规定时间内完成交期确认有20个订单,交期评审满足率=20/30=66.7%",
"S1-产销协同", "天", "供应链/计划部",
"rdate", "销售交期-下单日期(系统还需记录交期交期确认日期,此功能待开发)");
var l2_s1_12 = Ins(db, tenantId, "S1_L2_012", "S1", 2, l1_s1_3, "主计划人效(行/人)", "行/人", "higher_is_better", 12, false,
"统计期内交期确认的订单行数比主计划人数",
"统计期内交期确认的订单行数/主计划人数",
"1、统计期内交期确认的订单行数量=某月完成交期确认的订单行数量\n2、例如:5月完成交期确认的订单有300行主计划3人,主计划人效=300/3=100行/人",
"S1-产销协同", "天", "供应链/计划部",
"", "");
var l2_s2_1 = Ins(db, tenantId, "S2_L2_001", "S2", 2, l1_s2_1, "工单排程周期(天)", "天", "lower_is_better", 13, false,
"从工单下达到完成工单排程的时长",
"每个工单的排程周期=D2-D1",
"1、工单排程周期=统计期间工单排程时长合计/统计期工单总数\n2、例如:3月有20个工单,工单排程时长合计60天,工单排程周期=60/20=3天",
"S2-生产排程", "天", "供应链/计划部",
"", "");
var l2_s2_2 = Ins(db, tenantId, "S2_L2_002", "S2", 2, l1_s2_2, "工单排程满足率(%)", "%", "higher_is_better", 14, false,
"规定时间内完成排程的工单占总工单的比例",
"规定时间内完成排程的工单数量/工单总数",
"1、规定时间内完成排程的工单数量=从工单下达之日起3天内完成完成排程的工单数量,规定时间可配置\n2、例如:4月有30个工单,规定时间内完成完成排程有20个工单,工单排程满足率=20/30=",
"S2-生产排程", "天", "供应链/计划部",
"", "");
var l2_s2_3 = Ins(db, tenantId, "S2_L2_003", "S2", 2, l1_s2_3, "工单排程人效(行/人)", "行/人", "higher_is_better", 15, false,
"统计期内完成排程的工单行数比生产计划人数",
"统计期内完成排程的工单行数/生产计划人数",
"1、统计期内完成排程的工单行数量=某月完成完成排程的工单行数量\n2、例如:5月完成完成排程的工单有300行生产计划5人,工单排程人效=300/5=60行/人",
"S2-生产排程", "天", "供应链/计划部",
"", "");
var l2_s3_1 = Ins(db, tenantId, "S3_L2_001", "S3", 2, l1_s3_1, "物料需求计划周期(天)", "天", "lower_is_better", 16, false,
"从工单创建到完成物料需求计划的时长",
"每个工单的物料需求计划周期=D2-D1",
"1、物料需求计划周期=统计期间物料需求计划时长合计/统计期工单总数\n2、例如:3月有20个工单,物料需求计划时长合计60天,物料需求计划周期=60/20=3天",
"S3-物料需求计划", "天", "供应链/计划部",
"", "");
var l2_s3_2 = Ins(db, tenantId, "S3_L2_002", "S3", 2, l1_s3_2, "物料需求计划满足率(%)", "%", "higher_is_better", 17, false,
"规定时间内完成物料需求计划的工单占总工单的比例",
"规定时间内完成物料需求计划的工单数量/工单总数",
"1、规定时间内完成物料需求计划的工单数量=从工单下达之日起3天内完成完成物料需求计划的工单数量,规定时间可配置\n2、例如:4月有30个工单,规定时间内完成完成物料需求计划有20个工单,物料需求计划满足率=20/30=",
"S3-物料需求计划", "天", "供应链/计划部",
"", "");
var l2_s3_3 = Ins(db, tenantId, "S3_L2_003", "S3", 2, l1_s3_3, "物料需求计划人效(行/人)", "行/人", "higher_is_better", 18, false,
"统计期内完成物料需求计划的行数比物料需求计划人数",
"统计期内完成物料需求计划的行数/物料需求计划人数",
"1、统计期内完成物料需求计划的工单行数量=某月完成完成物料需求计划的工单行数量\n2、例如:5月完成完成物料需求计划的行数有500行物料需求计划5人,物料需求计划人效=500/5=100行/人",
"S3-物料需求计划", "天", "供应链/计划部",
"", "");
var l2_s3_4 = Ins(db, tenantId, "S3_L2_004", "S3", 2, l1_s3_1, "物料交货计划周期(天)", "天", "lower_is_better", 19, false,
"从物料需求计划完成到物料交货计划完成的时长",
"每个工单的物料交货计划周期=D2-D1",
"1、物料交货计划周期=统计期间物料交货计划时长合计/统计期工单总数\n2、例如:3月有20个工单,物料交货计划时长合计60天,物料交货计划周期=60/20=3天",
"S3-物料交货计划", "天", "供应链/计划部",
"", "");
var l2_s3_5 = Ins(db, tenantId, "S3_L2_005", "S3", 2, l1_s3_2, "物料交货计划满足率(%)", "%", "higher_is_better", 20, false,
"规定时间内完成物料交货计划的行数占需求计划总行数的比例",
"规定时间内完成物料交货计划的行数/需求总行数,1行物料需求对应1行以上交货计划合并为1行",
"1、规定时间内完成物料交货计划的工单数量=从需求计划生成之日起3天内完成完成物料交货计划,规定时间可配置\n2、例如:4月物料需求计划有300行物料,规定时间内完成完成物料交货计划有240行物料,物料交货计划满足率=240/300=80%",
"S3-物料交货计划", "天", "供应链/计划部",
"", "");
var l2_s3_6 = Ins(db, tenantId, "S3_L2_006", "S3", 2, l1_s3_3, "物料交货计划人效(行/人)", "行/人", "higher_is_better", 21, false,
"统计期内完成物料交货计划的行数比物料交货计划人数",
"统计期内完成物料交货计划的行数/物料交货计划人数",
"1、统计期内完成物料交货计划的工单行数量=某月完成完成物料交货计划的工单行数量\n2、例如:5月完成完成物料交货计划的行数有500行物料交货计划5人,物料交货计划人效=500/5=100行/人",
"S3-物料交货计划", "天", "供应链/计划部",
"", "");
var l2_s4_1 = Ins(db, tenantId, "S4_L2_001", "S4", 2, l1_s4_1, "品类物料交货周期(天)", "天", "lower_is_better", 22, false,
"用于度量按品类统计的物料交货计划发布到物料收货之间的天数。\n(衡量物料交付周期,识别瓶颈物料缩短交付周期)",
"D=品类物料交货单收货日期-品类物料交货单发布日期",
"1、每月统计当月物料的平均交付周期。\n2、例如:3月交付的物料共3次,则该物料的平均交货周期=(10+8+7)/3=8.3天。",
"S4-交货管理", "天", "采购部",
"", "");
var l2_s4_2 = Ins(db, tenantId, "S4_L2_002", "S4", 2, l1_s4_2, "品类物料交货满足率(%)", "%", "higher_is_better", 23, false,
"用于度量按品类统计按时完成交货的交货单比例。\n(衡量物料交付满足率,识别瓶颈物料提高满足率)",
"S=按时完成品类物料交货单数量/品类物料交货单总数",
"1、每月统计当月物料的平均交付周期。\n2、例如:3月交付的物料共3次,则该物料的平均交付周期=(100%+80%+70%)/3=83.3%。",
"S4-交货管理", "天", "采购部",
"", "");
var l2_s4_3 = Ins(db, tenantId, "S4_L2_003", "S4", 2, l1_s4_3, "品类物料采购人效(个/人)", "个/人", "higher_is_better", 24, false,
"统计期内按品类统计完成物料收货的交货单的数量比品类物料采购人数\n(衡量品类物料采购工作效率)",
"H=完成收货的品类数量/品类采购人数",
"1、每月统计当月物料采购人效。\n2、例如:3月交付的品类12个/品类人数4人,则品类采购人效=12/4=3个/人。",
"S4-交货管理", "天", "采购部",
"", "");
var l2_s4_4 = Ins(db, tenantId, "S4_L2_004", "S4", 2, l1_s4_4, "品类在途物料周转(天)", "天", "lower_is_better", 25, false,
"品类在途物料库存周转天数\n(按品类分析从供应商发出物料到物料收货,以较少的物料库存资金占用满足生产物料需求)",
"D1/D2*30天",
"1、品类在途物料周转天数计算:当月物料入库金额,物料在途金额,例如:6月,D1=6月品类物料在途金额=100万,D2=(6月品类物料入库成本)=50万,品类物料在途周转=100/50=2*30天=60天,每个SKU的在途周转天数=在途物料数量/过去30天平均入库数量",
"S4-交货管理", "天", "采购部",
"", "");
var l2_s5_1 = Ins(db, tenantId, "S5_L2_001", "S5", 2, l1_s5_1, "物料收货周期(天)", "天", "lower_is_better", 26, false,
"从清点物料到物料IQC报检的时长\n(衡量工单物料收货的时效)",
"物料收货周期=(物料IQC报检日期-物料收货日期)",
"1、物料收货周期=物料IQC报检日期-物料收货日期,例如:某工单物料收货周期=3月5日-3月1日=4天;\n2、物料X批次收货周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的物料收货周期=(2+3+3+2+4)/5=2.8天;",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_2 = Ins(db, tenantId, "S5_L2_002", "S5", 2, l1_s5_2, "物料收货满足率(%)", "%", "higher_is_better", 27, false,
"用于度量按时完成收货的工单物料比例。\n(衡量物料收货满足率,识别瓶颈物料提高满足率)",
"S=工单开工日期前完成物料收货行数/工单物料总行数",
"1、每月统计当月工单物料的平均收货满足率。\n2、例如:3月工单物料共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_3 = Ins(db, tenantId, "S5_L2_003", "S5", 2, l1_s5_1, "物料检验周期(天)", "天", "lower_is_better", 28, false,
"从物料IQC报检到物料IQC检验完成的时长\n(衡量工单物料检验的时效)",
"物料检验周期=(物料IQC完成日期-物料报检日期)",
"1、物料检验周期=物料IQC完成日期-物料报检日期,例如:某工单物料检验周期=3月5日-3月1日=4天;\n2、物料X批次检验周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的物料检验周期=(2+3+3+2+4)/5=2.8天;",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_4 = Ins(db, tenantId, "S5_L2_004", "S5", 2, l1_s5_2, "物料检验满足率(%)", "%", "higher_is_better", 29, false,
"用于度量按时完成检验的工单物料比例。\n(衡量物料检验满足率,识别瓶颈物料提高满足率)",
"S=工单开工日期前完成物料检验行数/工单物料总行数",
"1、每月统计当月工单物料的平均检验满足率。\n2、例如:3月工单物料共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_5 = Ins(db, tenantId, "S5_L2_005", "S5", 2, l1_s5_1, "物料上架周期(天)", "天", "lower_is_better", 30, false,
"从IQC检验完成到物料上架入库的时长\n(衡量工单物料上架入库的时效)",
"物料上架周期=(物料上架入库日期-物料IQC检验完成日期)",
"1、物料上架周期=物料上架入库日期-物料IQC完成日期,例如:某工单物料上架周期=3月5日-3月1日=4天;\n2、物料X批次上架周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的物料上架周期=(2+3+3+2+4)/5=2.8天;",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_6 = Ins(db, tenantId, "S5_L2_006", "S5", 2, l1_s5_3, "物料上架人效(批次/人)", "批次/人", "higher_is_better", 31, false,
"统计期内完成物料上架的物料批次比物料上架人数\n(衡量物料上架工作效率)",
"H=完成上架的物料批次/物料上架人数",
"1、每月统计当月物料仓储人效。\n2、例如:3月上架的工单物料共1000批次/上架人数4人,则该物料上架人效=1000/4=250批次/人。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_7 = Ins(db, tenantId, "S5_L2_007", "S5", 2, l1_s5_1, "上架物料周转(天)", "天", "lower_is_better", 32, false,
"物料在上架区周转天数\n(衡量仓库上架效率)",
"上架物料周转=上架区物料库存成本/物料入库成本",
"1、上架物料周转天数计算:当月物料入库金额,物料上架区金额,例如:6月,D1=6月物料上架区金额=5万,D2=(6月物料入库成本)=50万,上架物料周转=5/50=0.1*30天=3天",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_8 = Ins(db, tenantId, "S5_L2_008", "S5", 2, l1_s5_1, "物料备货周期(天)", "天", "lower_is_better", 33, false,
"从上架入库完成到物料备货出库的时长\n(衡量工单物料备货出库的时效,识别滞留风险物料)",
"物料备货周期=(物料备货出库日期-物料上架入库日期)",
"1、物料备货周期=物料备货出库日期-物料上架入库日期,例如:某工单物料备货周期=3月5日-3月1日=4天;\n2、物料X批次备货周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的物料备货周期=(2+3+3+2+4)/5=2.8天;",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_9 = Ins(db, tenantId, "S5_L2_009", "S5", 2, l1_s5_2, "物料备货满足率(%)", "%", "higher_is_better", 34, false,
"用于度量按时完成备货的工单物料比例。\n(衡量物料备货满足率,识别瓶颈物料提高满足率)",
"S=工单开工日期前完成物料备货行数/工单物料总行数",
"1、每月统计当月工单物料的平均备货满足率。\n2、例如:3月工单物料共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_10 = Ins(db, tenantId, "S5_L2_010", "S5", 2, l1_s5_3, "物料备货人效(批次/人)", "批次/人", "higher_is_better", 35, false,
"统计期内完成物料备货的物料批次比物料备货人数\n(衡量物料备货工作效率)",
"H=完成备货的物料批次/物料备货人数",
"1、每月统计当月物料仓储人效。\n2、例如:3月备货的工单物料共1000批次/备货人数4人,则该物料备货人效=1000/4=250批次/人。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_11 = Ins(db, tenantId, "S5_L2_011", "S5", 2, l1_s5_1, "备货物料周转(天)", "天", "lower_is_better", 36, false,
"物料在备货(货架)区周转天数\n(衡量仓库备货效率,识别呆滞物料)",
"备货物料周转=备货区物料库存成本/物料出库成本",
"1、备货物料周转天数计算:当月物料出库金额,物料备货区金额,例如:6月,D1=6月物料备货区金额=500万,D2=(6月物料出库成本)=250万,备货物料周转=500/250=2*30天=60天",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_12 = Ins(db, tenantId, "S5_L2_012", "S5", 2, l1_s5_1, "物料发货周期(天)", "天", "lower_is_better", 37, false,
"从备货出库到物料上线的时长\n(衡量工单物料发货的时效,识别滞留线边物料)",
"物料发货周期=(物料上线日期-物料出库日期)",
"1、物料发货周期=物料上线日期-物料出库日期,例如:某工单物料发货周期=3月5日-3月1日=4天;\n2、物料X批次发货周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的物料发货周期=(2+3+3+2+4)/5=2.8天;",
"S5-物料仓储", "天", "仓储物流部",
"", "物料上线日期=工单投产日期");
var l2_s5_13 = Ins(db, tenantId, "S5_L2_013", "S5", 2, l1_s5_2, "物料发货满足率(%)", "%", "higher_is_better", 38, false,
"用于度量按时完成发货的工单物料比例。\n(衡量物料发货满足率,识别瓶颈物料提高满足率)",
"S=工单开工日期前完成物料发货行数/工单物料总行数",
"1、每月统计当月工单物料的平均发货满足率。\n2、例如:3月工单物料共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_14 = Ins(db, tenantId, "S5_L2_014", "S5", 2, l1_s5_3, "物料发货人效(批次/人)", "批次/人", "higher_is_better", 39, false,
"统计期内完成物料发货的物料批次比物料发货人数\n(衡量物料发货工作效率)",
"H=完成发货的物料批次/物料发货人数",
"1、每月统计当月物料仓储人效。\n2、例如:3月发货的工单物料共1000批次/发货人数4人,则该物料发货人效=1000/4=250批次/人。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s5_15 = Ins(db, tenantId, "S5_L2_015", "S5", 2, l1_s5_1, "发货物料周转(天)", "天", "lower_is_better", 40, false,
"物料在发货(线边)区周转天数\n(衡量仓库发货效率)",
"发货物料周转=发货区物料库存成本/物料出库成本",
"1、发货物料周转天数计算:当月物料出库金额,物料发货区金额,例如:6月,D1=6月物料发货区金额=15万,D2=(6月物料出库成本)=250万,发货物料周转=25/250=0.1*30天=3天",
"S5-物料仓储", "天", "仓储物流部",
"", "");
var l2_s6_1 = Ins(db, tenantId, "S6_L2_001", "S6", 2, l1_s6_1, "工单制造周期(天)", "天", "lower_is_better", 41, false,
"从工单投产到工单完工的时长",
"每个工单的制造周期=D2-D1",
"1、工单制造周期=最晚一行物料的完工日期-最早一行物料的投产日期\n2、例如:工单有5行物料,最晚一行物料的完工日期是12月31日,最早一行物料的投产日期是12月1日,则工单制造周期=12月31日-12月1日=30天",
"S6-生产执行", "天", "生产部",
"", "");
var l2_s6_2 = Ins(db, tenantId, "S6_L2_002", "S6", 2, l1_s6_2, "工单制造满足率(%)", "%", "higher_is_better", 42, false,
"计划时间内完成制造的工单占总工单的比例",
"计划时间内完成制造的工单数量/工单总数",
"1、计划时间内完成制造的工单数量=按工单的物料行数分别统计\n2、例如:工单有3行物料,则工单制造满足率=(100+120+150)/(120+150+200)=79%",
"S6-生产执行", "天", "生产部",
"", "");
var l2_s6_3 = Ins(db, tenantId, "S6_L2_003", "S6", 2, l1_s6_3, "工单制造人效(个/人)", "个/人", "higher_is_better", 43, false,
"统计期内完成制造的工单数量比生产人数",
"统计期内完成制造的工单数量/生产人数",
"1、统计期内完成制造的工单数量=某工单有5个工单合计完成制造的数量\n2、例如:5月完成制造的工单数量10000个,生产10人,工单制造人效=10000/10=1000个/人",
"S6-生产执行", "天", "生产部",
"", "");
var l2_s6_4 = Ins(db, tenantId, "S6_L2_004", "S6", 2, l1_s6_1, "工单在制周转(天)", "天", "lower_is_better", 44, false,
"工单在制周转的天数\n(衡量每个工单在制库存,以较少的生产投入满足交付需求,提高资金周转效率)",
"工单在制周转=在制工单成本/工单入库成本*30天",
"1、工单在制周转天数计算:处于在制状态的工单成本,比已完工的工单成本,例如:6月30日计算日,D1=在制工单成本=30万,D2=(6月工单完工成本)=60万,在制周转天数=30/60*30天=15天\n2、SKU:5月30日计算日,D1=(5月在制库存数量)=50个,D2=5月入库数量=150个,SKU在制库存周转天数=50/150*30天=10天",
"S6生产执行", "天", "生产部",
"QtyOrder、QtyComplete、QtyChangeAdvance、QtyChangeOut、createTime", "工单在制数量、进出存-出库-入库-交易时间");
var l2_s7_1 = Ins(db, tenantId, "S7_L2_001", "S7", 2, l1_s7_1, "成品检验周期(天)", "天", "lower_is_better", 45, false,
"从成品FQC报检到成品FQC检验完成的时长\n(衡量工单成品检验的时效)",
"成品检验周期=(成品FQC完成日期-成品报检日期)",
"1、成品检验周期=成品FQC完成日期-成品报检日期,例如:某工单成品检验周期=3月5日-3月1日=4天;\n2、成品X批次检验周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的成品检验周期=(2+3+3+2+4)/5=2.8天;",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_2 = Ins(db, tenantId, "S7_L2_002", "S7", 2, l1_s7_2, "成品检验满足率(%)", "%", "higher_is_better", 46, false,
"用于度量按时完成检验的成品比例。\n(衡量成品检验满足率,识别瓶颈成品提高满足率)",
"S=要求日期前完成成品检验行数/FQC报检单总行数",
"1、每月统计当月FQC成品的平均检验满足率。\n2、例如:3月成品共100行,FQC完成率=90/100=90%。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_3 = Ins(db, tenantId, "S7_L2_003", "S7", 2, l1_s7_3, "成品检验人效(批次/人)", "批次/人", "higher_is_better", 47, false,
"统计期内完成成品检验的成品批次比成品检验人数\n(衡量成品检验工作效率)",
"H=完成检验的成品批次/成品检验人数",
"1、每月统计当月成品仓储人效。\n2、例如:3月检验的工单成品共1000批次/检验人数4人,则该成品检验人效=1000/4=250批次/人。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_4 = Ins(db, tenantId, "S7_L2_004", "S7", 2, l1_s7_1, "检验成品周转(天)", "天", "lower_is_better", 48, false,
"成品在检验区周转天数\n(衡量仓库检验效率)",
"检验成品周转=检验区成品库存成本/成品入库成本",
"1、检验成品周转天数计算:当月成品入库金额,成品检验区金额,例如:6月,D1=6月成品检验区金额=12万,D2=(6月成品入库成本)=50万,检验成品周转=12/50=0.24*30天=7.2天",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_5 = Ins(db, tenantId, "S7_L2_005", "S7", 2, l1_s7_1, "成品上架周期(天)", "天", "lower_is_better", 49, false,
"从FQC检验完成到成品上架入库的时长\n(衡量工单成品上架的时效)",
"成品上架周期=(成品上架日期-FQC检验完成日期)",
"1、成品上架周期=成品上架日期-成品FQC完成日期,例如:某工单成品上架周期=3月5日-3月1日=4天;\n2、成品X批次上架周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的成品上架周期=(2+3+3+2+4)/5=2.8天;",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_6 = Ins(db, tenantId, "S7_L2_006", "S7", 2, l1_s7_2, "成品上架满足率(%)", "%", "higher_is_better", 50, false,
"用于度量按时完成上架的成品比例。\n(衡量成品上架满足率,识别瓶颈成品提高满足率)",
"S=完成上架行数/FQC总行数",
"1、每月统计当月成品的平均上架满足率。\n2、例如:3月FQC共100行,99行完成上架,成品上架满足率=99/100=99%。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_7 = Ins(db, tenantId, "S7_L2_007", "S7", 2, l1_s7_3, "成品上架人效(批次/人)", "批次/人", "higher_is_better", 51, false,
"统计期内完成成品上架的成品批次比成品上架人数\n(衡量成品上架工作效率)",
"H=完成上架的成品批次/成品上架人数",
"1、每月统计当月成品仓储人效。\n2、例如:3月上架的工单成品共1000批次/上架人数4人,则该成品上架人效=1000/4=250批次/人。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_8 = Ins(db, tenantId, "S7_L2_008", "S7", 2, l1_s7_1, "上架成品周转(天)", "天", "lower_is_better", 52, false,
"成品在上架区周转天数\n(衡量成品库存健康度)",
"上架成品周转=上架区成品库存成本/成品入库成本",
"1、上架成品周转天数计算:当月成品入库金额,成品上架区金额,例如:6月,D1=6月成品上架区金额=5万,D2=(6月成品入库成本)=50万,上架成品周转=5/50=0.1*30天=3天",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_9 = Ins(db, tenantId, "S7_L2_009", "S7", 2, l1_s7_1, "成品备货周期(天)", "天", "lower_is_better", 53, false,
"从上架入库完成到成品备货出库的时长\n(衡量工单成品备货出库的时效,识别滞留风险成品)",
"成品备货周期=(成品备货出库日期-成品上架入库日期)",
"1、成品备货周期=成品备货出库日期-成品上架入库日期,例如:某工单成品备货周期=3月5日-3月1日=4天;\n2、成品X批次备货周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的成品备货周期=(2+3+3+2+4)/5=2.8天;",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_10 = Ins(db, tenantId, "S7_L2_010", "S7", 2, l1_s7_2, "成品备货满足率(%)", "%", "higher_is_better", 54, false,
"用于度量按时完成备货的工单成品比例。\n(衡量成品备货满足率,识别瓶颈成品提高满足率)",
"S=工单开工日期前完成成品备货行数/工单成品总行数",
"1、每月统计当月工单成品的平均备货满足率。\n2、例如:3月工单成品共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_11 = Ins(db, tenantId, "S7_L2_011", "S7", 2, l1_s7_3, "成品备货人效(批次/人)", "批次/人", "higher_is_better", 55, false,
"统计期内完成成品备货的成品批次比成品备货人数\n(衡量成品备货工作效率)",
"H=完成备货的成品批次/成品备货人数",
"1、每月统计当月成品仓储人效。\n2、例如:3月备货的工单成品共1000批次/备货人数4人,则该成品备货人效=1000/4=250批次/人。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_12 = Ins(db, tenantId, "S7_L2_012", "S7", 2, l1_s7_1, "在库成品周转(天)", "天", "lower_is_better", 56, false,
"成品在备货(货架)区周转天数\n(衡量仓库备货效率、识别呆滞成品)",
"备货成品周转=备货区成品库存成本/成品出库成本",
"1、备货成品周转天数计算:当月成品出库金额,成品备货区金额,例如:6月,D1=6月成品备货区金额=500万,D2=(6月成品出库成本)=250万,备货成品周转=500/250=2*30天=60天",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_13 = Ins(db, tenantId, "S7_L2_013", "S7", 2, l1_s7_1, "成品发货周期(天)", "天", "lower_is_better", 57, false,
"从备货出库到成品上线的时长\n(衡量工单成品发货的时效,识别滞留线边成品)",
"成品发货周期=(成品上线日期-成品出库日期)",
"1、成品发货周期=成品上线日期-成品出库日期,例如:某工单成品发货周期=3月5日-3月1日=4天;\n2、成品X批次发货周期计算:分别计算每个周期,然后计算平均值,例如:6月份5个工单,则6月份的成品发货周期=(2+3+3+2+4)/5=2.8天;",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_14 = Ins(db, tenantId, "S7_L2_014", "S7", 2, l1_s7_2, "成品发货满足率(%)", "%", "higher_is_better", 58, false,
"用于度量按时完成发货的成品比例。\n(衡量成品发货满足率,识别瓶颈成品提高满足率)",
"S=销售通知单日期前完成发货行数/销售通知单总行数",
"1、每月统计当月成品的平均发货满足率。\n2、例如:3月销售通知单共200行,要求发货日期前180行,发货满足率=180/200=90%",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_15 = Ins(db, tenantId, "S7_L2_015", "S7", 2, l1_s7_3, "成品发货人效(批次/人)", "批次/人", "higher_is_better", 59, false,
"统计期内完成成品发货的成品批次比成品发货人数\n(衡量成品发货工作效率)",
"H=完成发货的成品批次/成品发货人数",
"1、每月统计当月成品仓储人效。\n2、例如:3月发货的工单成品共1000批次/发货人数4人,则该成品发货人效=1000/4=250批次/人。",
"S7-成品仓储", "天", "仓储物流部",
"", "");
var l2_s7_16 = Ins(db, tenantId, "S7_L2_016", "S7", 2, l1_s7_1, "在途成品周转(天)", "天", "lower_is_better", 60, false,
"成品从销售发货出库到客户签收周转天数\n(衡量销售验收服务效率)",
"在途成品周转=待客户签收成品成本/客户已签收成品成本",
"1、销售在途成品周转天数计算:6月成品待签收金额=100万,客户已签收金额=50万,销售在途成品周转=100/50=2*30天=60天",
"S7-成品仓储", "天", "仓储物流部",
"", "");
// ── L3 ──
Ins(db, tenantId, "S2_L3_001", "S2", 3, l2_s2_1, "工序排程周期(天)", "天", "lower_is_better", 1, false,
"从工单下达到完成工序排程的时长",
"每个工序的排程周期=D2-D1",
"1、工序排程周期=统计期间工序排程时长合计/统计期工序总数\n2、例如:3月有20个工序,工序排程时长合计60天,工序排程周期=60/20=3天",
"S2-生产排程", "天", "供应链/计划部",
"", "");
Ins(db, tenantId, "S2_L3_002", "S2", 3, l2_s2_2, "工序排程满足率(%)", "%", "higher_is_better", 2, false,
"规定时间内完成排程的工序占总工序的比例",
"规定时间内完成排程的工序数量/工序总数",
"1、规定时间内完成排程的工序数量=从工序下达之日起3天内完成完成排程的工序数量,规定时间可配置\n2、例如:4月有30个工序,规定时间内完成完成排程有20个工序,工序排程满足率=20/30=",
"S2-生产排程", "天", "供应链/计划部",
"", "");
Ins(db, tenantId, "S2_L3_003", "S2", 3, l2_s2_3, "工序排程人效(道/人)", "道/人", "higher_is_better", 3, false,
"统计期内完成排程的工序道数比生产计划人数",
"统计期内完成排程的工序道数/生产计划人数",
"1、统计期内完成排程的工序行数量=某月完成完成排程的工序行数量\n2、例如:5月完成完成排程的工序有300道生产计划5人,工序排程人效=300/5=60道/人",
"S2-生产排程", "天", "供应链/计划部",
"", "");
Ins(db, tenantId, "S2_L3_004", "S2", 3, l2_s2_1, "设备排程周期(天)", "天", "lower_is_better", 4, false,
"从工单下达到完成设备排程的时长",
"每个设备的排程周期=D2-D1",
"1、设备排程周期=统计期间设备排程时长合计/统计期设备总数\n2、例如:3月有20个设备,设备排程时长合计60天,设备排程周期=60/20=3天",
"S2-生产排程", "天", "供应链/计划部",
"", "");
Ins(db, tenantId, "S2_L3_005", "S2", 3, l2_s2_2, "设备排程满足率(%)", "%", "higher_is_better", 5, false,
"规定时间内完成排程的设备占总设备的比例",
"规定时间内完成排程的设备数量/设备总数",
"1、规定时间内完成排程的设备数量=从设备下达之日起3天内完成完成排程的设备数量,规定时间可配置\n2、例如:4月有30个设备,规定时间内完成完成排程有20个设备,设备排程满足率=20/30=",
"S2-生产排程", "天", "供应链/计划部",
"", "");
Ins(db, tenantId, "S2_L3_006", "S2", 3, l2_s2_3, "设备排程人效(台/人)", "台/人", "higher_is_better", 6, false,
"统计期内完成排程的设备数量比生产计划人数",
"统计期内完成排程的设备数量/生产计划人数",
"1、统计期内完成排程的设备行数量=某月完成完成排程的设备行数量\n2、例如:5月完成完成排程的设备有300行生产计划5人,设备排程人效=300/5=60台/人",
"S2-生产排程", "天", "供应链/计划部",
"", "");
Ins(db, tenantId, "S4_L3_001", "S4", 3, l2_s4_1, "供应商物料交货周期(天)", "天", "lower_is_better", 7, false,
"用于度量按供应商统计的物料交货计划发布到物料收货之间的天数。\n(衡量物料交付周期,识别瓶颈物料缩短交付周期)",
"D=供应商物料交货单收货日期-供应商物料交货单发布日期",
"1、每月统计当月物料的平均交付周期。\n2、例如:3月交付的物料共3次,则该物料的平均交货周期=(10+8+7)/3=8.3天。",
"S4-交货管理", "天", "采购部",
"", "");
Ins(db, tenantId, "S4_L3_002", "S4", 3, l2_s4_2, "供应商物料交货满足率(%)", "%", "higher_is_better", 8, false,
"用于度量按供应商统计按时完成交货的交货单比例。\n(衡量物料交付满足率,识别瓶颈物料提高满足率)",
"S=按时完成供应商物料交货单数量/供应商物料交货单总数",
"1、每月统计当月物料的平均交付周期。\n2、例如:3月交付的物料共3次,则该物料的平均交付周期=(100%+80%+70%)/3=83.3%。",
"S4-交货管理", "天", "采购部",
"", "");
Ins(db, tenantId, "S4_L3_003", "S4", 3, l2_s4_3, "供应商物料采购人效(家/人)", "家/人", "higher_is_better", 9, false,
"统计期内按供应商的数量比采购人数\n(衡量供应商采购工作效率)",
"H=完成收货的供应商数量/采购人数",
"1、每月统计当月采购人效。\n2、例如:3月交付的供应商80家/采购人数4人,则该采购人效=80/4=20家/人。",
"S4-交货管理", "天", "采购部",
"", "");
Ins(db, tenantId, "S4_L3_004", "S4", 3, l2_s4_4, "供应商在途物料周转(天)", "天", "lower_is_better", 10, false,
"供应商在途物料库存周转天数\n(按供应商分析从供应商发出物料到物料收货,以较少的物料库存资金占用满足生产物料需求)",
"D1/D2*30天",
"1、供应商在途物料周转天数计算:当月物料入库金额,物料在途金额,例如:6月,D1=6月供应商物料在途金额=100万,D2=(6月供应商物料入库成本)=50万,供应商物料在途周转=100/50=2*30天=60天,每个SKU的在途周转天数=在途物料数量/过去30天平均入库数量",
"S4-交货管理", "天", "采购部",
"", "");
Ins(db, tenantId, "S6_L3_001", "S6", 3, l2_s6_1, "工序制造周期(天)", "天", "lower_is_better", 11, false,
"每道从工序开工到工序完工的时长",
"每个工序的制造周期=D2-D1",
"1、工序制造周期=工序完工日期-工序开工日期\n2、例如:完工日期是12月31日,投产日期是12月28日,则工序制造周期=12月31日-12月28日=3天",
"S6-生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S6_L3_002", "S6", 3, l2_s6_2, "工序制造满足率(%)", "%", "higher_is_better", 12, false,
"每道工序计划时间内完成数量占工序排产数量的比例",
"计划时间内完成制造的数量/工序排产数量",
"1、工序制造满足率=工序完工数量/工序排产数量\n2、例如:计划时间内,工序完工110件,工序排产120件,则工序制造满足率=110/120=92%",
"S6-生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S6_L3_003", "S6", 3, l2_s6_3, "工序制造人效(个/人)", "个/人", "higher_is_better", 13, false,
"统计期内完成制造的工序数量比生产人数",
"统计期内完成制造的工序数量/生产人数",
"1、统计期内完成制造的工序数量=某工序完成报工的数量\n2、例如:某工序完成数量1000个,生产0.5人,工序制造人效=1000/0.5=2000个/人",
"S6-生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S6_L3_004", "S6", 3, l2_s6_4, "工序在制周转(天)", "天", "lower_is_better", 14, false,
"每道工序在制周转的天数\n(衡量每个工序在制库存,识别瓶颈工序,提高资金周转效率)",
"工序在制周转=在制工序成本/工序入库成本*30天",
"1、工序在制周转天数计算:处于在制状态的工序成本,比已完工的工序成本,例如:6月30日计算日,D1=在制工序成本=30万,D2=(6月工序完工成本)=60万,在制周转天数=30/60*30天=15天\n2、SKU:5月30日计算日,D1=(5月在制库存数量)=50个,D2=5月入库数量=150个,SKU在制库存周转天数=50/150*30天=10天",
"S6生产执行", "天", "生产部",
"QtyOrder、QtyComplete、QtyChangeAdvance、QtyChangeOut、createTime", "工序在制数量、进出存-出库-入库-交易时间");
Ins(db, tenantId, "S6_L3_005", "S6", 3, l2_s6_1, "设备制造周期(天)", "天", "lower_is_better", 15, false,
"每台设备开工到完工的时长",
"每个设备的制造周期=D2-D1",
"1、设备制造周期=设备完工日期-设备开工日期\n2、例如:完工日期是12月31日,投产日期是12月28日,则设备制造周期=12月31日-12月28日=3天",
"S6-生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S6_L3_006", "S6", 3, l2_s6_2, "设备制造满足率(%)", "%", "higher_is_better", 16, false,
"每台设备计划时间内完成数量占设备排产数量的比例",
"计划时间内完成制造的数量/设备排产数量",
"1、设备制造满足率=设备完工数量/设备排产数量\n2、例如:计划时间内,设备完工110件,设备排产120件,则设备制造满足率=110/120=92%",
"S6-生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S6_L3_007", "S6", 3, l2_s6_2, "OEE设备综合效率(%)", "%", "higher_is_better", 17, false,
"衡量每台设备效率及质量的综合指标\n(用于识别设备精益生产改善机会)",
"OEE=时间稼动率*性能稼动率*良品率\n=稼动时间/负荷时间*标准C/T*生产数/稼动时间*良品数/生产数\n=标准C/T*良品数/负荷时间\n(如设备生产多个产品则累计计算)",
"设某设备某天工作时间为10H,计划停机10MIN,故障停机30MIN,设备调整35MIN,产品的理论加工周期为1min/件,一天共加工产品500件,有20件废品,这台设备OEE=1*(500-20)/(10*60-10)=480/590=81%",
"S6-生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S6_L3_008", "S6", 3, l2_s6_4, "设备在制周转(天)", "天", "lower_is_better", 18, false,
"每台设备在制周转的天数\n(衡量每个设备在制库存,识别瓶颈设备,提高资金周转效率)",
"设备在制周转=设备待加工数量/设备完工数量",
"1、设备在制周转天数计算:设备待加工=1000件,当天设备完工数量=500件,设备在制周转天数=1000/500=2天",
"S6生产执行", "天", "生产部",
"", "");
Ins(db, tenantId, "S5_L3_001", "S5", 3, l2_s5_1, "物料收货人效(批次/人)", "批次/人", "higher_is_better", 19, false,
"统计期内完成物料收货的物料批次比物料收货人数\n(衡量物料收货工作效率)",
"H=完成收货的物料批次/物料收货人数",
"1、每月统计当月物料仓储人效。\n2、例如:3月收货的工单物料共1000批次/收货人数4人,则该物料收货人效=1000/4=250批次/人。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
Ins(db, tenantId, "S5_L3_002", "S5", 3, l2_s5_1, "收货物料周转(天)", "天", "lower_is_better", 20, false,
"物料在收货区周转天数\n(衡量仓库收货效率)",
"收货物料周转=收货区物料库存成本/物料入库成本",
"1、收货物料周转天数计算:当月物料入库金额,物料收货区金额,例如:6月,D1=6月物料收货区金额=10万,D2=(6月物料入库成本)=50万,收货物料周转=10/50=0.2*30天=6天",
"S5-物料仓储", "天", "仓储物流部",
"", "");
Ins(db, tenantId, "S5_L3_003", "S5", 3, l2_s5_3, "物料检验人效(批次/人)", "批次/人", "higher_is_better", 21, false,
"统计期内完成物料检验的物料批次比物料检验人数\n(衡量物料检验工作效率)",
"H=完成检验的物料批次/物料检验人数",
"1、每月统计当月物料仓储人效。\n2、例如:3月检验的工单物料共1000批次/检验人数4人,则该物料检验人效=1000/4=250批次/人。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
Ins(db, tenantId, "S5_L3_004", "S5", 3, l2_s5_3, "检验物料周转(天)", "天", "lower_is_better", 22, false,
"物料在检验区周转天数\n(衡量仓库检验效率)",
"检验物料周转=检验区物料库存成本/物料入库成本",
"1、检验物料周转天数计算:当月物料入库金额,物料检验区金额,例如:6月,D1=6月物料检验区金额=12万,D2=(6月物料入库成本)=50万,检验物料周转=12/50=0.24*30天=7.2天",
"S5-物料仓储", "天", "仓储物流部",
"", "");
Ins(db, tenantId, "S5_L3_005", "S5", 3, l2_s5_5, "物料上架满足率(%)", "%", "higher_is_better", 23, false,
"用于度量按时完成上架的工单物料比例。\n(衡量物料上架满足率,识别瓶颈物料提高满足率)",
"S=工单开工日期前完成物料上架行数/工单物料总行数",
"1、每月统计当月工单物料的平均上架满足率。\n2、例如:3月工单物料共100行,工单计划开工日期前=(100%+80%+70%)/3=83.3%。",
"S5-物料仓储", "天", "仓储物流部",
"", "");
}
private static long Ins(ISqlSugarClient db, long tenantId, string code, string module, int level, long? parentId,
string name, string unit, string direction, int sortNo, bool isHomePage,
string desc, string formula, string calcRule,
string dataSource, string statFreq, string dept,
string dopFields, string remark)
{
var e = new AdoSmartOpsKpiMaster
{
MetricCode = code,
ModuleCode = module,
MetricLevel = level,
ParentId = parentId,
MetricName = name,
Unit = string.IsNullOrEmpty(unit) ? null : unit,
Direction = direction,
SortNo = sortNo,
IsHomePage = isHomePage,
Description = string.IsNullOrEmpty(desc) ? null : desc,
Formula = string.IsNullOrEmpty(formula) ? null : formula,
CalcRule = string.IsNullOrEmpty(calcRule) ? null : calcRule,
DataSource = string.IsNullOrEmpty(dataSource) ? null : dataSource,
StatFrequency = string.IsNullOrEmpty(statFreq) ? null : statFreq,
Department = string.IsNullOrEmpty(dept) ? null : dept,
DopFields = string.IsNullOrEmpty(dopFields) ? null : dopFields,
Remark = string.IsNullOrEmpty(remark) ? null : remark,
YellowThreshold = direction == "lower_is_better" ? 110m : 95m,
RedThreshold = direction == "lower_is_better" ? 120m : 80m,
IsEnabled = true,
TenantId = tenantId,
CreatedAt = DateTime.Now
};
return db.Insertable(e).ExecuteReturnBigIdentity();
}
}