*
L
2025-09-21 159a74e35b588f95fd3e9efc4e15733f84cbd829
*
6个文件已修改
2个文件已添加
204 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasArmMastService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/ArmConstant.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasArmMastMapper.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java
New file
@@ -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;
    }
}
src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java
New file
@@ -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;
}
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);
}
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);
}
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);
    }
}
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){
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;
        }
    }
}
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>