自动化立体仓库 - WMS系统
zyx
2024-03-27 1365b4833632f2d1c5fb346cd700e2e998010db6
src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -72,22 +72,22 @@
        //save api log (appkey 后续添加)
        AppAuthUtil.auth("",param, request);
        int wrkNo = Integer.parseInt(param.getTaskCode());
        int wrkNo = Integer.parseInt(param.getReqCode());
        if(wrkNo < 0){
            wrkNo = -wrkNo;
        }
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo));
        if(Cools.isEmpty(agvWrkMast)){
            agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getContainerCode()));
            agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getPodCode()));
            if (Cools.isEmpty(agvWrkMast)){
                return R.error("任务编号错误");
            }
        }
        AgvTask agvTask = AgvTask.valueOf(param.getEventType());
        AgvTask agvTask = AgvTask.valueOf(param.getMethod());
        Class<AgvTask> clz = AgvTask.class;
        try {
            Method method = clz.getDeclaredMethod(param.getStatus(), AgvWrkMast.class, AgvTaskCallBackParam.class);
            Method method = clz.getDeclaredMethod("success", AgvWrkMast.class, AgvTaskCallBackParam.class);
            method.invoke(agvTask,agvWrkMast,param);
        } catch (NoSuchMethodException e) {
            return R.error("任务状态status参数有误");
@@ -114,14 +114,12 @@
    /**
     * 上报任务状态
     */
    task{
    end{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
            //修改AGV工作档的工作状态为205.工作完成
            agvWrkMast.setWrkSts(205L);
            if(param.getLocationCode().contains("@")){
                agvWrkMast.setLocNo(param.getLocationCode());
            }
            //agvWrkMast.setLocNo(param.getLocationCode());
            agvWrkMastService.updateById(agvWrkMast);
            //agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),205);
@@ -129,83 +127,47 @@
            //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库
            if(agvWrkMast.getIoType() == 101 || agvWrkMast.getIoType() == 103 || agvWrkMast.getIoType() == 107){
                //修改出库站点状态
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
            }
            //出库任务 110.空板出库
            if(agvWrkMast.getIoType() == 110){
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode());
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue());
            }
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    },
    /**
     * 上报任务分配给机器人
     */
    task_allocated{
    start{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    },
    /**
     * 上报取箱状态
     */
    tote_load{
    outbin{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
            //入库任务 || 拣料入库任务 ||盘点再入库 ||空板入库
            if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){
                //修改源站点状态为O.空,以及解绑托盘条码
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","");
                agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null);
            }
            //修改AGV工作档的工作状态为203.RCS放货中
            agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),203);
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    },
    /**
     * 上报放箱状态
     */
    tote_unload{
    cancel{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
            //修改工作档状态为204.放货完成
@@ -216,81 +178,22 @@
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    },
    robot_reach{
    apply{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    },
    weight{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    },
    rfid{
        @Transactional
        public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
        public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) {
        }
    };
    //任务状态为成功
    public abstract void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
    //任务状态为失败
    public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
    //任务状态为取消
    public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
    //任务状态为挂起
    public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
//    //任务状态为失败
//    public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
//    //任务状态为取消
//    public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
//    //任务状态为挂起
//    public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param);
    @Setter
    AgvBasDevpService agvBasDevpService;