swb
2024-10-21 0aea8bd18daaaf91e622fdcfdd81dbb2e1b4860c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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.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<ResponsibilityUnit> 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<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;
    }
 
}