From 2079ba28f20bde46f7736699c97abf0e1564770d Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 14 十月 2024 09:30:46 +0800 Subject: [PATCH] 最新版本 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java | 148 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 119 insertions(+), 29 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java index 09e6a3f..0665993 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java @@ -4,13 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.BaseListPageResponse; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.*; -import com.doumee.core.haikang.model.param.request.event.visit.EventVisitInfoRequest; import com.doumee.core.haikang.model.param.respose.*; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; @@ -73,14 +70,6 @@ AppointmentInfoResponse model = getVisitRecord(c.getHkId()); if(model == null){ continue; - /* Visits update = new Visits(); - //宸插け鏁� - update.setStatus(Constants.VisitStatus.invalid); - update.setEditDate(date); - update.setId(c.getId()); - update.setRemark("棰勭害宸茶娓呴櫎"); - visitsMapper.updateById(update); - continue;*/ } /** * * 0锛氬緟瀹℃牳锛堥绾﹀緟瀹℃壒锛夈�� @@ -155,6 +144,92 @@ } } + /** + * 鏌ヨICCM璁垮鏁版嵁鐘舵�� + */ + @Override + public void getOutTimeVisitRecordIccm(){ + if(Constants.DEALING_HK_VISIT_EXPIRE){ + return ; + } + Constants.DEALING_HK_VISIT_EXPIRE =true; + try { + //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁 + List<Visits> list = getExpireVisitList(); + //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁 + if(list ==null || list.size()==0){ + return; + } + Date date = new Date(); + for(Visits c : list) { + //鍙戣捣娴峰悍棰勭害鎺ュ彛锛堥渶瑕佺櫥璁帮級锛屾牴鎹绾﹁繑鍥炴帴鍙e皝瑁呯敵璇疯褰曟洿鏂板瓧娈� + IccmAppointmentListResponse data = getVisitRecordIccm(c.getHkId()); + if(data == null || data.getVisitorList() ==null || data.getVisitorList().size()==0){ + continue; + } + /** + * 璁垮鐘舵��(0:鏈鍒�,1:宸茬鍒�,2:宸茬閫�,3:婊炵暀,4:鏈闂�,5:鑷姩绛剧,6:鏈閫�) + */ + IccmAppointmentVisitorResponse model = data.getVisitorList().get(0); + if (model.getVisitorStatus()!=null && ",4,".contains( "," +model.getVisitorStatus()+"," )){ + //瀵圭浉搴旂姸鎬佷笅鐨勬暟鎹繘琛屻�愬凡澶辨晥銆戝鐞� + Visits update = new Visits(); + //宸插け鏁� + update.setStatus(Constants.VisitStatus.invalid); + update.setEditDate(date); + update.setId(c.getId()); + update.setInDate(DateUtil.getISO8601DateByStr2(data.getVisitStartTime())); + update.setOutDate(DateUtil.getISO8601DateByStr2(data.getVisitEndTime())); + update.setRemark("瓒呮椂鏈櫥璁�"); + visitsMapper.updateById(update); + } + if (model.getVisitorStatus()!=null && ",2,5,".contains( "," +model.getVisitorStatus()+"," )){ + // 瀵圭浉搴旂姸鎬佷笅鐨勬暟鎹繘琛屻�愬凡绛剧銆戝鐞� + if(!Constants.equalsInteger(c.getStatus(),Constants.VisitStatus.signout)){ + Visits update = new Visits(); + //宸插け鏁� + update.setStatus(Constants.VisitStatus.signout); + update.setEditDate(date); + update.setId(c.getId()); + update.setInDate(DateUtil.getISO8601DateByStr2(data.getVisitStartTime())); + update.setOutDate(DateUtil.getISO8601DateByStr2(data.getVisitEndTime())); + update.setRemark("宸茬绂�"); + visitsMapper.updateById(update); + + //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級 + retentionMapper.delete(new UpdateWrapper<Retention>().lambda() + .eq(Retention::getType,Constants.memberType.visitor) + .eq(Retention::getMemberId,c.getMemberId())); + } + } + if (model.getVisitorStatus()!=null&& ",1,3,6,".contains( "," +model.getVisitorStatus()+"," )){ + //濡傛灉宸茬櫥璁� + if(!Constants.equalsInteger(c.getStatus(),Constants.VisitStatus.signin)){ + Visits update = new Visits(); + //宸插け鏁� + update.setStatus(Constants.VisitStatus.signin); + update.setEditDate(date); + update.setId(c.getId()); + update.setInDate(DateUtil.getISO8601DateByStr2(data.getVisitStartTime())); + update.setOutDate(DateUtil.getISO8601DateByStr2(data.getVisitEndTime())); + update.setRemark("宸茬鍒�"); + visitsMapper.updateById(update); + //鍏堝垹闄ゅ師鏈夌殑鍦ㄥ満浜哄憳(鏅�氳瀹級 + retentionMapper.delete(new UpdateWrapper<Retention>().lambda() + .eq(Retention::getType,Constants.memberType.visitor) + .eq(Retention::getMemberId,c.getMemberId())); + //鍐嶆彃鍏ユ渶鏂扮殑鍦ㄥ巶浜哄憳 + retentionMapper.insert(getRetentionModelByVisitRequest(c,update.getInDate())); + } + } + } + }catch (Exception e){ + e.printStackTrace(); + }finally { + Constants.DEALING_HK_VISIT_EXPIRE =false; + } + } + private Retention getRetentionModelByVisitRequest(Visits visits,Date date) { Retention retention = new Retention(); retention.setIsdeleted(Constants.ZERO); @@ -195,6 +270,24 @@ } return response.getData().getList().get(0); } + public IccmAppointmentListResponse getVisitRecordIccm(String orderId){ + //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹� + if(StringUtils.isBlank(orderId)){ + return null; + } + IccmAppointmentListRequest param = new IccmAppointmentListRequest(); + param.setPageNo(1); + param.setPageSize(1); + param.setOrderId(orderId); + BaseResponse<BaseListPageResponse<IccmAppointmentListResponse>> response = HKService.iccmAppointmentRecords(param); + if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) ){ + return null; + } + if(response.getData() == null || response.getData().getList() == null|| response.getData().getList().size() ==0){ + return null; + } + return response.getData().getList().get(0); + } @Override public void syncVisitData(){ if(Constants.DEALING_HK_VISIT){ @@ -206,13 +299,9 @@ List<DeviceRole> roleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getType, Constants.ONE)); //鏍囪鏄惁璧板厤鐧昏棰勭害 -// String applyType =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_VISIT_REQUIRED).getCode(); -// String applyLwType =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MDJ_LW_REQUIRED).getCode(); try { //鏌ヨ鎵�鏈夐渶瑕佸悓姝ョ殑鏁版嵁 List<Visits> list = getVisitList(); - //鎸夌収鐖剁骇鐢宠鍒嗘壒澶勭悊姣忔鐢宠鏁版嵁 -// List<Visits> list = getParentList(alllist); if(list ==null || list.size()==0){ return; } @@ -329,7 +418,7 @@ c.setHkStatus(Constants.ONE); c.setHkDate(date); } - private void getUpdateModelByResponseIccm( Visits c,Date date, List<DeviceRole> roleList,String path ) { + public static void getUpdateModelByResponseIccm( Visits c,Date date, List<DeviceRole> roleList,String path ) { String code = null; String id = null; String qrcode = null; @@ -419,7 +508,7 @@ request.setVisitorPermissionSet(getVisitPermissonRequest(roleList,c)); return request; } - private IccmAppointmentMDJRequest getHkMDJRequestParamIccm(Visits c,List<DeviceRole> roleList,String path) { + public static IccmAppointmentMDJRequest getHkMDJRequestParamIccm(Visits c,List<DeviceRole> roleList,String path) { IccmAppointmentMDJRequest request = new IccmAppointmentMDJRequest(); IccmAppointmentVistorRequest info =getRequestInfoByVisitIccm(c,path); if(info == null ){ @@ -429,7 +518,7 @@ request.setVisitStartTime(DateUtil.getISO8601Timestamp2(c.getStarttime())); request.setVisitEndTime(DateUtil.getISO8601Timestamp2(c.getEndtime())); request.setReceptionistId(c.getReceptMemberHkId());//琚浜烘捣搴风紪鐮� - if(StringUtils.isNotBlank(c.getReason())){ + /* if(StringUtils.isNotBlank(c.getReason())){ char[] charArray = c.getReason().toCharArray(); int length = charArray.length; if(length>32){ @@ -437,7 +526,7 @@ }else{ request.setVisitPurpose(c.getReason()); } - } + }*/ request.setVisitorInfo(info); request.setVisitorPermissionSet(getVisitPermissonRequestIccm(roleList,c)); return request; @@ -463,7 +552,7 @@ } return p; } - private IccmPermissionSetRequest getVisitPermissonRequestIccm(List<DeviceRole> roleList, Visits c) { + public static IccmPermissionSetRequest getVisitPermissonRequestIccm(List<DeviceRole> roleList, Visits c) { IccmPermissionSetRequest p = new IccmPermissionSetRequest(); //鑾峰彇鏉冮檺缁勯泦鍚� String[] roles = getHkRoles(c.getDoors(),roleList); @@ -506,7 +595,7 @@ request.setVisitorInfoList(infolist); return request; } - private IccmAppointmentRequest getHkRequestParaIccm(Visits c,List<DeviceRole> roleList,String path ) { + public static IccmAppointmentRequest getHkRequestParaIccm(Visits c,List<DeviceRole> roleList,String path ) { IccmAppointmentRequest request = new IccmAppointmentRequest(); //鐢宠浜轰俊鎭� IccmAppointmentVistorRequest info =getRequestInfoByVisitIccm(c,path); @@ -514,11 +603,11 @@ //浜鸿劯涓虹┖锛屼笉鑳借繘琛屾帹閫� return null; } - request.setVisitStartTime(DateUtil.getISO8601Timestamp(c.getStarttime())); - request.setVisitEndTime(DateUtil.getISO8601Timestamp(c.getEndtime())); + request.setVisitStartTime(DateUtil.getISO8601Timestamp2(c.getStarttime())); + request.setVisitEndTime(DateUtil.getISO8601Timestamp2(c.getEndtime())); request.setReceptionistId(c.getReceptMemberHkId());//琚浜烘捣搴风紪鐮� - if(StringUtils.isNotBlank(c.getReason())){ + /* if(StringUtils.isNotBlank(c.getReason())){ char[] charArray = c.getReason().toCharArray(); int length = charArray.length; if(length>32){ @@ -526,7 +615,7 @@ }else{ request.setVisitPurpose(c.getReason()); } - } + }*/ //鑾峰彇鏉冮檺缁勯泦鍚� request.setVisitorPermissionSet(getVisitPermissonRequestIccm(roleList,c)); List<IccmAppointmentVistorRequest> infolist = new ArrayList<>(); @@ -581,7 +670,7 @@ return info; } - private IccmAppointmentVistorRequest getRequestInfoByVisitIccm(Visits c,String path) { + public static IccmAppointmentVistorRequest getRequestInfoByVisitIccm(Visits c,String path) { IccmAppointmentVistorRequest info = new IccmAppointmentVistorRequest(); //浜鸿劯鏁版嵁 if(StringUtils.isBlank(c.getName()) @@ -590,9 +679,12 @@ return null; } if(StringUtils.isNotBlank(c.getFaceImg())){ + log.info("===================================="+path+c.getFaceImg()+"======start===="); info.setVisitorPhoto(ImageBase64Util.Image2Base64(path+c.getFaceImg())); + log.info("===================================="+path+c.getFaceImg()+"========end==="); } if(info.getVisitorPhoto() == null){ + log.info("===================================="+path+c.getFaceImg()+"======imgerror====="); return null; } if(StringUtils.isNotBlank(c.getName())){ @@ -604,7 +696,6 @@ info.setVisitorName(c.getName()); } } - if(StringUtils.isNotBlank(c.getCompanyName())){ char[] charArray = c.getCompanyName().toCharArray(); int length = charArray.length; @@ -624,11 +715,10 @@ info.setCertificateType(HKConstants.CertificateType.HUZHAO.getKey()+""); info.setCertificateNo(DESUtil.decrypt(Constants.EDS_PWD, c.getIdcardNo())); } - return info; } - private String[] getHkRoles(String doors, List<DeviceRole> roleList) { + public static String[] getHkRoles(String doors, List<DeviceRole> roleList) { if(StringUtils.isBlank(doors) || roleList.size()==0|| roleList.size()==0){ return null; } -- Gitblit v1.9.3