From ad6dfb8323ab40ca8fe4fed94722c755d89c3203 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 28 二月 2024 15:14:47 +0800 Subject: [PATCH] 整理 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java | 173 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 163 insertions(+), 10 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java index 2ca62e8..9b98e60 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncPushServiceImpl.java @@ -8,6 +8,7 @@ import com.doumee.core.haikang.model.param.request.event.acs.EventAcsInfoRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest; import com.doumee.core.haikang.model.param.request.event.acs.EventDeviceDataRequest; +import com.doumee.core.haikang.model.param.request.event.parks.EventParkInfoRequest; import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitDataRequest; import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest; @@ -27,7 +28,6 @@ import com.hikvision.artemis.sdk.config.ArtemisConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,6 +47,10 @@ @Autowired private InterfaceLogMapper interfaceLogMapper; + @Autowired + private CarsMapper carsMapper; + @Autowired + private ParkBookMapper parkBookMapper; @Autowired private DeviceEventMapper deviceEventMapper; @Autowired @@ -148,14 +152,16 @@ event.setIsdeleted(Constants.ZERO); event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); event.setEventId(request.getEventId()); - event.setEventType( request.getData().getExtEventType()!=null?request.getData().getExtEventType()+"":null); + event.setEventType(request.getEventType()); event.setAccessChannel(request.getData().getExtAccessChannel()); event.setUserType(request.getData().getUserType()); event.setSvrIndexCode(request.getData().getSvrIndexCode()); event.setStatus(request.getStatus()); + event.setExtEventType(request.getData().getExtEventType()!=null?request.getData().getExtEventType():null); event.setSrcType(request.getSrcType()); event.setSrcName(request.getSrcName()); event.setSrcIndex(request.getSrcIndex()); + event.setSrcParentIndex(request.getSrcParentIndex()); event.setSeq(request.getData().getSeq()); event.setTimeout(request.getTimeout()); event.setExtEventType(request.getData().getExtEventType()); @@ -303,7 +309,9 @@ EventVisitDataRequest model = request.getData(); MPJLambdaWrapper<Visits> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Visits.class); + queryWrapper.selectAs(Member::getType,Visits::getMemberType); queryWrapper.eq(Visits::getHkId,model.getVisitorId() ); + queryWrapper.leftJoin(Member.class,Member::getId,Visits::getMemberId ); queryWrapper.last("limit 1"); Visits visits = visitsMapper.selectJoinOne(Visits.class,queryWrapper); if(visits !=null){ @@ -315,9 +323,18 @@ //濡傛灉鏄瀹㈢櫥璁帮紝褰曞叆浜哄憳鐨勫湪鍦烘暟鎹褰� retentionList.add(getRetentionModelByVisitRequest(visits,request)); //鏉ヨ鏃堕棿 - updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getStartTime())); + updateVistis.setStatus(Constants.VisitStatus.signin); + updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime())); + updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime())); + //鏇存柊鏈�鏂版潵璁挎椂闂� + Member member = new Member(); + member.setLastVisitDate(updateVistis.getInDate()); + member.setId(visits.getMemberId()); + memberMapper.updateById(member); }else { //濡傛灉鏄瀹㈢绂讳簨浠� + updateVistis.setStatus(Constants.VisitStatus.signout); + updateVistis.setInDate(DateUtil.getISO8601DateByStr(model.getStartTime())); updateVistis.setOutDate(DateUtil.getISO8601DateByStr(model.getEndTime())); updateVistis.setOutType(Constants.ZERO); updateVistis.setOutInfo("璁垮姝e父绛剧"); @@ -337,7 +354,9 @@ event.setVisitorCode(request.getData().getVisitorCode()); event.setTimeout(request.getTimeout()); event.setSvrIndexCode(request.getData().getSvrIndexCode()); + event.setHappenTime(request.getHappenTime()); event.setStatus(request.getStatus()); + event.setEndTime(request.getData().getEndTime()); event.setStartTime(request.getData().getStartTime()); event.setSrcType(request.getSrcType()); event.setSrcParentIndex(request.getSrcParentIndex()); @@ -346,8 +365,23 @@ event.setSignOrg(request.getData().getSignOrg()); event.setSex(request.getData().getSex()); event.setPurpose(request.getData().getPurpose()); + event.setPhone(request.getData().getPhone()); + event.setBeVisitedPersonId(request.getData().getBeVisitedPersonId()); + event.setBeVisitedPersonName(request.getData().getBeVisitedPersonName()); + event.setBeVisitedPersonOrg(request.getData().getBeVisitedPersonOrg()); + event.setBeVisitedPersonOrgId(request.getData().getBeVisitedPersonOrgId()); + event.setVisitorWorkUint(request.getData().getVisitorWorkUint()); event.setPhotoUrl(getHkImgUrl(request.getData().getPhotoUrl())); event.setPersonName(request.getData().getPersonName()); + event.setCarNo(request.getData().getCarNo()); + event.setCaptureUrl(request.getData().getCaptureUrl()); + if(StringUtils.isNotBlank(request.getData().getCaptureUrl())){ + event.setCaptureUrl(HKConstants.IMG_INDEX+request.getData().getCaptureUrl()); + } + if(StringUtils.isNotBlank(request.getData().getPhotoUrl())){ + + event.setPhotoUrl(HKConstants.IMG_INDEX+request.getData().getPhotoUrl()); + } event.setIdType(request.getData().getIdType()); String idnum =request.getData().getIdNo(); if(StringUtils.isNotBlank(idnum)){ @@ -358,8 +392,6 @@ } event.setEventType(request.getEventType()); event.setEventId(request.getEventId()); - event.setHappenTime(event.getHappenTime()); - return event; } @@ -367,7 +399,7 @@ Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); - retention.setClasses(visits.getMemberClasses()); + retention.setClasses(visits.getClasses()); retention.setCode(visits.getCode()); retention.setIdcardNo(visits.getIdcardNo()); retention.setIdcardDecode(visits.getIdcardDecode()); @@ -376,14 +408,14 @@ retention.setType(visits.getMemberType()); retention.setCompanyId(visits.getCompanyId()); retention.setCompanyName(visits.getCompanyName()); - retention.setEventCode(request.getEventType()+""); + retention.setEventCode(request.getSrcType()+""); retention.setEventDate(retention.getCreateDate()); retention.setFaceImg(visits.getFaceImg()); retention.setImgurl(visits.getImgurl()); retention.setPhone(visits.getPhone()); retention.setMemberId(visits.getMemberId()); - retention.setDeviceName(request.getSrcName()); - retention.setDeviceIndex(request.getSrcIndex()); +// retention.setDeviceName(request.getSrcName()); +// retention.setDeviceIndex(request.getSrcIndex()); return retention; } @@ -399,7 +431,35 @@ String result = null; log.info("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========寮�濮�=========锛歕n"+JSONObject.toJSONString(param)); try { - + if(param == null || param.getParams() == null || param.getParams().getEvents()==null){ + return null; + } + //闂ㄧ浜嬩欢闆嗗悎 + List<EventParkInfoRequest> events = param.getParams().getEvents(); + List<CarEvent> list = new ArrayList<>(); + List<Retention> retentionList = new ArrayList<>(); + List<String> delRetentionList = new ArrayList<>(); + for(EventParkInfoRequest request : events){ + if(request.getData() ==null ||StringUtils.isBlank(request.getData().getPlateNo())){ + continue; + } + //灏佽浜嬩欢淇℃伅琛ㄥ璞� + list.add(getParkEventModelByRequest(request,delRetentionList,retentionList)); + } + if(list.size()>0){ + //鎻掑叆闂ㄧ璁板綍 + carEventMapper.insertBatchSomeColumn(list); + } + if(delRetentionList.size()>0){ + //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鍐呴儴浜哄憳锛� + retentionMapper.delete(new UpdateWrapper<Retention>().lambda() + .eq(Retention::getType,Constants.THREE) + .in(Retention::getCarNo,delRetentionList)); + } + if(retentionList.size()>0){ + //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 + retentionMapper.insertBatchSomeColumn(retentionList); + } log.error("銆愭捣搴峰仠杞﹀満浜嬩欢鎺ㄩ�併��========鎴愬姛======="); }catch (Exception e){ @@ -409,6 +469,99 @@ return null; } + /** + * 鏍规嵁鎺ㄩ�佹暟鎹皝瑁呭仠杞︿簨浠跺璞′俊鎭� + * @param request + * @return + */ + private CarEvent getParkEventModelByRequest(EventParkInfoRequest request, List<String> delRetentionList , List<Retention> retentionList ) { + CarEvent event = new CarEvent(); + event.setIsdeleted(Constants.ZERO); + event.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); + event.setVehicleType(request.getData().getVehicleType()); + event.setVehicleColor(request.getData().getVehicleColor()); + event.setVehicleClass(request.getData().getVehicleClass()); + event.setTimestr(request.getData().getTime()); + event.setEventId(request.getEventId()); + event.setTimeout(request.getTimeout()); + event.setSvrIndex(request.getData().getSvrIndex()); + event.setSubModel(request.getData().getSubModel()); + event.setSubLogo(request.getData().getSubLogo()); + event.setStatus(request.getStatus()); + event.setSrcType(request.getSrcType()); + event.setSrcParentIndex(request.getSrcParentIndex()); + event.setSrcName(request.getSrcName()); + event.setSrcIndex(request.getSrcIndex()); + event.setRoadwayType(request.getData().getRoadwayType()); + event.setRoadwayName(request.getData().getRoadwayName()); + event.setRoadwayIndex(request.getData().getRoadwayIndex()); + event.setPlateType(request.getData().getPlateType()); + event.setTimeout(request.getTimeout()); + event.setPlateNos(request.getData().getPlateNo()); + event.setPlateColor(request.getData().getPlateColor()); + event.setPlateBelieve(request.getData().getPlateBelieve()); + event.setParkName(request.getData().getParkName()); + event.setParkIndex(request.getData().getParkIndex()); + event.setMainLogo(request.getData().getMainLogo()); + event.setInoutType(request.getData().getInoutType()); + event.setHappenTime(request.getHappenTime()); + event.setGateName(request.getData().getGateName()); + event.setGateIndex(request.getData().getGateIndex()); + event.setEventType(request.getEventType()); + event.setEventIndex(request.getData().getEventIndex()); + event.setEventCmd(request.getData().getEventCmd()); + event.setCardNo(request.getData().getCardNo()); + event.setCarAttributeName(request.getData().getCarAttributeName()); + + if(request.getData().getInResult()!=null && request.getData().getInResult().getRlsResult() !=null ){ + //鏀捐鏂瑰紡 + event.setReleaseWay(request.getData().getInResult().getRlsResult().getReleaseWay()); + event.setReleaseAuth(request.getData().getInResult().getRlsResult().getReleaseAuth()); + event.setReleaseReason(request.getData().getInResult().getRlsResult().getReleaseReason()); + event.setReleaseResult(request.getData().getInResult().getRlsResult().getReleaseResult()); + event.setReleaseResultEx(request.getData().getInResult().getRlsResult().getReleaseResultEx()); + } + + if(request.getData().getPicUrl()!=null){ + //杞﹁締鍜屽拰杞︾墝鐓х墖 + event.setVehiclePicUrl(getHkImgUrl(request.getData().getPicUrl().getVehiclePicUrl())); + event.setPlatePicUrl(getHkImgUrl(request.getData().getPicUrl().getPlatePicUrl())); + } + if(StringUtils.isNotBlank(event.getPlateNos())){ + ParkBook cars = parkBookMapper.selectOne(new QueryWrapper<ParkBook>().lambda() + .eq(ParkBook::getCarCode,event.getPlateNos()) + .eq(ParkBook::getIsdeleted,Constants.ONE ) + .last("limit 1" )); + if(cars!=null){ + event.setMemberId(cars.getMemberId()); + } + + if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_IN.getKey()){ + //濡傛灉鏄叆鍘傛斁琛� + delRetentionList.add(event.getPlateNos()); + retentionList.add(getRetentionModelByParkRequest(request)); + }else if(Constants.formatIntegerNum(request.getEventType()) == HKConstants.EventTypes.PARK_PASS_OUT.getKey()){ + //濡傛灉鏄嚭鍦烘斁琛� + delRetentionList.add(event.getPlateNos()); + } + } + + return event; + + } + + private Retention getRetentionModelByParkRequest(EventParkInfoRequest request) { + Retention retention = new Retention(); + retention.setIsdeleted(Constants.ZERO); + retention.setCreateDate(DateUtil.getISO8601DateByStr(request.getHappenTime())); + retention.setCarNo(request.getData().getPlateNo()); + retention.setType(Constants.THREE); +// retention.setDeviceName(request.getSrcName()); +// retention.setDeviceIndex(request.getSrcIndex()); + + return retention; + } + private void saveInterfaceLog(Object param, String path,String result) { InterfaceLog hkMonitoryLogDO=new InterfaceLog(); hkMonitoryLogDO.setType(1); -- Gitblit v1.9.3