| | |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.core.common.*; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.controller.TaskWrkController; |
| | | import com.zy.asrs.domain.enums.LedErrorAreaType; |
| | | import com.zy.asrs.domain.enums.TaskStatusType; |
| | | import com.zy.asrs.entity.*; |
| | |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.*; |
| | | import com.zy.common.model.LocTypeDto; |
| | | import com.zy.common.model.MatDto; |
| | | import com.zy.common.model.SearchLocParam; |
| | | import com.zy.common.model.StartupDto; |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.common.utils.CollectionUtils; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.common.utils.News; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.cache.*; |
| | | import com.zy.core.enums.*; |
| | | import com.zy.core.model.*; |
| | | import com.zy.core.model.command.CrnCommand; |
| | | import com.zy.core.model.command.LedCommand; |
| | | import com.zy.core.model.protocol.*; |
| | | import com.zy.core.properties.SlaveProperties; |
| | | import com.zy.core.thread.BarcodeThread; |
| | | import com.zy.core.thread.LedThread; |
| | | import com.zy.core.thread.RgvThread; |
| | | import com.zy.core.thread.SiemensDevpThread; |
| | | import com.zy.system.entity.license.LicenseVerify; |
| | |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 立体仓库WCS系统主流程业务 |
| | |
| | | @Autowired |
| | | private LocMastService locMastService; |
| | | @Autowired |
| | | private StaDescService staDescService; |
| | | @Autowired |
| | | private BasCrnpService basCrnpService; |
| | | @Autowired |
| | | private BasDevpService basDevpService; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | @Autowired |
| | | private BasErrLogService basErrLogService; |
| | | @Autowired |
| | | private BasCrnErrorMapper basCrnErrorMapper; |
| | | @Autowired |
| | | private WrkMastService wrkMastService; |
| | | @Autowired |
| | |
| | | */ |
| | | public synchronized void storeEmptyPlt() { |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | if (devp.getId()==1) continue; |
| | | // if (devp.getId()==1) continue; |
| | | // 遍历空板入库口 |
| | | for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { |
| | | // 获取空板入库站信息 |
| | |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | try { |
| | | for (RgvSlave.RgvStn inSta : rgvSlave.getRgvInSta()) { |
| | | boolean create = deviceDetectionCreate(inSta); |
| | | if (create) { |
| | | continue; |
| | | WrkMast wrkMast = deviceDetectionCreate(inSta); |
| | | if (!Cools.isEmpty(wrkMast)) { |
| | | TaskWrk taskWrk = new TaskWrk(wrkMast); |
| | | taskWrkService.insert(taskWrk); |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | public synchronized void taskCancel() { |
| | | try { |
| | | List<String> taskList = new ArrayList<>(); |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); |
| | | TaskProtocolCache taskProtocolCache = rgvThread.getTaskProtocolCache(); |
| | | ConcurrentHashMap<String, TaskProtocol> allTaskProtocol = taskProtocolCache.getAllTaskProtocol(); |
| | | for (TaskProtocol taskProtocol : allTaskProtocol.values()){ |
| | | taskList.add(taskProtocol.getTaskNo().toString()); |
| | | } |
| | | } |
| | | Wrapper<TaskWrk> wrkWrapper = new EntityWrapper<TaskWrk>().eq("status", 5); |
| | | for (String taskNo : taskList){ |
| | | wrkWrapper.ne("task_no", taskNo); |
| | | } |
| | | int count = taskWrkService.selectCount(wrkWrapper); |
| | | if (count>0){ |
| | | taskWrkService.delete(wrkWrapper); |
| | | } |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | public synchronized void taskStart() { |
| | |
| | | return true; |
| | | } |
| | | |
| | | public boolean deviceDetectionCreate(RgvSlave.RgvStn inSta) { |
| | | public WrkMast deviceDetectionCreate(RgvSlave.RgvStn inSta) { |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, inSta.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | return false; |
| | | return null; |
| | | } |
| | | |
| | | // 判断是否满足取货条件 |
| | | if (staProtocol.isAutoing() |
| | | // && staProtocol.isLoading() |
| | | // && staProtocol.isStaOk() |
| | | && staProtocol.getWorkNo() != 0) { |
| | | TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo()); |
| | | if (Cools.isEmpty(taskWrk)){ |
| | | WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo()); |
| | | if (!Cools.isEmpty(wrkMast)){ |
| | | if (inSta.getStaNo()==117 || inSta.getStaNo()==120 || inSta.getStaNo()==123 |
| | | || inSta.getStaNo()==217 || inSta.getStaNo()==220 || inSta.getStaNo()==223){ |
| | | WrkMast wrkMast = wrkMastService.selectByWrkNo(staProtocol.getWorkNo()); |
| | | if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()<100){ |
| | | return true; |
| | | if (wrkMast.getIoType()>100){ |
| | | return null; |
| | | } |
| | | } else { |
| | | return true; |
| | | } |
| | | TaskWrk taskWrk = taskWrkService.selectByTaskNo(staProtocol.getWorkNo()); |
| | | if (Cools.isEmpty(taskWrk)){ |
| | | return wrkMast; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | return null; |
| | | } |
| | | public TaskWrk deviceDetection(RgvSlave.RgvStn inSta) { |
| | | |
| | |
| | | issuedTake.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); |
| | | issuedTake.setTaskStatus(2); |
| | | issuedTake.setTargetPositionStaNo(basDevpPositionSou.getDevNo()); |
| | | issuedTake.setTargetPositionStaNoEnd(basDevpPositionSou.getDevNo$()); |
| | | issuedTake.setTargetPositionStaNoPlcId(basDevpPositionSou.getPlcId()); |
| | | issuedTake.setTaskNoDirection(issuedTake.gettaskNoDirection$(issuedTake.getTaskNo(), issuedTake.getTaskStatus())); |
| | | issuedTake.setTargetPosition(basDevpPositionSou.getPlcPosition()); |
| | |
| | | issuedPut.setTaskNo(Long.valueOf(taskWrk.getWrkNo())); |
| | | issuedPut.setTaskStatus(3); |
| | | issuedPut.setTargetPositionStaNo(basDevpPositionEnd.getDevNo()); |
| | | issuedPut.setTargetPositionStaNoEnd(basDevpPositionEnd.getDevNo$()); |
| | | issuedPut.setTargetPositionStaNoPlcId(basDevpPositionEnd.getPlcId()); |
| | | issuedPut.setTaskNoDirection(issuedPut.gettaskNoDirection$(issuedPut.getTaskNo(), issuedPut.getTaskStatus())); |
| | | issuedPut.setTargetPosition(basDevpPositionEnd.getPlcPosition()); |
| | |
| | | issuedPut.setDirection(basDevpPositionEnd.getRgvSign()==1); |
| | | |
| | | try{ |
| | | if (taskWrk.getIoType()==2 && basDevpPositionEnd.getRgvSign()==1){ |
| | | Date now = new Date(); |
| | | taskWrk.setStatus(TaskStatusType.OVER.id); |
| | | taskWrk.setModiTime(now);//更新时间 |
| | | taskWrk.setCompleteTime(now);//完结时间 |
| | | taskWrkService.updateById(taskWrk); |
| | | } |
| | | } catch (Exception e){ |
| | | |
| | | } |