自动化立体仓库 - WMS系统
pang.jiabao
5 天以前 f0bf8f7252ab482b4ce82082dbc67fc0b77477f0
pda空托出库
5个文件已修改
47 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MobileService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -529,10 +529,14 @@
    @PostMapping("/callEmptyBinOutBound")
    @ManagerAuth(memo = "pda呼叫空料框出库")
    public synchronized R callEmptyBinOutBound(@RequestBody JSONObject param) {
        if(!param.containsKey("staNo") || !param.containsKey("locType")){ // 1.窄,2.宽
        if(!param.containsKey("staNo") || !param.containsKey("locType") || !param.containsKey("count")){ // 1.窄,2.宽
            return R.parse(BaseRes.PARAM);
        }
        return mobileService.callEmptyBinOutBound(null,param.getString("staNo"),param.getString("locType"),getUserId());
        int count = param.getInteger("count");
        if (count <= 0 || count > 10) {
            return R.parse("数量有误,count:" + count);
        }
        return mobileService.callEmptyBinOutBound(null,param.getString("staNo"),param.getString("locType"),count,getUserId());
    }
    @PostMapping("/callEmptyBinInBound")
src/main/java/com/zy/asrs/service/MobileService.java
@@ -107,7 +107,7 @@
     * @param locType 托盘类型 1.窄,2.宽
     * @param userId 用户id
     */
    R callEmptyBinOutBound(MesOutApply mesOutApply,String staNo, String locType, Long userId);
    R callEmptyBinOutBound(MesOutApply mesOutApply,String staNo, String locType, int count, Long userId);
    /**
     * pda呼叫料框回库
src/main/java/com/zy/asrs/service/impl/MesServiceImpl.java
@@ -372,7 +372,7 @@
        // 空托出库
        if (StringUtils.isEmpty(mesOutApply.getOrderNo()) && "01".equals(mesOutApply.getTransType())) {
            // 生成空托出库任务
            mobileService.callEmptyBinOutBound(mesOutApply,WMS_TRANS_START_STATION_1,"1",defaultUserId);
            mobileService.callEmptyBinOutBound(mesOutApply,WMS_TRANS_START_STATION_1,"1",1,defaultUserId);
//            try {
//                if (!StringUtils.isEmpty(mesOutApply.getTaskno()) && !StringUtils.isEmpty(mesOutApply.getStationId())) {
@@ -586,8 +586,8 @@
                    transTask.setOrderNo(mesInApply.getOrderNo());
                    transTask.setTransType(mesInApply.getTransType());
                    transTask.setCurProcess(mesInApply.getProductLineId());
                    transTask.setCurStationId("A3");
                    transTask.setNextStationId("A4");
                    transTask.setCurStationId(mesInApply.getStationID());
                    transTask.setNextStationId(WMS_TRANS_START_STATION_2);
                    transTask.setItemno(WMS_ZPALLET_ID);  // 固定为空托的编码
                    transTask.setQty(1);    // 空托只回1个
                    transTask.setProductLineId(mesInApply.getProductLineId());
@@ -595,7 +595,7 @@
                    transTask.setAgvFactory(1);
                    JSONObject sendAgvTask = submitTask(transTask);
                    if (!"1".equals(sendAgvTask.getString("Success"))) {
                        log.error("出库下发agv运输任务失败,{}", JSONObject.toJSONString(transTask));
                        log.error("入库下发agv运输任务失败,{}", JSONObject.toJSONString(transTask));
                        return 2;
                    }
                } else {
@@ -678,7 +678,6 @@
            OrderInAndOutUtil.updateOrder(Boolean.TRUE, orderPakin.getId(), 2L, defaultUserId);
            // 呼叫AGV从产线运回立库
            try {
                if (!StringUtils.isEmpty(mesInApply.getTaskno())) {
                    TransTask transTask = new TransTask();
                    transTask.setTaskno(mesInApply.getTaskno());
@@ -697,11 +696,11 @@
                    transTask.setAgvFactory(1);
                    JSONObject sendAgvTask = submitTask(transTask);
                    if (!"1".equals(sendAgvTask.getString("Success"))) {
                        log.error("出库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
                        log.error("入库下发agv运输任务失败:{}", JSONObject.toJSONString(transTask));
                        throw new CoolException("入库下发agv运输任务失败");
                    }
                }
            } catch (Exception e) {
                log.error("下发AGV运输任务失败", e);
                } else {
                    throw new CoolException("MES入库下发agv运输任务失败");
            }
        }
@@ -1124,9 +1123,9 @@
        // 转发给海康或华晓RCS
        RcsReturn rcsReturn = rcsService.submitTask(rcsTaskSubmit, transTask.getAgvFactory());
        if (rcsReturn.getCode().equals("SUCCESS")) {
            if (Cools.isEmpty(transTask.getTaskno())) {
            JSONObject data = rcsReturn.getData();
            String robotTaskCode = data.getString("robotTaskCode");
            if (Cools.isEmpty(transTask.getTaskno())) {
                transTask.setTaskno(robotTaskCode);
                result.put("taskno", transTask.getTaskno());
            }
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1287,20 +1287,23 @@
    @Override
    @Transactional
    public R callEmptyBinOutBound(MesOutApply mesOutApply, String staNo, String locType, Long userId) {
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", 'D').eq("loc_type2", locType));
        if(locMast == null) {
            return R.parse("该类型:" + locType +"空托盘不存在");
    public R callEmptyBinOutBound(MesOutApply mesOutApply, String staNo, String locType,int count, Long userId) {
        List<LocMast> locMastList = locMastService.selectList(new EntityWrapper<LocMast>().setSqlSelect("TOP " + count + " *")
                .eq("loc_sts", "D").eq("frozen", 0).eq("loc_type2", locType).orderBy("lev1").orderBy("bay1").orderBy("row1"));
        if (locMastList.size() < count) {
            return R.parse("空托数量不足(或冻结),剩余数量:" + locMastList.size());
        }
        // 获取路径
        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                .eq("type_no", 110)
                .eq("stn_no", 204)
                .eq("crn_no", locMast.getCrnNo());
                .eq("crn_no", 1);
        StaDesc staDesc = staDescService.selectOne(wrapper);
        if (staDesc == null) {
            return R.parse("出库路径不存在,站点:" + staNo);
        }
        for (LocMast locMast: locMastList) {
        Date now = new Date();
        // 生成工作档
        int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
@@ -1341,6 +1344,7 @@
            locMastService.updateById(locMast);
        }
        log.info("生成空托出库任务成功,任务号:{}",wrkMast.getWrkNo());
        }
        return R.ok("出库成功");
    }
src/main/resources/application-dev.yml
@@ -144,3 +144,7 @@
hx:
  url: http://127.0.0.1:8089/hx/
#wcs地址
wcs:
  url: http://127.0.0.1:9090/jgwcs