package cn.wisenergy.chnmuseum.party.service.impl; import cn.wisenergy.chnmuseum.party.common.util.DateUtil80; import cn.wisenergy.chnmuseum.party.mapper.TAreaMapper; import cn.wisenergy.chnmuseum.party.model.TArea; import cn.wisenergy.chnmuseum.party.model.TOrgan; import cn.wisenergy.chnmuseum.party.mapper.TOrganMapper; import cn.wisenergy.chnmuseum.party.service.TOrganService; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; /** * <pre> * 用户 服务实现类 * </pre> * * @author Danny Lee * @since 2021-03-22 */ @Slf4j @Service public class TOrganServiceImpl extends ServiceImpl<TOrganMapper, TOrgan> implements TOrganService { @Resource private TOrganMapper organMapper; @Resource private TAreaMapper areaMapper; @Override public List<TOrgan> getTree() { List<TOrgan> list = list(Wrappers.<TOrgan>lambdaQuery().eq(TOrgan::getIsDeleted, 0).orderByDesc(TOrgan::getLevel)); HashMap<String, TOrgan> map = new HashMap<>(); list.forEach(o-> map.put(o.getId(),o)); for (TOrgan o : list) { TOrgan parentOrg= map.get(o.getParentId()); if(parentOrg!=null){ //说明有值 if(parentOrg.getChildren()==null){ parentOrg.setChildren(new ArrayList<>()); } parentOrg.getChildren().add(o); } } list = list.stream().filter(o -> o.getLevel() == 1).collect(Collectors.toList()); return list; } @Override public boolean batchUpload(List excelList) { boolean flag =false; List<TOrgan> list = new ArrayList<>(); List<TOrgan> list1 = list(); HashMap<String, TOrgan> map1 = new HashMap<>(); list1.stream().forEach(o-> map1.put(o.getName(),o)); HashMap<String, String> area = new HashMap<>(); List<Map<String, Object>> mapList = organMapper.selectArea(); mapList.stream().forEach(m->area.put(m.get("name").toString(),m.get("id").toString())); for (int i = 0; i < excelList.size(); i++) { Map<String, String> map = null; map = (Map<String, String>) excelList.get(i); TOrgan organ = new TOrgan(); organ.setName(map.get("名称")); String parent = map.get("上级机构"); if (map1.get(parent)==null){ organ.setParentId("0"); organ.setLevel(1); }else { organ.setParentId(map1.get(parent).getId()); organ.setLevel(map1.get(parent).getLevel()+1); } organ.setAreaId(area.get(map.get("区域"))); organ.setIcon(map.get("icon")); organ.setRemarks(map.get("备注")); organ.setIsDeleted(false); organ.setCreateTime(DateUtil80.getDateTimeOfTimestamp(System.currentTimeMillis())); organ.setUpdateTime(LocalDateTime.now()); list.add(organ); } flag = saveBatch(list); return flag; } @Override public TOrgan selectById(String id) { TOrgan organ = organMapper.getById(id); String s = areaMapper.selectParent(organ.getAreaId()); List<TOrgan> list1 = list(new UpdateWrapper<TOrgan>().eq("parent_id", organ.getParentId())); organ.setAreas(Arrays.asList(s.split(","))); organ.setChildren(list1); return organ; } @Override public TOrgan selectCodeMax(String parentId) { return organMapper.selectCodeMax(parentId); } }