pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java
@@ -1,16 +1,26 @@
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.Map;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
@@ -22,6 +32,12 @@
    private void setDao(BaBlockMapper dao){
        this.dao = dao;
    }
    @Autowired
    private BaMapGraphMapper baMapGraphMapper;
    @Autowired
    private BaMapCoordinatesMapper baMapCoordinatesMapper;
    /**
     * 得到一个片区
@@ -62,13 +78,74 @@
    }
    /**
     * 根据指定条件获取片区,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);
                            job_mapGraph.put("coordinates", array_mapCoordinates);
                            String cc= "";
                        }
                    }
                }
                // 将地图图形数组添加到片区中
                if(array_mapGraphs != null && array_mapGraphs.size() > 0) {
                    job_block.put("graph", 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 int save(BaBlock po){
        return this.dao.putin(po) ;
    public Long save(BaBlock po){
        //return this.dao.putin(po) ;
        this.dao.putin(po);
        return po.getId();
    }
    /**
@@ -91,4 +168,42 @@
        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);
    }
}