| | |
| | | package com.zy.asrs.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.BasRgv; |
| | | import com.zy.asrs.entity.BasSte; |
| | | import com.zy.asrs.service.BasDevpService; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.News; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.*; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.RgvSlave; |
| | | import com.zy.core.model.SteSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.SteCommand; |
| | | import com.zy.core.model.protocol.RgvProtocol; |
| | | import com.zy.core.model.protocol.StaProtocol; |
| | | import com.zy.core.model.protocol.SteProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.RgvThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import com.zy.core.thread.SteThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 立体仓库WCS系统主流程业务 |
| | |
| | | @Transactional |
| | | public class MainServiceImpl { |
| | | |
| | | @Autowired |
| | | private SlaveProperties slaveProperties; |
| | | @Autowired |
| | | private BasDevpService basDevpService; |
| | | @Autowired |
| | | private BasRgvServiceImpl basRgvService; |
| | | |
| | | /** |
| | | * 站点任务检测 下发小车取放任务 |
| | | */ |
| | | public synchronized void DevpTaskNoRun() { |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | // 遍历空板入库口 |
| | | for (DevpSlave.Sta sta : devp.getInSta()) { |
| | | // 获取空板入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(sta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public synchronized void loopSteCharge() { |
| | | for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | BasRgv basRgv = basRgvService.selectById(rgv.getId()); |
| | | if (Cools.isEmpty(rgvProtocol, basRgv)) { continue; } |
| | | try { |
| | | // 在线 空闲 无作业标记 不在充电 |
| | | if (rgvProtocol.getMode() == 0 |
| | | || !rgvProtocol.statusType.equals(RgvStatusType.IDLE) |
| | | || basRgv.getPakMk().equals("Y") |
| | | // || steProtocol.getChargeStatus() == 1 |
| | | ) { |
| | | continue; |
| | | } |
| | | } catch (Exception e) { |
| | | News.error("fail", e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | continue; |
| | | } |
| | | |
| | | |
| | | // 穿梭车 ===>> 小车电量检测充电 |
| | | mainService.loopSteCharge(); |
| | | |
| | | |
| | | } catch (Exception e) { |
| | |
| | | public enum RgvStatusType { |
| | | |
| | | NONE(-1, "离线","#4A4035"), |
| | | IDLE(0, "空闲","#1F3696"), |
| | | WORKING(1, "作业中","#2196F3"), |
| | | SOS(2, "报警","#2196F3"), |
| | | FETCHING(11, "取货中","#2196F3"), |
| | | PUTTING(12, "放货中","#2196F3"), |
| | | WAITING(90, "任务完成等待WCS确认","#E2C027"), |
| | | FETCHWAITING(91, "取货任务完成等待WCS确认","#2196F3"), |
| | | SOS99(99, "报警99","#2196F3"), |
| | | SOS100(100, "其它100","#2196F3"), |
| | | SOSSUPER(999, "其它","#2196F3") |
| | | IDLE(0, "无任务","#1F3696"), |
| | | WORKING(1, "取货行走","#2196F3"), |
| | | SOS(2, "进站运行中","#2196F3"), |
| | | FETCHING(3, "进站完成","#2196F3"), |
| | | PUTTING(4, "有物待出站","#2196F3"), |
| | | WAITING(5, "出站行走","#E2C027"), |
| | | FETCHWAITING(6, "出站请求","#2196F3"), |
| | | SOS99(7, "出站运行中","#2196F3"), |
| | | SOS100(8, "出站完成","#2196F3"), |
| | | SOS1001(11, "漫游","#2196F3"), |
| | | SOS1002(100, "任务执行完成","#2196F3"), |
| | | SOSSUPER(999, "未知","#2196F3") |
| | | ; |
| | | |
| | | public Integer id; |