src/main/java/com/zy/asrs/entity/param/ArmOrderAssignmentParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/result/OrderDetlValueResultUtil.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/BasArmMastMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/BasArmMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/BasArmMastServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/constant/ArmConstant.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/BasArmMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | 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>