wuzeyu
2024-08-16 6f346cec0b4646bdf750781075e46a4f028cd35b
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
package com.dy.pipIrrBase.block;
 
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoBa.BaBlockMapper;
import com.dy.pipIrrGlobal.daoBa.BaMapCoordinatesMapper;
import com.dy.pipIrrGlobal.daoBa.BaMapGraphMapper;
import com.dy.pipIrrGlobal.pojoBa.BaBlock;
import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates;
import com.dy.pipIrrGlobal.pojoBa.BaMapGraph;
import com.dy.pipIrrGlobal.voBa.VoBlock;
import com.dy.pipIrrGlobal.voBa.VoMapCoordinates;
import com.dy.pipIrrGlobal.voBa.VoMapGraph;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
import java.util.Map;
 
@Slf4j
@Service
public class BlockSv {
 
    private BaBlockMapper dao;
 
    @Autowired
    private void setDao(BaBlockMapper dao){
        this.dao = dao;
    }
 
    @Autowired
    private BaMapGraphMapper baMapGraphMapper;
 
    @Autowired
    private BaMapCoordinatesMapper baMapCoordinatesMapper;
 
    /**
     * 得到一个片区
     * @param id 片区ID
     * @return 片区实体
     */
    public BaBlock selectById(Long id){
        return this.dao.selectByPrimaryKey(id) ;
    }
 
 
    /**
     * 得到所有片区
     * @return 所有片区集合
     */
    public QueryResultVo<List<BaBlock>> selectAll(){
        QueryResultVo<List<BaBlock>> rsVo = new QueryResultVo<>() ;
        rsVo.obj = this.dao.selectAll() ;
        return rsVo ;
    }    
    /**
     * 得到一个片区
     * @param vo 查询条件值对象
     * @return 片区实体
     */
    @SuppressWarnings("unchecked")
    public QueryResultVo<List<BaBlock>> selectSome(QueryVo vo){
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
        Long itemTotal = this.dao.selectTotal(params) ;
 
        QueryResultVo<List<BaBlock>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = vo.pageSize ;
        rsVo.pageCurr = vo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        rsVo.obj = this.dao.selectSome(params) ;
 
        return rsVo ;
    }
 
    /**
     * 根据指定条件获取片区,2024-08-14新增,替换原来的片区分页查询
     * @param vo
     * @return
     */
    public QueryResultVo<List<VoBlock>> getBlocks(QueryVo vo){
        vo.setPageCurr((vo.pageCurr -1) * vo.pageSize);
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ;
        Long itemTotal = this.dao.getBlocksCount(params) ;
 
        JSONArray array_blocks = null;
        JSONArray array_mapGraphs = null;
 
        // 获取片区列表
        List<VoBlock> list_blocks = this.dao.getBlocks(params);
        if(list_blocks != null && list_blocks.size() > 0) {
            //JSONArray array_blocks = (JSONArray) JSON.toJSON(list_blocks);
            array_blocks = (JSONArray) JSON.toJSON(list_blocks);
            for (int i = 0; i < array_blocks.size(); i++) {
                JSONObject job_block = array_blocks.getJSONObject(i);
                Long blockId = job_block.getLong("id");
 
                // 根据片区ID获取地图图形列表
                List<VoMapGraph> list_mapGraphs = this.dao.gertMapGraphsByBlockId(blockId);
                if(list_mapGraphs != null && list_mapGraphs.size() > 0) {
                    array_mapGraphs = (JSONArray) JSON.toJSON(list_mapGraphs);
                    for (int j = 0; j < array_mapGraphs.size(); j++) {
                        JSONObject job_mapGraph = array_mapGraphs.getJSONObject(j);
                        job_mapGraph = array_mapGraphs.getJSONObject(j);
                        Long graphId = job_mapGraph.getLong("graphId");
                        String graphType = job_mapGraph.getString("type");
 
                        // 根据地图图形ID获取地图图形坐标列表,并添加到地图图形对象中
                        List<VoMapCoordinates> list_mapCoordinates = this.dao.getCoordinatesByGraphId(graphId);
                        if(list_mapCoordinates != null && list_mapCoordinates.size() > 0) {
                            JSONArray array_mapCoordinates = (JSONArray) JSON.toJSON(list_mapCoordinates);
 
                            JSONArray[] arrays = new JSONArray[1];
                            arrays[0] = array_mapCoordinates;
                            job_mapGraph.put("coordinates", arrays);
                        }
                    }
                }
 
                // 将地图图形数组添加到片区中
                if(array_mapGraphs != null && array_mapGraphs.size() > 0) {
                    job_block.put("graphs", array_mapGraphs);
                }
            }
        }
 
        QueryResultVo<List<VoBlock>> rsVo = new QueryResultVo<>() ;
        rsVo.pageSize = vo.pageSize ;
        rsVo.pageCurr = vo.pageCurr ;
        rsVo.calculateAndSet(itemTotal, params);
        //rsVo.obj = this.dao.getBlocks(params) ;
        rsVo.obj = array_blocks.toList(VoBlock.class);
 
        return rsVo ;
    }
 
    /**
     * 保存实体
     * @param po 实体
     * @return 数量
     */
    @Transactional
    public Long save(BaBlock po){
        //return this.dao.putin(po) ;
        this.dao.putin(po);
        return po.getId();
    }
 
    /**
     * 保存修改实体
     * @param po 实体
     * @return 数量
     */
    @Transactional
    public int update(BaBlock po){
        return this.dao.updateByPrimaryKeySelective(po) ;
    }
 
    /**
     * 保存修改实体
     * @param id 实体ID
     * @return 数量
     */
    @Transactional
    public int delete(Long id){
        return this.dao.deleteLogicById(id) ;
    }
 
    /**
     * 添加地图图形
     * @param po
     * @return
     */
    public Long addMapGraph(BaMapGraph po) {
        this.baMapGraphMapper.insert(po);
        return po.getId();
    }
 
    /**
     * 添加地图图形坐标
     * @param po
     * @return
     */
    public Long addMapCoordinate(BaMapCoordinates po) {
        this.baMapCoordinatesMapper.insert(po);
        return po.getId();
    };
 
    /**
     * 根据片区ID删除地图图形
     * @param blockId
     * @return
     */
    public int deleteMapGraph(Long blockId) {
        return this.baMapGraphMapper.deleteByBlockId(blockId);
    }
 
    /**
     * 根据片区ID删除该片区下的坐标点
     * @param blockId
     * @return
     */
    public int deleteMapCoordinates(Long blockId) {
        return this.baMapCoordinatesMapper.deleteByBlockId(blockId);
    }
 
}