package com.doumee.service.business.impl.hksync;
|
|
import com.doumee.core.haikang.model.HKConstants;
|
import com.doumee.core.haikang.model.param.BaseResponse;
|
import com.doumee.core.haikang.model.param.request.VisitAppointmentRequest;
|
import com.doumee.core.haikang.model.param.respose.VisitAppointmentResponse;
|
import com.doumee.core.haikang.service.HKService;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.DateUtil;
|
import com.doumee.dao.business.join.EmpowerJoinMapper;
|
import com.doumee.dao.business.join.VisitsJoinMapper;
|
import com.doumee.dao.business.model.Empower;
|
import com.doumee.dao.business.model.Member;
|
import com.doumee.dao.business.model.Visits;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* 海康门禁授权业务Service实现
|
* @author 江蹄蹄
|
* @date 2023/11/30 15:33
|
*/
|
@Service
|
@Slf4j
|
public class HkSyncEmpowerServiceImpl extends HkSyncBaseServiceImpl {
|
@Autowired
|
private EmpowerJoinMapper empowerJoinMapper;
|
|
/**
|
* 同步海康组织信息,根据erp同步组织结果,定时检查需要下发到海康的组织信息
|
*/
|
@Override
|
public void syncEmpowerData(){
|
if(Constants.DEALING_HK_EMPOWER){
|
return ;
|
}
|
Constants.DEALING_HK_EMPOWER =true;
|
try {
|
//查询所有需要同步的企业数据
|
|
MPJLambdaWrapper<Empower> queryWrapper = new MPJLambdaWrapper<>();
|
queryWrapper.selectAll(Empower.class);
|
queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName)
|
.select("t1.hk_id as receptMemberHkId")
|
.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId);
|
queryWrapper.eq(Visits::getStatus,Constants.VisitStatus.pass)//审批通过
|
.eq(Visits::getHkStatus,Constants.ZERO)//未同步到海康
|
.orderByAsc(Visits::getCreateDate);
|
List<Empower> list = empowerJoinMapper.selectJoinList(Empower.class,queryWrapper);
|
if(list ==null || list.size()==0){
|
return;
|
}
|
Date date = new Date();
|
for(Empower c : list) {
|
//删除的数据,进行删除
|
VisitAppointmentRequest request = new VisitAppointmentRequest();
|
BaseResponse<VisitAppointmentResponse> response = HKService.visitAppiontment(request);
|
if (response != null
|
&& StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)
|
&&response.getData()!=null
|
&&StringUtils.isNotBlank(response.getData().getAppointRecordId())) {
|
//海康下发成功
|
c.setHkId( response.getData().getAppointRecordId());//预约标识
|
} else {
|
//海康下发成功
|
}
|
empowerJoinMapper.updateById(c);
|
}
|
}catch (Exception e){
|
e.printStackTrace();
|
}finally {
|
Constants.DEALING_HK_EMPOWER =false;
|
}
|
}
|
|
}
|