From 159a74e35b588f95fd3e9efc4e15733f84cbd829 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期日, 21 九月 2025 21:04:18 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java |   12 +++
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java           |   48 +++++++++--
 src/main/resources/mapper/BasArmMastMapper.xml                        |   27 ++++++
 src/main/java/com/zy/asrs/service/BasArmMastService.java              |    3 
 src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java                |    4 
 src/main/java/com/zy/common/constant/ArmConstant.java                 |   27 ++++++
 src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java   |   72 ++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java     |   11 ++
 8 files changed, 193 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java b/src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java
new file mode 100644
index 0000000..b952d93
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java
@@ -0,0 +1,72 @@
+package com.zy.asrs.entity.param;
+
+import com.zy.asrs.entity.BasArmMast;
+import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/*
+ *  Created by Monkey D. Luffy on 2025.09.09
+ * */
+@Data
+public class ArmOrderAssignmentParam {
+
+    private String order_id;//搴忓垪鐮亅sku|LABEL_璁㈠崟鍙穦s|LABEL_绔欑偣鍙�
+    private int order_type = 1;//1锛氬崟鐮�
+    private static final String  sign_arm_order = "|s|LABEL_";
+    private static final String  sign_arm_sku = "|sku|LABEL_";
+    private List<OrderItem> order_items;//1锛氬崟鐮�
+
+
+    @Data
+    public static class OrderItem {
+
+        private SKUInfo sku_info;
+
+        private int target_num = 0;
+        private String from = "";//鎶撳彇浣�
+        private String to = "";//鏀剧疆浣�
+
+
+        @Data
+        public static class SKUInfo {
+
+            // 鐗╂枡缂栧彿
+            private String id;
+
+            private Double length;
+            private Double width;
+            private Double height;
+            private Double weight;
+
+            public SKUInfo() {};
+
+            public SKUInfo(BasArmMast basArmMast, OrderDetlValueResultUtil orderDetlValueResultUtil){
+                id = basArmMast.getSku();
+                length = orderDetlValueResultUtil.getLength();
+                width = orderDetlValueResultUtil.getWidth();
+                weight = orderDetlValueResultUtil.getWeight();
+                height = orderDetlValueResultUtil.getHeight();
+            }
+        }
+
+        public OrderItem() {};
+        public OrderItem(BasArmMast basArmMast, OrderDetlValueResultUtil orderDetlValueResultUtil) {
+            target_num = orderDetlValueResultUtil.getAnfme().intValue();
+            from = basArmMast.getSortingLine().toString();
+            to = basArmMast.getStaNo().toString();
+            sku_info = new SKUInfo(basArmMast,orderDetlValueResultUtil);
+        };
+    }
+
+    public ArmOrderAssignmentParam() {}
+    public ArmOrderAssignmentParam(BasArmMast basArmMast, OrderDetlValueResultUtil orderDetlValueResultUtil) {
+        order_id = basArmMast.getSku()+sign_arm_sku+basArmMast.getOrderNo()+sign_arm_order+String.valueOf(basArmMast.getSortingLine());
+        List<OrderItem> orderItemArrayList= new ArrayList<>();
+        OrderItem orderItem = new OrderItem(basArmMast,orderDetlValueResultUtil);
+        orderItemArrayList.add(orderItem);
+        order_items = orderItemArrayList;
+    }
+}
diff --git a/src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java b/src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java
new file mode 100644
index 0000000..5d47c92
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.entity.result;
+
+import lombok.Data;
+
+@Data
+public class OrderDetlValueResultUtil {
+    private Double length = 0.0;
+    private Double width = 0.0;
+    private Double height = 0.0;
+    private Double weight = 0.0;
+    private Double anfme = 0.0;
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java b/src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java
index 9ed6db1..40058c7 100644
--- a/src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java
@@ -2,6 +2,7 @@
 
 import com.zy.asrs.entity.BasArmMast;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
@@ -11,5 +12,6 @@
 public interface BasArmMastMapper extends BaseMapper<BasArmMast> {
 
     boolean updateArmMastStatus(@Param("armNo")int armNo, @Param("sortingLine")int sortingLine, @Param("status")int status, @Param("endStatus")int endStatus);
-
+    Double selectOrderDetlAndSku(@Param("orderNo")String orderNo, @Param("sku")String sku);
+    OrderDetlValueResultUtil selectOrderDetlValue(@Param("orderNo")String orderNo, @Param("sku")String sku);
 }
diff --git a/src/main/java/com/zy/asrs/service/BasArmMastService.java b/src/main/java/com/zy/asrs/service/BasArmMastService.java
index 2519ca2..f30151f 100644
--- a/src/main/java/com/zy/asrs/service/BasArmMastService.java
+++ b/src/main/java/com/zy/asrs/service/BasArmMastService.java
@@ -2,9 +2,12 @@
 
 import com.zy.asrs.entity.BasArmMast;
 import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
 
 public interface BasArmMastService extends IService<BasArmMast> {
 
     boolean updateArmMastStatus(int armNo,int sortingLine,int status,int endStatus);
+    Double selectOrderDetlAndSku(String order,String sku);
+    OrderDetlValueResultUtil selectOrderDetlValue(String order, String sku);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java
index fc7dcc6..fa1c414 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.service.impl;
 
+import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
 import com.zy.asrs.mapper.BasArmMastMapper;
 import com.zy.asrs.entity.BasArmMast;
 import com.zy.asrs.service.BasArmMastService;
@@ -13,4 +14,14 @@
     public boolean updateArmMastStatus(int armNo,int sortingLine,int status,int endStatus){
         return this.baseMapper.updateArmMastStatus(armNo,sortingLine,status,endStatus);
     }
+
+    @Override
+    public Double selectOrderDetlAndSku(String order,String sku){
+        return this.baseMapper.selectOrderDetlAndSku(order,sku);
+    }
+
+    @Override
+    public OrderDetlValueResultUtil selectOrderDetlValue(String order, String sku){
+        return this.baseMapper.selectOrderDetlValue(order,sku);
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index ca6a12f..d5f05ac 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -8,8 +8,10 @@
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.ArmOrderAssignmentParam;
 import com.zy.asrs.entity.param.ArmTaskAssignmentParam;
 import com.zy.asrs.entity.param.CombParam;
+import com.zy.asrs.entity.result.OrderDetlValueResultUtil;
 import com.zy.asrs.mapper.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.PostMesDataUtils;
@@ -4412,16 +4414,44 @@
                             log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�");
                             continue;
                         }
-                        for (BasArmMast basArmMast:basArmMastList) {
-                            ArmTaskAssignmentParam armTaskAssignmentParam = new ArmTaskAssignmentParam(basArmMast.getSortingLine());
-                            //璁剧疆宸ヤ綔绌洪棿灏辩华
-                            ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栦换鍔′笅鍙戯細閫氱煡宸ヤ綔绌洪棿宸插氨缁�",ArmConstant.ARM_URL, ArmConstant.ARM_WORKSPACE, armTaskAssignmentParam);
-                            if (result.getCode()==200){
-                                basArmMast.setStatus(1);
-                                basArmMastService.updateById(basArmMast);
-                            } else {
-                                log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
+                        BasArmMast basArmMast = basArmMastList.get(0);
+                        List<BasArmMast> basArmMastListOrder = basArmMastService.selectList(
+                                new EntityWrapper<BasArmMast>()
+                                        .eq("arm_no", basArm.getArmNo())
+                                        .eq("sorting_line", basArm.getSortingLine())
+                                        .eq("sku", basArmMast.getSku())
+                                        .eq("order_no", basArmMast.getOrderNo())
+                        );
+                        if (basArmMastListOrder.size()==1){
+                            OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku());
+
+                            if (Cools.isEmpty(orderDetlValueResultUtil)){
+                                continue;
                             }
+                            //璁㈠崟涓嬪彂
+                            try{
+                                ArmOrderAssignmentParam armOrderAssignmentParam = new ArmOrderAssignmentParam(basArmMast,orderDetlValueResultUtil);
+//                                璁㈠崟涓嬪彂(SKU+璁㈠崟)
+                                ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_ADAPTOR, armOrderAssignmentParam);
+                                if (result.getCode()==200){
+                                    basArmMast.setStatus(1);
+                                    basArmMastService.updateById(basArmMast);
+                                } else {
+                                    log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�");
+                                }
+                            } catch (Exception e){
+                                log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�");
+                                continue;
+                            }
+                        }
+                        ArmTaskAssignmentParam armTaskAssignmentParam = new ArmTaskAssignmentParam(basArmMast.getSortingLine());
+                        //璁剧疆宸ヤ綔绌洪棿灏辩华
+                        ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栦换鍔′笅鍙戯細閫氱煡宸ヤ綔绌洪棿宸插氨缁�",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_WORKSPACE, armTaskAssignmentParam);
+                        if (result.getCode()==200){
+                            basArmMast.setStatus(1);
+                            basArmMastService.updateById(basArmMast);
+                        } else {
+                            log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�");
                         }
                     }
                 }  catch (Exception e){
diff --git a/src/main/java/com/zy/common/constant/ArmConstant.java b/src/main/java/com/zy/common/constant/ArmConstant.java
index 60b5a8a..2de0b91 100644
--- a/src/main/java/com/zy/common/constant/ArmConstant.java
+++ b/src/main/java/com/zy/common/constant/ArmConstant.java
@@ -5,10 +5,35 @@
  * */
 public class ArmConstant {
 
-    public static final String ARM_URL = "http://192.168.99.130:80";
+    public static final String ARM_URL = "http://10.10.10.171:7002";
+    public static final String ARM_URL1 = "http://10.10.10.171:7002";
+    public static final String ARM_URL2 = "http://10.10.10.172:7002";
+    public static final String ARM_URL3 = "http://10.10.10.173:7002";
+    public static final String ARM_URL4 = "http://10.10.10.174:7002";
+    public static final String ARM_URL5 = "http://10.10.10.175:7002";
+    public static final String ARM_URL6 = "http://10.10.10.176:7002";
 
     public static final String ARM_ADAPTOR = "adaptor/api/wcs/order";//鍒涘缓璁㈠崟
 
     public static final String ARM_WORKSPACE = "adaptor/api/wcs/workspace/ready";//閫氱煡宸ヤ綔绌洪棿宸插氨缁�
 
+    public static String getArmUrl(int armNo) {
+        switch (armNo) {
+            case 1:
+                return ARM_URL1;
+            case 2:
+                return ARM_URL2;
+            case 3:
+                return ARM_URL3;
+            case 4:
+                return ARM_URL4;
+            case 5:
+                return ARM_URL5;
+            case 6:
+                return ARM_URL6;
+            default:
+                return ARM_URL;
+        }
+    }
+
 }
diff --git a/src/main/resources/mapper/BasArmMastMapper.xml b/src/main/resources/mapper/BasArmMastMapper.xml
index f5a0524..79ea6d3 100644
--- a/src/main/resources/mapper/BasArmMastMapper.xml
+++ b/src/main/resources/mapper/BasArmMastMapper.xml
@@ -25,6 +25,15 @@
 
     </resultMap>
 
+    <resultMap id="BaseResultMapOrderDetlValue" type="com.zy.asrs.entity.result.OrderDetlValueResultUtil">
+        <result column="man_length" property="length" />
+        <result column="width" property="width" />
+        <result column="height" property="height" />
+        <result column="weight" property="weight" />
+        <result column="anfme" property="anfme" />
+
+    </resultMap>
+
     <update id="updateArmMastStatus">
         update asr_bas_arm_mast
         set status = #{endStatus}
@@ -34,4 +43,22 @@
           and status = #{status}
     </update>
 
+    <select id="selectOrderDetlAndSku" parameterType="java.util.Map" resultType="java.lang.Double">
+        select
+        anfme
+        from man_order_detl
+        where 1=1
+          and order_no = #{orderNo}
+          and matnr = #{sku}
+    </select>
+
+    <select id="selectOrderDetlValue" resultMap="BaseResultMapOrderDetlValue">
+        select
+            d.man_length,d.width,d.height,d.weight,d.anfme
+        from man_order_detl d
+        where 1=1
+          and d.order_no = #{orderNo}
+          and d.matnr = #{sku}
+    </select>
+
 </mapper>

--
Gitblit v1.9.1