管道基础大数据平台系统开发-【后端】-Server
13693261870
2024-03-13 966b8ec80833c3281a41370a29960156a73360c7
src/main/java/com/lf/server/service/show/OneMapService.java
@@ -1,13 +1,22 @@
package com.lf.server.service.show;
import com.lf.server.entity.bs.MpipelineEntity;
import com.lf.server.entity.ctrl.CountEntity;
import com.lf.server.entity.show.OneMapEntity;
import com.lf.server.helper.PathHelper;
import com.lf.server.helper.WebHelper;
import com.lf.server.mapper.show.OneMapMapper;
import org.springframework.beans.factory.annotation.Autowired;
import com.lf.server.service.data.FmeService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * 管网一张图Service
@@ -16,15 +25,43 @@
 */
@Service
public class OneMapService implements OneMapMapper {
    @Autowired
    OneMapMapper aMapOfPipelineMapper;
    @Resource
    OneMapMapper oneMapMapper;
    @Resource
    FmeService fmeService;
    @Resource
    PathHelper pathHelper;
    /**
     * 测绘
     */
    private static final String MEASUREMENT = "测绘(ESV)";
    /**
     * 调查
     */
    private static final String TOINVESTIGATE = "勘察(EGE)";
    /**
     * 地灾
     */
    private static final String DISASTER = "地灾(EGD)";
    /**
     * 地下结构洞库
     */
    private static final String UNDERGROUNDSTRUCTURE = "洞库(EGD)";
    private final static Log log = LogFactory.getLog(OneMapService.class);
    /**
     * 项目类别conut
     */
    @Override
    public List<String> projectCategoryCount() {
        return aMapOfPipelineMapper.projectCategoryCount();
        return oneMapMapper.projectCategoryCount();
    }
    /**
@@ -34,7 +71,7 @@
     */
    @Override
    public List<String> projectLocationCount() {
        return aMapOfPipelineMapper.projectLocationCount();
        return oneMapMapper.projectLocationCount();
    }
    /**
@@ -42,7 +79,7 @@
     */
    @Override
    public List<String> countryDimensionCount() {
        return aMapOfPipelineMapper.countryDimensionCount();
        return oneMapMapper.countryDimensionCount();
    }
    /**
@@ -52,7 +89,17 @@
     */
    @Override
    public List<String> provinceDimensionCount() {
        return aMapOfPipelineMapper.provinceDimensionCount();
        return oneMapMapper.provinceDimensionCount();
    }
    /**
     * 全国维度-按照项自类型统计不同项目个数
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countProjectTypeNumber() {
        return oneMapMapper.countProjectTypeNumber();
    }
    /**
@@ -62,7 +109,37 @@
     */
    @Override
    public List<String> dataStorageCount() {
        return aMapOfPipelineMapper.dataStorageCount();
        return oneMapMapper.dataStorageCount();
    }
    /**
     * 统计数据类别
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> statisticalDataCategories() {
        return oneMapMapper.statisticalDataCategories();
    }
    /**
     * 统计数据服务类型
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> statisticalDataServiceType() {
        return oneMapMapper.statisticalDataServiceType();
    }
    /**
     * 登录人数统计
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> loginNumberStatistics() {
        return oneMapMapper.loginNumberStatistics();
    }
    /**
@@ -72,7 +149,7 @@
     */
    @Override
    public List<String> fileFormatCount() {
        return aMapOfPipelineMapper.fileFormatCount();
        return oneMapMapper.fileFormatCount();
    }
    /**
@@ -82,7 +159,7 @@
     */
    @Override
    public List<String> dataApplyCount() {
        return aMapOfPipelineMapper.dataApplyCount();
        return oneMapMapper.dataApplyCount();
    }
    /**
@@ -92,7 +169,7 @@
     */
    @Override
    public List<String> dataVisitCount() {
        return aMapOfPipelineMapper.dataVisitCount();
        return oneMapMapper.dataVisitCount();
    }
    /**
@@ -102,7 +179,7 @@
     */
    @Override
    public List<String> countDownloads() {
        return aMapOfPipelineMapper.countDownloads();
        return oneMapMapper.countDownloads();
    }
    /**
@@ -112,7 +189,7 @@
     */
    @Override
    public List<String> countProjectDisplay() {
        return aMapOfPipelineMapper.countProjectDisplay();
        return oneMapMapper.countProjectDisplay();
    }
    /**
@@ -122,7 +199,7 @@
     */
    @Override
    public List<String> countProjectTour(MpipelineEntity mpipelineEntity) {
        return aMapOfPipelineMapper.countProjectTour(mpipelineEntity);
        return oneMapMapper.countProjectTour(mpipelineEntity);
    }
    /**
@@ -132,113 +209,69 @@
     */
    @Override
    public List<String> selectProjectTour() {
        return aMapOfPipelineMapper.selectProjectTour();
        return oneMapMapper.selectProjectTour();
    }
    /**
     * 统计项目类型
     * 选择项目类型
     *
     * @return {@link List}<{@link String}>
     * @return {@link List}<{@link OneMapEntity}>
     */
    @Override
    public List<OneMapEntity> selectProjectType1() {
        List<OneMapEntity> resList = new ArrayList<>();
        List<OneMapEntity> resInfo = aMapOfPipelineMapper.selectProjectType1();
        for (int i = 0; i < resInfo.size(); i++) {
            if (resInfo.get(i).getValue().equals("测量(ESV)")) {
                String valueStr = resInfo.get(i).getKey();
                System.out.println("测量(ESV)== valueStr == " + valueStr);
                String endSql = null;
                String sqlQur = "";
                if (valueStr.length() > 0) {
                    String[] arrStr = valueStr.split(",");
                    StringBuilder one = new StringBuilder();
                    if (arrStr.length > 0) {
                        System.out.println("arrStr = " + arrStr.length);
                    }
                    for (int j = 0; j < arrStr.length; j++) {
                        sqlQur = "\'" + arrStr[j] + "%\' " + "or dircode like";
                        one.append(sqlQur);
                    }
                    endSql = " where dircode like " + one.substring(0, one.toString().length() - 15);
                    System.out.println("endSql = " + endSql);
                }
                resList.addAll(aMapOfPipelineMapper.selectProjectTypeOne(endSql));
            } else if (resInfo.get(i).getValue().equals("勘察(EGE)")) {
                String valueStr = resInfo.get(i).getKey();
                System.out.println("勘察(EGE)== valueStr == " + valueStr);
                String endSql1 = null;
                String sqlQur = "";
                if (valueStr.length() > 0) {
                    String[] arrStr1 = valueStr.split(",");
                    StringBuilder one = new StringBuilder();
                    if (arrStr1.length > 0) {
                        System.out.println("arrStr = " + arrStr1.length);
                    }
                    for (int j = 0; j < arrStr1.length; j++) {
                        sqlQur = "\'" + arrStr1[j] + "%\' " + "or dircode like";
                        one.append(sqlQur);
                    }
                    endSql1 = " where dircode like " + one.substring(0, one.toString().length() - 15);
                    System.out.println("endSql1 = " + endSql1);
                }
                resList.addAll(aMapOfPipelineMapper.selectProjectTypeOne(endSql1));
            } else if (resInfo.get(i).getValue().equals("地灾(EGD)")) {
                String valueStr = resInfo.get(i).getKey();
                System.out.println("地灾(EGD)== valueStr == " + valueStr);
                String endSql2 = null;
                String sqlQur = "";
                if (valueStr.length() > 0) {
                    String[] arrStr2 = valueStr.split(",");
                    StringBuilder one = new StringBuilder();
                    if (arrStr2.length > 0) {
                        System.out.println("arrStr = " + arrStr2.length);
                    }
                    for (int j = 0; j < arrStr2.length; j++) {
                        sqlQur = "\'" + arrStr2[j] + "%\' " + "or dircode like";
                        one.append(sqlQur);
                    }
                    endSql2 = " where dircode like " + one.substring(0, one.toString().length() - 15);
                    System.out.println("endSql2 = " + endSql2);
                }
                resList.addAll(aMapOfPipelineMapper.selectProjectTypeOne(endSql2));
            } else if (resInfo.get(i).getValue().equals("洞库(EGD)")) {
                String valueStr = resInfo.get(i).getKey();
                System.out.println("洞库(EGD)== valueStr == " + valueStr);
                String endSql3 = null;
                String sqlQur = "";
                if (valueStr.length() > 0) {
                    String[] arrStr3 = valueStr.split(",");
                    StringBuilder one = new StringBuilder();
                    if (arrStr3.length > 0) {
                        System.out.println("arrStr = " + arrStr3.length);
                    }
                    for (int j = 0; j < arrStr3.length; j++) {
                        sqlQur = "\'" + arrStr3[j] + "%\' " + "or dircode like";
                        one.append(sqlQur);
                    }
                    endSql3 = " where dircode like " + one.substring(0, one.toString().length() - 15);
                    System.out.println("endSql3 = " + endSql3);
                }
                resList.addAll(aMapOfPipelineMapper.selectProjectTypeOne(endSql3));
        List<OneMapEntity> resInfo = oneMapMapper.selectProjectType1();
        for (OneMapEntity oneMapEntity : resInfo) {
            if (MEASUREMENT.equals(oneMapEntity.getValue())) {
                resList.addAll(queryDirectory(oneMapEntity));
            } else if (TOINVESTIGATE.equals(oneMapEntity.getValue())) {
                resList.addAll(queryDirectory(oneMapEntity));
            } else if (DISASTER.equals(oneMapEntity.getValue())) {
                resList.addAll(queryDirectory(oneMapEntity));
            } else if (UNDERGROUNDSTRUCTURE.equals(oneMapEntity.getValue())) {
                resList.addAll(queryDirectory(oneMapEntity));
            }
        }
        return resList;
    }
    /**
     * 查询目录
     *
     * @return {@link List}<{@link OneMapEntity}>
     */
    public List<OneMapEntity> queryDirectory(OneMapEntity oneMapEntity) {
        String valueStr = oneMapEntity.getKey();
        System.out.println(oneMapEntity.getValue() + " == value == " + valueStr);
        String endSql = null;
        String sqlQur;
        if (valueStr.length() > 0) {
            String[] arrStr = valueStr.split(",");
            StringBuilder one = new StringBuilder();
            if (arrStr.length > 0) {
                System.out.println("arrStr = " + arrStr.length);
            }
            for (String s : arrStr) {
                sqlQur = "'" + s + "%' " + "or dircode like";
                one.append(sqlQur);
            }
            endSql = " where dircode like " + one.substring(0, one.toString().length() - 15);
            System.out.println("endSql = " + endSql);
        }
        return oneMapMapper.selectProjectTypeOne(endSql);
    }
    /**
     * 选择项目类型一
     *
     * @param sqlQur sql
     * @return {@link List}<{@link OneMapEntity}>
     */
    @Override
    public List<OneMapEntity> selectProjectTypeOne(String sqlQur) {
        return null;
    }
    /**
     * 查询表信息
@@ -247,6 +280,167 @@
     */
    @Override
    public List<String> queryTableInfo(String tableName) {
        return aMapOfPipelineMapper.queryTableInfo(tableName);
        return oneMapMapper.queryTableInfo(tableName);
    }
    /**
     * 计算全球管道图
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countGlobalPipeMap() {
        return oneMapMapper.countGlobalPipeMap();
    }
    /**
     * 计算全国管道图
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countNationalPipeMap() {
        return oneMapMapper.countNationalPipeMap();
    }
    /**
     * 全国管网图输送介质长度
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countZhPipeMapLenByMed() {
        return oneMapMapper.countZhPipeMapLenByMed();
    }
    /**
     * 全国站场座数、阀室、管道数等
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countZhPipeStations() {
        return oneMapMapper.countZhPipeStations();
    }
    /**
     * 按项目统计项目存储量
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countStorageByProject() {
        return oneMapMapper.countStorageByProject();
    }
    /**
     * 选择项目信息
     * 查询项目信息
     *
     * @param projectCode 项目名称
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> selectProjectInfo(String projectCode) {
        return oneMapMapper.selectProjectInfo(projectCode);
    }
    /**
     * 选择项目文件列表
     *
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> selectProjectFileList() {
        return oneMapMapper.selectProjectFileList();
    }
    /**
     * 计算存储项目
     *
     * @param projectCode 项目代码
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countProjectStorage(String projectCode) {
        return oneMapMapper.countProjectStorage(projectCode);
    }
    /**
     * 单个项目文件数量
     *
     * @param projectCode 项目代码
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<Map<String, Object>> countProjectType(String projectCode) {
        return oneMapMapper.countProjectType(projectCode);
    }
    /**
     * 统计项目下
     *
     * @param projectCode 项目代码
     * @return {@link List}<{@link String}>
     */
    @Override
    public List<String> countProjectDown(String projectCode) {
        return oneMapMapper.countProjectDown(projectCode);
    }
    @Override
    public List<CountEntity> countByMajor() {
        return oneMapMapper.countByMajor();
    }
    @Override
    public Integer selectLineBuffer() {
        try {
            return oneMapMapper.selectLineBuffer();
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return 0;
        }
    }
    @Override
    public List<Map<String, Object>> selectMetaByType() {
        try {
            return oneMapMapper.selectMetaByType();
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return null;
        }
    }
    /**
     * 计算数据
     */
    public String calcData() {
        Integer rows = selectLineBuffer();
        List<Map<String, Object>> list = selectMetaByType();
        if (null != list && list.size() > 0) {
            HttpServletRequest req = WebHelper.getRequest();
            String rootPath = pathHelper.getUploadFullPath();
            for (Map<String, Object> map : list) {
                String sjfl = map.get("type").toString();
                String id = map.get("id").toString();
                String wjlj = rootPath + File.separator + map.get("path").toString();
                File file = new File(wjlj);
                if (!file.exists() || file.isDirectory()) {
                    continue;
                }
                String str = fmeService.calcArea(sjfl, id, wjlj, req);
                if (null != str) {
                    System.out.println(str);
                }
                rows++;
            }
        }
        return String.format("共处理了 %d 条记录", rows);
    }
}