From 995436f56f93874f19b8094fe5537e96d413b6fd Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 30 七月 2024 18:07:49 +0800
Subject: [PATCH] 修复bug
---
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/fhk/HkSyncVisitFromHKServiceImpl.java | 141 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 140 insertions(+), 1 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 08c8874..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;
+ }
+ }
/**
* 鍚屾娴峰悍缁勭粐淇℃伅鍒颁笟鍔$郴缁�
*/
@@ -101,7 +161,7 @@
curPage++;
}
if(allHkList .size() == 0){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍缁勭粐淇℃伅锛�");
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈悓姝ュ埌浠讳綍淇℃伅锛�");
}
//娓呯┖鍘熸湁褰撳ぉ鐨勬暟鎹�
visitsMapper.delete(new UpdateWrapper<Visits>().lambda()
@@ -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