// 将TDFmdplace对象以id为键存入HashMap Map<Long, TDFmdplace> map1 = new HashMap<>(); for (TDFmdplace pl : pe) { map1.put(pl.getId(), pl); }

// 创建一个存放Place的id的List List placeIds = new ArrayList<>();

// 遍历所有的FmdReportPlaceItem对象 for (int y = 0; y < places.size(); y++) { FmdReportPlaceItem place = places.get(y);

// 检查FmdReportPlaceItem对象的属性是否合法
String msg2 = place.checkAttr();
if (!StringHelper.isEmpty(msg2)) throw new RuntimeException(msg2);

// 根据FmdReportPlaceItem对象的id获取TDFmdplace对象
TDFmdplace p = map1.get(place.getId());

// 如果TDFmdplace对象不存在,则新建一个
if (p == null) {
    p = new TDFmdplace();
    p.setReportId(report.getId());
    p.setAudirId(audit.getId());
    p.setAgrauditId(fmdAudit.getId());
    p.setTaskId(audit.getTaskId());
    p.setDetailId(de.getId());

    p.setCreateat(LocalDateTime.now());
    p.setCreatorid(user.getUserId());
    p.setOwnerid(user.getPlace());
    p.setCreatorname(user.getUserName());
    p.setDeleted(false);
} else {
    // 如果TDFmdplace对象已存在,则更新它的属性
    p.setUpdateat(LocalDateTime.now());
    p.setUpdaterid(user.getUserId());
    p.setUpdatername(user.getUserName());
    p.setDeleted(false);
}

// 根据FmdReportPlaceItem对象的places属性确定TDFmdplace对象的level和placeid属性
Integer level = null;
if(place.getPlaces().size()==1){
    level = 4;
}else if(place.getPlaces().size()==2){
    level = 5;
}else if(place.getPlaces().size()==3){
    level = 6;
}else{
    throw new RuntimeException('数据异常');
}
p.setLevel(level);
p.setPlaceid(Long.valueOf(place.getPlaces().get(place.getPlaces().size()-1)));

// 将TDFmdplace对象的placeid属性添加到placeIds列表中
if(!placeIds.contains(p.getPlaceid())){
    placeIds.add(p.getPlaceid());
}else{
    throw new RuntimeException('第'+(i+1)+'行线路不能重复');
}

// 根据TDFmdplace对象的level属性,获取相应的地点对象,并将其属性复制到TDFmdplace对象中
if (level == PlaceLevel.OTHER.ordinal()) {
    // 获取TDNatvillage对象
    TDNatvillage nat = natvillageMapper.selectTDNatvillageById(p.getPlaceid());
    if (nat == null) throw new RuntimeException('该自然村不存在');
    p.setName(nat.getName());

    // 将TDNatvillage对象的属性复制到LocalEmbeddable对象中
    LocalEmbeddable local=new LocalEmbeddable();
    BeanUtils.copyProperties(nat,local);
    if (local==null) throw new RuntimeException('数据异常!!![local]');

    // 将LocalEmbeddable对象的属性复制到TDFmdplace对象中
    BeanUtils.copyProperties(local,p);
} else {
    // 获取Place对象
    Place pp = placeMapper.selectPlaceById(p.getPlaceid());

    // 将Place对象的属性复制到LocalEmbeddable对象中
    LocalEmbeddable local = LocalEmbeddable.valueOf(pp);
    p.setName(pp.getName());

    // 将LocalEmbeddable对象的属性复制到TDFmdplace对象中
    BeanUtils.copyProperties(local,p);
}

// 将TDFmdplace对象插入到数据库中
fmdplaceMapper.insertTDFmdplace(p);

}

Java代码:将FmdReportPlaceItem对象转换为TDFmdplace对象并插入数据库

原文地址: https://www.cveoy.top/t/topic/n0B1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录