自动化立体仓库 - WMS系统
#
whycq
2024-06-02 7c4565df1d655c703f6d8269040ecd9eaec8ea4a
#
8个文件已修改
86 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutoMoveTwoAndThreeGoOneScheduler.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutoMoveTwoAndThreeGoOneHandler.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java
@@ -116,10 +116,16 @@
        Date now = new Date();
        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo()));
        AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
        if (Cools.isEmpty(agvWrkMast)){
            return "失败,未查到工作主档,工作号:"+pickParams.getWrkNo();
        }
        for (PickParam.Pick pick : pickParams.getPicks()) {
            if (pick.getCount().equals(0D)) continue;
            Double count = 0.0D;
            AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()).eq("supp_code",pick.getSuppCode()));
            if (Cools.isEmpty(agvWrkDetl)) {
                AgvWrkDetl wrkDetl = new AgvWrkDetl();
                Mat mat = matService.selectByMatnr(pick.getMatnr());
@@ -129,7 +135,7 @@
                wrkDetl.sync(mat);
                wrkDetl.setWrkNo(pickParams.getWrkNo());
                wrkDetl.setOrderNo(pick.getOrderNo());
                wrkDetl.setIoTime(now);
                wrkDetl.setIoTime(agvWrkMast.getIoTime());
                wrkDetl.setAnfme(pick.getCount()); // 数量
                wrkDetl.setSuppCode(pick.getSuppCode()); // 货架条码
                wrkDetl.setAppeUser(userId);
@@ -167,7 +173,6 @@
            }
        }
        if (agvLocDetls.size() == sameNumber) {
            AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
            agvWrkMast.setIoType(101);
            agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo()));
        }
@@ -394,15 +399,15 @@
            }
        } else {
            if (agvLocMast.getFloor() != floor) {
                if (floor==1 && agvLocMast.getFloor()!=1){
                    ioType = 121;
                }else {
//                if (floor==1 && agvLocMast.getFloor()!=1){
//                    ioType = 121;
//                }else {
                    if (agvLocMast.getFloor() == 1) {
                        throw new CoolException("当前库位请选择调拨单调拨!");
                    } else {
                        ioType = 12;
                    }
                }
//                }
            } else {
                ioType = 11;
            }
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -584,8 +584,12 @@
            }
            return;
        } else {
            agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"手动完成",userId);
        } else  {
            if(wrkMast.getIoType() == 110){
                agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),206,"手动完成",userId);
            } else {
                agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"手动完成",userId);
            }
        }
        //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库
@@ -598,9 +602,7 @@
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O","",wrkMast.getWhsType().shortValue());
        }
        //出库任务 110.空板出库
        if(wrkMast.getIoType() == 110){
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
        }
        if (wrkMast.getIoType() == 10) {
            agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue());
        }
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -132,6 +132,7 @@
                .or().eq("io_type", 12)
                .or().eq("io_type", 109)
                .or().eq("io_type", 108)
                .or().eq("io_type", 111)
                .or().eq("io_type", 112)
                .or().eq("io_type", 113)).getRecords();
src/main/java/com/zy/asrs/task/AutoMoveCreateExecuteScheduler.java
@@ -42,7 +42,7 @@
    /**
     * 生成agv_wrk_mast_execute任务
     */
    @Scheduled(cron = "0/2 * * * * ? ")
//    @Scheduled(cron = "0/2 * * * * ? ")
    private void autoMove(){
        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 121).eq("wrk_sts",11));
        for (AgvWrkMast agvWrkMast:agvWrkMastList){
@@ -109,7 +109,7 @@
    /**
     * 完成agv_wrk_mast_execute任务
     */
    @Scheduled(cron = "0/2 * * * * ? ")
//    @Scheduled(cron = "0/2 * * * * ? ")
    private void autoMoveEnd(){
        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 121).eq("wrk_sts",12));
        for (AgvWrkMast agvWrkMast:agvWrkMastList){
src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -110,6 +110,7 @@
        List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>()
                .eq("wrk_sts", 22)
                .andNew().eq("io_type",111)
                .orderBy("io_pri",false)
                .orderBy("appe_time",true)
        );
        if (agvWrkMastList.isEmpty()) {
src/main/java/com/zy/asrs/task/AutoMoveTwoAndThreeGoOneScheduler.java
@@ -31,7 +31,7 @@
    /**
     * 执行agv_wrk_mast_execute任务
     */
    @Scheduled(cron = "0/2 * * * * ? ")
//    @Scheduled(cron = "0/2 * * * * ? ")
    private void autoMove(){
        List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",0L));
        for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){
@@ -48,7 +48,7 @@
    /**
     * 下一步agv_wrk_mast_execute任务
     */
    @Scheduled(cron = "0/2 * * * * ? ")
//    @Scheduled(cron = "0/2 * * * * ? ")
    private void autoMove2(){
        List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",3L));
        for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){
@@ -79,7 +79,7 @@
    /**
     * 下一步agv_wrk_mast_execute任务
     */
    @Scheduled(cron = "0/2 * * * * ? ")
//    @Scheduled(cron = "0/2 * * * * ? ")
    private void autoMove3(){
        List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",2L));
        for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -233,26 +233,29 @@
    @Transactional
    public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) {
        try{
            Date now = new Date();
            int wrkNo = agvWrkMast.getWrkNo();
            String orderNo = getOrderNoByWrkNo(wrkNo);
            //修改工作档状态为207.库存更新完成
            agvWrkMast.setWrkSts(207L);
            agvWrkMastService.updateById(agvWrkMast);
            //修改源库位状态为O
            agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
            if (agvWrkMast.getIoType() == 110) {
                agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null);
            }
            if(agvWrkMast.getIoType() == 101){
                //更新目标库位明细 101.出库 删除源库位库存明细
                agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo()));
                //生成空板入库任务
                Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2));
                try {
                    //agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
//                    agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true);
                    AgvWrkMast wrkMast = new AgvWrkMast();
                    //工作状态
                    wrkMast.setWrkSts(201L);
                    //入出库类型
                    wrkMast.setIoType(10);
                    wrkMast.setIoTime(new Date());
                    wrkMast.setIoTime(now);
                    //优先级
                    wrkMast.setIoPri(300.0);
                    //源站点
@@ -265,14 +268,22 @@
                    wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
                    wrkMast.setAppeUser(9527L);
                    wrkMast.setAppeTime(new Date());
                    wrkMast.setAppeTime(now);
                    wrkMast.setModiUser(9527L);
                    wrkMast.setModiTime(new Date());
                    wrkMast.setModiTime(now);
                    if (!agvWrkMastService.insertByIncrease(wrkMast)) {
                        throw new CoolException("保存工作档失败");
                    }
                    AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo());
                    agvLocMast.setLocSts("S");
                    agvLocMast.setModiTime(now);
                    agvLocMastService.updateById(agvLocMast);
                    AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getLocNo());
                    agvBasDevp.setLocSts("R");
                    agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)));
                    agvBasDevpService.updateById(agvBasDevp);
                }catch (Exception e){
                    e.printStackTrace();
                    log.error(e.getMessage());
src/main/java/com/zy/asrs/task/handler/AutoMoveTwoAndThreeGoOneHandler.java
@@ -104,18 +104,18 @@
    }
    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
        if (true){
            apiLogService.save(
                    namespace,
                    url + path,
                    appkey,
                    ip,
                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
                    "",
                    true
            );
            return 0;
        }
//        if (true){
//            apiLogService.save(
//                    namespace,
//                    url + path,
//                    appkey,
//                    ip,
//                    JSON.toJSONString(JSONObject.toJSONString(requestParam)),
//                    "",
//                    true
//            );
//            return 0;
//        }
        String response = "";
        boolean success = false;