Files
double-rack/ruoyi-mill/src/main/java/com/ruoyi/mill/protocol/TelegramSchema.java

206 lines
9.6 KiB
Java
Raw Normal View History

package com.ruoyi.mill.protocol;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import static com.ruoyi.mill.protocol.FieldType.*;
/**
* 7 条电文的字段 Schema 定义 电文/*.xlsx 完全对应
*
* L3L2接收:
* 2FK101 作业命令信息
* 2FK102 作业命令撤销
* 2FK103 作业命令应答
* 2FK104 产出信息应答
*
* L2L3发送:
* K12F01 计划信息应答
* K12F02 计划钢卷删除
* K12F03 生产信息电文
*/
public final class TelegramSchema {
private TelegramSchema() {}
private static FieldDef s(String name, int len) { return new FieldDef(name, STRING, len, 0); }
private static FieldDef i(String name) { return new FieldDef(name, INT, 4, 0); }
private static FieldDef f(String name, int len, int precision) { return new FieldDef(name, FLOAT, len, precision); }
public static List<FieldDef> getSchema(String tcNo) {
switch (tcNo) {
case ID_2FK101: return SCHEMA_2FK101;
case ID_2FK102: return SCHEMA_2FK102;
case ID_2FK103: return SCHEMA_2FK103;
case ID_2FK104: return SCHEMA_2FK104;
case ID_K12F01: return SCHEMA_K12F01;
case ID_K12F02: return SCHEMA_K12F02;
case ID_K12F03: return SCHEMA_K12F03;
default: return null;
}
}
// ─────────────────────────────────────────────────────────────
// 2FK101 作业命令信息 L3→L2
// ─────────────────────────────────────────────────────────────
public static final String ID_2FK101 = "2FK101";
public static final List<FieldDef> SCHEMA_2FK101 = Collections.unmodifiableList(Arrays.asList(
s("PLAN_NO", 20),
s("MAT_SEQ_NO", 3),
s("UNIT_CODE", 4),
s("PLAN_TYPE", 1),
s("IN_MAT_NO", 20),
f("IN_MAT_THICK", 9, 3),
f("IN_MAT_THICK_MAX", 9, 3),
f("IN_MAT_THICK_MIN", 9, 3),
f("IN_MAT_WIDTH", 10, 3),
f("IN_MAT_WT", 5, 0),
f("IN_MAT_LEN", 12, 3),
f("IN_MAT_IN_DIA", 8, 2),
f("IN_MAT_DIA", 8, 2),
s("PONO", 10),
s("SG_SIGN", 24),
s("OUT_MAT_NO", 20),
s("CUST_IN_MAT_NO", 20),
s("REMARK", 250),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20),
f("SPARE_6", 13, 3),
f("SPARE_7", 13, 3),
f("SPARE_8", 13, 3),
f("SPARE_9", 13, 3),
f("SPARE_10", 13, 3)
));
// ─────────────────────────────────────────────────────────────
// 2FK102 作业命令撤销 L3→L2
// ─────────────────────────────────────────────────────────────
public static final String ID_2FK102 = "2FK102";
public static final List<FieldDef> SCHEMA_2FK102 = Collections.unmodifiableList(Arrays.asList(
s("PLAN_NO", 20),
i("MAT_SEQ_NO"),
s("UNIT_CODE", 4),
s("IN_MAT_NO", 20),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20)
));
// ─────────────────────────────────────────────────────────────
// 2FK103 作业命令应答 L3→L2
// ─────────────────────────────────────────────────────────────
public static final String ID_2FK103 = "2FK103";
public static final List<FieldDef> SCHEMA_2FK103 = Collections.unmodifiableList(Arrays.asList(
s("TC_NO", 6),
s("PLAN_NO", 20),
i("SEQ_NO"),
s("UNIT_CODE", 4),
s("IN_MAT_NO", 20),
s("FLAG", 1),
s("DEAL_RESULT", 50),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20)
));
// ─────────────────────────────────────────────────────────────
// 2FK104 产出信息应答 L3→L2
// ─────────────────────────────────────────────────────────────
public static final String ID_2FK104 = "2FK104";
public static final List<FieldDef> SCHEMA_2FK104 = Collections.unmodifiableList(Arrays.asList(
s("TC_NO", 6),
s("PLAN_NO", 20),
i("SEQ_NO"),
s("UNIT_CODE", 4),
s("OUT_MAT_NO", 20),
s("FLAG", 1),
s("DEAL_RESULT", 50),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20)
));
// ─────────────────────────────────────────────────────────────
// K12F01 计划信息应答 L2→L3
// ─────────────────────────────────────────────────────────────
public static final String ID_K12F01 = "K12F01";
public static final List<FieldDef> SCHEMA_K12F01 = Collections.unmodifiableList(Arrays.asList(
s("TC_NO", 6),
s("PLAN_NO", 20),
i("SEQ_NO"),
s("UNIT_CODE", 4),
s("IN_MAT_NO", 20),
s("FLAG", 1),
s("DEAL_RESULT", 50),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20)
));
// ─────────────────────────────────────────────────────────────
// K12F02 计划钢卷删除 L2→L3
// ─────────────────────────────────────────────────────────────
public static final String ID_K12F02 = "K12F02";
public static final List<FieldDef> SCHEMA_K12F02 = Collections.unmodifiableList(Arrays.asList(
s("PLAN_NO", 20),
i("SEQ_NO"),
s("UNIT_CODE", 4),
s("IN_MAT_NO", 20),
s("CAUSE_DESC", 50),
s("DO_TIME", 14),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20)
));
// ─────────────────────────────────────────────────────────────
// K12F03 生产信息电文 L2→L3
// ─────────────────────────────────────────────────────────────
public static final String ID_K12F03 = "K12F03";
public static final List<FieldDef> SCHEMA_K12F03 = Collections.unmodifiableList(Arrays.asList(
s("FLAG", 1),
s("PLAN_NO", 20),
i("SEQ_NO"),
s("UNIT_CODE", 4),
s("PROC_SEQ_NO", 4),
s("ANNEAL_FLAG", 16),
s("IN_MAT_NO", 20),
i("IN_MAT_WT"),
f("IN_MAT_THICK", 9, 3),
f("IN_MAT_WIDTH", 10, 3),
s("OUT_MAT_NO", 20),
s("CUST_MAT_NO", 20),
i("OUT_MAT_ACT_WT"),
f("OUT_MAT_ACT_THICK", 9, 3),
f("OUT_MAT_ACT_WIDTH", 10, 3),
f("OUT_MAT_ACT_LEN", 15, 3),
f("OUT_MAT_ACT_INNER_DIA", 8, 2),
f("OUT_MAT_ACT_OUTER_DIA", 8, 2),
s("PROD_SHIFT_NO", 1),
s("PROD_SHIFT_GROUP", 1),
s("START_PROD_TIME", 14),
s("END_PROD_TIME", 14),
s("SOCKET_NO", 2),
s("REMARK", 100),
s("SPARE_1", 20),
s("SPARE_2", 20),
s("SPARE_3", 20),
s("SPARE_4", 20),
s("SPARE_5", 20)
));
}