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<ResponsibilityUnitMapper, ResponsibilityUnit> implements ResponsibilityUnitService {
|
|
@Autowired
|
private ResponsibilityUnitMapper responsibilityUnitMapper;
|
|
@Autowired
|
private AllocationService allocationService;
|
|
/**
|
* 根据上级区域编码或者数据
|
*
|
* @param code
|
* @return
|
*/
|
@Override
|
public List<ResponsibilityUnit> selectUnit(Integer code) {
|
QueryWrapper<ResponsibilityUnit> wrapper = new QueryWrapper<>();
|
wrapper.eq("parent_code",code);
|
wrapper.eq("is_del",0);
|
wrapper.eq("state",0);
|
wrapper.eq("is_invalid",0);
|
List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitMapper.selectList(wrapper);
|
return responsibilityUnits;
|
}
|
|
/**
|
* 根据本地区域获取单位主体数据
|
*
|
* @param code
|
* @return
|
*/
|
@Override
|
public List<ResponsibilityUnit> selectAreaUnit(Integer code) {
|
QueryWrapper<ResponsibilityUnit> wrapper = new QueryWrapper<>();
|
wrapper.eq("area_code",code);
|
wrapper.eq("is_del",0);
|
wrapper.eq("state",0);
|
wrapper.eq("is_invalid",0);
|
List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitMapper.selectList(wrapper);
|
return responsibilityUnits;
|
}
|
|
/**
|
* 显示责任主体
|
*
|
* @return
|
*/
|
@Override
|
public List<ResponsibilityUnitQuery> unitQuery() {
|
List<Integer> list = allocationService.unitResult();
|
LambdaQueryWrapper<ResponsibilityUnit> wrapper = new LambdaQueryWrapper<>();
|
if (!ObjectUtils.isEmpty(list)){
|
wrapper.in(ResponsibilityUnit::getUnitId,list);
|
}
|
|
List<ResponsibilityUnit> responsibilityUnits = responsibilityUnitMapper.selectList(wrapper);
|
ArrayList<ResponsibilityUnitQuery> sysAreas = new ArrayList<>();
|
for (ResponsibilityUnit responsibilityUnit : responsibilityUnits) {
|
ResponsibilityUnitQuery responsibilityUnitQuery = new ResponsibilityUnitQuery();
|
BeanUtils.copyProperties(responsibilityUnit,responsibilityUnitQuery);
|
sysAreas.add(responsibilityUnitQuery);
|
}
|
|
Map<Integer, Integer> areaMap1 = new HashMap<>();
|
Map<Integer, ResponsibilityUnitQuery> areaMap = new HashMap<>();
|
for (ResponsibilityUnitQuery responsibilityUnitQuery : sysAreas) {
|
if (responsibilityUnitQuery.getUnitName().equals("市大气办")){
|
areaMap1.put(responsibilityUnitQuery.getAreaCode(), responsibilityUnitQuery.getUnitId());
|
responsibilityUnitQuery.setUnitId(responsibilityUnitQuery.getAreaCode());
|
responsibilityUnitQuery.setUnitName("江苏省——盐城市");
|
}
|
if (responsibilityUnitQuery.getUnitName().equals("海城监控中心")){
|
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)){
|
Integer integer = areaMap1.get(responsibilityUnitQuery.getAreaCode());
|
ResponsibilityUnitQuery rsUnitQuery = new ResponsibilityUnitQuery();
|
rsUnitQuery.setUnitId(integer);
|
rsUnitQuery.setParentCode(responsibilityUnitQuery.getParentCode());
|
if (responsibilityUnitQuery.getAreaCode().equals(210381)){
|
rsUnitQuery.setUnitName("海城监控中心");
|
}else {
|
rsUnitQuery.setUnitName("市大气办");
|
}
|
rsUnitQuery.setAreaCode(responsibilityUnitQuery.getAreaCode());
|
rsUnitQuery.setChildren(new ArrayList<>());
|
List<ResponsibilityUnitQuery> children = responsibilityUnitQuery.getChildren();
|
children.add(rsUnitQuery);
|
responsibilityUnitQuery.setChildren(children);
|
}
|
if (ObjectUtils.isEmpty(parentArea)){
|
continue;
|
}
|
List<ResponsibilityUnitQuery> children = parentArea.getChildren();
|
children.add(responsibilityUnitQuery);
|
sysAreas.remove(responsibilityUnitQuery);
|
i--;
|
}
|
/* if (!ObjectUtils.isEmpty(sysAreas.get(0).getChildren())){
|
ArrayList<ResponsibilityUnitQuery> result = new ArrayList<>();
|
for (ResponsibilityUnitQuery responsibilityUnitQuery : sysAreas) {
|
ArrayList<ResponsibilityUnitQuery> 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;
|
}
|
|
}
|