From eb275c6d06d3c27fd30bbf4975d27c93d7f56eb2 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 10 十二月 2024 18:29:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java |  221 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 146 insertions(+), 75 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
index 45a748e..58982cf 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java
@@ -27,12 +27,20 @@
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+import org.checkerframework.checker.units.qual.C;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -87,8 +95,13 @@
     private PlatformLogMapper platformLogMapper;
     @Autowired
     private PlatformWarnEventServiceImpl platformWarnEventService;
-    @Autowired
-    private PlatformJobService platformJobService;
+
+
+
+
+
+
+
     /**
      * 娴峰悍闂ㄧ浜嬩欢鎺ㄩ��
      * @param param
@@ -520,7 +533,8 @@
     private Retention getRetentionModelByVisitRequest(Visits visits, String happentTime,String srcType) {
         Retention retention = new Retention();
         retention.setIsdeleted(Constants.ZERO);
-        retention.setCreateDate(DateUtil.getISO8601DateByStr(happentTime));
+        retention.setCreateDate(DateUtil.getISO8601DateByStr2(happentTime));
+        retention.setCreateDate(retention.getCreateDate() == null?new Date():retention.getCreateDate());
         retention.setClasses(visits.getClasses());
         retention.setCode(visits.getCode());
         retention.setIdcardNo(visits.getIdcardNo());
@@ -562,7 +576,8 @@
         event.setStartTime(request.getData().getVisitorInvoices().getBeginTime());
         event.setSrcType(request.getSrcType());
         event.setSrcParentIndex(request.getSrcParentIndex());
-        event.setSrcName(request.getSrcName());
+        event.setSrcName((request.getData()!=null &&request.getData().getParamValues()!=null)?
+                request.getData().getParamValues().getSrcName():request.getSrcName());
         event.setSrcIndex(request.getSrcIndex());
         event.setSex(detail.getSex());
         event.setPurpose(request.getData().getVisitorInvoices().getVisitReason());
@@ -819,81 +834,94 @@
             event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl()));
         }
         if(StringUtils.isNotBlank(event.getPlateNos())){
+            Cars carModel = carsMapper.selectJoinOne(Cars.class,new MPJLambdaWrapper<Cars>()
+                            .selectAll(Cars.class )
+                            .selectAs(Company::getType,Cars::getCompanyType)
+                            .leftJoin(Company.class,Company::getId,Cars::getGroupId)
+                            .eq(Cars::getCode,event.getPlateNos())
+                            .eq(Cars::getIsdeleted,Constants.ZERO)
+                            .last(" limit 1"));
+            if(carModel!=null){
+                //0瀹夋嘲鍏姟杞� 1瀹夋嘲鑷湁鐗╂祦杞� 2鍏跺畠
+                event.setMemberId(carModel.getMemberId());
+                event.setCompanyId(carModel.getGroupId());
+                if(Constants.equalsInteger(carModel.getType(),Constants.ONE)){
+                    event.setCarType(Constants.RetentionCarType.selfTruck);
+                }else {
+                    if(Constants.equalsInteger(carModel.getCompanyType(),Constants.ONE)){
+                        event.setCarType(Constants.RetentionCarType.internal);//鍐呴儴杞﹁締
+                    }else{
+                        event.setCarType(Constants.RetentionCarType.relation);//鐩稿叧鏂硅溅杈�
+                    }
+                }
+            }
+            PlatformJob carTypeJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
+                            .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
+                            .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                            .orderByAsc(PlatformJob::getCreateDate)
+                            .last(" limit 1"));
+            if(carTypeJob!=null){
+                //浣滀笟绫诲瀷 0鑷湁杞﹀嵏璐� 1鑷湁杞﹁璐� 2澶栧崗杞﹀嵏璐� 3澶栧崗杞﹁璐� 4甯傚叕鍙稿鍗忚溅鍗歌揣
+                if(Constants.equalsInteger(carTypeJob.getType(),Constants.FOUR)){
+                    event.setCarType(Constants.RetentionCarType.cityComTruck);//甯傚叕鍙歌溅杈�
+                }else if(Constants.equalsInteger(carTypeJob.getType(),Constants.TWO)
+                        || Constants.equalsInteger(carTypeJob.getType(),Constants.THREE)){
+                    event.setCarType(Constants.RetentionCarType.outTruck);//澶栧崗杞�
+                }else{
+                    event.setCarType(Constants.RetentionCarType.selfTruck);//鑷湁杞�
+                }
+            }
+
             ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda()
                     .eq(ParkBook::getCarCode,event.getPlateNos())
                             .eq(ParkBook::getIsdeleted,Constants.ZERO )
                     .last("limit 1" ));
             if(cars!=null){
                 event.setMemberId(cars.getMemberId());
-
-                    if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
-                        if(carsMapper.selectCount(new QueryWrapper<Cars>()
-                                .lambda().eq(Cars::getCode,event.getPlateNos())
-                                .eq(Cars::getType,Constants.ONE)
-                                .eq(Cars::getIsdeleted,Constants.ZERO)
-                        )>Constants.ZERO){
-                            //鑷湁杞﹁繘鍦�  鏌ヨ褰撳墠鏄惁鏈夊緟绛惧埌鐨勪换鍔�
-                            //鏌ヨ杞﹁締褰撳墠鏄惁瀛樺湪杩涜涓殑浠诲姟
-                            if(platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
-                                    .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
-                                    .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                                    .in(PlatformJob::getStatus,
-                                            Constants.PlatformJobStatus.IN_WAIT.getKey(),
-                                            Constants.PlatformJobStatus.CALLED.getKey(),
-                                            Constants.PlatformJobStatus.WORKING.getKey(),
-                                            Constants.PlatformJobStatus.DONE.getKey(),
-                                            Constants.PlatformJobStatus.TRANSFERING.getKey(),
-                                            Constants.PlatformJobStatus.EXCEPTION.getKey(),
-                                            Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
-                                    )
-                            )==Constants.ZERO){
-                                PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
-                                        .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
-                                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
-                                        .in(PlatformJob::getStatus,
-                                                Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),
-                                                Constants.PlatformJobStatus.WART_SIGN_IN.getKey()
-                                        )
-                                        .orderByAsc(PlatformJob::getCreateDate)
-                                        .last(" limit 1")
-                                );
-                                if(Objects.nonNull(platformJob)){
-                                    platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
-                                    platformJob.setArriveDate(new Date());
-                                    platformJob.setSingType(Constants.TWO);
-                                    platformJob.setSignDate(new Date());
-                                    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{
-                                        int maxNumber = Collections.max(signList.stream().map(i->i.getSignNum()).collect(Collectors.toList()));
-                                        platformJob.setSignNum(maxNumber + Constants.ONE);
-                                    }
-                                    platformJobMapper.updateById(platformJob);
-                                }
-                            }
-                        }
-                    }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
-                        //绂诲満鍒ゆ柇鏄惁瀛樺湪鏈鍦虹殑璁㈠崟鏁版嵁 澶勭悊璁㈠崟鏁版嵁
-                        List<PlatformJob> platformJobList = platformJobMapper.selectList(new QueryWrapper<PlatformJob>().lambda()
+                //鑷湁杞�  鏌ヨ褰撳墠鏄惁鏈夊緟绛惧埌鐨勪换鍔�
+                if(carsMapper.selectCount(new QueryWrapper<Cars>()
+                        .lambda().eq(Cars::getCode,event.getPlateNos())
+                        .eq(Cars::getType,Constants.ONE)
+                        .eq(Cars::getIsdeleted,Constants.ZERO)
+                )>Constants.ZERO){
+                    //鏌ヨ杞﹁締褰撳墠鏄惁瀛樺湪杩涜涓殑浠诲姟
+                    if( platformJobMapper.selectCount(new QueryWrapper<PlatformJob>().lambda()
+                            .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
+                            .eq(PlatformJob::getIsdeleted,Constants.ZERO)
+                            .in(PlatformJob::getStatus,
+                                    Constants.PlatformJobStatus.IN_WAIT.getKey(),
+                                    Constants.PlatformJobStatus.CALLED.getKey(),
+                                    Constants.PlatformJobStatus.WORKING.getKey(),
+                                    Constants.PlatformJobStatus.TRANSFERING.getKey(),
+                                    Constants.PlatformJobStatus.EXCEPTION.getKey()
+                            )
+                    )==Constants.ZERO){
+                        PlatformJob platformJob = platformJobMapper.selectOne(new QueryWrapper<PlatformJob>().lambda()
                                 .eq(PlatformJob::getCarCodeFront,event.getPlateNos())
                                 .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                                 .in(PlatformJob::getStatus,
-                                        Constants.PlatformJobStatus.DONE.getKey(),
-                                        Constants.PlatformJobStatus.AUTHED_LEAVE.getKey()
-                                ));
-                        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(platformJobList)){
-                            for (PlatformJob platformJob:platformJobList) {
-                                platformJob.setStatus(Constants.PlatformJobStatus.LEAVED.getKey());
-                                platformJob.setOutDate(new Date());
-                                platformJob.setEditDate(new Date());
-                                platformJob.setOutType(Constants.ZERO);
-                                platformJobMapper.updateById(platformJob);
-                                //娓呯┖鎺堟潈
-                                platformJobService.cancelInPark(platformJob);
+                                        Constants.PlatformJobStatus.WAIT_CONFIRM.getKey(),
+                                        Constants.PlatformJobStatus.WART_SIGN_IN.getKey()
+                                )
+                                .orderByAsc(PlatformJob::getCreateDate)
+                                .last(" limit 1")
+                        );
+                        if(Objects.nonNull(platformJob)){
+                            platformJob.setStatus(Constants.PlatformJobStatus.WAIT_CALL.getKey());
+                            platformJob.setArriveDate(new Date());
+                            platformJob.setSingType(Constants.TWO);
+                            platformJob.setSignDate(new Date());
+                            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{
+                                int maxNumber = Collections.max(signList.stream().map(i->i.getSignNum()).collect(Collectors.toList()));
+                                platformJob.setSignNum(maxNumber + Constants.ONE);
                             }
+                            platformJobMapper.updateById(platformJob);
                         }
                     }
+                };
             }else{
                 Visits visits =  visitsMapper.selectOne(new QueryWrapper<Visits>().lambda()
                         .eq(Visits::getCarNos,event.getPlateNos())
@@ -905,12 +933,13 @@
                 if(visits!=null){
                     //鏈�杩戜娇鐢ㄨ杞︾殑鐢宠浜猴紙宸插埌杈撅級
                     event.setMemberId(visits.getMemberId());
+                    event.setCarType(Constants.RetentionCarType.visitor);
                 }
             }
             if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){
                 //濡傛灉鏄叆鍘傛斁琛�
                 delRetentionList.add(event.getPlateNos());
-                retentionList.add(getRetentionModelByParkRequest(request));
+                retentionList.add(getRetentionModelByParkRequest(request,event));
                 inoutDayCount.setInCarNum(Constants.formatIntegerNum(inoutDayCount.getInCarNum())+1);
             }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){
                 //濡傛灉鏄嚭鍦烘斁琛�
@@ -921,12 +950,15 @@
         return event;
     }
 
-    private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) {
+    private Retention getRetentionModelByParkRequest(EventParkInfoRequest request,CarEvent event) {
         Retention retention = new Retention();
         retention.setIsdeleted(Constants.ZERO);
         retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime()));
         retention.setCarNo(request.getData().getPlateNo());
         retention.setType(Constants.THREE);
+        retention.setMemberId(event.getMemberId());
+        retention.setCarType(event.getCarType());
+        retention.setCompanyId(event.getCompanyId());
 //        retention.setDeviceName(request.getSrcName());
 //        retention.setDeviceIndex(request.getSrcIndex());
         return retention;
@@ -1045,6 +1077,7 @@
                 PlatformJob job = platformJobMapper.selectJoinOne(PlatformJob.class, new MPJLambdaWrapper<PlatformJob>()
                         .selectAll(PlatformJob.class)
                         .selectAs(Platform::getName,PlatformJob::getPlatformName)
+                        .selectAs(Platform::getLedContent,PlatformJob::getLedContent)
                         .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
 //                        .eq(StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeFront,status.getPlateNo() )//鍓嶈溅鐗屽彿
 //                        .eq(!StringUtils.equals(status.getStockStatus(),"front"),PlatformJob::getCarCodeBack,status.getPlateNo() )//鍚庤溅鐗屽彿
@@ -1076,15 +1109,21 @@
                     update.setStatus(Constants.PlatformJobStatus.DONE.getKey());//浣滀笟宸插畬鎴�
                     update.setDoneDate(update.getEditDate());*/
                     if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey()) ||
+                            Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.TRANSFERING.getKey()) ||
+                            Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.EXCEPTION.getKey()) ||
                             Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
                         if(((StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeFront(),status.getPlateNo()))
                                 ||(!StringUtils.equals(status.getStockStatus(),"front") && StringUtils.equals(job.getCarCodeBack(),status.getPlateNo()))
                         )){
                             //璇存槑杞﹁締杩涢敊鏈堝彴 鎴栬�呰繕鏈彨鍙风姸鎬侊紝鍙戣捣璀﹀憡
 //                          dealCarsInErrorPlatformBiz(job,status);
-                            update.setInOut(Constants.ZERO);//杞﹁締宸茬粡绂诲紑
-                            platformJobMapper.updateById(update);
-                        }
+                            if(Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.DONE.getKey())  ||
+                                    Constants.equalsInteger(job.getStatus(),Constants.PlatformJobStatus.AUTHED_LEAVE.getKey())){
+                                update.setInOut(Constants.ZERO);//杞﹁締宸茬粡绂诲紑
+                                platformJobMapper.updateById(update);
+                            }
+                            dealPlatformContentForLeave(job);
+                         }
                     }
                 }else  if(StringUtils.equals(status.getMotionStatus(),"enter")){
                     //濡傛灉鏄溅杈嗚繘鍏�
@@ -1100,7 +1139,8 @@
                             platformJobMapper.updateById(update);
                         }
                     }
-                    /*if(job.getStartDate() == null){
+                    /*
+                    if(job.getStartDate() == null){
                         update.setStartDate(update.getEditDate());
                     }
                     update.setStatus(Constants.PlatformJobStatus.WORKING.getKey());//寮�濮嬩綔涓�
@@ -1124,6 +1164,37 @@
             saveInterfaceLog(param,"/business/hksync/push/platform/workstatus",result,false);//涓嶈鏃ュ織
         }
         return  null;
+    }
+
+    /**
+     * 鏈堝彴杞﹁締绂诲紑 璁剧疆鏈堝彴鏂囨涓衡�滅┖闂蹭腑 鏂囨鈥�
+     * @param model
+     */
+    private void dealPlatformContentForLeave(PlatformJob model) {
+        List<PlatformDevice> deviceList = platformDeviceMapper.selectList(new QueryWrapper<PlatformDevice>().lambda()
+                .eq(PlatformDevice::getType, Constants.ZERO)
+                .eq(PlatformDevice::getPlatformId,model.getPlatformId())
+                .eq(PlatformDevice::getIsdeleted,Constants.ZERO));
+        if(deviceList ==null || deviceList.size() == 0){
+            return;
+        }
+        int speed = 13;
+        try {
+            speed = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.HK_PARAM,Constants.LED_CONTENT_SPEED).getCode());
+        }catch (Exception e){
+        }
+        String content = StringUtils.defaultString(model.getLedContent(), Constants.PlatformLedContent.IDEL_CONTNET.getInfo());
+        List<PlatformBroadcastLog> logList = new ArrayList<>();
+        for(PlatformDevice device : deviceList){
+            if(StringUtils.isBlank(device.getHkId())){
+                continue;
+            }
+            PlatformBroadcastLog log = dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),content,speed,1);
+            logList.add(log);
+        }
+        if(logList.size()>0){
+            platformBroadcastLogMapper.insert(logList);
+        }
     }
 
     private PlatformEvent initPlatformEventModel(EventPlatformCarsInfoRequest request, EventPlatformCarsDataRequest data, EventPlatformCarsStatusInfoRequest status) {
@@ -1243,12 +1314,12 @@
             if(StringUtils.isBlank(device.getHkId())){
                 continue;
             }
-            if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
+            /*if(Constants.equalsInteger(device.getType(),Constants.ZERO)){
                 //濡傛灉鏄疞ED
                 PlatformBroadcastLog log = dealLedContentBiz(model.getId(),device.getHkNo(),device.getName(),content,speed,1);
                 logList.add(log);
                 ledList.add(device.getHkId());
-            }else  if(Constants.equalsInteger(device.getType(),Constants.TWO)){
+            }else  */if(Constants.equalsInteger(device.getType(),Constants.TWO)){
                 //濡傛灉鏄箍鎾偣
                 bNames += device.getName()+";";
                 broadcastList.add(device.getHkId());

--
Gitblit v1.9.3