|
@@ -1,61 +1,54 @@
|
|
|
package com.mes.ui;
|
|
package com.mes.ui;
|
|
|
|
|
|
|
|
-import com.mes.util.HttpUtils;
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 工位描述工具:从服务器 API 获取,不再硬编码工位列表
|
|
|
|
|
- * 服务器接口:GET /js/a/mes/mesLineProcess/getOprnoTitle?oprno=&lineSn= (无需登录)
|
|
|
|
|
|
|
+ * 工位描述工具:硬编码工位列表,避免每台客户端都依赖服务端接口
|
|
|
|
|
+ * 数据来源 2026-06-24:T09 产线 mesLineProcess(lineSn=T9)
|
|
|
*/
|
|
*/
|
|
|
public class OprnoUtil {
|
|
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"
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ /** T9 产线工位名(与 t9oprnos 一一对应) */
|
|
|
|
|
+ public static String[] t9oprnodes = new String[]{
|
|
|
|
|
+ "激光打码", "框架总成焊接1", "框架总成焊接2", "人工补焊1", "框架气密",
|
|
|
|
|
+ "框架激光切割正面", "框架激光切割反面", "套筒焊接", "人工补焊2", "总成检具检验",
|
|
|
|
|
+ "黑件入库", "紧固件装配正面/反面", "框架涂胶", "冷板装配", "半成品气密",
|
|
|
|
|
+ "安装密封垫底护板", "整包气密", "液冷板气密", "等电位电阻测试", "CCD检测"
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
- * 根据产线编号 + 工位号取工位描述
|
|
|
|
|
|
|
+ * 根据工位号查工位描述
|
|
|
* 子工位号自动转父工位(OP040A → OP040、INSP030A → INSP030)
|
|
* 子工位号自动转父工位(OP040A → OP040、INSP030A → INSP030)
|
|
|
- * API 不可达或未配置时返回空串,不影响客户端启动。
|
|
|
|
|
|
|
+ * 注:lineSn 已不再区分,此客户端固定为 T09 产线
|
|
|
*/
|
|
*/
|
|
|
public static String getGwDes(String lineSn, String oprno) {
|
|
public static String getGwDes(String lineSn, String oprno) {
|
|
|
- if (lineSn == null || lineSn.isEmpty() || oprno == null || oprno.isEmpty()) {
|
|
|
|
|
- return "";
|
|
|
|
|
- }
|
|
|
|
|
- String parentOprno = formatOprno(oprno);
|
|
|
|
|
- try {
|
|
|
|
|
- String url = "http://" + MesClient.mes_server_ip + ":8980/js/a/mes/mesLineProcess/getOprnoTitle"
|
|
|
|
|
- + "?oprno=" + parentOprno + "&lineSn=" + lineSn;
|
|
|
|
|
- String resp = HttpUtils.sendRequest(url);
|
|
|
|
|
- return parseTitleFromJson(resp);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- return "";
|
|
|
|
|
|
|
+ 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
|
|
* 规则:去除末尾连续字母(前提是字母前是数字),如 OP040A → OP040、INSP030B → INSP030
|
|
|
- * 不动 INSP/OP 这种前缀字母
|
|
|
|
|
|
|
+ * 不动 OP/INSP 这种前缀字母
|
|
|
*/
|
|
*/
|
|
|
public static String formatOprno(String oprno) {
|
|
public static String formatOprno(String oprno) {
|
|
|
if (oprno == null) return "";
|
|
if (oprno == null) return "";
|
|
|
int len = oprno.length();
|
|
int len = oprno.length();
|
|
|
- while (len > 1 && Character.isLetter(oprno.charAt(len - 1)) && Character.isDigit(oprno.charAt(len - 2))) {
|
|
|
|
|
|
|
+ while (len > 1
|
|
|
|
|
+ && Character.isLetter(oprno.charAt(len - 1))
|
|
|
|
|
+ && Character.isDigit(oprno.charAt(len - 2))) {
|
|
|
len--;
|
|
len--;
|
|
|
}
|
|
}
|
|
|
return oprno.substring(0, len);
|
|
return oprno.substring(0, len);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- /** 从 CommonResp JSON 提取 data 字段(轻量解析,不引第三方库) */
|
|
|
|
|
- private static String parseTitleFromJson(String json) {
|
|
|
|
|
- if (json == null || json.isEmpty() || "false".equals(json)) return "";
|
|
|
|
|
- // 期望格式:{"result":"true","message":"","data":"激光打码"}
|
|
|
|
|
- int idx = json.indexOf("\"data\":\"");
|
|
|
|
|
- if (idx < 0) return "";
|
|
|
|
|
- int start = idx + 8;
|
|
|
|
|
- int end = json.indexOf("\"", start);
|
|
|
|
|
- // 处理字符串里的转义引号 \"
|
|
|
|
|
- while (end > 0 && json.charAt(end - 1) == '\\') {
|
|
|
|
|
- end = json.indexOf("\"", end + 1);
|
|
|
|
|
- }
|
|
|
|
|
- if (end <= start) return "";
|
|
|
|
|
- // 反转义
|
|
|
|
|
- return json.substring(start, end).replace("\\\"", "\"").replace("\\\\", "\\");
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|