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