自动化立体仓库 - WMS系统
#
Administrator
2 天以前 b61c2d7525bcbdf02db339c1b9865c6032412a8c
#
2个文件已添加
5个文件已修改
81 ■■■■■ 已修改文件
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/MesToCombReturnParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OutTaskReturnParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/Utils.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -156,14 +156,14 @@
            String path = resolveTaskPath(group.get(0));
            Map<String, Object> payload = new HashMap<>();
            // WCS 批量下发报文统一使用 {"tasks":[...]} 结构。
            payload.put("tasks", buildTaskPayloads(group));
            payload.put("taskList", buildTaskPayloads(group));
            String response = null;
            try {
                log.info("批量下发搬运任务给wcs={}", JSON.toJSONString(payload));
                response = new HttpHandler.Builder()
                        .setUri(wcs_address)
                        .setPath(path)
                        .setHttps(wcs_address != null && wcs_address.startsWith("https://"))
//                        .setHttps(wcs_address != null && wcs_address.startsWith("https://"))
                        .setTimeout(10, TimeUnit.SECONDS)
                        .setJson(JSON.toJSONString(payload))
                        .build()
@@ -455,15 +455,17 @@
        if (!Boolean.parseBoolean(String.valueOf(switchValue))) {
            return R.ok("WCS开关关闭");
        }
        HashMap<String,Object> map = new  HashMap<>();
        map.put("taskList", params);
        String response;
        try {
            log.info("调用WCS取消出库任务, request={}", JSON.toJSONString(params));
            response = new HttpHandler.Builder()
                    .setUri(wcs_address)
                    .setPath(stopOutTask)
                    .setHttps(wcs_address != null && wcs_address.startsWith("https://"))
//                    .setHttps(wcs_address != null && wcs_address.startsWith("https://"))
                    .setTimeout(10, TimeUnit.SECONDS)
                    .setJson(JSON.toJSONString(params))
                    .setJson(JSON.toJSONString(map))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response == null ? "{}" : response);
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -433,12 +433,13 @@
        List<MesToCombParam> errorComb = Lists.newArrayList();
        List<MesToCombParam> validComb = Lists.newArrayList();
        for (MesToCombParam mesToCombParam : param) {
//            if (mesToCombParam.getPalletId().length() != 8) {
//                return R.error(mesToCombParam.getPalletId()+"-该托盘码不为8位");
//            }
            if (Cools.isEmpty(mesToCombParam.getBizNo())) {
                return R.error("bizNo不能為空");
            }
//        if (param.getCombMats().size()>1){
//            throw new CoolException("不允许混料===>>" + param.getBarcode());
//        }
            int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", mesToCombParam.getPalletId()));
            int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", mesToCombParam.getPalletId()));
@@ -482,24 +483,24 @@
            }
            orderIds.add(outTaskParam.getOrderId());
        }
        if (!orderIds.isEmpty()) {
            Set<String> existedOrderIds = new LinkedHashSet<>();
            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("user_no", orderIds));
            for (WrkMast wrkMast : wrkMasts) {
                if (!Cools.isEmpty(wrkMast.getUserNo())) {
                    existedOrderIds.add(wrkMast.getUserNo());
                }
            }
            List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().in("user_no", orderIds));
            for (WrkMastLog wrkMastLog : wrkMastLogs) {
                if (!Cools.isEmpty(wrkMastLog.getUserNo())) {
                    existedOrderIds.add(wrkMastLog.getUserNo());
                }
            }
            if (!existedOrderIds.isEmpty()) {
                return R.error("出库单号已存在任务档或任务历史档:" + String.join(",", existedOrderIds));
            }
        }
//        if (!orderIds.isEmpty()) {
//            Set<String> existedOrderIds = new LinkedHashSet<>();
//            List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("user_no", orderIds));
//            for (WrkMast wrkMast : wrkMasts) {
//                if (!Cools.isEmpty(wrkMast.getUserNo())) {
//                    existedOrderIds.add(wrkMast.getUserNo());
//                }
//            }
//            List<WrkMastLog> wrkMastLogs = wrkMastLogService.selectList(new EntityWrapper<WrkMastLog>().in("user_no", orderIds));
//            for (WrkMastLog wrkMastLog : wrkMastLogs) {
//                if (!Cools.isEmpty(wrkMastLog.getUserNo())) {
//                    existedOrderIds.add(wrkMastLog.getUserNo());
//                }
//            }
//            if (!existedOrderIds.isEmpty()) {
//                return R.error("出库单号已存在任务档或任务历史档:" + String.join(",", existedOrderIds));
//            }
//        }
        List<OutTaskParam> errorOutOrders = Lists.newArrayList();
        List<OutTaskParam> validOutOrders = Lists.newArrayList();
src/main/java/com/zy/asrs/entity/param/MesToCombReturnParam.java
New file
@@ -0,0 +1,6 @@
package com.zy.asrs.entity.param;
public class MesToCombReturnParam extends MesToCombParam {
    private String errorMsg = "托盘已在库存中/已开始入库";
}
src/main/java/com/zy/asrs/entity/param/OutTaskReturnParam.java
New file
@@ -0,0 +1,6 @@
package com.zy.asrs.entity.param;
public class OutTaskReturnParam extends OutTaskParam {
    private String errorMsg = "库存中不存在该托盘";
}
src/main/java/com/zy/asrs/utils/Utils.java
@@ -1183,6 +1183,14 @@
        }
        return result;
    }
    //erp庫位轉換
    public static String ERPLocToWMSLoc(String locNo) {
        String WmsLoc = locNo.substring(1);
        String[] split = locNo.split("-");
        WmsLoc = split[0].substring(1)+split[1]+split[2];
        return WmsLoc;
    }
    //将wms库位号转换成wcs库位号
    public static String WMSLocToWCSLoc(String locNo) {
@@ -1218,6 +1226,7 @@
        lev = lev.substring(k);
        return row + "-" + boy + "-" + lev;
    }
}
src/main/java/com/zy/common/web/WcsController.java
@@ -56,7 +56,10 @@
    @PostMapping("/pakin/loc/v1")
    @ResponseBody
    public synchronized R getLocNo(@RequestBody SearchLocParam param) {
        if(param.getBarcode().contains("-") || param.getBarcode().contains("gsl")){
        log.info("收到WCS入库接口请求====>>入参:{}", param);
        }
        if (Cools.isEmpty(param.getSourceStaNo())) {
            return R.error("源站编号不能为空");
        }
src/main/resources/application.yml
@@ -109,8 +109,8 @@
    #入库任务下发地址
    createInTask : /openapi/createInTask
    #出库任务下发地址
    createOutTask: /openapi/createOutTask
    createOutTask: /openapi/createOutTaskBatch
    #移库任务下发地址
    createLocMoveTask: /openapi/createLocMoveTask
    #pause out task
    stopOutTask: /openapi/createOutTaskBatch
    stopOutTask: /openapi/cancelTaskBatch