From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java |  121 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 116 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java
index d203a74..c94a23f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/Utils.java
@@ -1,14 +1,14 @@
 package com.zy.asrs.wms.utils;
 
 
+import com.alibaba.fastjson.JSON;
 import com.zy.asrs.framework.common.Cools;
+import com.zy.asrs.wms.asrs.entity.dto.MatUniqueObjDto;
+import com.zy.asrs.wms.asrs.entity.param.FieldParam;
 import com.zy.asrs.wms.common.constant.Constants;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.function.BiConsumer;
 import java.util.function.Function;
 
@@ -16,6 +16,117 @@
  * Created by vincent on 2023/3/14
  */
 public class Utils {
+
+    public static final String _LINK = "-";
+
+    public static String getMatUniqueKey(String matnr, String batch, List<FieldParam> params) {
+        MatUniqueObjDto dto = new MatUniqueObjDto();
+        dto.setMatnr(matnr);
+        dto.setBatch(batch);
+
+        ArrayList<FieldParam> list = new ArrayList<>();
+        for (FieldParam param : params) {
+            FieldParam fieldParam = new FieldParam();
+            list.add(fieldParam);
+
+            String value = "";
+            if (!Cools.isEmpty(param.getValue())) {
+                value = param.getValue().toString();
+            }
+
+            fieldParam.setName(param.getName());
+            fieldParam.setType(param.getType());
+            fieldParam.setValue(value);
+        }
+        dto.setParams(list);
+        String encode = Base64.getEncoder().encodeToString(JSON.toJSONString(dto).getBytes());
+        return encode;
+    }
+
+    public static MatUniqueObjDto getMatUniqueObj(String matUniqueKey) {
+        byte[] decode = Base64.getDecoder().decode(matUniqueKey);
+        String decodeStr = new String(decode);
+        MatUniqueObjDto dto = JSON.parseObject(decodeStr, MatUniqueObjDto.class);
+        return dto;
+    }
+
+    public static boolean checkMatSame(String matnr1, String batch1, List<FieldParam> params1, String matnr2, String batch2, List<FieldParam> params2) {
+        if (!matnr1.equals(matnr2)) {
+            return false;
+        }
+
+        if (batch1 != null && batch2 != null) {
+            if(!batch1.equals(batch2)) {
+                return false;
+            }
+        }
+
+        boolean check = true;
+        if(params1 != null && params2 != null) {
+            if(params1.size() != params2.size()) {
+                return false;
+            }
+
+            for (int i = 0; i < params1.size(); i++) {
+                FieldParam param1 = params1.get(i);
+                FieldParam param2 = params2.get(i);
+
+                if (!param1.getName().equals(param2.getName())) {
+                    check = false;
+                    break;
+                }
+
+                if(Cools.isEmpty(param1.getValue()) && Cools.isEmpty(param2.getValue())) {
+                    continue;
+                }
+
+                if(!param1.getValue().equals(param2.getValue())) {
+                    check = false;
+                    break;
+                }
+            }
+
+        }
+
+        return check;
+    }
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 鎺�
+     */
+    public static int getRow(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            String[] split = locNo.split(_LINK);
+            return Integer.parseInt(split[0]);
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 鍒�
+     */
+    public static int getBay(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            String[] split = locNo.split(_LINK);
+            return Integer.parseInt(split[1]);
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    /**
+     * 閫氳繃搴撲綅鍙疯幏鍙� 灞�
+     */
+    public static int getLev(String locNo) {
+        if (!Cools.isEmpty(locNo)) {
+            String[] split = locNo.split(_LINK);
+            return Integer.parseInt(split[2]);
+        }
+        throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
+    }
+
+    public static String getLocNo(Number row, Number bay, Number lev) {
+        return row + _LINK + bay + _LINK + lev;
+    }
 
     /**
      * List杞负鏍戝舰缁撴瀯
@@ -242,7 +353,7 @@
                 sb.append(c);
             }
 
-            return sb.toString();
+            return "`" + sb.toString() + "`";
         }
     }
 

--
Gitblit v1.9.1