From cc0d840070c24ceb20180a41f0323bdc0ee03347 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 13 一月 2025 16:25:49 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/PlatformJobServiceImpl.java | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 101 insertions(+), 7 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 265e4a9..e5f9d5c 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 @@ -10,6 +10,7 @@ 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.service.business.third.WmsService; import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; @@ -305,7 +306,7 @@ .le(pageWrap.getModel().getCreateDateEnd() != null, PlatformWmsJob::getIoCreatedate, Utils.Date.getEnd(pageWrap.getModel().getCreateDateEnd())) .isNotNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getJobType()), PlatformJob::getContractNum) .isNull(pageWrap.getModel().getJobType() != null && Constants.equalsInteger(Constants.ZERO,pageWrap.getModel().getJobType()), PlatformJob::getContractNum) - ; + .exists(StringUtils.isNotBlank(pageWrap.getModel().getWmsContractNum()),"select tt.id from platfrom_wms_detail tt where tt.isdeleted=0 and tt.job_id=t.id"); for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { @@ -629,7 +630,8 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈湪宸ヤ綔鏃堕棿["+platformGroup.getStartTime() + "-" + platformGroup.getEndTime() +"]锛屾棤娉曡繘琛岀鍒�"); } //鏌ヨ浠婃棩鏈�澶х殑绛惧埌鏁� - List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda().apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null ")); + List<PlatformJob> signList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda() + .apply(" DATE(SIGN_DATE) = DATE(NOW()) and sign_date is not null ")); if(CollectionUtils.isEmpty(signList)){ platformJob.setSignNum(Constants.ONE); } else{ @@ -924,6 +926,23 @@ @Override public void sendInPark(PlatformJob platformJob){ log.info("銆愪笅鍙戝仠杞﹀満鏉冮檺銆�================寮�濮�===="+platformJob.getCarCodeFront()); + if(Constants.equalsInteger(platformJob.getType(),Constants.THREE) + && Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) ){ + //濡傛灉鏄凡瀹屾垚鐨勫鍗忚溅鍗歌揣浣滀笟锛屾煡璇㈡墍鏈夊悎鍚屾槸鍚︿互涓婄數瀛愰攣锛屽鏋滄病鏈夛紝涓嶈嚜鍔ㄦ巿鏉冪鍥� + List<PlatformWmsDetail> details = platformWmsDetailMapper.selectList(new QueryWrapper<PlatformWmsDetail>().lambda() + .select(PlatformWmsDetail::getLockStatus,PlatformWmsDetail::getId) + .eq(PlatformWmsDetail::getJobId,platformJob.getId()) + .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO) + ); + if(details!=null && details.size()>0){ + for(PlatformWmsDetail d : details){ + if(Constants.equalsInteger(d.getLockStatus(),Constants.ZERO)){ + //濡傛灉瀛樺湪鏈笂閿侊紝涓嶈嚜鍔ㄦ巿鏉冪鍥� + return; + } + } + } + } if(Constants.equalsInteger(platformJob.getType(),Constants.TWO) || Constants.equalsInteger(platformJob.getType(),Constants.THREE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ @@ -1005,6 +1024,10 @@ platformJob.setInHkdate(new Date()); if(sendStatus){ platformJob.setInHkstatus(Constants.TWO); + if(Constants.equalsInteger(platformJob.getStatus(),Constants.PlatformJobStatus.DONE.getKey())){ + //濡傛灉宸蹭笅鍙戞垚鍔燂紝鏍囪宸叉巿鏉冪鍥姸鎬� + platformJob.setStatus(Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()); + } }else{ platformJob.setInHkstatus(Constants.THREE); } @@ -1478,19 +1501,21 @@ Date date = new Date(); List<String> codeList =new ArrayList<>(); for(PlatformWmsDetail d : details){ - codeList.add(d.getIocode()); + codeList.add(d.getContractNum()); } TmsLockStatusQueryRequest tmsLock = new TmsLockStatusQueryRequest(); tmsLock.setContractNumbers(codeList); TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockResult = tmsService.lockStatusQuery(tmsLock); - if(lockResult!=null && lockResult.isSuccess()&& lockResult.getData()!=null ){ + if(lockResult!=null && lockResult.getCode()!=null && lockResult.getCode().equals("0")&& lockResult.getData()!=null ){ for(TmsLockStatusQueryResponse s : lockResult.getData()){ + if(StringUtils.isBlank(s.getContractNumber())){ + continue; + } platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() - .eq(PlatformWmsDetail::getIocode,s.getContractNumber()) + .eq(PlatformWmsDetail::getContractNum,s.getContractNumber()) .set(PlatformWmsDetail::getEditDate,date) .set(PlatformWmsDetail::getLockDate,s.getOutDate()) .set(PlatformWmsDetail::getLockStatus,Constants.ONE) - .eq(PlatformWmsDetail::getJobId,platformJob.getId()) .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)); } } @@ -1498,7 +1523,6 @@ }else if(Constants.equalsInteger(platformJob.getType(),Constants.ONE) || Constants.equalsInteger(platformJob.getType(),Constants.FOUR)){ //TODO 澶栧崗杞﹀嵏璐� 鎴栬�� 甯傚叕鍙歌溅鍗歌揣 鍒欐牴鎹换鍔℃儏鍐� - } @@ -1519,6 +1543,76 @@ Constants.PlatformBroadcastContent.DONE.getInfo()); return platformJob; } + @Override + public void checkWmsLockStatus(){ + List<PlatformWmsDetail> details = platformWmsDetailMapper.selectJoinList(PlatformWmsDetail.class,new MPJLambdaWrapper<PlatformWmsDetail>() + .selectAll(PlatformWmsDetail.class) + .leftJoin(PlatformJob.class,PlatformJob::getId,PlatformWmsDetail::getJobId) + .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey())//鏌ヨ宸插畬鎴愪綔涓氱殑 + .eq(PlatformJob::getIsdeleted,Constants.ZERO) + .and(wr->{wr.isNull(PlatformWmsDetail::getLockStatus).or().eq(PlatformWmsDetail::getLockStatus,Constants.ZERO);}) + .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)); + if(details !=null && details.size()>0){ + Date date = new Date(); + List<String> codeList =new ArrayList<>(); + for(PlatformWmsDetail d : details){ + codeList.add(d.getContractNum()); + } + TmsLockStatusQueryRequest tmsLock = new TmsLockStatusQueryRequest(); + tmsLock.setContractNumbers(codeList); + List<Integer> jobIds = new ArrayList<>(); + TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockResult = tmsService.lockStatusQuery(tmsLock); + if(lockResult!=null && lockResult.getCode()!=null && lockResult.getCode().equals("0")&& lockResult.getData()!=null ){ + for(TmsLockStatusQueryResponse s : lockResult.getData()){ + try { + //寮傚父澶勭悊锛岃兘澶勭悊涓�涓槸涓�涓� + platformWmsDetailMapper.update(null,new UpdateWrapper<PlatformWmsDetail>().lambda() + .eq(PlatformWmsDetail::getContractNum,s.getContractNumber()) + .set(PlatformWmsDetail::getEditDate,date) + .set(PlatformWmsDetail::getLockDate,s.getOutDate()) + .set(PlatformWmsDetail::getLockStatus,Constants.ONE) + .eq(PlatformWmsDetail::getIsdeleted,Constants.ZERO)); + PlatformWmsDetail job = getJobByContractnumFromDetail(s.getContractNumber(),details); + if(job != null){ + jobIds.add(job.getJobId()); + } + }catch (Exception e){ + logger.error("=============鏇存柊鐢靛瓙閿佺姸鎬佷俊鎭紓甯革細"+e.getMessage()); + } + } + } + if(jobIds.size()>0){ + List<PlatformJob> list = platformJobMapper.selectJoinList(PlatformJob.class,new MPJLambdaWrapper<PlatformJob>() + .selectAll(PlatformJob.class) + .eq(PlatformJob::getStatus,Constants.PlatformJobStatus.DONE.getKey()) + .in(PlatformJob::getId,jobIds) + ); + if(list!=null){ + for(PlatformJob platformJob : list){ + sendInPark(platformJob);//妫�鏌ユ槸鍚﹂渶瑕佽嚜鍔ㄦ巿鏉冪鍥� + } + } + } + } + + } + + private PlatformWmsJob getJobByContractnum(String contractNumber, List<PlatformWmsJob> details) { + for(PlatformWmsJob d : details){ + if(StringUtils.equals(contractNumber,d.getContractNum())){ + return d; + } + } + return null; + } + private PlatformWmsDetail getJobByContractnumFromDetail(String contractNumber, List<PlatformWmsDetail> details) { + for(PlatformWmsDetail d : details){ + if(StringUtils.equals(contractNumber,d.getContractNum())){ + return d; + } + } + return null; + } /** -- Gitblit v1.9.3