| | |
| | | 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 |
| | |
| | | */ |
| | | @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(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> projectLocationCount() { |
| | | return aMapOfPipelineMapper.projectLocationCount(); |
| | | return oneMapMapper.projectLocationCount(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> countryDimensionCount() { |
| | | return aMapOfPipelineMapper.countryDimensionCount(); |
| | | return oneMapMapper.countryDimensionCount(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> provinceDimensionCount() { |
| | | return aMapOfPipelineMapper.provinceDimensionCount(); |
| | | return oneMapMapper.provinceDimensionCount(); |
| | | } |
| | | |
| | | /** |
| | | * 全国维度-按照项自类型统计不同项目个数 |
| | | * |
| | | * @return {@link List}<{@link String}> |
| | | */ |
| | | @Override |
| | | public List<String> countProjectTypeNumber() { |
| | | return oneMapMapper.countProjectTypeNumber(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> fileFormatCount() { |
| | | return aMapOfPipelineMapper.fileFormatCount(); |
| | | return oneMapMapper.fileFormatCount(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> dataApplyCount() { |
| | | return aMapOfPipelineMapper.dataApplyCount(); |
| | | return oneMapMapper.dataApplyCount(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> dataVisitCount() { |
| | | return aMapOfPipelineMapper.dataVisitCount(); |
| | | return oneMapMapper.dataVisitCount(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> countDownloads() { |
| | | return aMapOfPipelineMapper.countDownloads(); |
| | | return oneMapMapper.countDownloads(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> countProjectDisplay() { |
| | | return aMapOfPipelineMapper.countProjectDisplay(); |
| | | return oneMapMapper.countProjectDisplay(); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<String> countProjectTour(MpipelineEntity mpipelineEntity) { |
| | | return aMapOfPipelineMapper.countProjectTour(mpipelineEntity); |
| | | return oneMapMapper.countProjectTour(mpipelineEntity); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询表信息 |
| | |
| | | */ |
| | | @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); |
| | | } |
| | | } |