zwl
2025-09-03 1999452f6faf5dc357defdf9bcd395059a10059a
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -68,7 +68,7 @@
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private WaitPakinMapper waitPakinMapper;
    private WaitPakinService waitPakinService;
    @Autowired
    private LocMastService locMastService;
    @Autowired
@@ -2065,5 +2065,62 @@
        }
    }
    /**
     * agv完成入库任务,给输送线下发入库任务
     * agv状态
     * be_batch
     * 0:无需调用AGV
     * 1:等待调用AGV
     * 2:AGV任务下发成功
     * 3:AGV任务完成
     * 4:给输送线下发入库指令完成
     */
    public synchronized void overAGVTaskIn() {
        int[] inStaNos= {101,103,105};
        for (int inStaNo : inStaNos) {
            // 获取入库站信息
            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
            StaProtocol staProtocol = devpThread.getStation().get(inStaNo);
            if (staProtocol == null) {
                continue;
            } else {
                staProtocol = staProtocol.clone();
            }
            // 判断是否满足入库条件
            if (staProtocol.isAutoing() && staProtocol.isLoading()
                    && staProtocol.isInEnable()
                    && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0){// && !Cools.isEmpty(barcode)) {
                //获取AGV搬运完成的入库通知档
                WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>()
                        .eq("memo", staProtocol.getSiteId())
                        .eq("be_batch", 3));
                if(Cools.isEmpty(waitPakin)){
                    return;
                }
                short staNo = 0;
                if(staProtocol.getSiteId()==101){
                    staNo=102;
                }else if(staProtocol.getSiteId()==103){
                    staNo=104;
                }else if(staProtocol.getSiteId()==105){
                    staNo=106;
                }
                staProtocol.setWorkNo((short) 9991);
                staProtocol.setStaNo(staNo);
                devpThread.setPakMk(staProtocol.getSiteId(), false);
                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
                if (!result) {
                    throw new CoolException("更新plc站点信息失败");
                }else {
                    waitPakin.setBeBatch(4);//4:给输送线下发入库指令完成
                    waitPakinService.updateById(waitPakin);
                }
            }
        }
    }
}