自动化立体仓库 - WMS系统
zhangchao
2024-10-23 2b3519929a06019633e04ee9abb0c6ef8bba358f
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -115,6 +115,8 @@
                agvBasDevp = agvWrkMast.getSourceLocNo();
            }
            agvWrkMast.setModiTime(new Date());
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMastService.updateById(agvWrkMast);
@@ -168,11 +170,30 @@
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 57:
                    Date now = new Date();
                    // 更新库存明细
                    List<AgvWrkDetl> wrkDetlList = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("wrk_no", agvWrkMast.getWrkNo()));
                    wrkDetlList.forEach(agvWrkDetl -> {
                        AgvLocDetl agvLocDetl = new AgvLocDetl();
                        agvLocDetl.setLocNo(agvWrkMast.getLocNo());
                        agvLocDetl.sync(agvWrkDetl);
                        agvLocDetl.setModiTime(now);
                        agvLocDetl.setAppeTime(now);
                        if (!agvLocDetlService.insert(agvLocDetl)) {
                            throw new CoolException("保存工作明细失败");
                        }
                    });
                    // 更新站点 + 库位状态     源库位是站点
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    break;
                case 58:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
                    break;
                case 108:
                case 114:
                    agvLocMastService.updateLocStsByLocNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
                    //更新库存明细
                    agvLocDetlService.updateStock(agvWrkMast.getSourceLocNo(),agvWrkMast.getLocNo());
@@ -259,15 +280,22 @@
                //删除AGV工作明细档
                agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            }
//            else {
//                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"O","",agvWrkMast.getWhsType().shortValue());
//                if (!agvWrkMast.getSourceLocNo().substring(0,2).equals("DB")) {
//                    agvWrkMast.setSourceLocNo("");
//                }
//                agvWrkMastService.updateById(agvWrkMast);
//            }
            if(!isJSON(orderNo)){
                //检查订单是否已完成
                orderService.checkComplete(orderNo);
                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
            }else{
                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
                maps.forEach(map -> {
                    String o = map.get("orderNo").toString();
                    orderService.checkComplete(o);
                    orderService.checkComplete(o,agvWrkMast.getLocNo());
                });
            }
@@ -281,7 +309,8 @@
        }catch (Exception e){
            log.error(""+e.getMessage());
        }
        reportMes(agvWrkMast,agvWrkDetlListOld);
        //TODO
        //reportMes(agvWrkMast,agvWrkDetlListOld);
        return SUCCESS;
    }
@@ -300,6 +329,7 @@
            String orderNo = getOrderNoByWrkNo(wrkNo);
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
            //修改源库位状态为O
            if (agvWrkMast.getIoType() == 110) {
@@ -362,12 +392,12 @@
            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            if(!isJSON(orderNo)){
                //检查订单是否已完成
                orderService.checkComplete(orderNo);
                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
            }else{
                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
                maps.forEach(map -> {
                    String o = map.get("orderNo").toString();
                    orderService.checkComplete(o);
                    orderService.checkComplete(o,agvWrkMast.getLocNo());
                });
            }
@@ -400,6 +430,7 @@
            }
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
            //修改源库位状态为O
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
@@ -418,12 +449,12 @@
            agvWrkDetlService.delete(new EntityWrapper<AgvWrkDetl>().eq("wrk_no",wrkNo));
            if(!isJSON(orderNo)){
                //检查订单是否已完成
                orderService.checkComplete(orderNo);
                orderService.checkComplete(orderNo,agvWrkMast.getLocNo());
            }else{
                List<Map> maps = JSONArray.parseArray(orderNo, Map.class);
                maps.forEach(map -> {
                    String o = map.get("orderNo").toString();
                    orderService.checkComplete(o);
                    orderService.checkComplete(o,agvWrkMast.getLocNo());
                });
            }
            //上报mes
@@ -452,6 +483,7 @@
            }
            agvWrkMast.setWrkSts(202L);
            agvWrkMast.setModiTime(new Date());
            agvWrkMastService.updateById(agvWrkMast);
            if(agvWrkMast.getIoType() == 1){
                //修改AGV入库通知档状态入出状态为Y
@@ -517,6 +549,7 @@
            Map<String, Object> devNoMap = devNoMaps.get(0);
            if((int)devNoMap.get("num") < maxWrokNum){
                agvWrkMast.setLocNo(devNoMap.get("dev_no").toString());
                agvWrkMast.setModiTime(new Date());
                agvWrkMastService.updateById(agvWrkMast);
                log.info("after:" + devNoMap.toString()  +  ", wrkNo:" + agvWrkMast.getWrkNo() + ", locNo: " + agvWrkMast.getLocNo());
            }
@@ -649,6 +682,8 @@
                iteam.setSupplierCode(order.getSalesman());
                iteam.setUnit(agvWrkDetl.getUnit());
                iteams.add(iteam);
                mesBuyPakinReportParam.setCode(orderNo);
                mesBuyPakinReportParam.setIteam(iteams);