| | |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.enums.RgvStatusType; |
| | | import com.zy.asrs.domain.param.RgvOperatorParam; |
| | | import com.zy.asrs.domain.param.*; |
| | | import com.zy.asrs.domain.vo.*; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.mapper.BasRgvErrMapper; |
| | | import com.zy.asrs.service.BasCircularShuttleService; |
| | | import com.zy.asrs.service.BasDevpPositionService; |
| | | import com.zy.asrs.service.BasRgvService; |
| | | import com.zy.asrs.service.LocMastService; |
| | | import com.zy.asrs.service.WrkMastService; |
| | | import com.zy.asrs.service.impl.MainServiceImpl; |
| | | import com.zy.asrs.utils.VersionUtils; |
| | | import com.zy.asrs.utils.NumUtils; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | | import com.zy.core.cache.SlaveConnection; |
| | | import com.zy.core.enums.RgvModeType; |
| | | import com.zy.core.enums.RgvTaskModeType; |
| | | import com.zy.core.enums.SlaveType; |
| | | import com.zy.core.model.DevpSlave; |
| | | import com.zy.core.model.RgvSlave; |
| | | import com.zy.core.model.Task; |
| | | import com.zy.core.model.command.RgvCommand; |
| | | import com.zy.core.model.protocol.RgvProtocol; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.RgvThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.rmi.CORBA.Util; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | |
| | | @Autowired |
| | | private MainServiceImpl mainService; |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | private BasDevpPositionService basDevpPositionService; |
| | | @Autowired |
| | | private BasCircularShuttleService basCircularShuttleService; |
| | | |
| | | @Value("${constant-parameters.perimeter}") |
| | | private Long perimeter; |
| | | |
| | | @PostMapping("/table/rgv/state") |
| | | @ManagerAuth(memo = "RGV信息表") |
| | |
| | | vo.setWalkPos(rgvProtocol.getWalkPos()==1?"不在定位":"在定位"); |
| | | vo.setWorkNo2(rgvProtocol.getTaskNo2()); // 工位2任务号 |
| | | vo.setStatus2(rgvProtocol.getStatusType2().desc); // 工位2状态 |
| | | vo.setLoading2(rgvProtocol.getLoaded2()==1?"有物":"无物"); // 工位2有物 |
| | | vo.setLoading2(rgvProtocol.getLoaded2()==0?"无物":"有物"); // 工位2有物 |
| | | |
| | | vo.setWarnCode(String.valueOf(rgvProtocol.getAlarm())); |
| | | if (rgvProtocol.getAlarm() > 0) { |
| | |
| | | vo.setRgvNo(basRgv.getRgvNo()); // RGV号 |
| | | list.add(vo); |
| | | // 获取RGV信息 |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Crn, basRgv.getRgvNo()); |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basRgv.getRgvNo()); |
| | | if (rgvThread == null) { |
| | | continue; |
| | | } |
| | |
| | | continue; |
| | | } |
| | | |
| | | vo.setWorkNo1(rgvProtocol.getTaskNo1()); // 任务号 |
| | | vo.setWorkNo(rgvProtocol.getTaskNo1()); // 任务号 |
| | | if (rgvProtocol.getTaskNo1()>0) { |
| | | WrkMast wrkMast = wrkMastService.selectById(rgvProtocol.getTaskNo1()); |
| | | if (wrkMast != null) { |
| | |
| | | StringBuilder str = new StringBuilder(); |
| | | String s; |
| | | int i = 0; |
| | | while((s = OutputQueue.CRN.poll()) != null && i <=10) { |
| | | while((s = OutputQueue.RGV.poll()) != null && i <=10) { |
| | | str.append("\n").append(s); |
| | | i++; |
| | | } |
| | |
| | | return false; |
| | | } |
| | | |
| | | @PostMapping("/ring/through/rgv/position/data") |
| | | // @ManagerAuth(memo = "环穿位置信息") |
| | | public R ringThroughRgv(){ |
| | | List<RingThroughParam> result = new ArrayList<>(); |
| | | for (RgvSlave rgv : slaveProperties.getRgv()) { |
| | | // for (int i = 1;i<2;i++) { |
| | | // // 获取RGV信息 |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); |
| | | if (rgvThread == null) { |
| | | continue; |
| | | } |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | continue; |
| | | } |
| | | RingThroughParam ringThroughParam = new RingThroughParam(); |
| | | |
| | | ringThroughParam.setIndex(rgv.getId()); |
| | | // ringThroughParam.setIndex(i); |
| | | // double[] doubles = Utils.RingThroughXY2(perimeter, NumUtils.GetRandomIntInRange(183)); |
| | | double[] doubles = Utils.RingThroughXYRgv(perimeter, perimeter-rgvProtocol.RgvPos.doubleValue()); |
| | | // double[] doubles = Utils.RingThroughXY2(183.0, 100*i ); |
| | | |
| | | ringThroughParam.setValueX(doubles[0]-2.94); |
| | | ringThroughParam.setValueY(doubles[1]-2.94); |
| | | ringThroughParam.setModeColor(rgvProtocol.modeType.color); |
| | | ringThroughParam.setStatusColor(rgvProtocol.statusType.color); |
| | | result.add(ringThroughParam); |
| | | } |
| | | return R.ok().add(result); |
| | | } |
| | | |
| | | @PostMapping("/ring/through/dev/position/data") |
| | | // @ManagerAuth(memo = "站点信息") |
| | | public R ringThroughDev(){ |
| | | List<RingThroughParam> result = new ArrayList<>(); |
| | | List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<>()); |
| | | for (BasDevpPosition basDevpPosition : basDevpPositions){ |
| | | RingThroughParam ringThroughParam = new RingThroughParam(); |
| | | ringThroughParam.setIndex(basDevpPosition.getDevNo()); |
| | | double[] doubles = Utils.RingThroughXYSta(perimeter, perimeter-basDevpPosition.getPlcPosition()); |
| | | ringThroughParam.setValueX(doubles[0]>50? doubles[0]+6:doubles[0]-1); |
| | | ringThroughParam.setValueY(doubles[1]>50? doubles[1]+6:doubles[1]-1); |
| | | result.add(ringThroughParam); |
| | | } |
| | | return R.ok().add(result); |
| | | } |
| | | |
| | | @PostMapping("/ring/through/track/position/data") |
| | | // @ManagerAuth(memo = "轨道PLC状态信息") |
| | | public R wnergyGatheringRingParamTrack(){ |
| | | List<EnergyGatheringRingParam> result = new ArrayList<>(); |
| | | try{ |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | if (devp.getId()!=1){ |
| | | break; |
| | | } |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | if (devpThread.isResult()){ |
| | | if (true){ |
| | | EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam(); |
| | | energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)"); |
| | | energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)"); |
| | | result.add(energyGatheringRingParam); |
| | | } else { |
| | | EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam(); |
| | | energyGatheringRingParam.setTrackColor("rgba(0, 230, 118, 0.5)"); |
| | | energyGatheringRingParam.setRadiationColor("rgba(0, 230, 118, 0.5)"); |
| | | result.add(energyGatheringRingParam); |
| | | } |
| | | } |
| | | } |
| | | if (result.isEmpty()){ |
| | | EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam(); |
| | | energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)"); |
| | | energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)"); |
| | | result.add(energyGatheringRingParam); |
| | | } |
| | | } catch (Exception e){ |
| | | EnergyGatheringRingParam energyGatheringRingParam = new EnergyGatheringRingParam(); |
| | | energyGatheringRingParam.setTrackColor("rgba(0, 0, 0, 81)"); |
| | | energyGatheringRingParam.setRadiationColor("rgba(0, 0, 0, 81)"); |
| | | result.add(energyGatheringRingParam); |
| | | } |
| | | return R.ok().add(result); |
| | | } |
| | | |
| | | @PostMapping("/ring/through/task/wrk/mast/position/data") |
| | | // @ManagerAuth(memo = "作业信息") |
| | | public R ringThroughTaskWrkMast(){ |
| | | List<RgvWrkMastParam> result = new ArrayList<>(); |
| | | List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<>()); |
| | | for (WrkMast wrkMast : wrkMasts){ |
| | | RgvWrkMastParam rgvWrkMastParam = new RgvWrkMastParam(wrkMast); |
| | | if (Cools.isEmpty(rgvWrkMastParam.getRgvNo())){ |
| | | rgvWrkMastParam.setRgvSts("未绑定"); |
| | | } else { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvWrkMastParam.getRgvNo()); |
| | | if (rgvThread == null) { |
| | | rgvWrkMastParam.setRgvSts("未知"); |
| | | } else { |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | rgvWrkMastParam.setRgvSts("未知"); |
| | | } else { |
| | | rgvWrkMastParam.setRgvSts(rgvProtocol.statusType.desc); |
| | | } |
| | | } |
| | | } |
| | | result.add(rgvWrkMastParam); |
| | | } |
| | | return R.ok().add(result); |
| | | } |
| | | |
| | | @PostMapping("/task/rgv/circular/shuttle/mast/position/data") |
| | | // @ManagerAuth(memo = "作业信息") |
| | | public R rgvCircularShuttle(){ |
| | | List<RgvCircularShuttleParam> result = new ArrayList<>(); |
| | | List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<>()); |
| | | for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){ |
| | | RgvCircularShuttleParam rgvCircularShuttleParam = new RgvCircularShuttleParam(basCircularShuttle); |
| | | if (!Cools.isEmpty(rgvCircularShuttleParam.getRgvNo())){ |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvCircularShuttleParam.getRgvNo()); |
| | | if (rgvThread != null) { |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol != null) { |
| | | rgvCircularShuttleParam.setPosition(rgvProtocol.getRgvPos()); |
| | | if (rgvCircularShuttleParam.getStatus()==0){ |
| | | rgvCircularShuttleParam.setStatus$(rgvProtocol.statusType.desc); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | result.add(rgvCircularShuttleParam); |
| | | } |
| | | return R.ok().add(result); |
| | | } |
| | | |
| | | } |