@Service(value = "materialTemplateManager")
@Transactional
public class MaterialTemplateManagerImpl implements MaterialTemplateManager {
@Autowired
@Qualifier(value = "commonDao")
private CommonDao commonDao;
@Override
public void importExcel(List<MaterialTemplateInfo> infos) throws Exception {
try {
List<Map<String,Object>> lists=null;
Map<String, List<MaterialTemplateInfo>> infoMaps = Maps.newHashMap();
for (MaterialTemplateInfo info : infos) {
String key = info.getXmmc();
if (!infoMaps.containsKey(key)) {
infoMaps.put(key, Lists.newArrayList());
}
infoMaps.get(key).add(info);
}
for (Entry<String, List<MaterialTemplateInfo>> ent : infoMaps.entrySet()) {
String sql="select id from material_template t where t.xmmc = '"+ent.getKey()+"'";
lists=commonDao.findBySql(sql);
Set<Long> existsSet = new HashSet<>();
for (Map<String, Object> map : lists) {
existsSet.add(Convert.toLong(map.get("id")));
}
for (MaterialTemplateInfo materialTemplateInfo : ent.getValue()) {
if(existsSet.contains(Convert.toLong(materialTemplateInfo.getId()))) {//数据库里面的有这id就进行更新
commonDao.update(materialTemplateInfo);
}else {
commonDao.save(materialTemplateInfo);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void importExcel(List<MaterialTemplateInfo> infos) throws Exception {
try {
List<Map<String,Object>> lists=null;
Map<String, List<MaterialTemplateInfo>> infoMaps = Maps.newHashMap();
for (MaterialTemplateInfo info : infos) {
String key = info.getXmmc();
if (!infoMaps.containsKey(key)) {
infoMaps.put(key, Lists.newArrayList());
}
infoMaps.get(key).add(info);
}
for (Entry<String, List<MaterialTemplateInfo>> ent : infoMaps.entrySet()) {
String sql="select id from material_template t where t.xmmc = '"+ent.getKey()+"'";
lists=commonDao.findBySql(sql);
Set<Long> existsSet = new HashSet<>();
for (Map<String, Object> map : lists) {
existsSet.add(Convert.toLong(map.get("id")));
}
for (MaterialTemplateInfo materialTemplateInfo : ent.getValue()) {
if(existsSet.contains(Convert.toLong(materialTemplateInfo.getId()))) {//数据库里面的有这id就进行更新
commonDao.update(materialTemplateInfo);
}else if(ObjectUtils.isNotEmpty(materialTemplateInfo.getId())){//添加的id在数据库里面没有进行清空
materialTemplateInfo.setId(null);
commonDao.save(materialTemplateInfo);
}else {
commonDao.save(materialTemplateInfo);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}