#
lsh
2024-06-26 8f93d32b15cff5287a07649da92bd5b6276c14e2
#
17个文件已修改
434 ■■■■ 已修改文件
src/main/java/com/zy/asrs/mapper/BasJarMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/BasJarService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/utils/SteAndJarUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/cache/MessageQueue.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/JarThread.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensCrnThread.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SiemensDevpThread.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/SteThread.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasJarMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BasJarMastMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastExecuteMapper.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/console.map23.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/BasJarMapper.java
@@ -10,6 +10,4 @@
@Repository
public interface BasJarMapper extends BaseMapper<BasJar> {
    BasJar selectByJarNo(@Param("jarNo") Integer jarNo);
}
src/main/java/com/zy/asrs/mapper/WrkMastExecuteMapper.java
@@ -12,9 +12,9 @@
@Repository
public interface WrkMastExecuteMapper extends BaseMapper<WrkMastExecute> {
    WrkMastExecute getWrkMastByWrkNo(@Param("wrkNo") Long wrkNo);
    WrkMastExecute getWrkMastExecuteByWrkNo(@Param("wrkNo") Long wrkNo);
    List<WrkMastExecute> getWrkMastByJarId(@Param("jarId") Integer jarId);
    List<WrkMastExecute> getWrkMastExecuteByJarNo(@Param("jarId") Integer jarId);
    List<WrkMastExecute> selectWrkMastExecuteByType(@Param("type") Integer type);
src/main/java/com/zy/asrs/service/BasJarService.java
@@ -7,6 +7,4 @@
public interface BasJarService extends IService<BasJar> {
    BasJar selectByJarNo(Integer jarNo);
}
src/main/java/com/zy/asrs/service/impl/BasJarServiceImpl.java
@@ -9,8 +9,4 @@
@Service("basJarService")
public class BasJarServiceImpl extends ServiceImpl<BasJarMapper, BasJar> implements BasJarService {
    @Override
    public BasJar selectByJarNo(Integer jarNo){
        return this.baseMapper.selectByJarNo(jarNo);
    };
}
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4522,8 +4522,7 @@
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
            }
            if (basJar.getJarMode()!=1 && basJar.getJarMode()!=0){
            if (basJar.getJarMode()!=2){
                return false;
            }
@@ -4796,7 +4795,7 @@
            for (BasJarMast basJarMast : basJarMastList){
                JarSlave.StaStn staStn = null;
                for (JarSlave.StaStn staStn1 : jarSlave.getJarInSta()){
                    if (staStn1.getStaNo().equals(basJarMast.getEnterStaNo())){
                    if (staStn1.getStaNo().equals(basJarMast.getJarEnterStaNo())){
                        staStn = staStn1;
                    }
                }
@@ -4848,16 +4847,15 @@
                        //门作业  无
                        //自动、空闲、右门关闭、   Other左门关闭
                        if (jarProtocol.isAutoing() && !jarProtocol.isRightDoor() && jarProtocol.jarErr==0
                                && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0
                                && !jarOtherProtocol.isLeftDoor() && jarOtherProtocol.leftDoorOpen==0  && jarOtherProtocol.leftDoorClose==0){
                        if (jarProtocol.isAutoing() && jarProtocol.jarErr==0
                                && jarProtocol.leftDoorOpen==0  && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0  && jarProtocol.rightDoorClose==0){
                            if (!jarProtocol.isLeftDoor() && basJarMast.getStatus()==0){
                                //生成开门任务 OpenTheDoor
                                if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),1,1})){
                                    log.error("JarWrkMastExecute任务创建===>执行异常===》异常数据:BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
                                }
                                return true;
                            } else if (jarProtocol.statusType == JarStatusType.WAITING3 && jarProtocol.isLeftDoor()){
                            } else if ((jarProtocol.statusType == JarStatusType.WAITING3 || jarProtocol.statusType == JarStatusType.MOVING) && jarProtocol.isLeftDoor()){
                                //生成入硫化罐任务
                                if (!jarWrkMastExecuteGenerateExecute(basJar,basJarMast,basJar.getJarNo(),new int[]{basJar.getEnterSteNo(),basJar.getEnterRgvNo(),5,1})){
                                    log.error("JarWrkMastExecute任务创建===>执行异常===》异常数据:BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(basJarMast));
@@ -5325,7 +5323,7 @@
                }
            }
        } catch (Exception e){
            log.error("JarWrkMastExecute任务创建===>Action==>下发"+e.getMessage());
        }
    }
@@ -5352,7 +5350,7 @@
                return false;
            }
            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
@@ -5469,7 +5467,7 @@
                return false;
            }
            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
@@ -5586,7 +5584,7 @@
                return false;
            }
            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
@@ -5597,7 +5595,7 @@
//                return false;
//            }
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
            StaProtocol staProtocolRGV = devpThread.getStation().get(basJar.getEnterRgvNo());
            if (staProtocolRGV == null) {
                return false;
@@ -5639,8 +5637,8 @@
                        }
                        //调车  == > 取货
                        if (jarRgvGetTake(wrkMastExecute
                                ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==1
                                ,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarEnterStaNo())==2)){
                                ,SteAndJarUtil.getRgvStaRow(wrkMastExecute.getJarEnterStaNo())==1
                                ,SteAndJarUtil.getRgvStaRow(wrkMastExecute.getJarEnterStaNo())==3)){
                            log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}",
                                    wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
                        }
@@ -5698,7 +5696,7 @@
                return false;
            }
            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
@@ -5808,7 +5806,7 @@
                return false;
            }
            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
@@ -5824,7 +5822,7 @@
                return false;
            }
            BasJar basJarOther = basJarMapper.selectByJarNo(jarProtocolOther.getJarNo());
            BasJar basJarOther = basJarMapper.selectById(jarProtocolOther.getJarNo());
            if (Cools.isEmpty(basJarOther)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocolOther.getJarNo());
                return false;
@@ -5966,7 +5964,7 @@
//                return false;
//            }
            BasJar basJar = basJarMapper.selectByJarNo(wrkMastExecute.getJarId());
            BasJar basJar = basJarMapper.selectById(wrkMastExecute.getJarId());
            if (Cools.isEmpty(basJar)){
                log.error("{}号冷却槽查询设备档案无信息!!!",wrkMastExecute.getJarId());
                return false;
@@ -6080,7 +6078,7 @@
                return false;
            }
            BasJar basJar = basJarMapper.selectByJarNo(jarProtocol.getJarNo());
            BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
            if (Cools.isEmpty(basJar)){
                log.error("{}号硫化罐查询设备档案无信息!!!",jarProtocol.getJarNo());
                return false;
@@ -6442,6 +6440,9 @@
    public synchronized boolean jarWrkMastExecuteGenerateJarComplete(Integer sign) {
        try{
            for (JarSlave jarSlave : slaveProperties.getJar()) {
                if (jarSlave.getId()>4){
                    continue;
                }
                // 获取硫化罐信息
                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarSlave.getId());
                JarProtocol jarProtocol = jarThread.getJarProtocol();
@@ -6458,7 +6459,9 @@
                }
                //WAITING2(4, "硫化完成"),
                if (jarProtocol.getJarErr()==0 && jarProtocol.getStatusType().equals(JarStatusType.WAITING2)
                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor() ){
                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
                        && jarProtocol.leftDoorOpen==0 && jarProtocol.leftDoorClose==0 && jarProtocol.rightDoorOpen==0 && jarProtocol.rightDoorClose==0
                ){
                    List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{
                        add(5);//硫化中
                    }});
@@ -6469,6 +6472,74 @@
                    if (basJarMastList.size()!=integer){
                        log.error("{}号硫化罐硫化完成修改硫化档案状态结果数量不一致!!!查询资料数量={},更新返回数量={}",jarProtocol.getJarNo(),basJarMastList.size(),integer);
                    }
                } else if (jarProtocol.getJarErr()==0
                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
                        && jarProtocol.leftDoorOpen!=1 && jarProtocol.leftDoorOpen!=3
                        && jarProtocol.rightDoorOpen!=1 && jarProtocol.rightDoorOpen!=3
                        && (jarProtocol.leftDoorOpen==2  || jarProtocol.rightDoorOpen==2)){
                    WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
                    wrkMastExecuteSou.setWrkType(3);
                    List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
                    if (wrkMastExecuteList.isEmpty()){
                        WrkMastExecute execute = new WrkMastExecute();
                        execute.setJarId(jarProtocol.getJarNo());
                        //直接关门
                        if (jarDoorTake(execute,JarTaskModeType.OPEN_THE_DOOR_COMPLETE)){
                            log.error("硫化罐Jar命令下发失败,jar号={},任务数据={},硫化罐数据={},sign={}",
                                    execute.getJarId(), JSON.toJSON(execute), JSON.toJSON(jarProtocol),sign);
                        }
                        return true;
                    }
                    for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
                        if (wrkMastExecute.getIoType() == 1 || wrkMastExecute.getIoType() == 3){
                            //直接关门
                            if (jarDoorTake(wrkMastExecute,JarTaskModeType.OPEN_THE_DOOR_COMPLETE)){
                                log.error("硫化罐Jar命令下发失败,jar号={},任务数据={},硫化罐数据={},sign={}",
                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
                            }
                            wrkMastExecute.setWrkSts(4);
                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
                                log.error("平衡车Rgv命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}",
                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
                                return false;
                            }
                            return true;
                        }
                    }
                } else if (jarProtocol.getJarErr()==0
                        && jarProtocol.isRightDoor() && jarProtocol.isLeftDoor()
                        && jarProtocol.leftDoorClose!=1 && jarProtocol.leftDoorClose!=3
                        && jarProtocol.rightDoorClose!=1 && jarProtocol.rightDoorClose!=3
                        && (jarProtocol.leftDoorClose==2  || jarProtocol.rightDoorClose==2)){
                    WrkMastExecute wrkMastExecuteSou = new WrkMastExecute();
                    wrkMastExecuteSou.setWrkType(3);
                    List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectWrkMastExecuteByWrk(wrkMastExecuteSou);
                    if (wrkMastExecuteList.isEmpty()){
                        WrkMastExecute execute = new WrkMastExecute();
                        execute.setJarId(jarProtocol.getJarNo());
                        //直接关门
                        if (jarDoorTake(execute,JarTaskModeType.CLOSE_THE_DOOR_COMPLETE)){
                            log.error("硫化罐Jar命令下发失败,jar号={},任务数据={},硫化罐数据={},sign={}",
                                    execute.getJarId(), JSON.toJSON(execute), JSON.toJSON(jarProtocol),sign);
                        }
                        return true;
                    }
                    for (WrkMastExecute wrkMastExecute : wrkMastExecuteList){
                        if (wrkMastExecute.getIoType() == 2 || wrkMastExecute.getIoType() == 4){
                            //直接关门
                            if (jarDoorTake(wrkMastExecute,JarTaskModeType.CLOSE_THE_DOOR_COMPLETE)){
                                log.error("硫化罐Jar命令下发失败,jar号={},任务数据={},硫化罐数据={},sign={}",
                                        wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
                            }
                            wrkMastExecute.setWrkSts(4);
                            if (wrkMastExecuteService.updateById(wrkMastExecute)){
                                log.error("平衡车Rgv命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}",
                                        wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign);
                                return false;
                            }
                            return true;
                        }
                    }
                }
            }
            return true;
src/main/java/com/zy/asrs/service/impl/WrkMastExecuteServiceImpl.java
@@ -13,12 +13,12 @@
    @Override
    public WrkMastExecute getWrkMastExecuteByWrkNo(Long wrkNo) {
        return this.baseMapper.getWrkMastByWrkNo(wrkNo);
        return this.baseMapper.getWrkMastExecuteByWrkNo(wrkNo);
    }
    @Override
    public List<WrkMastExecute> getWrkMastExecuteByJarNo(Integer jarId) {
        return this.baseMapper.getWrkMastByJarId(jarId);
        return this.baseMapper.getWrkMastExecuteByJarNo(jarId);
    }
    @Override
src/main/java/com/zy/asrs/utils/SteAndJarUtil.java
@@ -57,7 +57,7 @@
                return  1;
            case 612:
            case 619:
                return  2;
                return  3;
        }
        return 0;
    }
src/main/java/com/zy/core/cache/MessageQueue.java
@@ -30,6 +30,8 @@
    // 台车mq交换机
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> CAR_EXCHANGE = new ConcurrentHashMap<>();
    private static final Map<Integer, ConcurrentLinkedQueue<Task>> JAR_EXCHANGE = new ConcurrentHashMap<>();
    /**
     * mq 交换机初始化
     */
@@ -56,6 +58,9 @@
            case Car:
                CAR_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            case Jar:
                JAR_EXCHANGE.put(slave.getId(), new ConcurrentLinkedQueue<>());
                break;
            default:
                break;
        }
@@ -81,6 +86,8 @@
                return SCALE_EXCHANGE.get(id).offer(task);
            case Car:
                return CAR_EXCHANGE.get(id).offer(task);
            case Jar:
                return JAR_EXCHANGE.get(id).offer(task);
            default:
                return false;
        }
@@ -106,6 +113,8 @@
                return SCALE_EXCHANGE.get(id).poll();
            case Car:
                return CAR_EXCHANGE.get(id).poll();
            case Jar:
                return JAR_EXCHANGE.get(id).poll();
            default:
                return null;
        }
@@ -130,6 +139,8 @@
                return SCALE_EXCHANGE.get(id).peek();
            case Car:
                return CAR_EXCHANGE.get(id).peek();
            case Jar:
                return JAR_EXCHANGE.get(id).peek();
            default:
                return null;
        }
@@ -158,6 +169,9 @@
            case Car:
                CAR_EXCHANGE.get(id).clear();
                break;
            case Jar:
                JAR_EXCHANGE.get(id).clear();
                break;
            default:
                break;
        }
src/main/java/com/zy/core/thread/JarThread.java
@@ -20,7 +20,6 @@
import com.zy.core.enums.SlaveType;
import com.zy.core.model.JarSlave;
import com.zy.core.model.Task;
import com.zy.core.model.command.CrnCommand;
import com.zy.core.model.command.JarCommand;
import com.zy.core.model.protocol.JarProtocol;
import lombok.Data;
@@ -64,7 +63,7 @@
                        break;
                    // 写数据 ID+目标站
                    case 2:
                        write(null);
                        write((JarCommand) task.getData());
                        break;
                    default:
                        break;
@@ -155,6 +154,16 @@
                jarProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));//状态
                jarProtocol.setAutoing(siemensS7Net.getByteTransform().TransInt16(result.Content, 12) == 2);//自动
//
//                jarProtocol.setMode(2);//模式
//                jarProtocol.setStatus((short)1);//状态
//                jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门
//                jarProtocol.setLeftDoorClose(0);//close the left door  //进料门
//                jarProtocol.setRightDoorOpen(0);//open the right door  //出料门
//                jarProtocol.setRightDoorClose(0);//close the right door  //出料门
                // 根据实时信息更新数据库
                BasJarService service = SpringUtils.getBean(BasJarService.class);
                if (null != service) {
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -194,9 +194,9 @@
     */
    private void readStatus(){
        try {
            if (true){
                return;
            }
//            if (true){
//                return;
//            }
            OperateResultExOne<byte[]> result = new OperateResultExOne<byte[]>();
            if (slave.getId()>2 && slave.getId()<6){
                result = siemensNet.Read("DB101.0", (short) 66);
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -200,6 +200,9 @@
                    case 9:
                        write9((StaProtocol)task.getData());
                        break;
                    case 10:
                        write10((StaProtocol)task.getData());
                        break;
                    default:
                        break;
                }
@@ -554,30 +557,28 @@
        boolean rgv4 = staProtocol.isRGV4();
        boolean rgv5 = staProtocol.isRGV5();
        OperateResult result1 = null;
        OperateResult result2 = null;
        String resultV1 = "";
        String resultV2 = "";
        switch (staProtocol.getSiteId()){
            case 623:
                resultV1 = "1804";
                resultV2 = "1804";
                resultV1 = "DB100.1804";
                break;
            case 624:
                resultV1 = "1810";
                resultV2 = "1810";
                resultV1 = "DB100.1810";
                break;
            case 625:
                resultV1 = "1816";
                resultV2 = "1816";
                resultV1 = "DB100.1816";
                break;
            case 626:
                resultV1 = "1822";
                resultV2 = "1822";
                resultV1 = "DB100.1822";
                break;
            default:
                return;
        }
        result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
        if (rgv4){
            result1 = siemensS7Net.Write(resultV1+".3", rgv4);
        } else {
            result1 = siemensS7Net.Write(resultV1+".4", rgv5);
        }
        //硫化罐任务写入后,回读一次,看是否成功
        try {
            Thread.sleep(200);
@@ -590,7 +591,11 @@
            try{
                if(!result1.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
                    if (rgv4){
                        result1 = siemensS7Net.Write(resultV1+".3", rgv4);
                    } else {
                        result1 = siemensS7Net.Write(resultV1+".4", rgv5);
                    }
                    Thread.sleep(100);
                    writeCount++;
                    continue;
@@ -598,56 +603,26 @@
                OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2);
                if (resultRead1.IsSuccess) {
                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1);
                    boolean status1 = status[rgv4? 4:3];
                    if (status1 == rgv4?rgv5:rgv4){
                    if (status[rgv4? 3:4]){
                        break;
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
                        if (rgv4){
                            result1 = siemensS7Net.Write(resultV1+".3", rgv4);
                        } else {
                            result1 = siemensS7Net.Write(resultV1+".4", rgv5);
                        }
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4);
                    Thread.sleep(100);
                    writeCount++;
                    continue;
                }
            }catch (Exception e){
                log.error("写入RGV数据后回读出错,异常:"+e);
            }
            writeCount++;
        } while (writeCount<6);
        result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
        writeCount = 1;
        do {
            try{
                if(!result2.IsSuccess){
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
                    Thread.sleep(100);
                    writeCount++;
                    continue;
                }
                OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 1);
                if (resultRead2.IsSuccess) {
                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead2.Content, 0, 1);
                    boolean status1 = status[rgv4? 3:4];
                    if (status1 ==  rgv4?rgv4:rgv5){
                        break;
                    if (rgv4){
                        result1 = siemensS7Net.Write(resultV1+".3", rgv4);
                    } else {
                        log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                        result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
                        Thread.sleep(100);
                        writeCount++;
                        continue;
                        result1 = siemensS7Net.Write(resultV1+".4", rgv5);
                    }
                } else {
                    log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount);
                    result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5);
                    Thread.sleep(100);
                    writeCount++;
                    continue;
src/main/java/com/zy/core/thread/SteThread.java
@@ -123,7 +123,7 @@
     */
    private void readStatus(){
        try {
            OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) 27);
            OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) 28);
            if (result.IsSuccess) {
                if (null == steProtocol) {
                    steProtocol = new SteProtocol();
src/main/resources/application.yml
@@ -284,50 +284,50 @@
      rgvNo: 623
      steNo: 1
      jarRegin: 1
      burial: 1
      burial: 5
      staNoEnter[0]:
        devpPlcId: ${wcs-slave.devp[1].id}
        staNo: 113
        row: 1
        staNo: 612
        row: 3
      staNoEnter[1]:
        devpPlcId: ${wcs-slave.devp[1].id}
        staNo: 114
        row: 3
        staNo: 615
        row: 1
    # 入硫化罐RGV
    enterRgv[1]:
      rgvNo: 624
      steNo: 1
      steNo: 2
      jarRegin: 1
      burial: 1
      burial: 6
      staNoEnter[0]:
        devpPlcId: ${wcs-slave.devp[1].id}
        staNo: 113
        row: 1
        staNo: 619
        row: 3
      staNoEnter[1]:
        devpPlcId: ${wcs-slave.devp[1].id}
        staNo: 114
        row: 3
        staNo: 622
        row: 1
    # 出硫化罐RGV
    endRgv[0]:
      rgvNo: 625
      steNo: 1
      jarNo: 1
      jarRegin: 1
      burial: 1
      burial: 5
      staNoEnd[0]:
        devpPlcId: ${wcs-slave.devp[1].id}
        staNo: 114
        staNo: 627
        row: 1
    # 出硫化罐RGV
    endRgv[1]:
      rgvNo: 626
      steNo: 1
      jarNo: 1
      steNo: 2
      jarNo: 3
      jarRegin: 1
      burial: 1
      burial: 6
      staNoEnd[0]:
        devpPlcId: ${wcs-slave.devp[1].id}
        staNo: 114
        staNo: 628
        row: 1
  # 条码扫描仪
@@ -371,23 +371,16 @@
    # 硫化罐入库站点
    jarInSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 101
      rgvNo: 102
      steNo: 102
      row: 1
    # 硫化罐入库站点
    jarInSta[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      row: 1
      staNo: 612
      rgvNo: 623
      steNo: 1
      row: 3
    # 硫化罐出库站点
    jarOutSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      staNo: 627
      rgvNo: 625
      steNo: 1
      row: 1
    # 硫化罐入库RGV
    jarInRgv[0]:
@@ -398,7 +391,7 @@
    jarOutRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 625
      row: 2
      row: 1
    # 硫化罐入库穿梭板
    jarInSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
@@ -407,8 +400,8 @@
    # 硫化罐出库穿梭板
    jarOutSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      steNo: 3
      row: 2
      steNo: 1
      row: 1
  # JAR2
  jar[1]:
    id: 2
@@ -418,44 +411,37 @@
    # 硫化罐入库站点
    jarInSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 101
      rgvNo: 102
      steNo: 102
      row: 1
    # 硫化罐入库站点
    jarInSta[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      staNo: 615
      rgvNo: 623
      steNo: 1
      row: 1
    # 硫化罐出库站点
    jarOutSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 623
      rgvNo: 102
      steNo: 102
      staNo: 627
      rgvNo: 625
      steNo: 1
      row: 1
    # 硫化罐入库RGV
    jarInRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 625
      rgvNo: 623
      row: 1
    # 硫化罐出库RGV
    jarOutRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 173
      row: 2
      rgvNo: 625
      row: 1
    # 硫化罐入库穿梭板
    jarInSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      steNo: 173
      steNo: 1
      row: 1
    # 硫化罐出库穿梭板
    jarOutSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      steNo: 173
      row: 2
      steNo: 1
      row: 1
  # JAR3
  jar[2]:
    id: 3
@@ -465,43 +451,36 @@
    # 硫化罐入库站点
    jarInSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 101
      rgvNo: 102
      steNo: 102
      row: 1
    # 硫化罐入库站点
    jarInSta[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      row: 1
      staNo: 619
      rgvNo: 624
      steNo: 2
      row: 3
    # 硫化罐出库站点
    jarOutSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      staNo: 628
      rgvNo: 626
      steNo: 2
      row: 1
    # 硫化罐入库RGV
    jarInRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 173
      rgvNo: 624
      row: 1
    # 硫化罐出库RGV
    jarOutRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 173
      rgvNo: 626
      row: 2
    # 硫化罐入库穿梭板
    jarInSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      steNo: 173
      row: 1
      steNo: 2
      row: 2
    # 硫化罐出库穿梭板
    jarOutSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      steNo: 173
      steNo: 2
      row: 2
  # JAR4
  jar[3]:
@@ -512,39 +491,32 @@
    # 硫化罐入库站点
    jarInSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 101
      rgvNo: 102
      steNo: 102
      row: 1
    # 硫化罐入库站点
    jarInSta[1]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      row: 1
      staNo: 619
      rgvNo: 624
      steNo: 2
      row: 3
    # 硫化罐出库站点
    jarOutSta[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      staNo: 102
      rgvNo: 102
      steNo: 102
      staNo: 628
      rgvNo: 626
      steNo: 2
      row: 1
    # 硫化罐入库RGV
    jarInRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 623
      rgvNo: 624
      row: 1
    # 硫化罐出库RGV
    jarOutRgv[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      rgvNo: 173
      rgvNo: 626
      row: 2
    # 硫化罐入库穿梭板
    jarInSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
      steNo: 1
      row: 1
      steNo: 2
      row: 2
    # 硫化罐出库穿梭板
    jarOutSte[0]:
      devpPlcId: ${wcs-slave.devp[1].id}
src/main/resources/mapper/BasJarMapper.xml
@@ -27,11 +27,4 @@
    </resultMap>
    <select id="selectByJarNo" resultMap="BaseResultMap">
        select top 1 * from asr_bas_jar
        where 1=1
        and jar_no=0
        order by id
    </select>
</mapper>
src/main/resources/mapper/BasJarMastMapper.xml
@@ -88,17 +88,11 @@
    </select>
    <select id="selectJarMastOperationByStatusList" resultType="Integer">
        select count(1) from asr_bas_jar_mast
        where 1=1
          and
            (
            status in
            <foreach collection="statusList" item="status" index="index" open="(" close=")" separator=",">
                #{status}
            </foreach>
            )
          and jar_id = #{jarId}
        order by jar_loc_digit desc
        SELECT count(1) FROM [dbo].[asr_bas_jar_mast] WHERE status in
        <foreach collection="statusList" item="status" index="index" open="(" close=")" separator=",">
            #{status}
        </foreach>
        AND jar_id = #{jarId}
    </select>
    <update id="updateStatus">
src/main/resources/mapper/WrkMastExecuteMapper.xml
@@ -59,10 +59,10 @@
    <select id="getWrkMastExecuteByWrkNo" resultMap="BaseResultMap">
        select top 1 * from jar_wrk_mast_execute
        where 1=1
        and jar_id = #{jarId}
        and wrk_no = #{wrkNo}
    </select>
    <select id="getWrkMastExecuteByJarId" resultMap="BaseResultMap">
    <select id="getWrkMastExecuteByJarNo" resultMap="BaseResultMap">
        select * from jar_wrk_mast_execute
        where 1=1
        and jar_id = #{jarId}
@@ -78,7 +78,15 @@
    <select id="selectWrkMastExecuteByTypeAndIoTyperAndWrkType" resultMap="BaseResultMap">
        select * from jar_wrk_mast_execute
        where 1=1
        <include refid="batchSeq"></include>
        <if test="type != null">
            and type = #{type}
        </if>
        <if test="ioType != null">
            and io_type = #{ioType}
        </if>
        <if test="wrkType != null">
            and wrk_type = #{wrkType}
        </if>
    </select>
    <select id="selectWrkMastExecuteByWrk" resultMap="BaseResultMap">
src/main/webapp/static/js/console.map23.js
@@ -339,8 +339,8 @@
                "height": 6
            }, {
                "type": "stn",
                "id": "site-624",
                "text": "624",
                "id": "site-626",
                "text": "626",
                "top": 540,
                "left": 930,
                "width": 49,