From cc5d567bc58ce9657ce504fac6daa804ef9a15fa Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 15 十二月 2023 10:29:08 +0800
Subject: [PATCH] 海康接口对接开发

---
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java |  155 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 97 insertions(+), 58 deletions(-)

diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
index 643bbd3..ba0a311 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
@@ -51,7 +51,6 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Override
-    @Async
     public  String downHKImgs(int type){
         if(Constants.DEALING_HK_IMG){
             return null ;
@@ -60,13 +59,12 @@
         try {
             //鏌ヨ鎵�鏈夎瀹簨浠惰褰曚腑鎵�鏈変笅杞界殑娴峰悍绔� 鎶撴媿鐓х墖 鍜� 鐓х墖
             startDealVisitImg();
-
             //鏌ヨ鎵�鏈夊仠杞﹀満浜嬩欢璁板綍涓墍鏈変笅杞界殑娴峰悍绔� 杞︾墝鍥剧墖 鍜�   杞﹁締鍥剧墖
             startDealCarImg();
             //鏌ヨ鎵�鏈夐棬绂佷簨浠惰褰曚腑鎵�鏈変笅杞界殑娴峰悍绔� 鎶撴媿鐓х墖 鍜�   韬唤璇佸浘鐗嘦RL
             startDealDeviceImg();
         }catch (Exception e){
-
+            e.printStackTrace();
         }finally {
             Constants.DEALING_HK_IMG =false;
         }
@@ -76,29 +74,40 @@
     private void startDealDeviceImg() {
         List<DeviceEvent> deviceEventList = deviceEventMapper.selectList(new QueryWrapper<DeviceEvent>().lambda()
                 .eq(DeviceEvent::getIsdeleted,Constants.ZERO)
-                .and(wrapper ->{wrapper.likeLeft(DeviceEvent::getExtEventPictureURL,HKConstants.IMG_INDEX)
+                .and(wrapper ->{wrapper.likeRight(DeviceEvent::getExtEventPictureURL,HKConstants.IMG_INDEX)
                         .or()
-                        .likeLeft(DeviceEvent::getExtEventIDCardPictureURL,HKConstants.IMG_INDEX) ;}));
+                        .likeRight(DeviceEvent::getExtEventIDCardPictureURL,HKConstants.IMG_INDEX) ;}));
         Date date= new Date();
         if(deviceEventList !=null && deviceEventList.size()>0){
             for(DeviceEvent model:deviceEventList){
-                String img1 = model.getExtEventPictureURL();
-                String img2 = model.getExtEventIDCardPictureURL();
                 String serverIndex = model.getSvrIndexCode();//鏈嶅姟鍣ㄧ紪鐮�
-                String rs1 = downHkImgToFtp(img1,serverIndex,Constants.DEVICE_EVENT_IMG);
-                String rs2 = downHkImgToFtp(img2,serverIndex,Constants.DEVICE_EVENT_IMG);
+                if(StringUtils.isBlank(serverIndex)){
+                    continue;
+                }
+                String rs1 = null;
+                String rs2 = null;
                 DeviceEvent event = new DeviceEvent();
                 event.setId(model.getId());
                 event.setEditDate(date);
-                if(StringUtils.isNotBlank(rs1)){
-                    event.setExtEventPictureURL(rs1);
-                }else{
-                    event.setExtEventPictureURL(img1.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+
+                if(StringUtils.isNotBlank(model.getExtEventPictureURL())){
+                    String img1 = model.getExtEventPictureURL().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs1 = downHkImgToFtp(img1,serverIndex,Constants.DEVICE_EVENT_IMG);
+                    if(StringUtils.isNotBlank(rs1)){
+                        event.setExtEventPictureURL(rs1);
+                    }else{
+                        event.setExtEventPictureURL(model.getExtEventPictureURL().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
                 }
-                if(StringUtils.isNotBlank(rs2)){
-                    event.setExtEventIDCardPictureURL(rs2);
-                }else{
-                    event.setExtEventIDCardPictureURL(img2.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                if(StringUtils.isNotBlank(model.getExtEventIDCardPictureURL())){
+                    String img2 = model.getExtEventIDCardPictureURL().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs2 = downHkImgToFtp(img2,serverIndex,Constants.DEVICE_EVENT_IMG);
+
+                    if(StringUtils.isNotBlank(rs2)){
+                        event.setExtEventIDCardPictureURL(rs2);
+                    }else{
+                        event.setExtEventIDCardPictureURL(model.getExtEventIDCardPictureURL().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
                 }
                 deviceEventMapper.updateById(event);
             }
@@ -109,30 +118,41 @@
     private void startDealCarImg() {
         List<CarEvent> carEventList = carEventMapper.selectList(new QueryWrapper<CarEvent>().lambda()
                 .eq(CarEvent::getIsdeleted,Constants.ZERO)
-                .and(wrapper ->{wrapper.likeLeft(CarEvent::getPlatePicUrl,HKConstants.IMG_INDEX)
+                .and(wrapper ->{wrapper.likeRight(CarEvent::getPlatePicUrl,HKConstants.IMG_INDEX)
                         .or()
-                        .likeLeft(CarEvent::getVehiclePicUrl,HKConstants.IMG_INDEX) ;}));
+                        .likeRight(CarEvent::getVehiclePicUrl,HKConstants.IMG_INDEX) ;}));
         Date date= new Date();
         if(carEventList !=null && carEventList.size()>0){
             for(CarEvent model:carEventList){
-                String img1 = model.getPlatePicUrl();
-                String img2 = model.getVehiclePicUrl();
                 String serverIndex = model.getSvrIndex();//鏈嶅姟鍣ㄧ紪鐮�
-                String rs1 = downHkImgToFtp(img1,serverIndex,Constants.CAR_EVENT_IMG);
-                String rs2 = downHkImgToFtp(img2,serverIndex,Constants.CAR_EVENT_IMG);
+                if(StringUtils.isBlank(serverIndex)){
+                    continue;
+                }
                 CarEvent event = new CarEvent();
                 event.setId(model.getId());
                 event.setEditDate(date);
-                if(StringUtils.isNotBlank(rs1)){
-                    event.setPlatePicUrl(rs1);
-                }else{
-                    event.setPlatePicUrl(img1.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                String rs1 = null;
+                String rs2 = null;
+
+                if(StringUtils.isNotBlank(model.getPlatePicUrl())){
+                    String img1 = model.getPlatePicUrl().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs1 = downHkImgToFtp(img1,serverIndex,Constants.CAR_EVENT_IMG);
+                    if(StringUtils.isNotBlank(rs1)){
+                        event.setPlatePicUrl(rs1);
+                    }else{
+                        event.setPlatePicUrl(model.getPlatePicUrl().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
                 }
-                if(StringUtils.isNotBlank(rs2)){
-                    event.setVehiclePicUrl(rs2);
-                }else{
-                    event.setVehiclePicUrl(img2.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                if(StringUtils.isNotBlank(model.getVehiclePicUrl())){
+                    String img2 = model.getVehiclePicUrl().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs2 = downHkImgToFtp(img2,serverIndex,Constants.CAR_EVENT_IMG);
+                    if(StringUtils.isNotBlank(rs2)){
+                        event.setVehiclePicUrl(rs2);
+                    }else{
+                        event.setVehiclePicUrl(model.getVehiclePicUrl().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
                 }
+
                 carEventMapper.updateById(event);
             }
         }
@@ -142,70 +162,89 @@
     private void startDealVisitImg() {
         List<VisitEvent> visitEventList = visitEventMapper.selectList(new QueryWrapper<VisitEvent>().lambda()
                 .eq(VisitEvent::getIsdeleted,Constants.ZERO)
-                .and(wrapper ->{wrapper.likeLeft(VisitEvent::getCaptureUrl,HKConstants.IMG_INDEX)
+                .and(wrapper ->{wrapper.likeRight(VisitEvent::getCaptureUrl,HKConstants.IMG_INDEX)
                         .or()
-                        .likeLeft(VisitEvent::getPhotoUrl,HKConstants.IMG_INDEX) ;}));
+                        .likeRight(VisitEvent::getPhotoUrl,HKConstants.IMG_INDEX) ;}));
 
         Date date= new Date();
         if(visitEventList !=null && visitEventList.size()>0){
             for(VisitEvent model:visitEventList){
-                String img1 = model.getCaptureUrl();
-                String img2 = model.getPhotoUrl();
                 String serverIndex = model.getSvrIndexCode();//鏈嶅姟鍣ㄧ紪鐮�
-                String rs1 = downHkImgToFtp(img1,serverIndex,Constants.VISIT_EVENT_IMG);
-                String rs2 = downHkImgToFtp(img2,serverIndex,Constants.VISIT_EVENT_IMG);
+                if(StringUtils.isBlank(serverIndex)){
+                    continue;
+                }
                 VisitEvent event = new VisitEvent();
                 event.setId(model.getId());
                 event.setEditDate(date);
-                if(StringUtils.isNotBlank(rs1)){
-                    event.setCaptureUrl(rs1);
-                }else{
-                    event.setCaptureUrl(img1.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                String rs1 = null;
+                String rs2 = null;
+                if(StringUtils.isNotBlank(model.getCaptureUrl())){
+                    String img1 = model.getCaptureUrl().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs1 = downHkImgToFtp(img1,serverIndex,Constants.VISIT_EVENT_IMG);
+                    if(StringUtils.isNotBlank(rs1)){
+                        event.setCaptureUrl(rs1);
+                    }else{
+                        event.setCaptureUrl(model.getCaptureUrl().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
                 }
-                if(StringUtils.isNotBlank(rs2)){
-                    event.setPhotoUrl(rs2);
-                }else{
-                    event.setPhotoUrl(img2.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                if(StringUtils.isNotBlank(model.getPhotoUrl())){
+                    String img2 = model.getPhotoUrl().replace(HKConstants.IMG_INDEX_ERROR, "").replace(HKConstants.IMG_INDEX, "");
+                    rs2 = downHkImgToFtp(img2,serverIndex,Constants.VISIT_EVENT_IMG);
+                    if(StringUtils.isNotBlank(rs2)){
+                        event.setPhotoUrl(rs2);
+                    }else{
+                        event.setPhotoUrl(model.getPhotoUrl().replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
+                    }
                 }
+
                 visitEventMapper.updateById(event);
             }
         }
 
     }
 
-    private String downHkImgToFtp(String img1, String serverIndex, String folder) {
+    public static  FtpUtil ftp  = null;
+    private String downHkImgToFtp(String img1, String serverIndex, String folder_code) {
+        String folder = systemDictDataBiz.queryByCode(Constants.FTP,folder_code).getCode();
         InputStream is = null;
-        if(StringUtils.equals(folder,Constants.CAR_EVENT_IMG)){
+        if(StringUtils.equals(folder_code,Constants.CAR_EVENT_IMG)){
             //鍋滆溅鍦烘姄鎷嶅浘
             CarPictureRequest param = new CarPictureRequest();
-            param.setPicUri(img1);
+            param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,""));
             param.setAswSyscode(serverIndex);
             is = HKService.getCarPicture(param);
-        }else if(StringUtils.equals(folder,Constants.DEVICE_EVENT_IMG)){
+        }else if(StringUtils.equals(folder_code,Constants.DEVICE_EVENT_IMG)){
             //闂ㄧ浜嬩欢鍥剧墖
             DevicePictureRequest param = new DevicePictureRequest();
-            param.setPicUri(img1);
+            param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,""));
             param.setSvrIndexCode(serverIndex);
             is = HKService.getDevicePicture(param);
-        }else if(StringUtils.equals(folder,Constants.VISIT_EVENT_IMG)){
+        }else if(StringUtils.equals(folder_code,Constants.VISIT_EVENT_IMG)){
             //璁垮浜嬩欢鍥剧墖
             VisitPictureRequest param = new VisitPictureRequest();
-            param.setPicUri(img1);
+            param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,""));
             param.setSvrIndexCode(serverIndex);
             is = HKService.getVisitPicture(param);
         }
+        if(is ==null){
+            return  null;
+        }
         //TODO------jiangping---------
         try {
-            FtpUtil ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
-                    Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
-                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
-                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
+            if(ftp == null){
+                 ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
+                        Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
+                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
+                        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
+            }else{
+                ftp.connect();
+            }
             String date = DateUtil.getNowShortDate();
-            String fName = File.separator+date+File.separator+ UUID.randomUUID().toString()+".jpg";
+            String fName =  date+"/"+ UUID.randomUUID().toString()+".jpg";
             String fileName = folder+fName;
             boolean r = ftp.uploadInputstream(is,fileName);//涓婁紶
             if(r){
-                log.info("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================" );
+                log.info("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP鎴愬姛銆�======================" );
                 return  fName;
             }else{
                 log.error("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================" );

--
Gitblit v1.9.3