自动化立体仓库 - WMS系统
pang.jiabao
2025-12-28 138e8078bb92f28fd135c9ce0301f4b71164dd9a
输送线和CTU安全交互
1个文件已添加
7个文件已修改
95 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/WrkMastLog.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/rcs/SiteBind.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/RcsService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/JlerHandler.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastLogMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -29,8 +29,8 @@
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    @ApiModelProperty("日志ID")
    private Long logId;
//    @ApiModelProperty("日志ID")
//    private Long logId;
    /**
     * 工作号
@@ -273,8 +273,8 @@
    private String manuType;
    @ApiModelProperty(value = "")
    @TableField("memo_m")
    private String memoM;
    @TableField("memo")
    private String memo;
    @ApiModelProperty(value = "")
    @TableField("sc_weight")
src/main/java/com/zy/asrs/entity/rcs/SiteBind.java
New file
@@ -0,0 +1,46 @@
package com.zy.asrs.entity.rcs;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * @author pang.jiabao
 * @description 载具与站点绑定接口
 * @createDate 2025/12/27 14:36
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SiteBind {
    /**
     * 存储对象种类类型
     */
    private String slotCategory;
    /**
     * 站点编号/站点别名
     */
    private String slotCode;
    /**
     * 搬运对象种类类型
     */
    private String carrierCategory;
    /**
     * 载具编号/载具别名
     */
    private String carrierCode;
    /**
     * 绑定解绑的变更。
     * 固定枚举值:
     * BIND
     * 绑定
     * UNBIND
     * 解绑
     */
    private String invoke;
}
src/main/java/com/zy/asrs/service/RcsService.java
@@ -63,4 +63,9 @@
     * @return
     */
    JSONObject hxApplyInLine(TransParent apply);
    /**
     * 2.1.12 存储对象与搬运对象绑定解绑接口
     */
    RcsReturn siteBind(SiteBind siteBind);
}
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -320,6 +320,7 @@
        Date now = new Date();
        try {
            // 料箱机器人任务执行状态反馈到wcs,这里不调用
            if (singleRobotCode.equals("14") || singleRobotCode.equals("15")) { // 两台CTU库机器人编号
                WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("task_no", robotTaskCode));
                if(wrkMast != null) {
@@ -685,6 +686,20 @@
        return result;
    }
    @Override
    public RcsReturn siteBind(SiteBind siteBind) {
        RcsReturn rcsReturn = new RcsReturn();
        String url = HIK_URL + "api/robot/controller/site/bind";
        String response = sendPost(url, JSONObject.toJSONString(siteBind));
        if (!StringUtils.isEmpty(response) && response.contains("code")){
            rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
        } else {
            rcsReturn.setCode("ERROR");
            rcsReturn.setMessage("调用绑定接口RCS无返回");
        }
        return rcsReturn;
    }
    // endregion
    // region httpUtil
src/main/java/com/zy/asrs/service/impl/WrkMastLogServiceImpl.java
@@ -36,7 +36,7 @@
        }
        WrkMastLog mastLog = new WrkMastLog();
        BeanUtils.copyProperties(mast, mastLog);
        mastLog.setLogId(mast.getId());
//        mastLog.setLogId(mast.getId());
        if (!wrkMastLogService.insert(mastLog)) {
            throw new CoolException("任务日志保存失败!!");
src/main/java/com/zy/asrs/task/handler/JlerHandler.java
@@ -9,6 +9,7 @@
import com.zy.asrs.entity.rcs.RcsReturn;
import com.zy.asrs.entity.rcs.RcsTaskSubmit;
import com.zy.asrs.entity.rcs.RcsTaskTargetRoute;
import com.zy.asrs.entity.rcs.SiteBind;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.OrderInAndOutUtil;
import com.zy.common.model.LocDto;
@@ -65,6 +66,14 @@
    @Transactional
    public void callAgvToWarehouse(WrkMast wrkMast) {
        // 先绑定载具
        SiteBind siteBind = new SiteBind("BIN","RS00002A01011","BOX",wrkMast.getBarcode(),"BIND");
        RcsReturn carrierBindReturn = rcsService.siteBind(siteBind);
        if(!carrierBindReturn.getCode().equals("SUCCESS")) {
            log.error("入库绑定载具失败:{}",JSONObject.toJSONString(carrierBindReturn));
            return;
        }
        // 下发给RCS
        RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
        // 模板名
@@ -95,9 +104,9 @@
            wrkMast.setCrnStrTime(now);
            wrkMast.setTaskNo(rcsTaskSubmit.getRobotTaskCode());
            wrkMastService.updateById(wrkMast);
            log.info("出库给料箱机器人发送命令成功,工作号:{},任务号:{}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode());
            log.info("入库给料箱机器人发送命令成功,工作号:{},任务号:{}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode());
        } else {
            log.error("出库给料箱机器人发送命令失败,工作号:{},任务号:{}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode());
            log.error("入库给料箱机器人发送命令失败,工作号:{},任务号:{}",wrkMast.getWrkNo(),rcsTaskSubmit.getRobotTaskCode());
        }
    }
@@ -271,7 +280,7 @@
        // 下发给RCS
        RcsTaskSubmit rcsTaskSubmit = new RcsTaskSubmit();
        // 模板名
        rcsTaskSubmit.setTaskType("CTU2");
        rcsTaskSubmit.setTaskType("CTU4");
        rcsTaskSubmit.setRobotTaskCode(String.valueOf(new Date().getTime()));
        rcsTaskSubmit.setInitPriority(10);  //默认10
        List<RcsTaskTargetRoute> targetRouteList = new ArrayList<>();
src/main/resources/application-dev.yml
@@ -58,7 +58,7 @@
# 下位机配置
wcs-slave:
  url: http://127.0.0.1:9090/djwcs
  url: http://127.0.0.1:9091/djwcs
  # 双深
  doubleDeep: true
  # 双深库位排号
src/main/resources/mapper/WrkMastLogMapper.xml
@@ -51,7 +51,7 @@
        <result column="error_memo" property="errorMemo" />
        <result column="ctn_kind" property="ctnKind" />
        <result column="manu_type" property="manuType" />
        <result column="memo_m" property="memoM" />
        <result column="memo" property="memo" />
        <result column="sc_weight" property="scWeight" />
        <result column="log_mk" property="logMk" />
        <result column="log_err_time" property="logErrTime" />