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 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 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 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; } } }