JDK8新特性

@Override
public void importPerson(String imp_projectid, List<DoorGuardPerson> subList, ImportMode mode)
		throws Exception {
	//取出待导入的人员编号
	List<String> personids = subList.stream().map(p -> p.getPersonid()).collect(Collectors.toList());
	//查询已经存在的项目设备
	List<DoorGuardPerson> existPersons = doorGuPersonMapper.queryPersons(personids);
	//追加模式或者全部模式
	if (mode.isAppendMode() || mode.isAppendAndUpdateMode()){
		//查找不存在的人员
		List<DoorGuardPerson> noneExistPersons = subList.stream().filter(p -> !isPersonExist(existPersons, p.getPersonid())).collect(Collectors.toList());
		if (noneExistPersons != null && noneExistPersons.size() > 0){
			//将formbean转换为person对象
			List<DoorGuardPerson> noneExistPerson = noneExistPersons.stream().map(p -> p.toDoorGuardPerson()).collect(Collectors.toList());
			if (noneExistPerson != null && noneExistPerson.size() > 0){
				doorGuPersonMapper.batchInsert(noneExistPerson); //批量插入
			}
		}
	}
	//更新模式或者全部模式
	if (mode.isUpdateMode() || mode.isAppendAndUpdateMode()){
		if (existPersons != null && existPersons.size() > 0){
			for (DoorGuardPerson existPerson : existPersons){
				innerFullSet(existPerson, innerFind(subList, existPerson.getPersonid()));
			}
			//批量更新
			doorGuPersonMapper.batchUpdate(existPersons);
		}
	}
	//批量删除模式(分为普通的批量删除和强制批量删除)
	if (mode.isDeleteMode()) {
		/*String[] perids = existPersons.stream().map(p -> p.getPersonid()).collect(Collectors.toList()).toArray(new String[0]);
		List<String> personidList = new ArrayList<String>();
		if (perids != null && perids.length > 0){
			for(String perid : perids){
				personidList.add(perid);
			}
			doorGuPersonMapper.removeDoorGuardPersons(personidList);
		}*/
		//已经有了,不需要数组转list了
		doorGuPersonMapper.removeDoorGuardPersons(personids);
	}
	
}


private void innerFullSet(DoorGuardPerson existPerson, DoorGuardPerson innerFind) {
	if (existPerson == null){
		return;
	}
	
	/*
	personid	人员编号	VARCHAR(50)		N	主键
	name	姓名	VARCHAR(100)		N	
	idcard	身份证号码	VARCHAR(20)		Y	
	sex	性别	Byte	1	N	1--男;0--女;
	age	年龄	Byte	0	Y	
	job	职务	Varchar(100)		Y	
	department	单位或部门	Varchar(100)		Y	
	birthday	出生日期	Date		Y	
	addr	住址	VARCHAR(100)		Y	
	telephone	手机号码	VARCHAR(50)		Y	
	email	EMAIL邮箱	VARCHAR(100)		Y	
	edu	学历	VARCHAR(20)		Y	
	flag	人员类别	Int	0	Y	0--持卡人;1--管理人员;2--临时访客;
	photo	照片文件路径	VARCHAR(200)		Y	
	areaid	所在区域	VARCHAR(200)		Y	
	projectid	项目ID	VARCHAR(200)		N	归属项目
	remark	备注	VARCHAR(200)		Y	附加信息     
	*/

	if (!StringUtils.isEmpty(innerFind.getName())){
		existPerson.setName(innerFind.getName());
	}
	
	if (!StringUtils.isEmpty(innerFind.getIdcard())){
		existPerson.setIdcard(innerFind.getIdcard());
	}
	
	if (innerFind.getSex()!=null){
		existPerson.setSex(innerFind.getSex());
	}
	
	if (innerFind.getAge()!=null){
		existPerson.setAge(innerFind.getAge());
	}
	
	if (!StringUtils.isEmpty(innerFind.getJob())){
		existPerson.setJob(innerFind.getJob());
	}
	
	if (!StringUtils.isEmpty(innerFind.getDepartment())){
		existPerson.setDepartment(innerFind.getDepartment());
	}
	
	if (innerFind.getBirthday()!=null){
		existPerson.setBirthday(innerFind.getBirthday());
	}
	
	if (!StringUtils.isEmpty(innerFind.getAddr())){
		existPerson.setAddr(innerFind.getAddr());
	}
	
	if (!StringUtils.isEmpty(innerFind.getTelephone())){
		existPerson.setTelephone(innerFind.getTelephone());
	}
	
	if (!StringUtils.isEmpty(innerFind.getEmail())){
		existPerson.setEmail(innerFind.getEmail());
	}
	
	if (!StringUtils.isEmpty(innerFind.getEdu())){
		existPerson.setEdu(innerFind.getEdu());
	}
	
	existPerson.setFlag(innerFind.getFlag());
	
	if (!StringUtils.isEmpty(innerFind.getAreaid())){
		existPerson.setAreaid(innerFind.getAreaid());
	}
	
	if (!StringUtils.isEmpty(innerFind.getProjectid())){
		existPerson.setProjectid(innerFind.getProjectid());
	}

	if (!StringUtils.isEmpty(innerFind.getRemark())){
		existPerson.setRemark(innerFind.getRemark());
	}
	
}


private DoorGuardPerson innerFind(List<DoorGuardPerson> subList, String personid) {
	for (DoorGuardPerson bean : subList){
		if (StringUtils.equals(bean.getPersonid(), personid)){
			return bean;
		}
	}
	return null;
}


private boolean isPersonExist(List<DoorGuardPerson> existPersons, String personid) {
	for (DoorGuardPerson existPerson : existPersons){
		if (StringUtils.equals(existPerson.getPersonid(), personid)){
			return true;
		}
	}
	return false;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZHOU_VIP

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值