OprnoUtil.java 2.0 KB

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