49cd991d855e1367f06e95a951af992f04724783..2b3b3fd0e6a3d4020d7626691346a33e7719670b
2025-06-06 lsh
*
2b3b3f 对比 | 目录
2025-06-06 lsh
*
23b4e7 对比 | 目录
2025-06-06 lsh
*
bb6bc1 对比 | 目录
2025-06-06 lsh
*
83023a 对比 | 目录
2025-06-06 lsh
*
95a871 对比 | 目录
2025-06-06 lsh
*
813e31 对比 | 目录
2025-06-06 lsh
*
9cf46e 对比 | 目录
2025-06-06 lsh
*
20fa3d 对比 | 目录
2025-06-06 lsh
*
6ddd9c 对比 | 目录
2025-06-06 lsh
*
794ed1 对比 | 目录
7个文件已修改
147 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/RgvTaskReportingHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/ServerBootstrap.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/RgvThread.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/index.html 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -234,7 +234,7 @@
                return;
            }
            long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(wrkMasts.get(0).getModiTime(), new Date());
            if (differenceInSeconds <= 100) {
            if (differenceInSeconds <= 1000) {
                return;
            }
@@ -263,20 +263,44 @@
    //获取小车取放任务列表失败
    public synchronized List<List<List<WrkMast>>> getWrkMastListAll(List<List<Integer>> siteListAll ,BasDevpPosition[] basDevpPositionsListUN) {
        List<List<List<WrkMast>>> wrkMastListAll = new ArrayList<>();
        List<Integer> sourceStaNoList = new ArrayList<>();
        for (List<Integer> siteList : siteListAll){
            List<List<WrkMast>> wrkMastLists = new ArrayList<>();
            try {
                List<WrkMast> wrkMastlistA = new ArrayList<>();
                List<WrkMast> wrkMastlistB = new ArrayList<>();
                List<WrkMast> wrkMastlistC = new ArrayList<>();
                List<WrkMast> wrkMastlistD = new ArrayList<>();
                for (BasDevpPosition basDevpPosition : basDevpPositionsListUN) {
                    List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts", 1L).orderBy("modi_time", true));
                    for (WrkMast wrkMast : wrkMastList) {
                        if (!Cools.isEmpty(wrkMast)) {
                            if (siteList.contains(wrkMast.getSourceStaNo())){
                                if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN, wrkMast.getSourceStaNo(), wrkMast.getStaNo())) {
                                    wrkMastlistA.add(wrkMast);
                                if (!sourceStaNoList.contains(wrkMast.getSourceStaNo())){
                                    List<WrkMast> wrkMastListS = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_sta_no", wrkMast.getSourceStaNo()).eq("wrk_sts", 1L).orderBy("modi_time", true));
                                    if (wrkMastListS.isEmpty()){
                                        continue;
                                    }
                                } else {
                                    wrkMastlistB.add(wrkMast);
                                    continue;
                                }
                                long differenceInSeconds = TimeCalculatorUtils.differenceInMilliseconds(wrkMast.getModiTime(), new Date());
                                if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN, wrkMast.getSourceStaNo(), wrkMast.getStaNo())) {
                                    sourceStaNoList.add(wrkMast.getSourceStaNo());
                                    if (differenceInSeconds>600000){
                                        wrkMastlistA.add(wrkMast);
                                    } else {
                                        wrkMastlistC.add(wrkMast);
                                    }
                                } else {
                                    sourceStaNoList.add(wrkMast.getSourceStaNo());
                                    if (differenceInSeconds>600000){
                                        wrkMastlistB.add(wrkMast);
                                    } else {
                                        wrkMastlistD.add(wrkMast);
                                    }
                                }
                            }
                        }
@@ -284,6 +308,8 @@
                }
                wrkMastLists.add(wrkMastlistA);
                wrkMastLists.add(wrkMastlistB);
                wrkMastLists.add(wrkMastlistC);
                wrkMastLists.add(wrkMastlistD);
//                return wrkMastLists;
                wrkMastListAll.add(wrkMastLists);
            } catch (Exception e) {
@@ -456,8 +482,8 @@
        List<Integer> rgvNoM = new ArrayList<>();
        List<Integer> rgvNoR = new ArrayList<>();
        Integer wrkMastRunCount = 0;
        Long devperimeter = 0L;
        int wrkMastRunCount = 0;
        long devperimeter = 0L;
        for (List<List<WrkMast>> wrkMastLists : wrkMastListAll) {
            long rgvId = 0;
            runRgv:
@@ -494,7 +520,7 @@
                                    if (!rgvNoM.contains(rgvProtocol.getRgvNo())){
                                        rgvNoM.add(rgvProtocol.getRgvNo());
                                        if (wrkMastRunCount == 0){
                                            devperimeter = basDevpPosition.getPlcPosition()-taskRunPerimeter+1000;
                                            devperimeter = basDevpPosition.getPlcPosition()-taskRunPerimeter+10000>perimeter? 10000:basDevpPosition.getPlcPosition()-taskRunPerimeter+10000;
                                        }
                                        wrkMastRunCount++;
                                        break;
@@ -506,7 +532,7 @@
                                    if (!rgvNoM.contains(rgvProtocol.getRgvNo())){
                                        rgvNoM.add(rgvProtocol.getRgvNo());
                                        if (wrkMastRunCount == 0){
                                            devperimeter = basDevpPosition.getPlcPosition()-taskRunPerimeter+1000;
                                            devperimeter = basDevpPosition.getPlcPosition()-taskRunPerimeter+10000>perimeter? 10000:basDevpPosition.getPlcPosition()-taskRunPerimeter+10000;
                                        }
                                        wrkMastRunCount++;
                                        break;
@@ -590,7 +616,7 @@
                        && rgvProtocol.getStatusType() == RgvStatusType.IDLE
                        && rgvProtocol.getTaskNo1() == 0
                        && rgvProtocol.getAlarm() == 0) {
                    if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(4,devperimeter))) {
                    if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(5,devperimeter))) {
                        log.error("RGV漫游启动命令下发失败,RGV号={},任务数据={}", rgvNo, "漫游指令");
                        break;
                    }
@@ -649,7 +675,7 @@
                                    wrkMastService.updateById(wrkMast);
                                    continue;
                                }else {
                                    log.error("工作号"+wrkMast.getWrkNo()+"任务完成信息上传处理失败");
                                    log.error("工作号"+wrkMast.getWrkNo()+"任务完成信息上传处理失败1");
                                }
                            } else {
                                //测试用
src/main/java/com/zy/asrs/task/handler/RgvTaskReportingHandler.java
@@ -47,7 +47,7 @@
                wrkMastService.updateById(wrkMast);
                return SUCCESS;
            }else {
                log.error("任务完成信息上传失败");
                log.error("工作号"+wrkMast.getWrkNo()+"任务完成信息上传处理失败2");
            }
        }catch (Exception e){
            log.error("任务完成信息上传异常!!!"+e);
src/main/java/com/zy/core/MainProcess.java
@@ -10,6 +10,7 @@
import javax.annotation.PreDestroy;
import java.util.ArrayList;
import java.util.Date;
/**
 * WCS主流程
@@ -51,6 +52,7 @@
                try {
                    // 间隔
                    Thread.sleep(200);
                    System.out.println("开始:"+new Date().getTime());
                    // 系统运行状态判断
                    if (!SystemProperties.WCS_RUNNING_STATUS.get()) {
@@ -67,6 +69,8 @@
                    mainService.rgvCompleteWrkMastSta(autoZ);
                    //更新位置信息
                    mainService.updateStePosition();
                    System.out.println("结束:"+new Date().getTime());
                } catch (Exception e) {
                    e.printStackTrace();
src/main/java/com/zy/core/ServerBootstrap.java
@@ -137,8 +137,25 @@
        @Scheduled(cron = "0 0 4 * * ?")
        public void licenseVerify() {
            int licenseVerifySignCount = 0;
            boolean licenseVerifySign = false;
            if (!new LicenseVerify().verify()){
                SystemProperties.WCS_RUNNING_STATUS.set(Boolean.FALSE);
                for (licenseVerifySignCount = 0;!licenseVerifySign && licenseVerifySignCount<10; licenseVerifySignCount++){
                    try{
                        Thread.sleep(1000);
                    }catch (Exception e){
                    }
                    if (!new LicenseVerify().verify()){
                        log.info("++++++++ 验证许可证失败 ++++++++");
                    } else {
                        log.info("++++++++ 验证许可证成功 ++++++++");
                        licenseVerifySign = true;
                    }
                }
                if (licenseVerifySignCount>10 && !licenseVerifySign){
                    SystemProperties.WCS_RUNNING_STATUS.set(Boolean.FALSE);
                }
            }
        }
    }
src/main/java/com/zy/core/thread/RgvThread.java
@@ -98,9 +98,10 @@
                    step = task.getStep();
                }
                switch (step) {
                    // 读数据
                    //漫游任务完成信号
                    case 1:
//                        readStatus();
                        taskComplete();
                        break;
                    //工位1写入数据
                    case 2:
@@ -361,12 +362,33 @@
            return false;
        }
    }
    /**
     * 完成
     */
    private void taskComplete() {
        try {
            OperateResultExOne<byte[]> result = siemensNet.Read("DB24.11", (short) 1);
            boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 0, 1);
            if (status[0]){
                OperateResult result4 = siemensNet.Write("DB24.11.0", false);
            }
        } catch (Exception e) {
            log.error("RGV数据任务下发复位线程异常!!! ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
    }
    private void write5(Long devperimeter){
        try {
            siemensNet.Write("DB24.10.0", false);
            siemensNet.Write("DB24.10.0", devperimeter.intValue());
        } catch (Exception ignore) {}
            siemensNet.Write("DB24.12", devperimeter.intValue());
            Thread.sleep(10L);
            siemensNet.Write("DB24.11.0", true);
        } catch (Exception ignore) {
            log.error("写入RGV plc工位1漫游数据失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
        }
    }
    private boolean write3(RgvCommand command) throws InterruptedException {
        if (null == command) {
            log.error("RGV写入命令为空");
src/main/resources/application.yml
@@ -57,7 +57,7 @@
  # 小车数
  rgvCount: 10
  # 延迟时间
  rgvDate: 1
  rgvDate: 0.5
# 下位机配置
wcs-slave:
src/main/webapp/views/index.html
@@ -454,6 +454,22 @@
                    }, 1000)
                },
                verifyPassword(callback) {
                    this.$prompt('请输入管理员密码: root', '验证', {
                        confirmButtonText: '确定',
                        cancelButtonText: '取消',
                        inputType: 'password',
                        inputPattern: /^root$/,
                        inputErrorMessage: '密码错误'
                    }).then(({ value }) => {
                        if (value === 'root') {
                            callback();
                        }
                    }).catch(() => {
                        this.$message.info('已取消操作');
                    });
                },
                handleChange(val) {
                    console.log(val);
                    if (val.length === 0){
@@ -586,20 +602,22 @@
                },
                upDateValueSystem(){
                    let that = this;
                    let operatorTypeI = 0;
                    if (that.valueSystem){
                        operatorTypeI = 1;
                    }
                    $.ajax({
                        url: baseUrl + "/console/system/switch",
                        headers: {'token': localStorage.getItem('token')},
                        data: {operatorType : operatorTypeI},
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200) {
                                that.valueSystem = res.data.status;
                            }
                    this.verifyPassword(() => {
                        let operatorTypeI = 0;
                        if (that.valueSystem){
                            operatorTypeI = 1;
                        }
                        $.ajax({
                            url: baseUrl + "/console/system/switch",
                            headers: {'token': localStorage.getItem('token')},
                            data: {operatorType : operatorTypeI},
                            method: 'POST',
                            success: function (res) {
                                if (res.code === 200) {
                                    that.valueSystem = res.data.status;
                                }
                            }
                        });
                    });
                },
                getTableDataLeft() {