From b82a5aa7d6167748cce7e94f53b6a3b1fbc201b3 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期四, 26 九月 2024 17:13:52 +0800 Subject: [PATCH] 代码初始化 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 336 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 296 insertions(+), 40 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java index a4b0ac7..cd03e09 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java @@ -4,6 +4,13 @@ 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.doumee.core.haikang.service.HKService; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; @@ -17,6 +24,7 @@ import com.doumee.dao.business.model.*; import com.doumee.dao.openapi.request.*; import com.doumee.dao.openapi.response.*; +import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.web.reqeust.*; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; @@ -82,6 +90,12 @@ @Autowired private PlatformShowParamMapper platformShowParamMapper; + @Autowired + private ParksMapper parksMapper; + + @Autowired + private VisitParkMapper visitParkMapper; + @Override public Integer create(PlatformJob platformJob) { @@ -92,6 +106,15 @@ @Override public void deleteById(Integer id) { platformJobMapper.deleteById(id); + } + + + @Override + public void delete(Integer id) { + platformJobMapper.update(null,new UpdateWrapper<PlatformJob>().lambda() + .set(PlatformJob::getIsdeleted,Constants.ONE) + .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CANCEL.getKey()) + .eq(PlatformJob::getId,id)); } @Override @@ -148,10 +171,15 @@ 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(PlatformWmsJob::getIoCreatedate,PlatformJob::getIoCreatedate) + .selectAs(SystemUser::getRealname,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().getCreator() != null, PlatformJob::getCreator, pageWrap.getModel().getCreator()) .ge(pageWrap.getModel().getCreateDate() != null, PlatformJob::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())) @@ -175,6 +203,7 @@ .eq(pageWrap.getModel().getSingType() != null, PlatformJob::getSingType, pageWrap.getModel().getSingType()) .eq(pageWrap.getModel().getSignDistance() != null, PlatformJob::getSignDistance, pageWrap.getModel().getSignDistance()) .eq(pageWrap.getModel().getPlatformNames() != null, PlatformJob::getPlatformNames, pageWrap.getModel().getPlatformNames()) + .like(pageWrap.getModel().getPlatformName() != null, Platform::getName, pageWrap.getModel().getPlatformName()) .eq(pageWrap.getModel().getPlatforms() != null, PlatformJob::getPlatforms, pageWrap.getModel().getPlatforms()) .eq(pageWrap.getModel().getPlatformId() != null, PlatformJob::getPlatformId, pageWrap.getModel().getPlatformId()) .ge(pageWrap.getModel().getInwaitDate() != null, PlatformJob::getInwaitDate, Utils.Date.getStart(pageWrap.getModel().getInwaitDate())) @@ -225,6 +254,15 @@ .eq(pageWrap.getModel().getInType() != null, PlatformJob::getInType, pageWrap.getModel().getInType()) .eq(pageWrap.getModel().getTotalNum() != null, PlatformJob::getTotalNum, pageWrap.getModel().getTotalNum()) .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::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, PlatformWmsJob::getIoCreatedate, Utils.Date.getStart(pageWrap.getModel().getCreateDateStart())) + .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformWmsJob::getIoCreatedate, 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) ; for(PageWrap.SortData sortData: pageWrap.getSorts()) { @@ -259,23 +297,35 @@ .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() + + .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()) - &&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()+" ) ") + + + .apply(Objects.nonNull(pageWrap.getModel().getCallType()) + &&Constants.equalsInteger(pageWrap.getModel().getCallType(),Constants.TWO), + " ( " + + " ( 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() .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.IN_WAIT.getKey()).or() - .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or() +// .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.CALLED.getKey()).or() .apply(" ( t.status = "+Constants.PlatformJobStatus.TRANSFERING.getKey()+" and t.PLATFORM_GROUP_ID = "+pageWrap.getModel().getPlatformGroupId()+" ) ") ) - .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd")) +// .like(PlatformJob::getArriveDate,DateUtil.dateTypeToString(new Date(),"yyyy-MM-dd")) .orderByDesc(PlatformJob::getStatus) ; IPage<PlatformJob> platformJobIPage = platformJobJoinMapper.selectJoinPage(page,PlatformJob.class,queryWrapper); @@ -338,7 +388,7 @@ //璁$畻棰勮绛夊緟鏃堕棿 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; @@ -355,7 +405,8 @@ }else{ platformJob.setWaitTime("绛夊緟鍙彿"); } - }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ + }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey()) + || Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){ //鏌ヨ鏈�鍚庡紑濮嬩换鍔$殑鏈堝彴璁板綍 鏃ュ織琛� 鍥犱负瀛樺湪寮傚父鎸傝捣 杞Щ 绛夐棶棰� PlatformLog platformLog = platformLogMapper.selectOne(new QueryWrapper<PlatformLog>().lambda() .eq(PlatformLog::getJobId,platformJob.getId()) @@ -398,7 +449,7 @@ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .eq(PlatformJob::getDrivierPhone,loginUserInfo.getMobile()) - .like(PlatformJob::getArriveDate,DateUtil.getCurrDate()) +// .like(PlatformJob::getArriveDate,DateUtil.getCurrDate()) .orderByDesc(PlatformJob::getId) ); for (PlatformJob platformJob:platformJobList) { @@ -444,8 +495,9 @@ PlatformJob oldPlatformJob = new PlatformJob(); BeanUtils.copyProperties(platformJob,oldPlatformJob); - + platformJob.setConfirmTaskDate(new Date()); platformJob.setArriveDate(confirmTaskDTO.getArriveDate()); + platformJob.setCarCodeBack(confirmTaskDTO.getCarCodeBack()); platformJob.setStatus(Constants.PlatformJobStatus.WART_SIGN_IN.getKey()); platformJob.setEditDate(new Date()); platformJobMapper.updateById(platformJob); @@ -470,19 +522,43 @@ if(Objects.isNull(platformJob)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅"); - } + PlatformJob oldPlatformJob = new PlatformJob(); BeanUtils.copyProperties(platformJob,oldPlatformJob); if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ZERO)){ + if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅"); + } this.distanceSignIn(signInDTO,platformJob); }else if(Constants.equalsInteger(signInDTO.getSignType(),Constants.ONE)){ + if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟鐘舵�佸凡娴佽浆锛岃鍒锋柊鏌ョ湅"); + } this.sceneSignIn(signInDTO); + }else if(Constants.equalsInteger(signInDTO.getSignType(),Constants.TWO)){ + if(!(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CONFIRM.getKey())|| + Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WART_SIGN_IN.getKey())) + ){ + 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(),"绛惧埌绫诲瀷閿欒"); } + //鏌ヨ鏈堝彴缁勬暟鎹� + PlatformGroup platformGroup = platformGroupMapper.selectById(platformJob.getPlatformGroupId()); + if(Objects.isNull(platformGroup)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏈堝彴缁勪俊鎭�"); + } + if(System.currentTimeMillis() > DateUtil.getDateByString(DateUtil.getCurrDate() + " " + platformGroup.getEndTime() + ":59" ).getTime() + || System.currentTimeMillis() < DateUtil.getDateByString(DateUtil.getCurrDate() + " " + platformGroup.getStartTime() + ":00" ).getTime()){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈湪宸ヤ綔鏃堕棿["+platformGroup.getStartTime() + "-" + platformGroup.getEndTime() +"]锛屾棤娉曡繘琛岀鍒�"); + } + platformJob.setSignDate(new Date()); - platformJob.setSingType(Constants.ZERO); + platformJob.setSingType(signInDTO.getSignType()); platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey()); platformJobMapper.updateById(platformJob); //瀛樺偍鎿嶄綔鏃ュ織 @@ -490,12 +566,12 @@ Constants.PlatformJobLogType.SIGN.getInfo()); } - public void distanceSignIn(SignInDTO signInDTO , PlatformJob platformJob){ if(Objects.isNull(signInDTO.getLat()) || Objects.isNull(signInDTO.getLnt())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"缁忕含搴︿俊鎭紓甯�"); } + //鑾峰彇绛惧埌鐐圭殑缁忕含搴� Double lat = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LAT).getCode()); Double lnt = Double.parseDouble(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.SIGN_IN_PLACE_LNT).getCode()); @@ -511,6 +587,7 @@ } public void sceneSignIn(SignInDTO signInDTO){ + if( StringUtils.isNotBlank(signInDTO.getQrCodeKey())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -547,13 +624,16 @@ ){ //鏌ヨ鍓嶆柟鎺掗槦鏁伴噺 this.queryWaitNum(platformJob); + Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId()); + if(Objects.nonNull(platform)){ + platformJob.setPlatformName(platform.getName()); + } }else if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ //浣滀笟鏈堝彴淇℃伅 Platform platform = platformJoinMapper.selectById(platformJob.getPlatformId()); if(Objects.nonNull(platform)){ platformJob.setPlatformName(platform.getName()); } - } platformJob.dealTime(); this.getWorkTime(platformJob); @@ -608,7 +688,7 @@ .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .eq(PlatformJob::getPlatformGroupId,platformGroup.getId()) - .ge(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.dateTypeToString(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss")) + .le(Objects.nonNull(platformJob),PlatformJob::getSignDate,DateUtil.dateTypeToString(platformJob.getSignDate(),"yyyy-MM-dd HH:mm:ss")) .in(PlatformJob::getStatus,Constants.PlatformJobStatus.WAIT_CALL.getKey(), Constants.PlatformJobStatus.IN_WAIT.getKey(), Constants.PlatformJobStatus.CALLED.getKey()) @@ -672,9 +752,10 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public void platformInPark(JobOperateDTO jobOperateDTO){ + public PlatformJob 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()); @@ -684,25 +765,136 @@ 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()); platformJob.setEditDate(new Date()); platformJobMapper.updateById(platformJob); - if(Constants.equalsInteger(platformJob.getType(),Constants.TWO) - || Constants.equalsInteger(platformJob.getType(),Constants.THREE) - || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ - //TODO 涓嬪彂鍏ュ洯鏉冮檺 - - } //瀛樺偍鎿嶄綔鏃ュ織 savePlatformLog(Constants.PlatformJobLogType.IN_WAIT.getKey(),oldPlatformJob,platformJob, Constants.PlatformJobLogType.IN_WAIT.getInfo()); + return platformJob; + } + + + @Override + public void sendInPark(PlatformJob platformJob){ + 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() + .isNotNull(Parks::getHkId) + .eq(Parks::getIsdeleted,Constants.ZERO)); + List<VisitPark> visitParkList = new ArrayList<>(); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){ + Boolean sendStatus = true; + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(parksList)){ + for (Parks parks:parksList) { + VisitPark visitPark = new VisitPark(); + visitPark.setIsdeleted(Constants.ZERO); + visitPark.setCreateDate(new Date()); + visitPark.setVisitApplyId(platformJob.getId().toString()); + visitPark.setCarCode(platformJob.getCarCodeFront()); + visitPark.setParkId(parks.getId().toString()); + visitPark.setStartTime(new Date()); + visitPark.setEndTime(DateUtil.getXMinuteAfterDate(visitPark.getStartTime(),Integer.valueOf(systemDictDataBiz.queryByCode(Constants.PLATFORM,Constants.POWER_MINUTE).getCode()))); + visitPark.setParkHkId(parks.getHkId()); + visitPark.setObjType(Constants.ONE); + + ParkReservationAddRequest request = new ParkReservationAddRequest(); + request.setPlateNo(visitPark.getCarCode()); + request.setParkSyscode(visitPark.getParkHkId()); + request.setPhoneNo(platformJob.getDrivierPhone()); + request.setOwner(platformJob.getDriverName()); + request.setAllowTimes(Constants.ONE+""); + request.setIsCharge(Constants.ONE+""); + request.setStartTime(Objects.isNull(visitPark.getStartTime())?DateUtil.getISO8601Timestamp2(new Date()):DateUtil.getISO8601Timestamp2(visitPark.getStartTime())); + request.setEndTime(Objects.isNull(visitPark.getEndTime())?"2999-12-31T00:00:00+08:00":DateUtil.getISO8601Timestamp2(visitPark.getEndTime())); + BaseResponse response = HKService.parkReservationAddition(request); + + visitPark.setHkDate(new Date()); + if(response!=null + && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ + ParkReservationAddResponse parkReservationAddResponse = (ParkReservationAddResponse) response.getData(); + visitPark.setHkId(parkReservationAddResponse.getReserveOrderNo()); + visitPark.setHkStatus(Constants.ONE); + visitPark.setRemark("鍖呮湡鎴愬姛"); + }else{ + visitPark.setHkStatus(Constants.TWO); + visitPark.setRemark("鍖呮湡澶辫触~"); + //涓嬪彂澶辫触 鏍囪涓讳笟鍔$姸鎬佷负涓嬪彂澶辫触 + sendStatus = false; + } + visitParkList.add(visitPark); + + } + visitParkMapper.insert(visitParkList); + platformJob.setInHkdate(new Date()); + if(sendStatus){ + platformJob.setInHkstatus(Constants.TWO); + }else{ + platformJob.setInHkstatus(Constants.THREE); + } + platformJobMapper.updateById(platformJob); + } + + } + } + } + + + @Override + public void cancelInPark(PlatformJob platformJob){ + if(Constants.equalsInteger(platformJob.getType(),Constants.TWO) + || Constants.equalsInteger(platformJob.getType(),Constants.THREE) + || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ + + List<VisitPark> visitParkList = visitParkMapper.selectList(new QueryWrapper<VisitPark>().lambda() + .eq(VisitPark::getVisitApplyId,platformJob.getId()) + .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) { + ParkReservationDelRequest param = new ParkReservationDelRequest(); + param.setReserveOrderNo(visitPark.getHkId()); + BaseResponse response = HKService.parkReservationDeletion(param); + if(response!=null + && StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ + visitPark.setHkStatus(Constants.THREE); + visitPark.setIsdeleted(Constants.ONE); + visitPark.setEditDate(new Date()); + visitParkMapper.updateById(visitPark); + } + } + } + } } /** @@ -710,7 +902,7 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public void platformCallNumber(JobOperateDTO jobOperateDTO){ + public PlatformJob platformCallNumber(JobOperateDTO jobOperateDTO){ if(Objects.isNull(jobOperateDTO) || Objects.isNull(jobOperateDTO.getJobId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -730,10 +922,19 @@ 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()); @@ -742,14 +943,17 @@ platformJob.setPlatforms(jobOperateDTO.getPlatformId().toString()); platformJob.setPlatformNames(platform.getName()); }else{ - platformJob.setPlatforms(platformJob.getPlatforms() + "," +jobOperateDTO.getPlatformId().toString()); - platformJob.setPlatformNames(platformJob.getPlatformNames() + "," +platform.getName()); + 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); //瀛樺偍鎿嶄綔鏃ュ織 savePlatformLog(Constants.PlatformJobLogType.CALLED.getKey(),oldPlatformJob,platformJob, Constants.PlatformJobLogType.CALLED.getInfo().replace("{data}",platform.getName())); + return platformJob; } @@ -872,7 +1076,7 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public void beginWork(JobOperateDTO jobOperateDTO){ + public PlatformJob beginWork(JobOperateDTO jobOperateDTO){ if(Objects.isNull(jobOperateDTO) || Objects.isNull(jobOperateDTO.getJobId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -890,10 +1094,9 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鏈堝彴淇℃伅"); } + PlatformJob oldPlatformJob = new PlatformJob(); BeanUtils.copyProperties(platformJob,oldPlatformJob); - - if(Objects.isNull(platformJob.getStartDate())){ platformJob.setStartDate(new Date()); } @@ -904,6 +1107,8 @@ //瀛樺偍鎿嶄綔鏃ュ織 savePlatformLog(Constants.PlatformJobLogType.WORKING.getKey(),oldPlatformJob,platformJob, Constants.PlatformJobLogType.WORKING.getInfo().replace("{data}",platform.getName())); + + return platformJob; } @@ -912,7 +1117,7 @@ */ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public void finishWork(JobOperateDTO jobOperateDTO){ + public PlatformJob finishWork(JobOperateDTO jobOperateDTO){ if(Objects.isNull(jobOperateDTO) || Objects.isNull(jobOperateDTO.getJobId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); @@ -921,7 +1126,8 @@ if(Objects.isNull(platformJob)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey())){ + if(! (Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.WORKING.getKey()) + ||Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey()) )){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�"); } PlatformJob oldPlatformJob = new PlatformJob(); @@ -939,9 +1145,46 @@ //TODO 澶栧崗杞﹁璐� 鏌ヨTMS 鐢靛瓙閿佹儏鍐� }else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ - //TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐佃繘琛屼笅鍙戠鍥潈闄� + //TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐� } + return platformJob; + } + + + /** + * 鎺堟潈绂诲洯 + */ + @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public PlatformJob powerLevel(JobOperateDTO jobOperateDTO){ + if(Objects.isNull(jobOperateDTO) + || Objects.isNull(jobOperateDTO.getJobId())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + PlatformJob platformJob = platformJobMapper.selectById(jobOperateDTO.getJobId()); + if(Objects.isNull(platformJob)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧�,涓氬姟鐘舵�佸凡娴佽浆锛�"); + } + PlatformJob oldPlatformJob = new PlatformJob(); + BeanUtils.copyProperties(platformJob,oldPlatformJob); + platformJob.setOutUserId(jobOperateDTO.getLoginUserInfo().getId()); + platformJob.setOutHkdate(new Date()); + platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()); + platformJob.setEditDate(new Date()); + platformJob.setRemark(jobOperateDTO.getRemark()); + platformJobMapper.updateById(platformJob); + //瀛樺偍鎿嶄綔鏃ュ織 + savePlatformLog(Constants.PlatformJobLogType.AUTHED_LEAVE.getKey(),oldPlatformJob,platformJob , + Constants.PlatformJobLogType.AUTHED_LEAVE.getInfo()); + return platformJob; + + + + } @@ -1046,6 +1289,7 @@ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); String v = Long.toString((platformLog.getCreateDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime() )/ 1000) ; platformLog.setParam3(v); + platformLog.setRemark(platformJobBefor.getPlatformId().toString()); }else{ platformLog.setParam3("0"); } @@ -1073,6 +1317,7 @@ platformLog.setParam2(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); String v = Long.toString((platformJobAfter.getDoneDate().getTime() - DateUtil.StringToDate(lastBeginPlatform.getParam1(),"yyyy-MM-dd HH:mm:ss").getTime()) / 1000) ; platformLog.setParam3(v); + platformLog.setRemark(platformJobBefor.getPlatformId().toString()); } }else if(Constants.equalsInteger(objType,Constants.PlatformJobLogType.WORKING.getKey())){ platformLog.setParam1(DateUtil.dateTypeToString(platformLog.getCreateDate(),"yyyy-MM-dd HH:mm:ss")); @@ -1174,7 +1419,9 @@ .selectAll(PlatformJob.class) .selectAs(Platform::getName,PlatformJob::getPlatformName) .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate) + .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName) .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId) + .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getJobId,PlatformJob::getId) .eq(PlatformJob::getPlatformId,platformId) .eq(PlatformJob::getIsdeleted,Constants.ZERO) .in(PlatformJob::getStatus, @@ -1194,7 +1441,7 @@ //鏌ヨ鍓嶆柟鎺掗槦鏁伴噺 this.queryWaitNum(platformJob); } - PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platformId,platformJobList); + PlatformWorkVO platformWorkVO = PlatformGroupServiceImpl.getPlatformWorkVO(platformJoinMapper.selectById(platformId),platformJobList); return platformWorkVO; } @@ -1306,7 +1553,16 @@ 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; -- Gitblit v1.9.3