package com.dg.core.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dg.core.db.gen.entity.AreaCode2022; import com.dg.core.db.gen.entity.OrganizationChartEntity; import com.dg.core.db.gen.entity.TransactionEvent; import com.dg.core.db.gen.mapper.AreaCode2022Mapper; import com.dg.core.db.gen.mapper.OrganizationChartMapper; import com.dg.core.db.gen.mapper.TransactionEventMapper; import com.dg.core.service.IAreaCodeService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Service public class AreaCodeServiceImpl extends ServiceImpl implements IAreaCodeService { @Resource private OrganizationChartMapper organizationChartMapper; @Resource private TransactionEventMapper transactionEventMapper; @Override public List getAreaCodeByTransactionId(Integer transactionId){ // HashMap objectObjectHashMap = new HashMap<>(); TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper().lambda(). eq(TransactionEvent::getId, transactionId)); OrganizationChartEntity organizationChartEntity = organizationChartMapper.selectOne(new QueryWrapper().lambda() .eq(OrganizationChartEntity::getId, transactionEvent.getDepartmentId())); List areaCodes=new ArrayList<>(); if (organizationChartEntity!=null){ if (organizationChartEntity.getCity()!=null) areaCodes.add(organizationChartEntity.getCity()); if (organizationChartEntity.getDistrict()!=null) areaCodes.add(organizationChartEntity.getDistrict()); if (organizationChartEntity.getVillage()!=null) areaCodes.add(organizationChartEntity.getVillage()); getAreaCodeIds(areaCodes,organizationChartEntity); } if (areaCodes.size()==0) return null; else return baseMapper.selectByIdSet(areaCodes); } public List getAreaCodeIds(List areaCodes, OrganizationChartEntity organizationChartEntity){ List organizationChartEntitys= organizationChartMapper.selectList(new QueryWrapper().lambda() .eq(OrganizationChartEntity::getParentId, organizationChartEntity.getId())); for (OrganizationChartEntity organizationChart:organizationChartEntitys) { if (organizationChart.getCity()!=null) areaCodes.add(organizationChart.getCity()); if (organizationChart.getDistrict()!=null) areaCodes.add(organizationChart.getDistrict()); if (organizationChart.getVillage()!=null) areaCodes.add(organizationChart.getVillage()); getAreaCodeIds(areaCodes,organizationChart); } return areaCodes; } @Override public List getListByPCode(String id){ List areaCode2022s = baseMapper.selectList(new QueryWrapper().lambda().eq(AreaCode2022::getPcode, id)); for (AreaCode2022 areaCode2022:areaCode2022s) { if (areaCode2022.getLevel()!=3) areaCode2022.setChild(this.getListByPCode(areaCode2022.getCode().toString())); } return areaCode2022s; } }