hbx 2 settimane fa
parent
commit
1c26690681

+ 2 - 7
src/main/java/com/jeesite/modules/mes/service/MesProductRecordService.java

@@ -421,12 +421,7 @@ public class MesProductRecordService extends CrudService<MesProductRecordDao, Me
 				throw new ServiceException(text("产线编号不正确!"));
 			}
 
-			String passoprnos = "";
-			if(mesProductRecord.getLineSn().equals("XT")){
-				passoprnos = Global.getConfig("mes.pass.oprno.xt");
-			}else if(mesProductRecord.getLineSn().equals("LB")){
-				passoprnos = Global.getConfig("mes.pass.oprno.lb");
-			}
+			String passoprnos = CommonUitl.getPassOprnos(mesProductRecord.getLineSn());
 
 			String cateSn = mesLine.getProductCate();
 			// 检验工件码
@@ -521,7 +516,7 @@ public class MesProductRecordService extends CrudService<MesProductRecordDao, Me
 					}
 				}
 
-				if(!StringUtils.isEmpty(passoprnos) && passoprnos.contains(mesTemplateItems.getOprno())){
+				if(CommonUitl.matchOprnos(passoprnos, mesTemplateItems.getOprno())){
 					mpr1.setContent("OK");
 				}
 

+ 28 - 8
src/main/java/com/jeesite/modules/mes/util/CommonUitl.java

@@ -493,18 +493,38 @@ public class CommonUitl {
         }
     }
 
-    // 判断是否是单部件
-    public static Boolean checkDbjOprno(String oprno,String lineSn){
-        List<String> dbjoprnos = new ArrayList<>();
-        Boolean ret = false;
-        if(lineSn.equals("XT")){
-            dbjoprnos.add("OP120");
-            if(dbjoprnos.contains(oprno)){
+    // 按产线读取允许跳过的工位配置(mes.pass.oprno.{产线小写}),未配置返回空串即不跳站
+    public static String getPassOprnos(String lineSn){
+        if(StringUtils.isEmpty(lineSn)){
+            return "";
+        }
+        String v = Global.getConfig("mes.pass.oprno." + lineSn.trim().toLowerCase());
+        return v == null ? "" : v;
+    }
+
+    // 逗号分隔精确匹配,避免 contains 子串误匹配(如 OP12 命中 OP120)
+    public static boolean matchOprnos(String oprnos, String oprno){
+        if(StringUtils.isEmpty(oprnos) || StringUtils.isEmpty(oprno)){
+            return false;
+        }
+        for(String s : oprnos.split(",")){
+            if(s.trim().equals(oprno)){
                 return true;
             }
         }
+        return false;
+    }
 
-        return ret;
+    // 判断是否是单部件(配置 mes.dbj.oprno.{产线小写},XT 缺省回退 OP120)
+    public static Boolean checkDbjOprno(String oprno,String lineSn){
+        if(StringUtils.isEmpty(lineSn)){
+            return false;
+        }
+        String cfg = Global.getConfig("mes.dbj.oprno." + lineSn.trim().toLowerCase());
+        if(StringUtils.isEmpty(cfg) && "XT".equals(lineSn)){
+            cfg = "OP120";
+        }
+        return matchOprnos(cfg, oprno);
     }
 
     /**

+ 4 - 10
src/main/java/com/jeesite/modules/mes/web/MesProductRecordController.java

@@ -1268,10 +1268,7 @@ public class MesProductRecordController extends BaseController {
 			return ret;
 		}
 
-		String passoprnos = "";
-		if(lineSn.equals("XT")){
-			passoprnos = Global.getConfig("mes.pass.oprno.xt");
-		}
+		String passoprnos = CommonUitl.getPassOprnos(lineSn);
 
 		// 获取工位配置
 		MesLineProcess mesLineProcess1 = mesLineProcessService.findInfoByOprnoLineSn(oldOprno,lineSn);
@@ -1390,7 +1387,7 @@ public class MesProductRecordController extends BaseController {
 						break;
 					}
 
-					if(!StringUtils.isEmpty(passoprnos) && passoprnos.contains(mpr.getOprno())){
+					if(CommonUitl.matchOprnos(passoprnos, mpr.getOprno())){
 						// 跳过的工位
 					}else{
 						if(mpr.getContent().equals("NG")){
@@ -1480,10 +1477,7 @@ public class MesProductRecordController extends BaseController {
 			return ret;
 		}
 
-		String passoprnos = "";
-		if(lineSn.equals("XT")){
-			passoprnos = Global.getConfig("mes.pass.oprno.xt");
-		}
+		String passoprnos = CommonUitl.getPassOprnos(lineSn);
 		String oprnoFarmat = CommonUitl.formatOprno(oprno);
 
 		// 获取工位配置
@@ -1673,7 +1667,7 @@ public class MesProductRecordController extends BaseController {
 							break;
 						}
 
-						if(!StringUtils.isEmpty(passoprnos) && passoprnos.contains(mpr.getOprno())){
+						if(CommonUitl.matchOprnos(passoprnos, mpr.getOprno())){
 							// 跳过的工位
 						}else{
 							if(mpr.getContent().equals("NG")){