| | |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.haikang.model.HKConstants; |
| | | import com.doumee.core.haikang.model.param.BaseResponse; |
| | | import com.doumee.core.haikang.model.param.request.CarChargeAddRequest; |
| | | import com.doumee.core.haikang.model.param.request.ParkReservationAddRequest; |
| | | import com.doumee.core.haikang.model.param.request.ParkReservationDelRequest; |
| | | import com.doumee.core.haikang.model.param.respose.ParkReservationAddResponse; |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | |
| | | * @date 2024/06/28 10:03 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | public class PlatformJobServiceImpl implements PlatformJobService { |
| | | |
| | | @Autowired |
| | |
| | | .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode) |
| | | .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .eq(Platform::getIsdeleted,Constants.ZERO) |
| | | .apply("( t1.isdeleted = 0 or t.PLATFORM_ID is null )") |
| | | .eq(pageWrap.getModel().getPlatformGroupId() != null, PlatformJob::getPlatformGroupId, pageWrap.getModel().getPlatformGroupId()) |
| | | .like(pageWrap.getModel().getCarCodeFront() != null, PlatformJob::getCarCodeFront, pageWrap.getModel().getCarCodeFront()) |
| | | |
| | |
| | | return platformJob; |
| | | } |
| | | |
| | | private Logger logger = LoggerFactory.getLogger(PlatformJobServiceImpl.class); |
| | | |
| | | @Override |
| | | public void sendInPark(PlatformJob platformJob){ |
| | | log.info("【下发停车场权限】================开始===="+platformJob.getCarCodeFront()); |
| | | if(Constants.equalsInteger(platformJob.getType(),Constants.TWO) |
| | | || Constants.equalsInteger(platformJob.getType(),Constants.THREE) |
| | | || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ |
| | | |
| | | //查询当前启用的停车场 |
| | | List<Parks> parksList = parksMapper.selectList(new QueryWrapper<Parks>() |
| | | .lambda() |
| | |
| | | .eq(VisitPark::getObjType,Constants.ONE) |
| | | .eq(VisitPark::getHkStatus,Constants.ONE) |
| | | .isNotNull(VisitPark::getHkId) |
| | | .apply(" END_TIME > now() ") |
| | | ); |
| | | |
| | | log.info("【下发停车场权限】================开始取消当前车辆所有权限===="+JSONObject.toJSONString(cancelParkList)); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(cancelParkList)){ |
| | | for (VisitPark visitPark:cancelParkList) { |
| | | ParkReservationDelRequest param = new ParkReservationDelRequest(); |
| | | param.setReserveOrderNo(visitPark.getHkId()); |
| | | HKService.parkReservationDeletion(param); |
| | | BaseResponse response = HKService.parkReservationDeletion(param); |
| | | if(response!=null |
| | | && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ |
| | | visitPark.setHkStatus(Constants.THREE); |
| | | visitPark.setIsdeleted(Constants.ONE); |
| | | visitPark.setRemark("再次下发清空权限"); |
| | | visitPark.setEditDate(new Date()); |
| | | visitParkMapper.updateById(visitPark); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | List<VisitPark> visitParkList = new ArrayList<>(); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){ |
| | |
| | | .eq(VisitPark::getObjType,Constants.ONE) |
| | | .eq(VisitPark::getHkStatus,Constants.ONE) |
| | | .isNotNull(VisitPark::getHkId) |
| | | .apply(" END_TIME > now() ") |
| | | ); |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(visitParkList)){ |
| | | for (VisitPark visitPark:visitParkList) { |
| | |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public void platformOverNumber(JobOperateDTO jobOperateDTO){ |
| | | public PlatformJob platformOverNumber(JobOperateDTO jobOperateDTO){ |
| | | if(Objects.isNull(jobOperateDTO) |
| | | || Objects.isNull(jobOperateDTO.getJobId())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | |
| | | //存储操作日志 |
| | | savePlatformLog(Constants.PlatformJobLogType.OVER_NUMBER.getKey(),oldPlatformJob,platformJob, |
| | | Constants.PlatformJobLogType.OVER_NUMBER.getInfo()); |
| | | |
| | | |
| | | return platformJob; |
| | | } |
| | | |
| | | |
| | |
| | | platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda() |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .and(i-> |
| | | i.like(PlatformJob::getDoneDate,queryDateStr) |
| | | .or().ne(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey()) |
| | | i.like(PlatformJob::getArriveDate,queryDateStr) |
| | | ) |
| | | ) |
| | | ); |
| | |
| | | @Override |
| | | public List<PlatformDataListResponse> platformWorkingDataList(PlatformDataListRequest param){ |
| | | List<PlatformDataListResponse> platformDataListResponseList = new ArrayList<>(); |
| | | List<Platform> platformList = platformJoinMapper.selectList( |
| | | new MPJLambdaWrapper<Platform>().eq(Platform::getIsdeleted,Constants.ZERO) |
| | | .eq(Platform::getStatus,Constants.ZERO) |
| | | ); |
| | | for (Platform platform:platformList) { |
| | | PlatformDataListResponse platformDataListResponse = new PlatformDataListResponse(); |
| | | platformDataListResponse.setId(platform.getId()); |
| | | platformDataListResponse.setHkId(platform.getHkId()); |
| | | platformDataListResponse.setName(platform.getName()); |
| | | platformDataListResponse.setWorkStatus(Constants.ZERO); |
| | | //查询当前作业车辆 |
| | | // PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>() |
| | | // .select(" * , ( select pl.CREATE_DATE from platform_log pl where platform_job.id = pl.obj_id and pl.OBJ_TYPE = 5 order by pl.CREATE_DATE desc limit 1 ) as newStartDate ," + |
| | | // " case when platform_job.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = platform_job.id ) else platform_job.total_num end workNum ") |
| | | // .eq("isdeleted",Constants.ZERO) |
| | | // .eq("status",Constants.PlatformJobStatus.WORKING.getKey()) |
| | | // .orderByDesc("START_DATE") |
| | | // .last(" limit 1") |
| | | // ); |
| | | |
| | | PlatformJob platformJob = platformJobJoinMapper.selectJoinOne(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() |
| | | .selectAll(PlatformJob.class) |
| | | .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) |
| | | .selectAs(Platform::getName,PlatformJob::getPlatformName) |
| | | .select(" case when t.total_num is null then ( select sum(pwd.IO_QTY) from platform_wms_detail pwd where pwd.JOB_ID = t.id ) else t.total_num end workNum ") |
| | | .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 5 order by pl.CREATE_DATE desc limit 1 ) as newStartDate ") |
| | | .select(" ( select pl.CREATE_DATE from platform_log pl where t.id = pl.obj_id and pl.OBJ_TYPE = 4 order by pl.CREATE_DATE desc limit 1 ) as newCallDate ") |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .eq(PlatformJob::getStatus, Constants.PlatformJobStatus.WORKING.getKey()) |
| | | .eq(PlatformJob::getPlatformId,platform.getId()) |
| | | .orderByDesc(PlatformJob::getStatus) |
| | | .orderByDesc(PlatformJob::getStartDate) |
| | | .last(" limit 1") |
| | | ); |
| | | |
| | | if(Objects.nonNull(platformJob)){ |
| | | platformDataListResponse.setCarCode(platformJob.getCarCodeFront()); |
| | | platformDataListResponse.setWorkType( |
| | | Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.zycxh) |
| | | ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.wxcxh) |
| | | ||Constants.equalsInteger(platformJob.getType(),Constants.platformJobType.sgscxh)?Constants.ZERO:Constants.ONE |
| | | ); |
| | | platformDataListResponse.setWorkStatus(Constants.ONE); |
| | | //查询作业时长 |
| | | platformDataListResponse.setWorkTime( |
| | | this.getWorkTime(platformJob) |
| | | ); |
| | | //计算已作业时长 根据月台工作效率 计算任务量需要时间 |
| | | if(Objects.isNull(platformJob.getWorkNum()) || Objects.isNull(platformJob.getWorkRate())){ |
| | | platformDataListResponse.setFinishTime(null); |
| | | }else{ |
| | | Integer workMinute = platformJob.getWorkNum().multiply(new BigDecimal(60)).divide(platformJob.getWorkRate()).intValue(); |
| | | Date overDate = DateUtil.getXMinuteAfterDate(platformJob.getNewStartDate(),workMinute); |
| | | platformDataListResponse.setFinishTime(overDate); |
| | | } |
| | | try { |
| | | List<Platform> platformList = platformJoinMapper.selectList( |
| | | new MPJLambdaWrapper<Platform>().eq(Platform::getIsdeleted,Constants.ZERO) |
| | |
| | | ); |
| | | } |
| | | } |
| | | platformDataListResponseList.add(platformDataListResponse); |
| | | }catch (Exception e){ |
| | | System.out.println("===============================报错啦:\n"); |
| | | e.printStackTrace(); |
| | |
| | | .selectAll(PlatformJob.class) |
| | | .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) |
| | | .leftJoin(PlatformGroup.class,PlatformGroup::getId,PlatformJob::getPlatformGroupId) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey()) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()) |
| | | .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(), |
| | | Constants.PlatformJobStatus.IN_WAIT.getKey(),Constants.PlatformJobStatus.CALLED.getKey()) |
| | | .eq(PlatformJob::getIsdeleted,Constants.ZERO) |
| | | .isNotNull(PlatformJob::getCarCodeFront) |
| | | .orderByDesc(PlatformJob::getCreateDate) |