server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -233,5 +233,12 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date lastVisitDate; @ApiModelProperty(value = "门禁有效期开始") @ExcelColumn(name="门禁有效期开始",index= 5,dateFormat = "yyyy-MM-dd") private Date startTime; @ApiModelProperty(value = "门禁有效期结束", example = "1") @ExcelColumn(name="门禁有效期结束",index= 6,dateFormat = "yyyy-MM-dd") private Date endTime; } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -291,7 +291,7 @@ } if(updateList.size()>0){ for(Member c : updateList){ dealRoleEmpower(c,param.getStartTime(), param.getEndTime()); dealRoleEmpower(c,param.getStartTime(), param.getEndTime()); c.setHkStatus(Constants.ZERO); memberMapper.updateById(c); } @@ -824,6 +824,8 @@ member.setType(Constants.memberType.internal); String encryptIdNo = DESUtil.encrypt(Constants.EDS_PWD,param.getIdNo()); member.setIdcardNo(encryptIdNo); member.setStartTime(param.getValidStartTime()); member.setEndTime(param.getValidEndTime()); member.setIdcardDecode(Constants.getTuominStr(param.getIdNo())); member.setErpOrgId(param.getOrgId()); doorIds = getRoleIdByParam(param.getRoleIds(),member); @@ -841,6 +843,8 @@ doorIds = getRoleIdByParam(param.getRoleIds(),member); member.setErpDate(new Date()); member.setHkStatus(Constants.ZERO); member.setStartTime(param.getValidStartTime()); member.setEndTime(param.getValidEndTime()); memberMapper.updateById(member); //删除用户卡片数据 人员角色关联 memberCardMapper.delete(new QueryWrapper<MemberCard>().lambda().eq(MemberCard::getMemberId,member.getId())); @@ -900,27 +904,30 @@ if(StringUtils.isBlank(member.getFaceImg())){ return; } List<Empower> list = new ArrayList<>(); List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds)); if(deviceList == null || deviceList.size() == 0){ return; if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){ //如果用户是同步海康成功,添加带下发权限 List<Empower> list = new ArrayList<>(); List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds)); if(deviceList == null || deviceList.size() == 0){ return; } for (Device deviceRole:deviceList) { Empower model = new Empower(); model.setCreateDate(new Date()); model.setMemberId(member.getId()); model.setIsdeleted(Constants.ZERO); model.setDeviceId(deviceRole.getId()); model.setSendStatus(Constants.ZERO); model.setStartTime(startTime); model.setEndTime(endTime); //默认给于虚拟卡 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId()); model.setSendType(Constants.ZERO); list.add(model); } //导入新增的授权信息 empowerMapper.insertBatchSomeColumn(list); } for (Device deviceRole:deviceList) { Empower model = new Empower(); model.setCreateDate(new Date()); model.setMemberId(member.getId()); model.setIsdeleted(Constants.ZERO); model.setDeviceId(deviceRole.getId()); model.setSendStatus(Constants.ZERO); model.setStartTime(startTime); model.setEndTime(endTime); //默认给于虚拟卡 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId()); model.setSendType(Constants.ZERO); list.add(model); } //导入新增的授权信息 empowerMapper.insertBatchSomeColumn(list); } private List<Integer> getRoleIdByParam(Integer[] param, Member member) { @@ -964,7 +971,6 @@ } memberRoleMapper.insertBatchSomeColumn(memberRoleList); member.setRoleId(ids); return r; } } @@ -982,6 +988,13 @@ return; } List<Integer> doorIds = getRoleIdByParam(param.getRoleIds(),member); //更新授权有效期 Member update = new Member(); update.setId(member.getId()); update.setEditDate(new Date()); update.setStartTime(param.getValidStartTime()); update.setEndTime(param.getValidEndTime()); memberMapper.updateById(update); //如果有授权门禁数据,进行用户授权数据下发任务创建 dealMemberRoleEmpower(member,doorIds,param.getValidStartTime(),param.getValidEndTime()); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncOrgUserServiceImpl.java
@@ -25,15 +25,13 @@ import com.github.yulichang.query.MPJQueryWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import java.util.*; /** * 海康组织人员通过步Service实现 @@ -45,6 +43,8 @@ public class HkSyncOrgUserServiceImpl extends HkSyncBaseServiceImpl { @Autowired private CompanyMapper companyMapper; @Autowired private DeviceRoleMapper deviceRoleMapper; @Autowired private MemberRoleMapper memberRoleMapper; @Autowired @@ -282,7 +282,36 @@ Constants.DEALING_HK_USER =false; } } private List<Integer> getRoleIdByParam( Member member) { //查询数据库存在的权限 List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .eq(DeviceRole::getType,Constants.TWO) .exists("(select b.id from member_role b where b.ROLE_ID = device_role.ID and b.MEMBER_ID="+member.getRoleId()+")")); if(CollectionUtils.isNotEmpty(deviceRoleList)){ List<MemberRole> memberRoleList = new ArrayList<>(); String ids = ""; List<Integer> r = new ArrayList<>(); for (int i = 0; i < deviceRoleList.size(); i++) { DeviceRole deviceRole =deviceRoleList.get(i); if(i>0){ ids += ","; } String doorids =deviceRole.getDoorIds(); if(StringUtils.isNotBlank(doorids)){ String[] ss = doorids.split(","); try { for(String s :ss){ r.add(Integer.parseInt(s)); } }catch (Exception e){ //脏数据不处理 } } } return r; } return null; } @Transactional private boolean dealMemberInfoBiz(Member c, Date date, String path) { if( c.getCompanyId() == null){ @@ -298,7 +327,39 @@ } return false; } private void dealMemberRoleEmpower(Member member ) { List<Integer> doorIds = getRoleIdByParam(member); if(doorIds==null || doorIds.size() == 0){ return; } if(StringUtils.isBlank(member.getFaceImg())){ return; } if(Constants.equalsObject(member.getHkStatus(),Constants.ONE)){ //如果用户是同步海康成功,添加带下发权限 List<Empower> list = new ArrayList<>(); List<Device> deviceList = deviceMapper.selectList(new QueryWrapper<Device>().lambda().in(Device::getId,doorIds)); if(deviceList == null || deviceList.size() == 0){ return; } for (Device deviceRole:deviceList) { Empower model = new Empower(); model.setCreateDate(new Date()); model.setMemberId(member.getId()); model.setIsdeleted(Constants.ZERO); model.setDeviceId(deviceRole.getId()); model.setSendStatus(Constants.ZERO); model.setStartTime(member.getStartTime()); model.setEndTime(member.getEndTime()); //默认给于虚拟卡 model.setCardNos(Constants.VIRTUAL_CARD_INDEX+member.getId()); model.setSendType(Constants.ZERO); list.add(model); } //导入新增的授权信息 empowerMapper.insertBatchSomeColumn(list); } } /** * 如果之前已经和海康同步,则更新用户数据以及人脸数据(可能新增人脸 也可能更新人脸) * @param c @@ -334,7 +395,8 @@ c.setHkStatus(Constants.TWO); c.setRemark("人员信息同步安防平台更新失败,请修正后重试!!"+(result!=null?result.getCode()+result.getMsg():"")); } //重新下发权限数据 dealMemberRoleEmpower(c); } c.setHkDate(date); memberMapper.updateById(c); @@ -373,6 +435,7 @@ c.setHkStatus(Constants.ONE); c.setHkId(addHkModel.getPersonId()); memberMapper.updateById(c); dealMemberRoleEmpower(c); return true; }else{ noticeErpFail(c,Constants.ZERO,"人员信息同步安防平台失败,请修正后重试!"+result.getCode()+result.getMsg());