package com.panzhihua.service_community.service.impl;
|
|
import java.util.List;
|
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.service_community.dao.GridBuildRelationDAO;
|
import com.panzhihua.service_community.model.dos.GridBuildRelationDO;
|
import com.panzhihua.service_community.service.GridBuildRelationService;
|
|
/**
|
* program 攀枝花智慧社区项目 description 特殊人群管理API
|
*
|
* @author manailin Date 2021-01-22 15:30
|
**/
|
@Service
|
public class GridBuildRelationServiceImpl extends ServiceImpl<GridBuildRelationDAO, GridBuildRelationDO>
|
implements GridBuildRelationService {
|
|
/**
|
* description 批量保存重点人群人员信息 处理逻辑:同一个人的信息可以被多个社区重复录入 一个人的信息如果被同一个社区重复导入。以最新的导入数据为准。将之前的数据进行更新操作。
|
*
|
* @param keyList
|
* 重点人群信息
|
* @return R 保存结果
|
* @author manailin
|
* @date 2021/6/10 17:00
|
*/
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public R saveBatchGridBuildRelation(List<GridBuildRelationDO> keyList) {
|
keyList.forEach(keyPersonInfoDTO -> {
|
GridBuildRelationDO dbKeyPerson = checkExistFromDb(keyPersonInfoDTO);
|
if (dbKeyPerson != null) {
|
// 已经存在数据,进行数据更新操作
|
GridBuildRelationDO keyPersonInfoDO = new GridBuildRelationDO();
|
BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO);
|
keyPersonInfoDO.setId(dbKeyPerson.getId());
|
updateById(keyPersonInfoDO);
|
} else {
|
GridBuildRelationDO keyPersonInfoDO = new GridBuildRelationDO();
|
BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO);
|
save(keyPersonInfoDO);
|
}
|
});
|
return R.ok();
|
}
|
|
private GridBuildRelationDO checkExistFromDb(GridBuildRelationDO gridBuildRelationDO) {
|
return baseMapper.selectOne(
|
new QueryWrapper<GridBuildRelationDO>().eq("grid_community_id", gridBuildRelationDO.getGridCommunityId())
|
.eq("grid_id", gridBuildRelationDO.getGridId()).eq("village_id", gridBuildRelationDO.getVillageId())
|
.eq("build_id", gridBuildRelationDO.getBuildId()));
|
}
|
|
}
|