jiangping
2023-12-14 4ce54dd2d91ccdd45d6a33c5fc75b546780626be
海康接口对接开发
已添加1个文件
已修改7个文件
195 ■■■■■ 文件已修改
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java 169 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/HKConstants.java
@@ -7,7 +7,8 @@
@Data
public class HKConstants {
    public static final String IMG_INDEX ="HKIMG=" ;
    public static final String IMG_INDEX ="HKIMG_" ;
    public static final String IMG_INDEX_ERROR ="HKIMG_ERROR=" ;
    private Logger logger = LoggerFactory.getLogger(HKConstants.class);
    //海康平台根据现场环境配置http还是https
    public static final String RESPONSE_SUCCEE = "0";
server/dmvisit_service/src/main/java/com/doumee/core/haikang/model/param/BaseResponse.java
@@ -5,6 +5,7 @@
@Data
public class BaseResponse<T> {
    private T data;
    /**
     * è¿”回码
     * 0:成功
@@ -16,5 +17,4 @@
     * æŽ¥å£æ‰§è¡Œæƒ…况说明信息
     */
    private String msg;
    private T data;
}
server/dmvisit_service/src/main/java/com/doumee/core/haikang/service/HKService.java
@@ -73,7 +73,6 @@
    public  static  BaseResponse<OrgOrUserAddResponse>  addBatchOrg(List<OrgAddRequest> param){
        log.info("【海康新增组织】================开始===="+JSONObject.toJSONString(param));
        try {
            String res = HKTools.addBatchOrg(JSONObject.toJSONString(param));
            TypeReference typeReference =
                    new TypeReference< BaseResponse<OrgOrUserAddResponse>>(){};
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -46,6 +46,10 @@
    public static final String VISIT_CONFIG = "VISIT_CONFIG";
    // åŠ³åŠ¡æ¥è®¿é…ç½®
    public static final String LABOR_CONFIG = "LABOR_CONFIG";
    public static final String VISIT_EVENT_IMG = "VISIT_EVENT_IMG";
    public static final String CAR_EVENT_IMG = "CAR_EVENT_IMG";
    public static final String DEVICE_EVENT_IMG = "DEVICE_EVENT_IMG";
    public static  boolean DEALING_HK_IMG = false;
    public static  Date  getBirthdyByCardNo(String idCard){
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/VisitEvent.java
@@ -67,7 +67,7 @@
    @ExcelColumn(name="事件源名称")
    private String srcName;
    @ApiModelProperty(value = "事件类型")
    @ApiModelProperty(value = "事件类型(登记 ç­¾ç¦»ï¼‰")
    @ExcelColumn(name="事件类型")
    private Integer eventType;
@@ -131,13 +131,16 @@
    @ExcelColumn(name="证件签发机关")
    private String signOrg;
    @ApiModelProperty(value = "离开时间")
    @ExcelColumn(name="离开时间")
    @ApiModelProperty(value = "来访时间")
    @ExcelColumn(name="来访时间")
    private String startTime;
    @ApiModelProperty(value = "离开时间")
    @ExcelColumn(name="离开时间")
    private String endTime;
    @ApiModelProperty(value = "手机号码")
    @ExcelColumn(name="手机号码")
    private String endTime;
    private String phone;
    @ApiModelProperty(value = "车牌号")
    @ExcelColumn(name="车牌号")
server/dmvisit_service/src/main/java/com/doumee/service/business/HkSyncService.java
@@ -51,5 +51,6 @@
    String dealVisitEvent(EventVisitRequest param, HttpServletResponse response);
    String dealParkEvent(EventParkRequest param, HttpServletResponse response);
    String downHKImgs(int type);
    void cancelEventSub();
}
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncBaseServiceImpl.java
@@ -69,4 +69,8 @@
    }
    @Override
    public void   cancelEventSub(){   }
    @Override
    public  String downHKImgs(int type){
        return  null;
    }
}
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncImgServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,169 @@
package com.doumee.service.business.impl.hksync;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.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.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 org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * è®¾å¤‡ä¿¡æ¯è¡¨Service实现
 * @author æ±Ÿè¹„蹄
 * @date 2023/11/30 15:33
 */
@Service
public class HkSyncImgServiceImpl extends HkSyncBaseServiceImpl {
    @Autowired
    private CarEventMapper carEventMapper;
    @Autowired
    private DeviceEventMapper deviceEventMapper;
    @Autowired
    private VisitEventMapper visitEventMapper;
    @Override
    public  String downHKImgs(int type){
        if(Constants.DEALING_HK_IMG){
            return null ;
        }
        Constants.DEALING_HK_IMG =true;
        try {
            //查询所有访客事件记录中所有下载的海康端 æŠ“拍照片 å’Œ ç…§ç‰‡
            startDealVisitImg();
            //查询所有停车场事件记录中所有下载的海康端 è½¦ç‰Œå›¾ç‰‡ å’Œ   è½¦è¾†å›¾ç‰‡
            startDealCarImg();
            //查询所有门禁事件记录中所有下载的海康端 æŠ“拍照片 å’Œ   èº«ä»½è¯å›¾ç‰‡URL
            startDealDeviceImg();
        }catch (Exception e){
        }finally {
            Constants.DEALING_HK_IMG =false;
        }
        return  null;
    }
    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)
                        .or()
                        .likeLeft(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);
                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(rs2)){
                    event.setExtEventIDCardPictureURL(rs2);
                }else{
                    event.setExtEventIDCardPictureURL(img2.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
                }
                deviceEventMapper.updateById(event);
            }
        }
    }
    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)
                        .or()
                        .likeLeft(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);
                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));
                }
                if(StringUtils.isNotBlank(rs2)){
                    event.setVehiclePicUrl(rs2);
                }else{
                    event.setVehiclePicUrl(img2.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
                }
                carEventMapper.updateById(event);
            }
        }
    }
    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)
                        .or()
                        .likeLeft(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);
                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));
                }
                if(StringUtils.isNotBlank(rs2)){
                    event.setPhotoUrl(rs2);
                }else{
                    event.setPhotoUrl(img2.replace(HKConstants.IMG_INDEX, HKConstants.IMG_INDEX_ERROR));
                }
                visitEventMapper.updateById(event);
            }
        }
    }
    private String downHkImgToFtp(String img1, String serverIndex, String visitEventImg) {
        //
        return  null;
    }
}