| | |
| | | queryWrapper |
| | | .selectAll(PlatformJob.class) |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .selectAs(PlatformGroup::getName,PlatformJob::getPlatformGroupName) |
| | | .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) |
| | | .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName) |
| | | .selectAs(SystemUser::getUsername,PlatformJob::getOutUserName) |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .leftJoin(PlatformGroup.class,PlatformGroup::getId,Platform::getGroupId) |
| | | .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,PlatformJob::getOutUserId) |
| | | .eq(pageWrap.getModel().getId() != null, PlatformJob::getId, pageWrap.getModel().getId()) |
| | |
| | | .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) |
| | | |
| | | .apply(pageWrap.getModel().getQueryStatus() != null, " find_in_set(t.`STATUS`,'"+pageWrap.getModel().getQueryStatus()+"')") |
| | | .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart())) |
| | | .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd())) |
| | | .ge(pageWrap.getModel().getBeginWorkDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getBeginWorkDateStart())) |
| | | .le(pageWrap.getModel().getBeginWorkDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getBeginWorkDateEnd())) |
| | | |
| | | .ge(pageWrap.getModel().getCreateDateStart() != null, PlatformJob::getStartDate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart())) |
| | | .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformJob::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDateEnd())) |
| | | .eq(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh) |
| | | .ne(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getType, Constants.platformJobType.sgscxh) |
| | | ; |
| | |
| | | .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) |
| | | .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) |
| | | .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront()) |
| | | .eq(Objects.nonNull(pageWrap.getModel().getCallType()) |
| | | &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE),PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey() |
| | | // .eq(Objects.nonNull(pageWrap.getModel().getCallType()) |
| | | // &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE), |
| | | // PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey() |
| | | // ) |
| | | |
| | | .apply(Objects.nonNull(pageWrap.getModel().getCallType()) |
| | | &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.ONE), |
| | | " ( " + |
| | | " ( t.`STATUS` = "+Constants.PlatformJobStatus.WAIT_CALL.getKey()+" and t.PLATFORM_GROUP_ID = ( SELECT p.group_id FROM platform p WHERE p.id = "+pageWrap.getModel().getPlatformId()+" LIMIT 1 ) )" + |
| | | ") " |
| | | ) |
| | | .and(Objects.nonNull(pageWrap.getModel().getCallType()) |
| | | |
| | | |
| | | .apply(Objects.nonNull(pageWrap.getModel().getCallType()) |
| | | &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.TWO), |
| | | i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or() |
| | | .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or() |
| | | .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" ) ") |
| | | " ( " + |
| | | " ( t.`STATUS` = "+Constants.PlatformJobStatus.WAIT_CALL.getKey()+" and t.PLATFORM_GROUP_ID = ( SELECT p.group_id FROM platform p WHERE p.id = "+pageWrap.getModel().getPlatformId()+" LIMIT 1 ) )" + |
| | | " or " + |
| | | " (t.`STATUS` = "+Constants.PlatformJobStatus.IN_WAIT.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" )" + |
| | | " or " + |
| | | " (t.`STATUS` = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_ID = "+pageWrap.getModel().getPlatformId()+" ) " + |
| | | ") " |
| | | ) |
| | | |
| | | |
| | | .and(Objects.nonNull(pageWrap.getModel().getCallType()) |
| | | &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.THREE), |
| | | i->i.eq(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()).or() |
| | |
| | | //计算预计等待时间 |
| | | List<Platform> platformList = platformJoinMapper.selectList(new QueryWrapper<Platform>().lambda().eq(Platform::getIsdeleted,Constants.ZERO).eq(Platform::getGroupId,platformJob.getPlatformGroupId())); |
| | | BigDecimal workRate = platformList.stream().map(m->m.getWorkRate()).reduce(BigDecimal.ZERO,BigDecimal::add); |
| | | if(sumWorkRate.compareTo(BigDecimal.ZERO) == Constants.ZERO|| workRate.compareTo(BigDecimal.ZERO) == Constants.ZERO ){ |
| | | if(sumWorkRate.compareTo(BigDecimal.ZERO) > Constants.ZERO && workRate.compareTo(BigDecimal.ZERO) > Constants.ZERO ){ |
| | | BigDecimal sumMinute = sumWorkRate.divide(workRate,1, RoundingMode.HALF_DOWN).multiply(BigDecimal.valueOf(60L)); |
| | | Integer sumMinuteInteger = sumMinute.intValue(); |
| | | Integer hours = sumMinuteInteger/60; |
| | |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"业务状态已流转,请刷新查看"); |
| | | } |
| | | platformJob.setArriveDate(Objects.isNull(platformJob.getArriveDate())?new Date():null); |
| | | platformJob.setConfirmTaskDate(Objects.isNull(platformJob.getConfirmTaskDate())?new Date():null); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"签到类型错误"); |
| | | } |
| | |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void platformInPark(JobOperateDTO jobOperateDTO){ |
| | | if(Objects.isNull(jobOperateDTO) |
| | | || Objects.isNull(jobOperateDTO.getJobId())){ |
| | | || Objects.isNull(jobOperateDTO.getJobId()) |
| | | || Objects.isNull(jobOperateDTO.getPlatformId())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId()); |
| | |
| | | if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,业务状态已流转!"); |
| | | } |
| | | |
| | | Platform platform = platformJoinMapper.selectById(jobOperateDTO.getPlatformId()); |
| | | if(Objects.isNull(platform)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到月台信息"); |
| | | } |
| | | |
| | | //判断是否需要填充进去 |
| | | if(StringUtils.isBlank(platformJob.getPlatforms())){ |
| | | platformJob.setPlatforms(jobOperateDTO.getPlatformId().toString()); |
| | | platformJob.setPlatformNames(platform.getName()); |
| | | }else{ |
| | | if(!Constants.equalsInteger(platform.getId(),platformJob.getPlatformId())){ |
| | | platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString()); |
| | | platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName()); |
| | | } |
| | | } |
| | | |
| | | PlatformJob oldPlatformJob = new PlatformJob(); |
| | | BeanUtils.copyProperties(platformJob,oldPlatformJob); |
| | | |
| | | platformJob.setPlatformId(platform.getId()); |
| | | platformJob.setInwaitDate(new Date()); |
| | | platformJob.setInwaitUserId(jobOperateDTO.getLoginUserInfo().getId()); |
| | | platformJob.setStatus(Constants.PlatformJobStatus.IN_WAIT.getKey()); |
| | |
| | | if(Objects.isNull(platform)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到月台信息"); |
| | | } |
| | | |
| | | //查询月台任务等待作业数量 |
| | | if(platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() |
| | | .eq(PlatformJob::getPlatformId,platform.getId()) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey(),Constants.PlatformJobStatus.WORKING.getKey()) |
| | | )>platform.getWorkingNum()){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"超出月台可同时作业数量["+platform.getWorkingNum()+"辆]"); |
| | | }; |
| | | |
| | | PlatformJob oldPlatformJob = new PlatformJob(); |
| | | BeanUtils.copyProperties(platformJob,oldPlatformJob); |
| | | |
| | | platformJob.setCallDate(new Date()); |
| | | platformJob.setCallDate(Objects.isNull(platformJob.getCallDate())?new Date():null); |
| | | platformJob.setCallUserId(jobOperateDTO.getLoginUserInfo().getId()); |
| | | platformJob.setStatus(Constants.PlatformJobStatus.CALLED.getKey()); |
| | | platformJob.setPlatformId(jobOperateDTO.getPlatformId()); |
| | |
| | | platformJob.setPlatforms(jobOperateDTO.getPlatformId().toString()); |
| | | platformJob.setPlatformNames(platform.getName()); |
| | | }else{ |
| | | if(!Constants.equalsInteger(platform.getId(),platformJob.getPlatformId())){ |
| | | platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString()); |
| | | platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName()); |
| | | } |
| | | } |
| | | platformJob.setEditDate(new Date()); |
| | | platformJobMapper.updateById(platformJob); |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到月台信息"); |
| | | } |
| | | |
| | | |
| | | PlatformJob oldPlatformJob = new PlatformJob(); |
| | | BeanUtils.copyProperties(platformJob,oldPlatformJob); |
| | | |
| | | |
| | | if(Objects.isNull(platformJob.getStartDate())){ |
| | | platformJob.setStartDate(new Date()); |
| | | } |
| | |
| | | //存储操作日志 |
| | | savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob , |
| | | Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo()); |
| | | |
| | | //TODO 授权车辆离场权限 |
| | | } |
| | | |
| | |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformWmsDetailList)){ |
| | | List<String> stringList = platformWmsDetailList.stream().map(m->m.getInRepertotyCode()).collect(Collectors.toList()); |
| | | response.setInRepertotyCode(stringList); |
| | | List<PlatformDataWmsInfoResponse> platformDataWmsInfoResponseList = new ArrayList<>(); |
| | | for (PlatformWmsDetail platformWmsDetail:platformWmsDetailList) { |
| | | PlatformDataWmsInfoResponse platformDataWmsInfoResponse = new PlatformDataWmsInfoResponse(); |
| | | platformDataWmsInfoResponse.setMaterialName(platformWmsDetail.getMaterialName()); |
| | | platformDataWmsInfoResponse.setIoQty(platformWmsDetail.getIoQty()); |
| | | platformDataWmsInfoResponseList.add(platformDataWmsInfoResponse); |
| | | } |
| | | response.setPlatformDataWmsInfoResponseList(platformDataWmsInfoResponseList); |
| | | } |
| | | |
| | | } |
| | | } |
| | | return response; |