| | |
| | | import com.vincent.rsf.framework.common.R; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.api.service.AgvService; |
| | | import com.vincent.rsf.server.manager.controller.params.WaitPakinParam; |
| | | import com.vincent.rsf.server.manager.entity.*; |
| | | import com.vincent.rsf.server.manager.enums.LocStsType; |
| | | import com.vincent.rsf.server.manager.enums.PakinIOStatus; |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R AGVBindAndInTaskStart(Map<String, Object> params, Long loginUserId) { |
| | | public R AGVBindAndInTaskStart(WaitPakinParam waitPakinPda, Long loginUserId) { |
| | | //先绑定 |
| | | getAGVStaBind(params); |
| | | getAGVStaBind(waitPakinPda); |
| | | //生成任务 |
| | | AGVInTaskStart(params, loginUserId); |
| | | AGVInTaskStart(waitPakinPda, loginUserId); |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R AGVInTaskStart(Map<String, Object> params, Long loginUserId) { |
| | | String sta = params.get("sta").toString(); |
| | | String area = params.get("area").toString(); |
| | | public R AGVInTaskStart(WaitPakinParam waitPakinPda, Long loginUserId) { |
| | | String sta = waitPakinPda.getStaNo(); |
| | | String area = waitPakinPda.getArea(); |
| | | if (Cools.isEmpty(sta)) { |
| | | throw new CoolException("接驳位条码不能为空"); |
| | | } |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public R getAGVStaBind(Map<String, Object> params) { |
| | | String barcode = params.get("barcode").toString(); |
| | | String sta = params.get("sta").toString(); |
| | | public R getAGVStaBind(WaitPakinParam waitPakinPda) { |
| | | String barcode = waitPakinPda.getBarcode(); |
| | | String sta = waitPakinPda.getStaNo(); |
| | | //验证基础信息 |
| | | BasStation basStation = checkStaStatus(barcode, sta); |
| | | //更新站点状态 |
| | |
| | | new LambdaQueryWrapper<BasContainer>() |
| | | .in(BasContainer::getContainerType, longs1) |
| | | ); |
| | | boolean matches = containers.stream() |
| | | .map(BasContainer::getCodeType) |
| | | .anyMatch(codeType -> barcode.matches(codeType)); |
| | | boolean matches = false; |
| | | for (BasContainer container : containers) { |
| | | String codeType = container.getCodeType(); // 获取正则表达式 |
| | | if (barcode.matches(codeType)) { // 判断条码是否符合这个正则 |
| | | matches = true; |
| | | break; // 找到匹配的就退出循环 |
| | | } |
| | | } |
| | | // boolean matches = containers.stream() |
| | | // .map(BasContainer::getCodeType) |
| | | // .anyMatch(codeType -> barcode.matches(codeType)); |
| | | if (!matches) { |
| | | throw new CoolException("条码与站点不匹配"); |
| | | } |