自动化立体仓库 - WMS系统
skyouc
8 天以前 61eb8dfa4ff44b539d9dd03205705270ba6e1fa7
库位锁定或释放
添加任务自动下发功能
5个文件已修改
76 ■■■■■ 已修改文件
src/main/java/com/zy/api/controller/params/WorkTaskParams.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/WcsApiService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/constant/MesConstant.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/controller/params/WorkTaskParams.java
@@ -33,4 +33,7 @@
    @ApiModelProperty("出库站点")
    private String staNo;
    @ApiModelProperty("作业类型,in: 入库, out:出库")
    private String type;
}
src/main/java/com/zy/api/service/WcsApiService.java
@@ -4,6 +4,8 @@
import com.zy.api.controller.params.ReceviceTaskParams;
import com.zy.api.controller.params.WorkTaskParams;
import java.util.Set;
public interface WcsApiService {
    /**
@@ -32,4 +34,14 @@
     * @return com.core.common.R
     */
    R pubWrkToWcs(WorkTaskParams params);
    /**
     * 锁定或释放库位
     * @author Ryan
     * @date 2026/1/10 14:35
     * @param locs
     * @param type
     */
    void reportLockLocs(Set<String> locs, String type);
}
src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
@@ -5,6 +5,7 @@
import com.core.exception.CoolException;
import com.zy.api.controller.params.ReceviceTaskParams;
import com.zy.api.service.HmesApiService;
import com.zy.api.service.WcsApiService;
import com.zy.asrs.entity.BasDevice;
import com.zy.asrs.entity.LocAroundBind;
import com.zy.asrs.entity.LocMast;
@@ -33,6 +34,9 @@
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private WcsApiService wcsApiService;
    /**
     * 接收MES穿线任务
     * @author Ryan
@@ -119,6 +123,8 @@
           }
        });
        return R.ok();
        wcsApiService.reportLockLocs(locs, "lock");
        return R.ok("释放成功 !!");
    }
}
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -61,7 +61,7 @@
        }
        Set<String> locs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
        reportLockLocs(locs);
        reportLockLocs(locs, "lock");
        return R.ok("上报成功!!");
    }
@@ -109,26 +109,59 @@
     */
    @Override
    public R pubWrkToWcs(WorkTaskParams params) {
        if (Objects.isNull(params.getTaskNo())) {
            return R.error("任务号不能为空!!");
        }
        if (Objects.isNull(params.getBarcode())) {
            return R.error("托盘码不能为空!!");
        }
        if (Objects.isNull(params.getLocNo())) {
            return R.error("目标库位不能为空!!");
        }
        String url = MesConstant.PUB_TASK_IN;
        if (Objects.isNull(params.getType()) && params.getType().equals("out")) {
            url = MesConstant.PUB_TASK_OUT;
        }
        String response;
        try {
            response =  new HttpHandler.Builder()
                    .setUri(MesConstant.URL)
                    .setPath(url)
                    .setJson(JSON.toJSONString(params))
                    .build()
                    .doPost();
            R result = JSON.parseObject(response, R.class);
            if (result.get("code").equals("200")) {
                //TODO 上报是否成功
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return null;
    }
    /**
     * 上报锁定库位信息
     * 上报锁定/释放库位信息
     * @author Ryan
     * @date 2026/1/10 12:50
     * @param locs
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void reportLockLocs(Set<String> locs) {
    public void reportLockLocs(Set<String> locs, String type) {
        String url = MesConstant.LOCK_LOCS_URL;
        if (!Objects.isNull(type)) {
            if (type.equals("release")) {
                url = MesConstant.RELEASE_LOCS_URL;
            }
        }
        String response;
        try {
          response =  new HttpHandler.Builder()
            .setUri(MesConstant.URL)
            .setPath(MesConstant.LOCK_LOCS_URL)
            .setPath(url)
            .setJson(JSON.toJSONString(locs))
            .build()
            .doPost();
src/main/java/com/zy/common/constant/MesConstant.java
@@ -17,6 +17,14 @@
    /***上报MES,锁定同边库位*/
    public static final String LOCK_LOCS_URL = "";
    /***释放库位链接*/
    public static final String RELEASE_LOCS_URL = "";
    /***申请入库任务*/
    public static final String PUB_TASK_IN = "/openapi/createInTask";
    /***申请出库任务*/
    public static final String PUB_TASK_OUT = "/openapi/createOutTask";
    /**
     * token通过header传递的名称