自动化立体仓库 - WCS系统
#
yxFwq
2024-11-23 63132a4f8e347375b1fbdc4bd1086ecde8ea812d
src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -10,6 +10,8 @@
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.RgvOneSign;
import com.zy.asrs.mapper.RgvOneSignMapper;
import com.zy.asrs.service.BasDevpService;
import com.zy.core.DevpThread;
import com.zy.core.News;
@@ -347,6 +349,103 @@
                    }
                }
            }
        } else if (slave.getId()==1){
            try{
                RgvOneSignMapper rgvOneSignMapper = SpringUtils.getBean(RgvOneSignMapper.class);
                OperateResultExOne<byte[]> resultSignOne = siemensS7Net.Read("DB293.106", (short) (8));
                int smallEmpty = siemensS7Net.getByteTransform().TransInt16(resultSignOne.Content, 0);// 小料空托
                int bigEmpty = siemensS7Net.getByteTransform().TransInt16(resultSignOne.Content, 2);// 大料空托
                int smallTurn = siemensS7Net.getByteTransform().TransInt16(resultSignOne.Content, 4);// 小料翻转
                int bigTurn = siemensS7Net.getByteTransform().TransInt16(resultSignOne.Content, 6);// 大料翻转
                try{
                    RgvOneSign smallEmptySign = rgvOneSignMapper.selectOneSign("smallEmpty");
                    if (!Cools.isEmpty(smallEmptySign)){
                        smallEmptySign.setRgvOneSign(smallEmpty);
                        rgvOneSignMapper.updateById(smallEmptySign);
                    }
                } catch (Exception e){
                    RgvOneSign smallEmptySign = rgvOneSignMapper.selectOneSign("smallEmpty");
                    if (!Cools.isEmpty(smallEmptySign)){
                        smallEmptySign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(smallEmptySign);
                    }
                }
                try{
                    RgvOneSign bigEmptySign = rgvOneSignMapper.selectOneSign("bigEmpty");
                    if (!Cools.isEmpty(bigEmptySign)){
                        bigEmptySign.setRgvOneSign(bigEmpty);
                        rgvOneSignMapper.updateById(bigEmptySign);
                    }
                } catch (Exception e){
                    RgvOneSign bigEmptySign = rgvOneSignMapper.selectOneSign("bigEmpty");
                    if (!Cools.isEmpty(bigEmptySign)){
                        bigEmptySign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(bigEmptySign);
                    }
                }
                try{
                    RgvOneSign smallTurnSign = rgvOneSignMapper.selectOneSign("smallTurn");
                    if (!Cools.isEmpty(smallTurnSign)){
                        smallTurnSign.setRgvOneSign(smallTurn);
                        rgvOneSignMapper.updateById(smallTurnSign);
                    }
                } catch (Exception e){
                    RgvOneSign smallTurnSign = rgvOneSignMapper.selectOneSign("smallTurn");
                    if (!Cools.isEmpty(smallTurnSign)){
                        smallTurnSign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(smallTurnSign);
                    }
                }
                try{
                    RgvOneSign bigTurnSign = rgvOneSignMapper.selectOneSign("bigTurn");
                    if (!Cools.isEmpty(bigTurnSign)){
                        bigTurnSign.setRgvOneSign(bigTurn);
                        rgvOneSignMapper.updateById(bigTurnSign);
                    }
                } catch (Exception e){
                    RgvOneSign bigTurnSign = rgvOneSignMapper.selectOneSign("bigTurn");
                    if (!Cools.isEmpty(bigTurnSign)){
                        bigTurnSign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(bigTurnSign);
                    }
                }
            } catch (Exception e){
                log.error("读取输送线数量标记出现异常:"+e);
                try{
                    RgvOneSignMapper rgvOneSignMapper = SpringUtils.getBean(RgvOneSignMapper.class);
                    RgvOneSign smallEmptySign = rgvOneSignMapper.selectOneSign("smallEmpty");
                    if (!Cools.isEmpty(smallEmptySign)){
                        smallEmptySign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(smallEmptySign);
                    }
                    RgvOneSign bigEmptySign = rgvOneSignMapper.selectOneSign("bigEmpty");
                    if (!Cools.isEmpty(bigEmptySign)){
                        bigEmptySign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(bigEmptySign);
                    }
                    RgvOneSign smallTurnSign = rgvOneSignMapper.selectOneSign("smallTurn");
                    if (!Cools.isEmpty(smallTurnSign)){
                        smallTurnSign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(smallTurnSign);
                    }
                    RgvOneSign bigTurnSign = rgvOneSignMapper.selectOneSign("bigTurn");
                    if (!Cools.isEmpty(bigTurnSign)){
                        bigTurnSign.setRgvOneSign(999);
                        rgvOneSignMapper.updateById(bigTurnSign);
                    }
                } catch (Exception e2){
                    log.error("读取输送线数量标记出现异常:"+e2);
                }
            }
        }
@@ -356,7 +455,7 @@
        if (result2.IsSuccess) {
            int[] staNosRgv = new int[]{281,292,173,214,120};
            if (slave.getId()==2){
                staNosRgv = new int[]{453,460,508,534,611};
                staNosRgv = new int[]{453,460,518,532,607};
            }
            for (int i = 0; i < barcodeSize; i++) {
                //1:281  2:292  3:174(173) 4:214  5:120
@@ -371,6 +470,21 @@
                    }
                    staProtocol.setBarcode(barcode);
                    barcodeThread.setBarcode(barcode);
                }
            }
        }
        if (slave.getId()==2){
            OperateResultExOne<byte[]> result464 = siemensS7Net.Read("DB101.3720",(short)(8));
            if (result464.IsSuccess) {
                String barcode = siemensS7Net.getByteTransform().TransString(result464.Content,0,8, "UTF-8");
                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 11);
                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                    StaProtocol staProtocol = station.get(464);
                    if (null != staProtocol) {
                        staProtocol.setBarcode(barcode);
                        barcodeThread.setBarcode(barcode);
                    }
                }
            }
        }
@@ -401,9 +515,13 @@
                    basDevps.add(staProtocol.toSqlModel());
                }
                BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
                if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
                    throw new Exception("更新数据库数据失败");
                try{
                    BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
                    if (null != basDevpService && !basDevpService.updateBatchById(basDevps)) {
                        throw new Exception("更新数据库数据失败");
                    }
                } catch (Exception e){
                    log.error("更新数据库数据失败 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
                }
            } catch (Exception e) {
                e.printStackTrace();
@@ -1021,9 +1139,10 @@
     * 设置入库标记
     */
    @Override
    public void setPakMk(Integer siteId, boolean pakMk) {
    public void setPakMk(Integer siteId, boolean pakMk,Integer i) {
        StaProtocol staProtocol = station.get(siteId);
        if (null != staProtocol) {
            log.info("锁定入库标记,站点号={};pakMk={};时间={};标记={}",siteId,pakMk,new Date(),i);
            staProtocol.setPakMk(pakMk);
        }
    }