From eea92f23bf8ead897f346ae6ccc8603ac039e566 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 30 七月 2024 09:48:47 +0800 Subject: [PATCH] 修复bug --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java | 139 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 139 insertions(+), 0 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java index d92e58f..f5150c9 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java @@ -10,7 +10,9 @@ import com.doumee.core.haikang.model.param.BaseListPageResponse; import com.doumee.core.haikang.model.param.BaseResponse; import com.doumee.core.haikang.model.param.request.AppointmentListRequest; +import com.doumee.core.haikang.model.param.respose.AppointmentIccmInfoResponse; import com.doumee.core.haikang.model.param.respose.AppointmentInfoResponse; +import com.doumee.core.haikang.model.param.respose.AppointmentVisitorInfoResponse; import com.doumee.core.haikang.service.HKService; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DESUtil; @@ -52,6 +54,64 @@ private SystemDictDataBiz systemDictDataBiz; + /** + * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁� + */ + @Override + @Transactional + public void syncVistAppointDataIccm(Date date){ + try { + if( Constants.formatIntegerNum(dataSyncConfig.getVisitorDataOrigin()) != DataSyncConfig.origin.hk){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "瀵逛笉璧凤紝褰撳墠涓嶆敮鎸佹捣搴锋暟鎹悓姝ユ搷浣渵"); + } + AppointmentListRequest param = new AppointmentListRequest(); + //鑾峰彇ERP缁勭粐淇℃伅锛堝叏閲忓悓姝ワ級 + boolean hasNext = true; + int curTotal = 0; + int curPage = 1; + //鏌ヨ浠婂ぉ鐨� + Date start =Utils.Date.getStart(date); + Date end = Utils.Date.getEnd(new Date()); + param.setVisitStartTimeBegin(DateUtil.getISO8601Timestamp2( start)); + param.setVisitStartTimeEnd(DateUtil.getISO8601Timestamp2( end)); + + List<Visits> allHkList = new ArrayList<>(); + while (hasNext){ + //鍒嗛〉閬嶅巻寰幆鏌ヨ鎵�鏈夐棬绂佽澶囨暟鎹� + param.setPageNo(curPage); + param.setPageSize(100); + BaseResponse<BaseListPageResponse<AppointmentIccmInfoResponse>> response = HKService.appointmentRecordsIccm(param); + if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE) ){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝娴峰悍鍚屾鏁版嵁澶辫触~"); + } + if(response.getData() == null || response.getData().getTotal() ==0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�"); + } + BaseListPageResponse<AppointmentIccmInfoResponse> r = response.getData(); + curTotal += 100; + if(curTotal >= r.getTotal()){ + hasNext = false; + } + if(r.getList() == null || r.getList().size()==0){ + hasNext =false; + }else{ + allHkList.addAll(getNewVisitModelBYListIccm(r.getList())); + } + curPage++; + } + if(allHkList .size() == 0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�"); + } + //娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹� + visitsMapper.delete(new UpdateWrapper<Visits>().lambda() + .ge(Visits::getStarttime,start) + .eq(Visits::getType,Constants.ONE) + .le(Visits::getStarttime,end)); + visitsMapper.insertBatchSomeColumn(allHkList);//鎻掑叆鏂版暟鎹� + }catch (BusinessException e){ + throw e; + } + } /** * 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁� */ @@ -114,6 +174,84 @@ } } + private List<Visits> getNewVisitModelBYListIccm(List<AppointmentIccmInfoResponse> list ) { + List<Visits> newList = new ArrayList<>(); + if(list == null || list.size()==0){ + return newList; + } + for(AppointmentIccmInfoResponse data :list){ + if(data.getVisitorList()==null || data.getVisitorList().size() ==0){ + continue; + } + for(AppointmentVisitorInfoResponse model : data.getVisitorList()){ + Visits c = new Visits(); + c.setHkId(model.getVisitorId()); + c.setCode(model.getQrCode()); + c.setName(model.getVisitorName()); + c.setHkStatus(Constants.ONE); + c.setHkDate(new Date()); + c.setIsdeleted(Constants.ZERO); + c.setCreateDate(c.getHkDate()); + c.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, model.getCertificateNo())); + c.setIdcardDecode(Constants.getTuominStr(model.getCertificateNo())); + c.setIdcardType(Integer.parseInt(model.getCertificateType())); + c.setStarttime(DateUtil.getISO8601DateByStr2(data.getVisitStartTime())); + c.setEndtime(DateUtil.getISO8601DateByStr2(data.getVisitEndTime())); + c.setReason(data.getVisitPurpose()); + c.setStatus(model.getVisitorStatus()); + c.setType(Constants.ONE); + if(StringUtils.isNotBlank(data.getReceptionistId())){ + //琚闂汉 + Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getHkId,data.getReceptionistId()).last("limit 1")); + c.setReceptMemberId(member!=null?member.getId():null); + } + c.setCompanyName(model.getVisitorWorkUnit()); + c.setPhone(model.getPhoneNo()); + c.setCarNos(model.getPlateNo()); + if(StringUtils.isNotBlank(model.getCertificateNo())){ + //琚闂汉 + Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getType,Constants.ONE) + .eq(Member::getIdcardNo , c.getIdcardNo()) + .last("limit 1")); + if(member == null){ + member = new Member(); + member.setName(model.getVisitorName()); + member.setPhone(model.getPhoneNo()); + member.setSex(model.getGender()); + member.setIsdeleted(Constants.ZERO); + member.setType(Constants.ONE); + member.setIdcardNo(c.getIdcardNo()); + member.setIdcardDecode(c.getIdcardDecode()); + member.setVisitCompanyName(model.getVisitorWorkUnit()); + member.setCreateDate(new Date()); + if(StringUtils.isNotBlank(model.getPicUri())){ + member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri()); + member.setFaceServerIndexCode(model.getSvrIndexCode()); + } + memberMapper.insert(member); + }else{ + member.setIsdeleted(Constants.ZERO); + member.setEditDate(new Date()); + member.setName(model.getVisitorName()); + member.setPhone(model.getPhoneNo()); + member.setSex(model.getGender()); + member.setVisitCompanyName(model.getVisitorWorkUnit()); + if(StringUtils.isNotBlank(model.getPicUri())){ + member.setFaceServerIndexCode(model.getSvrIndexCode()); + member.setImgurl(HKConstants.IMG_INDEX+model.getPicUri()); + } + memberMapper.updateById(member); + } + c.setMemberId(member.getId()); + + } + newList.add(c); + } + + } + return newList; + } private List<Visits> getNewVisitModelBYList(List<AppointmentInfoResponse> list ) { List<Visits> newList = new ArrayList<>(); if(list == null || list.size()==0){ @@ -183,4 +321,5 @@ } + } -- Gitblit v1.9.3