hbx преди 2 седмици
родител
ревизия
5f62c1c833

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

@@ -754,7 +754,7 @@ public class MesProductRecordService extends CrudService<MesProductRecordDao, Me
 		}
 
 		// 下线
-		if(lineSn.equals("XT") && oprno.equals("OP280") && content.equals("OK")){ // 更新产品状态成品包装下线工位
+		if(content.equals("OK") && CommonUitl.isOfflineOprno(oprno, lineSn)){ // 更新产品状态成品包装下线工位
 			MesProduct mesProduct = new MesProduct();
 			mesProduct.setSn(sn);
 			mesProduct.setCate(cateSn);

+ 21 - 0
src/main/java/com/jeesite/modules/mes/util/CommonUitl.java

@@ -527,6 +527,27 @@ public class CommonUitl {
         return matchOprnos(cfg, oprno);
     }
 
+    // 按产线读取下线工位配置(mes.offline.oprno.{产线小写}),未配置返回空串;XT 未配置时回退 OP280
+    public static String getOfflineOprno(String lineSn){
+        if(StringUtils.isEmpty(lineSn)){
+            return "";
+        }
+        String v = Global.getConfig("mes.offline.oprno." + lineSn.trim().toLowerCase());
+        if(StringUtils.isEmpty(v) && "XT".equals(lineSn.trim())){
+            return "OP280";
+        }
+        return v == null ? "" : v.trim();
+    }
+
+    // 判断某工位是否为该产线的下线工位(工位码归一后精确匹配)
+    public static boolean isOfflineOprno(String oprno, String lineSn){
+        String off = getOfflineOprno(lineSn);
+        if(StringUtils.isEmpty(off) || StringUtils.isEmpty(oprno)){
+            return false;
+        }
+        return formatOprno(oprno).equals(off);
+    }
+
     /**
      * 表单形式post请求
      *

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

@@ -5244,7 +5244,7 @@ public class MesProductRecordController extends BaseController {
 
 		String state = "0";
 		List<String> ngList = new ArrayList<>();
-		if(oprno.equals("OP280")){
+		if(CommonUitl.isOfflineOprno(oprno, mesProductRecord2.getLineSn())){
 			MesProductRecord mesProductRecord3 = new MesProductRecord();
 			mesProductRecord3.setSn(sn);
 			mesProductRecord3.setCraft("100000");

+ 1 - 8
src/main/java/com/jeesite/modules/mes/web/MesRecoverController.java

@@ -224,15 +224,13 @@ public class MesRecoverController extends BaseController {
 
 
 		// 获取恢复的工位
-		String oprno = "";
-		MesProductRecord mesProductRecord2 = new MesProductRecord();
 		for(MesProductRecord mesProductRecord1:records){
 //			if(mesProductRecord1.getContent().equals("NG")){
 //				oprno = CommonUitl.formatOprno(mesProductRecord1.getOprno());
 //				mesProductRecord2 = mesProductRecord1;
 //				break;
 //			}
-			if(CommonUitl.formatOprno(mesProductRecord1.getOprno()).equals("OP280") && !mesProductRecord1.getContent().equals("UDF")){ // 下线
+			if(CommonUitl.isOfflineOprno(mesProductRecord1.getOprno(), mesProductRecord1.getLineSn()) && !mesProductRecord1.getContent().equals("UDF")){ // 下线
 				mesProductRecord1.setContent("UDF");
 				mesProductRecordService.update(mesProductRecord1);
 			}
@@ -247,11 +245,6 @@ public class MesRecoverController extends BaseController {
 
 		mesRecoverService.save(mesRecover);
 
-		if(oprno.equals("OP280")){ // 如果是最后一个下线工位,重置工位结果
-			// 更新工位总结果
-			mesProductRecord2.setContent("UDF");
-			mesProductRecordService.update(mesProductRecord2);
-		}
 		mesProduct.setState("0");
 		mesProductService.update(mesProduct);