package com.moral.api.service.impl; import org.apache.xmlbeans.impl.xb.xsdschema.Public; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.entity.ResponsibilityUnit; import com.moral.api.mapper.ResponsibilityUnitMapper; import com.moral.api.pojo.query.ResponsibilityUnitQuery; import com.moral.api.service.AllocationService; import com.moral.api.service.ResponsibilityUnitService; @Service public class ResponsibilityUnitServiceImpl extends ServiceImpl implements ResponsibilityUnitService { @Autowired private ResponsibilityUnitMapper responsibilityUnitMapper; @Autowired private AllocationService allocationService; /** * 根据上级区域编码或者数据 * * @param code * @return */ @Override public List selectUnit(Integer code) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("parent_code",code); wrapper.eq("is_del",0); wrapper.eq("state",0); wrapper.eq("is_invalid",0); List responsibilityUnits = responsibilityUnitMapper.selectList(wrapper); return responsibilityUnits; } /** * 根据本地区域获取单位主体数据 * * @param code * @return */ @Override public List selectAreaUnit(Integer code) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("area_code",code); wrapper.eq("is_del",0); wrapper.eq("state",0); wrapper.eq("is_invalid",0); List responsibilityUnits = responsibilityUnitMapper.selectList(wrapper); return responsibilityUnits; } /** * 显示责任主体 * * @return */ @Override public List unitQuery() { List list = allocationService.unitResult(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if (!ObjectUtils.isEmpty(list)){ wrapper.in(ResponsibilityUnit::getUnitId,list); } List responsibilityUnits = responsibilityUnitMapper.selectList(wrapper); ArrayList sysAreas = new ArrayList<>(); for (ResponsibilityUnit responsibilityUnit : responsibilityUnits) { ResponsibilityUnitQuery responsibilityUnitQuery = new ResponsibilityUnitQuery(); BeanUtils.copyProperties(responsibilityUnit,responsibilityUnitQuery); sysAreas.add(responsibilityUnitQuery); } Map areaMap1 = new HashMap<>(); Map areaMap = new HashMap<>(); for (ResponsibilityUnitQuery responsibilityUnitQuery : sysAreas) { if (responsibilityUnitQuery.getUnitId().equals(38)){ areaMap1.put(responsibilityUnitQuery.getAreaCode(), responsibilityUnitQuery.getUnitId()); responsibilityUnitQuery.setUnitId(responsibilityUnitQuery.getAreaCode()); responsibilityUnitQuery.setUnitName("江苏省——盐城市"); } if (responsibilityUnitQuery.getUnitId().equals(1)){ areaMap1.put(responsibilityUnitQuery.getAreaCode(),responsibilityUnitQuery.getUnitId()); responsibilityUnitQuery.setUnitId(responsibilityUnitQuery.getAreaCode()); responsibilityUnitQuery.setUnitName("辽宁省——海城市"); } areaMap.put(responsibilityUnitQuery.getAreaCode(), responsibilityUnitQuery); responsibilityUnitQuery.setChildren(new ArrayList<>());//初始化children集合 } //遍历所有城市,判断是否有父城市,如果有则添加到父城市中。 for (int i = 0; i < sysAreas.size(); i++) { ResponsibilityUnitQuery responsibilityUnitQuery = sysAreas.get(i); Integer parentCode = responsibilityUnitQuery.getParentCode(); ResponsibilityUnitQuery parentArea = areaMap.get(parentCode); if (responsibilityUnitQuery.getAreaCode().equals(210381)|| responsibilityUnitQuery.getAreaCode().equals(320900)){ //查询城市名字 QueryWrapper wr = new QueryWrapper<>(); wr.eq("area_code",responsibilityUnitQuery.getAreaCode()); ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectOne(wr); Integer integer = areaMap1.get(responsibilityUnitQuery.getAreaCode()); ResponsibilityUnitQuery rsUnitQuery = new ResponsibilityUnitQuery(); rsUnitQuery.setUnitId(integer); rsUnitQuery.setParentCode(responsibilityUnitQuery.getParentCode()); if (responsibilityUnitQuery.getAreaCode().equals(210381)){ rsUnitQuery.setUnitName(responsibilityUnit.getUnitName()); }else { rsUnitQuery.setUnitName(responsibilityUnit.getUnitName()); } rsUnitQuery.setAreaCode(responsibilityUnitQuery.getAreaCode()); rsUnitQuery.setChildren(new ArrayList<>()); List children = responsibilityUnitQuery.getChildren(); children.add(rsUnitQuery); responsibilityUnitQuery.setChildren(children); } if (ObjectUtils.isEmpty(parentArea)){ continue; } List children = parentArea.getChildren(); children.add(responsibilityUnitQuery); sysAreas.remove(responsibilityUnitQuery); i--; } /* if (!ObjectUtils.isEmpty(sysAreas.get(0).getChildren())){ ArrayList result = new ArrayList<>(); for (ResponsibilityUnitQuery responsibilityUnitQuery : sysAreas) { ArrayList responsibilityUnitQueries = new ArrayList<>(); responsibilityUnitQueries.add(responsibilityUnitQuery); ResponsibilityUnitQuery responsibilityUnitQuery1 = new ResponsibilityUnitQuery(); SysArea areaByCode = sysAreaService.getAreaByCode(responsibilityUnitQuery.getParentCode()); responsibilityUnitQuery1.setParentCode(areaByCode.getParentCode()); responsibilityUnitQuery1.setAreaCode(areaByCode.getAreaCode()); responsibilityUnitQuery1.setUnitName(areaByCode.getAreaName()); responsibilityUnitQuery1.setUnitId(areaByCode.getAreaCode()); responsibilityUnitQuery1.setChildren(responsibilityUnitQueries); result.add(responsibilityUnitQuery1); } return result; }*/ return sysAreas; } }