package com.mes.ui; /** * 工位描述工具:硬编码工位列表,避免每台客户端都依赖服务端接口。 */ public class OprnoUtil { /** T9 产线工位号(按 sorts 排序) */ public static String[] t9oprnos = new String[]{ "OP040", "OP050", "OP060", "OP070", "INSP030", "OP090", "OP100", "OP120", "OP130", "INSP050", "INSP060", "OP170", "OP190", "OP200", "INSP080", "OP230", "INSP090", "INSP100", "INSP130", "INSP110", "OP250" }; /** T9 产线工位名(与 t9oprnos 一一对应) */ public static String[] t9oprnodes = new String[]{ "激光打码", "框架总成焊接1", "框架总成焊接2", "人工补焊1", "框架气密", "框架激光切割正面", "框架激光切割反面", "套筒焊接", "人工补焊2", "总成检具检验", "黑件入库", "紧固件装配正面/反面", "框架涂胶", "冷板装配", "半成品气密", "安装密封垫底护板", "整包气密", "液冷板气密", "等电位电阻测试", "CCD检测", "包装入库" }; /** * 根据工位号查工位描述。 * 子工位号自动转父工位(OP040A -> OP040、INSP030A -> INSP030)。 */ public static String getGwDes(String lineSn, String oprno) { if (oprno == null) return ""; String code = formatOprno(oprno); for (int i = 0; i < t9oprnos.length; i++) { if (t9oprnos[i].equals(code)) return t9oprnodes[i]; } return ""; } /** * 子工位号 -> 父工位号。 * 规则:去除末尾连续字母,前提是字母前是数字,如 OP040A -> OP040、INSP030B -> INSP030。 */ public static String formatOprno(String oprno) { if (oprno == null) return ""; int len = oprno.length(); while (len > 1 && Character.isLetter(oprno.charAt(len - 1)) && Character.isDigit(oprno.charAt(len - 2))) { len--; } return oprno.substring(0, len); } }