*
lsh
2025-02-14 e1769fa6dad08ec33ab9472c5865c9f91c8e76d0
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -3,9 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.*;
@@ -21,7 +21,6 @@
import com.zy.common.utils.CollectionUtils;
import com.zy.common.utils.HttpHandler;
import com.zy.common.utils.RedisUtil;
import com.zy.common.utils.RgvUtils;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -74,8 +73,6 @@
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private StaDescService staDescService;
    @Autowired
    private BasCrnpService basCrnpService;
    @Autowired
    private BasRgvService basRgvService;
@@ -93,8 +90,6 @@
    private BasRgvErrLogService basRgvErrLogService;
    @Autowired
    private BasRgvPathService basRgvPathService;
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private WrkMastStaMapper wrkMastStaMapper;
    @Autowired
@@ -1556,7 +1551,7 @@
            }
            //退库模式跳过118、119出库任务
            if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){
                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
                RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
                if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
                    continue;
                }
@@ -2286,7 +2281,7 @@
     */
    public synchronized void storeEmptyPlt3() {
        try{
            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign();
            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("oneSign");
            if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){
                return;
            }
@@ -4258,17 +4253,17 @@
//                        return;
                        continue;
                    }
                    if (!rgvProtocol.getRgvPosI().equals(108) &&  !rgvProtocol.getRgvPosI().equals(119)){
                    if (!rgvProtocol.getRgvPosI().equals(110) && !rgvProtocol.getRgvPosI().equals(108) &&  !rgvProtocol.getRgvPosI().equals(119)){
                        continue;
                    }
                    Integer count108Y = wrkMastStaMapper.selectAllWrkCount108Y();
                    if (count108Y==0){
                    if (count108Y!=0){
                        continue;
                    }
                    Integer count108 = wrkMastStaMapper.selectAllWrkCount108();
                    if (count108==0){
                        continue;
                    }
//                    Integer count108 = wrkMastStaMapper.selectAllWrkCount108();
//                    if (count108!=0){
//                        continue;
//                    }
                    rgvAvoidanceXY(rgvProtocol.getRgvNo());
                    continue;
//                    BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
@@ -4384,7 +4379,7 @@
                rgvCommand.setTaskNo1((short)32222); // 工位1工作号
                rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 工位1任务模式:  回原点
                //basRgvMap.getLockStartRoute().shortValue()
                rgvCommand.setSourceStaNo1( (short)107);
                rgvCommand.setSourceStaNo1( (short)104);
                rgvCommand.setCommand((short) 1);   //工位1任务确认
                if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
                    //step=2,工位1、2写任务;   step=4,工位1写任务;     step=5,工位2写任务   step=9,回原点 9999任务号
@@ -4406,7 +4401,7 @@
                rgvCommand.setAckFinish2((short) 0);  // 工位2任务完成确认位
                rgvCommand.setTaskNo2((short)32222); // 工位2工作号
                rgvCommand.setTaskMode2(RgvTaskModeType.X_MOVE); // 工位2任务模式:  回原点
                rgvCommand.setSourceStaNo2((short)113);
                rgvCommand.setSourceStaNo2((short)114);
                rgvCommand.setCommand((short) 2);   //工位2任务确认
                if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(5, rgvCommand))) {
                    //step=2,工位1、2写任务;   step=4,工位1写任务;     step=5,工位2写任务   step=9,回原点 9999任务号
@@ -4651,4 +4646,79 @@
        }
    }
    /**
     *  ste充电任务创建   //完成
     */
    public synchronized void armNoStartTwoLo() {
        int[] staNos =new int[]{215,219};
        for (int staNo : staNos){
            try{
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() == 0){
                    RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign("armNo"+staNo);
                    if (!Cools.isEmpty(rgvOneSign) && rgvOneSign.getRgvOneSign() == 1){
                        int workNo = commonService.getWorkNo(6);
                        StaProtocol staProtocolnew = new StaProtocol();
                        staProtocolnew.setSiteId(staNo);
                        staProtocolnew.setWorkNo(workNo);
                        staProtocolnew.setStaNo(staNo==215? 217:221);
                        boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocolnew));
                        if (!result2) {
                            log.error("发布命令至输送线队列失败!!! [plc编号:{}]", 2);
                        }
                        if (!staProtocol.isLoading()){
                            updateRgvOneSign("armNo"+staNo,0);
                        }
                    }
                }
            }catch (Exception e){
                log.error("站点"+staNo+"2楼机械臂码垛后标记清除失败,异常信息:"+e);
            }
        }
    }
    public synchronized void armNoCleanUpTwoLo() {
        int[] staNos =new int[]{215,219};
        for (int staNo : staNos){
            try{
                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
                StaProtocol staProtocol = devpThread.getStation().get(staNo);
                if (staProtocol == null) {
                    continue;
                } else {
                    staProtocol = staProtocol.clone();
                }
                if (!staProtocol.isLoading()){
                    updateRgvOneSign("armNo"+staNo,0);
                }
            }catch (Exception e){
                log.error("站点"+staNo+"2楼机械臂码垛后标记清除失败,异常信息:"+e);
            }
        }
    }
    public void updateRgvOneSign(String signType,Integer oneSign){
        try{
            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType);
            if (!Cools.isEmpty(rgvOneSign)){
                rgvOneSign.setRgvOneSign(oneSign);
                rgvOneSignMapper.updateById(rgvOneSign);
            }
        } catch (Exception e){
            RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(signType);
            if (!Cools.isEmpty(rgvOneSign)){
                rgvOneSign.setRgvOneSign(999);
                rgvOneSignMapper.updateById(rgvOneSign);
            }
        }
    }
}