Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

17491 3 дней назад
Родитель
Сommit
fd7ce2bbda

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

@@ -236,13 +236,13 @@ public class CommonUitl {
     public static Boolean checkProductSn(String sn,String cateSn){
         switch (cateSn){
             case "ZHXT":
-                // 21位流水码验证
-                if(sn.length() == 21){
+                // 21位或22位流水码验证
+                if(sn.length() == 21 || sn.length() == 22){
                     // 21位流水码格式:+KA99IS3031 + 生产日期(4位) + 生产流水号(4位) + 原材料追溯码(2位,01)
                     // 例如:+KA99IS3031RA1800A201
-                    
+
                     // 1. 验证固定前缀:+KA99IS3031 或 +KA64IS3031
-                    List<String> prefixList = Arrays.asList("+KA99IS3031", "+KA64IS3031","+KB24IS3031","+KC14IS3031","+KB60IS3031");
+                    List<String> prefixList = Arrays.asList("+KA99IS3031", "+KA64IS3031","+KB24IS3031","+KC14IS3031","+KB60IS3031","+KB87IS3031");
                     String snPrefix = sn.substring(0, 11);
                     if(!prefixList.contains(snPrefix)){
                         return false;

+ 21 - 3
src/main/java/com/jeesite/modules/mes/web/MesLineProcessController.java

@@ -371,19 +371,37 @@ public class MesLineProcessController extends BaseController {
 
 		List<String> mlps = new ArrayList<>();
 		for(MesLineProcessUser mesLineProcessUser1:list){
-			mlps.add(mesLineProcessUser1.getId());
+			mlps.add(mesLineProcessUser1.getLineProcessId());
 		}
 
 		logger.info("mlps:"+ JSON.toJSONString(mlps));
 		Integer auth = 0;
+
+		// 先匹配直接授权的工位
 		MesLineProcess mesLineProcess = new MesLineProcess();
 		mesLineProcess.getSqlMap().getWhere().and("id", QueryType.IN,mlps);
-		mesLineProcess.setOprno(oprno);
-		mesLineProcess.setLineSn(lineSn);
+		mesLineProcess.getSqlMap().getWhere().and("oprno", QueryType.EQ, oprno);
+		mesLineProcess.getSqlMap().getWhere().and("b.sn", QueryType.EQ, lineSn);
 		MesLineProcess mesLineProcess1 = mesLineProcessService.findInfo(mesLineProcess);
 		logger.info("mesLineProcess1:"+ JSON.toJSONString(mesLineProcess1));
+
 		if(!ObjectUtils.isEmpty(mesLineProcess1)){
 			auth = 1;
+		} else {
+			// 如果直接匹配失败,查找该工位的父工位是否在授权列表中
+			MesLineProcess targetProcess = new MesLineProcess();
+			targetProcess.setOprno(oprno);
+			targetProcess.getSqlMap().getWhere().and("b.sn", QueryType.EQ, lineSn);
+			MesLineProcess target = mesLineProcessService.findInfo(targetProcess);
+			logger.info("target:"+ JSON.toJSONString(target));
+
+			if(!ObjectUtils.isEmpty(target) && !StringUtils.isEmpty(target.getPid())){
+				// 检查父工位是否在授权列表中
+				if(mlps.contains(target.getPid())){
+					auth = 1;
+					logger.info("父工位授权通过: pid=" + target.getPid());
+				}
+			}
 		}
 
 		map.put("auth",auth);

+ 2 - 2
src/main/resources/config/application.yml

@@ -54,8 +54,8 @@ jdbc:
   # Mysql 数据库配置
   type: mysql
   driver: com.mysql.cj.jdbc.Driver
-#  url: jdbc:mysql://127.0.0.1:3306/mes_cloud_t09?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
-  url: jdbc:mysql://192.168.114.99:3306/mes_cloud_t09?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
+  url: jdbc:mysql://127.0.0.1:3306/mes_cloud_t09?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
+#  url: jdbc:mysql://192.168.114.99:3306/mes_cloud_t09?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
 #  url: jdbc:mysql://192.168.110.99:3306/mes_cloud?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
 
   username: mes_cloud