8f9fa425d667e3d6330a3ed4553834783bb30099..c904f735e0b8a488ef56744c08f8e10258639bce
2025-06-05 zjj
#
c904f7 对比 | 目录
2025-06-05 zjj
#
b22b5b 对比 | 目录
2025-06-05 zjj
#
cedd5a 对比 | 目录
2025-06-05 lsh
#
26947d 对比 | 目录
2025-06-05 zjj
#
fccf83 对比 | 目录
9个文件已修改
201 ■■■■ 已修改文件
src/main/java/com/zy/asrs/service/BasRgvErrService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/MainProcess.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensRgvThread.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/license.lic 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/wms/js/basErrLog/basErrLog.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/basErrLog/basErrLog.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/deviceOperate/rgvOperate.html 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasRgvErrService.java
@@ -5,4 +5,5 @@
public interface BasRgvErrService extends IService<BasRgvErr> {
    BasRgvErr findLatest(int i);
}
src/main/java/com/zy/asrs/service/impl/BasRgvErrServiceImpl.java
@@ -9,4 +9,8 @@
@Service("basRgvErrService")
public class BasRgvErrServiceImpl extends ServiceImpl<BasRgvErrMapper, BasRgvErr> implements BasRgvErrService {
    @Override
    public BasRgvErr findLatest(int i) {
        return null;
    }
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -21,6 +21,7 @@
import com.zy.common.utils.HttpHandler;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.RgvThread;
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.SlaveConnection;
import com.zy.core.enums.*;
@@ -66,6 +67,12 @@
    private FillingMastService fillingMastService;
    @Autowired
    private VacuumMastService vacuumMastService;
    @Autowired
    private BasErrLogService basErrLogService;
    @Autowired
    private WrkMastStaService wrkMastStaService;
    @Autowired
    private BasRgvErrService basRgvErrService;
    @Value("${wms.url}")
    private String wmsUrl;
@@ -547,6 +554,130 @@
        }
    }
    public synchronized void recCrnErr() {
        Date now = new Date();
            // 获取堆垛机信息
            SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, 1);
            RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
            if (rgvProtocol == null) {
                return;
            }
            if (true) {
//            if (crnProtocol.getModeType() != CrnModeType.STOP) {
                // 有任务
                if (rgvProtocol.getTaskNo1() != 0) {
                    BasErrLog latest = basErrLogService.findLatestByTaskNo(1, rgvProtocol.getTaskNo1());
                    // 有异常
                    if (latest == null) {
                        if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) {
                            WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>()
                                    .setSqlSelect("TOP 1 wrk_no as wrkNo , wrk_sts as wrkSts,wrk_start as wrkStart,wrk_end as wrkEnd, create_time as createTime")
                                    .eq("wrk_No", rgvProtocol.getTaskNo1())
                                    .orderBy("create_time", false)
                            );
                            if (wrkMastSta == null) {
                               return;
                            }
                            BasRgvErr rgvErr = basRgvErrService.selectById(rgvProtocol.getAlarm());
                            String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName();
                            BasErrLog basErrLog = new BasErrLog(
                                    null,    // 编号
                                    wrkMastSta.getWrkNo().intValue(),    // 工作号
                                    now,    // 发生时间
                                    null,    // 结束时间
                                    wrkMastSta.getWrkSts().longValue(),    // 工作状态
                                    wrkMastSta.getType(),    // 入出库类型
                                    1,    // 堆垛机
                                    null,    // plc
                                    null,    // 目标库位
                                    wrkMastSta.getWrkEnd(),    // 目标站
                                    wrkMastSta.getWrkEnd(),    // 源站
                                    null,    // 源库位
                                    null,    // 条码
                                    (int) rgvProtocol.getAlarm(),    // 异常码
                                    errName,    // 异常
                                    1,    // 异常情况
                                    now,    // 添加时间
                                    null,    // 添加人员
                                    now,    // 修改时间
                                    null,    // 修改人员
                                    "任务中异常"    // 备注
                            );
                            if (!basErrLogService.insert(basErrLog)) {
                            }
                        }
                    } else {
                        // 异常修复
                        if (rgvProtocol.getAlarm() == null || rgvProtocol.getAlarm() == 0) {
                            latest.setEndTime(now);
                            latest.setUpdateTime(now);
                            latest.setStatus(2);
                            if (!basErrLogService.updateById(latest)) {
                            }
                        }
                    }
                    // 无任务
                } else {
                    BasErrLog latest = basErrLogService.findLatest(1);
                    // 有异常
                    if (rgvProtocol.getAlarm() != null && rgvProtocol.getAlarm() > 0) {
                        // 记录新异常
                        if (latest == null || (latest.getErrCode() != rgvProtocol.getAlarm().intValue())) {
                            BasRgvErr rgvErr = basRgvErrService.selectById(rgvProtocol.getAlarm());
                            String errName = rgvErr == null ? String.valueOf(rgvProtocol.getAlarm()) : rgvErr.getErrName();
                            BasErrLog basErrLog = new BasErrLog(
                                    null,    // 编号
                                    null,    // 工作号
                                    now,    // 发生时间
                                    null,    // 结束时间
                                    null,    // 工作状态
                                    null,    // 入出库类型
                                    1,    // 堆垛机
                                    null,    // plc
                                    null,    // 目标库位
                                    null,    // 目标站
                                    null,    // 源站
                                    null,    // 源库位
                                    null,    // 条码
                                    (int) rgvProtocol.getAlarm(),    // 异常码
                                    errName,    // 异常
                                    1,    // 异常情况
                                    now,    // 添加时间
                                    null,    // 添加人员
                                    now,    // 修改时间
                                    null,    // 修改人员
                                    "无任务异常"    // 备注
                            );
                            if (!basErrLogService.insert(basErrLog)) {
                            }
                        }
                        // 无异常
                    } else {
                        // 异常修复
                        if (latest != null && latest.getStatus() == 1) {
                            latest.setEndTime(now);
                            latest.setUpdateTime(now);
                            latest.setStatus(2);
                            if (!basErrLogService.updateById(latest)) {
                            }
                        }
                    }
                }
            }
//        News.infoNoLog(""+mark+" - 0"+" - 堆垛机异常信息记录执行完成");
    }
}
src/main/java/com/zy/core/MainProcess.java
@@ -43,14 +43,16 @@
                        continue;
                    }
                    // 演示
//                    mainService.getRgvTask();
//                    mainService.RGVDemoShow0();
//                    mainService.RGVDemoShow1();
//                    mainService.RGVDemoShow2();
                    //任务生成
//                    mainService.DevpTaskAndPut();
//                    //执行小车货物搬运任务
//                    mainService.rgvRunWrkMastFullSta();
                    mainService.getRgvTask();
                    mainService.RGVDemoShow0();
                    mainService.RGVDemoShow1();
                    mainService.RGVDemoShow2();
//                    任务生成
                    mainService.DevpTaskAndPut();
                    //执行小车货物搬运任务
                    mainService.rgvRunWrkMastFullSta();
                    mainService.recCrnErr();
src/main/java/com/zy/core/thread/SiemensRgvThread.java
@@ -142,7 +142,7 @@
        }
        rgvProtocol.setMode((short) -1);
        rgvProtocol.setStatus((short)-1);
        rgvProtocol.setTaskNo1(1002);
        rgvProtocol.setTaskNo1(0);
        rgvProtocol.setStatus1((short)-1);
        rgvProtocol.setLoaded1((short)0);
        rgvProtocol.setWalkPos((short)0);
@@ -185,7 +185,7 @@
     */
    private void readStatus(){
        try {
            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30);
            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 36);
            if (result.IsSuccess) {
                if (null == rgvProtocol || rgvProtocol.getRgvNo() == null) {
                    rgvProtocol = new RgvProtocol();
src/main/resources/license.lic
Binary files differ
src/main/webapp/static/wms/js/basErrLog/basErrLog.js
@@ -26,7 +26,7 @@
            ,{field: 'endTime$', align: 'center',title: '结束时间'}
            ,{field: 'wrkSts$', align: 'center',title: '任务状态'}
            ,{field: 'ioType$', align: 'center',title: '入出库类型'}
            ,{field: 'crnNo', align: 'center',title: '堆垛机'}
            ,{field: 'crnNo', align: 'center',title: '设备号'}
            ,{field: 'plcNo', align: 'center',title: 'plc', hide: true}
            ,{field: 'locNo', align: 'center',title: '目标库位', hide: true}
            ,{field: 'staNo', align: 'center',title: '目标站', hide: true}
src/main/webapp/views/basErrLog/basErrLog.html
@@ -21,7 +21,7 @@
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="crn_no" placeholder="堆垛机" autocomplete="off">
            <input class="layui-input" type="text" name="crn_no" placeholder="设备号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
src/main/webapp/views/deviceOperate/rgvOperate.html
@@ -20,12 +20,13 @@
                        <span>设备位置</span>
                    </div>
                    <el-row >
                        <el-col :span="1" :offset="3"><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" :offset="9"><div class="card-bg">7</div></el-col>
                        <el-col :span="1" ><div class="card-bg">5</div></el-col>
                        <el-col :span="1" ><div class="card-bg">3</div></el-col>
                        <el-col :span="1" ><div class="card-bg">1</div></el-col>
                    </el-row>
                    <el-row  type="flex" justify="center">
                        <el-col :span="18" >
                        <el-col :span="7" >
                            <el-slider v-model="value1" :min="min" :max="max" :format-tooltip="formatTooltip" >
                            </el-slider>
                        </el-col>
@@ -33,13 +34,15 @@
                    </el-row>
                    <el-row >
                        <el-col :span="1" :offset="3"><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" :offset="13"><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" ><el-card class="card-bg"></el-card></el-col>
                        <el-col :span="1" :offset="8"><div class="card-bg">10</div></el-col>
                        <el-col :span="1" ><div class="card-bg">8</div></el-col>
                        <el-col :span="1" ><div class="card-bg">6</div></el-col>
                        <el-col :span="1" ><div class="card-bg">4</div></el-col>
                        <el-col :span="1" :offset="3"><div class="card-bg">2</div></el-col>
                        <el-col :span="1" ><div class="card-bg"></div></el-col>
                    </el-row>
                </el-card>
        </div>
@@ -305,8 +308,8 @@
                demo: 'X',
                rgvMode: 0,
                value1:50000,
                min:8000,
                max:80000
                min:8300,
                max:75000
            },
            created() {
                this.init()
@@ -382,7 +385,8 @@
                        method: 'post',
                        success: function (res) {
                            that.tableData = res.data
                            that.value1 = res.data.rgvPos
                            that.value1 = res.data[0].rgvPos
                        }
                    });
                },
@@ -627,6 +631,13 @@
             pointer-events: none !important;
         }
         .card-bg{
             width: 100%;
             height: 40px;
             border-radius: 10px;
             display: flex;
             justify-content: center; /* 水平居中 */
             align-items: center; /* 垂直居中 */
             color: #f0f0f0;
             background-color: #9d9d9d;
         }
         .el-slider {