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 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 * * @author 邢锦双 */ @Service public class OneMapService implements OneMapMapper { @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 projectCategoryCount() { return oneMapMapper.projectCategoryCount(); } /** * 项目位置conut * * @return {@link List}<{@link String}> */ @Override public List projectLocationCount() { return oneMapMapper.projectLocationCount(); } /** * 国家维度conut */ @Override public List countryDimensionCount() { return oneMapMapper.countryDimensionCount(); } /** * 省维conut * * @return {@link List}<{@link String}> */ @Override public List provinceDimensionCount() { return oneMapMapper.provinceDimensionCount(); } /** * 全国维度-按照项自类型统计不同项目个数 * * @return {@link List}<{@link String}> */ @Override public List countProjectTypeNumber() { return oneMapMapper.countProjectTypeNumber(); } /** * 数据存储conut * * @return {@link List}<{@link String}> */ @Override public List dataStorageCount() { return oneMapMapper.dataStorageCount(); } /** * 统计数据类别 * * @return {@link List}<{@link String}> */ @Override public List statisticalDataCategories() { return oneMapMapper.statisticalDataCategories(); } /** * 统计数据服务类型 * * @return {@link List}<{@link String}> */ @Override public List statisticalDataServiceType() { return oneMapMapper.statisticalDataServiceType(); } /** * 登录人数统计 * * @return {@link List}<{@link String}> */ @Override public List loginNumberStatistics() { return oneMapMapper.loginNumberStatistics(); } /** * 文件格式conut * * @return {@link List}<{@link String}> */ @Override public List fileFormatCount() { return oneMapMapper.fileFormatCount(); } /** * 数据申请conut * * @return {@link List}<{@link String}> */ @Override public List dataApplyCount() { return oneMapMapper.dataApplyCount(); } /** * 数据访问数 * * @return {@link List}<{@link String}> */ @Override public List dataVisitCount() { return oneMapMapper.dataVisitCount(); } /** * 下载数统计 * * @return {@link List}<{@link String}> */ @Override public List countDownloads() { return oneMapMapper.countDownloads(); } /** * 统计项目显示 * * @return {@link List}<{@link String}> */ @Override public List countProjectDisplay() { return oneMapMapper.countProjectDisplay(); } /** * 统计项目参观 * * @return {@link List}<{@link String}> */ @Override public List countProjectTour(MpipelineEntity mpipelineEntity) { return oneMapMapper.countProjectTour(mpipelineEntity); } /** * 选择项目参观列表 * * @return {@link List}<{@link String}> */ @Override public List selectProjectTour() { return oneMapMapper.selectProjectTour(); } /** * 选择项目类型 * * @return {@link List}<{@link OneMapEntity}> */ @Override public List selectProjectType1() { List resList = new ArrayList<>(); List 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 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 selectProjectTypeOne(String sqlQur) { return null; } /** * 查询表信息 * * @return {@link List}<{@link String}> */ @Override public List queryTableInfo(String tableName) { return oneMapMapper.queryTableInfo(tableName); } /** * 计算全球管道图 * * @return {@link List}<{@link String}> */ @Override public List countGlobalPipeMap() { return oneMapMapper.countGlobalPipeMap(); } /** * 计算全国管道图 * * @return {@link List}<{@link String}> */ @Override public List countNationalPipeMap() { return oneMapMapper.countNationalPipeMap(); } /** * 全国管网图输送介质长度 * * @return {@link List}<{@link String}> */ @Override public List countZhPipeMapLenByMed() { return oneMapMapper.countZhPipeMapLenByMed(); } /** * 全国站场座数、阀室、管道数等 * * @return {@link List}<{@link String}> */ @Override public List countZhPipeStations() { return oneMapMapper.countZhPipeStations(); } /** * 按项目统计项目存储量 * * @return {@link List}<{@link String}> */ @Override public List countStorageByProject() { return oneMapMapper.countStorageByProject(); } /** * 选择项目信息 * 查询项目信息 * * @param projectCode 项目名称 * @return {@link List}<{@link String}> */ @Override public List selectProjectInfo(String projectCode) { return oneMapMapper.selectProjectInfo(projectCode); } /** * 选择项目文件列表 * * @return {@link List}<{@link String}> */ @Override public List selectProjectFileList() { return oneMapMapper.selectProjectFileList(); } /** * 计算存储项目 * * @param projectCode 项目代码 * @return {@link List}<{@link String}> */ @Override public List countProjectStorage(String projectCode) { return oneMapMapper.countProjectStorage(projectCode); } /** * 单个项目文件数量 * * @param projectCode 项目代码 * @return {@link List}<{@link String}> */ @Override public List> countProjectType(String projectCode) { return oneMapMapper.countProjectType(projectCode); } /** * 统计项目下 * * @param projectCode 项目代码 * @return {@link List}<{@link String}> */ @Override public List countProjectDown(String projectCode) { return oneMapMapper.countProjectDown(projectCode); } @Override public List 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> selectMetaByType() { try { return oneMapMapper.selectMetaByType(); } catch (Exception ex) { log.error(ex.getMessage(), ex); return null; } } /** * 计算数据 */ public String calcData() { Integer rows = selectLineBuffer(); List> list = selectMetaByType(); if (null != list && list.size() > 0) { try { String rootPath = pathHelper.getConfig().getUploadPath(); for (Map 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); if (null != str) { System.out.println(str); } rows++; } } catch (Exception ex) { log.error(ex.getMessage(), ex); } } return String.format("共处理了 %d 条记录", rows); } }