From e59a768f56efb64bf2fad412f62eca2a836b652f Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 28 十二月 2023 14:13:00 +0800 Subject: [PATCH] 海康接口对接开发 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java | 184 ++++++++++++++++++++++++++++++++++------------ 1 files changed, 136 insertions(+), 48 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 f4562f5..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 @@ -2,28 +2,36 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.AcsDeviceListRequest; +import com.doumee.core.haikang.model.param.request.*; import com.doumee.core.haikang.model.param.respose.AcsDeviceInfoResponse; import com.doumee.core.haikang.model.param.respose.AcsDeviceListResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; +import com.doumee.core.utils.FtpUtil; import com.doumee.dao.business.*; import com.doumee.dao.business.model.CarEvent; import com.doumee.dao.business.model.Device; import com.doumee.dao.business.model.DeviceEvent; import com.doumee.dao.business.model.VisitEvent; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.UUID; /** * 璁惧淇℃伅琛⊿ervice瀹炵幇 @@ -31,6 +39,7 @@ * @date 2023/11/30 15:33 */ @Service +@Slf4j public class HkSyncImgServiceImpl extends HkSyncBaseServiceImpl { @Autowired @@ -39,6 +48,8 @@ private DeviceEventMapper deviceEventMapper; @Autowired private VisitEventMapper visitEventMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; @Override public String downHKImgs(int type){ if(Constants.DEALING_HK_IMG){ @@ -48,13 +59,12 @@ try { //鏌ヨ鎵�鏈夎瀹簨浠惰褰曚腑鎵�鏈変笅杞界殑娴峰悍绔� 鎶撴媿鐓х墖 鍜� 鐓х墖 startDealVisitImg(); - //鏌ヨ鎵�鏈夊仠杞﹀満浜嬩欢璁板綍涓墍鏈変笅杞界殑娴峰悍绔� 杞︾墝鍥剧墖 鍜� 杞﹁締鍥剧墖 startDealCarImg(); //鏌ヨ鎵�鏈夐棬绂佷簨浠惰褰曚腑鎵�鏈変笅杞界殑娴峰悍绔� 鎶撴媿鐓х墖 鍜� 韬唤璇佸浘鐗嘦RL startDealDeviceImg(); }catch (Exception e){ - + e.printStackTrace(); }finally { Constants.DEALING_HK_IMG =false; } @@ -64,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); } @@ -97,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); } } @@ -130,40 +162,96 @@ 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 visitEventImg) { - // - + 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_code,Constants.CAR_EVENT_IMG)){ + //鍋滆溅鍦烘姄鎷嶅浘 + CarPictureRequest param = new CarPictureRequest(); + param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,"")); + param.setAswSyscode(serverIndex); + is = HKService.getCarPicture(param); + }else if(StringUtils.equals(folder_code,Constants.DEVICE_EVENT_IMG)){ + //闂ㄧ浜嬩欢鍥剧墖 + DevicePictureRequest param = new DevicePictureRequest(); + param.setPicUri(img1.replace(HKConstants.IMG_INDEX_ERROR,"").replace(HKConstants.IMG_INDEX,"")); + param.setSvrIndexCode(serverIndex); + is = HKService.getDevicePicture(param); + }else if(StringUtils.equals(folder_code,Constants.VISIT_EVENT_IMG)){ + //璁垮浜嬩欢鍥剧墖 + VisitPictureRequest param = new VisitPictureRequest(); + 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 { + 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 = date+"/"+ UUID.randomUUID().toString()+".jpg"; + String fileName = folder+fName; + boolean r = ftp.uploadInputstream(is,fileName);//涓婁紶 + if(r){ + log.info("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP鎴愬姛銆�======================" ); + return fName; + }else{ + log.error("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================" ); + } + } catch (Exception e) { + log.error("銆愭捣搴峰浘鐗囦笅杞戒笂浼燜TP澶辫触銆�======================"+e.getMessage()); + } return null; } } -- Gitblit v1.9.3