From e002c67732b571f0b20cca8321ca8ee1ddba2e05 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 14 八月 2023 17:05:23 +0800 Subject: [PATCH] 修改文件上传、GDB/Shp数据读取、数据入库、元数据管理等接口 --- src/main/java/com/moon/server/service/data/PublishService.java | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 112 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/moon/server/service/data/PublishService.java b/src/main/java/com/moon/server/service/data/PublishService.java index f3fae53..cb0e886 100644 --- a/src/main/java/com/moon/server/service/data/PublishService.java +++ b/src/main/java/com/moon/server/service/data/PublishService.java @@ -7,16 +7,21 @@ import com.moon.server.entity.ctrl.RegisterEntity; import com.moon.server.entity.data.MetaEntity; import com.moon.server.entity.data.PublishEntity; +import com.moon.server.entity.sys.UserEntity; +import com.moon.server.helper.PathHelper; import com.moon.server.helper.RestHelper; import com.moon.server.helper.StringHelper; +import com.moon.server.helper.WebHelper; import com.moon.server.mapper.data.PublishMapper; +import com.moon.server.service.sys.TokenService; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.io.File; import java.lang.reflect.Field; import java.util.HashMap; import java.util.List; @@ -34,26 +39,34 @@ @Value("${sys.iisHost}") private String iisHost; - @Autowired + @Resource PublishMapper publishMapper; - @Autowired + @Resource FmeService fmeService; + + @Resource + PathHelper pathHelper; + + @Resource + TokenService tokenService; private final static Log log = LogFactory.getLog(PublishService.class); @Override - public Integer selectCount(String name) { + public Integer selectCount(String name, String dircode, String type) { name = StringHelper.getLikeUpperStr(name); + dircode = StringHelper.getRightLike(dircode); - return publishMapper.selectCount(name); + return publishMapper.selectCount(name, dircode, type); } @Override - public List<PublishEntity> selectByPage(String name, Integer limit, Integer offset) { + public List<PublishEntity> selectByPage(String name, String dircode, String type, Integer limit, Integer offset) { name = StringHelper.getLikeUpperStr(name); + dircode = StringHelper.getRightLike(dircode); - return publishMapper.selectByPage(name, limit, offset); + return publishMapper.selectByPage(name, dircode, type, limit, offset); } @Override @@ -69,6 +82,11 @@ @Override public List<PublishEntity> selectByIds(String ids) { return publishMapper.selectByIds(ids); + } + + @Override + public List<String> selectCodesForDir(String dircode, Integer isDom) { + return publishMapper.selectCodesForDir(dircode, isDom); } @Override @@ -122,6 +140,27 @@ name = StringHelper.getLikeUpperStr(name); return publishMapper.selectMetasByPage(depcode, dircode, verid, types, name, limit, offset); + } + + public List<Integer> selectLasCs(PubEntity entity, String method, HttpServletRequest req) { + Map<String, Object> map = getMapData(entity); + + String str = RestHelper.postForRest(exportServer + method, map); + if (StringHelper.isEmpty(str)) { + return null; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return null; + } + + String rs = msg.getResult(); + if (StringHelper.isEmpty(rs)) { + return null; + } + + return StringHelper.strToIntegers(rs); } /** @@ -182,6 +221,11 @@ } for (PublishEntity entity : list) { + // 閬垮厤閲嶅娉ㄥ唽 + if (null != entity.getUpdateTime()) { + continue; + } + String url = entity.getUrl().replace("{host}", iisHost); String type = getServerType(entity); @@ -208,6 +252,10 @@ return "涓夌淮鍦板舰鏈嶅姟"; case "mpt": return "涓夌淮鍦烘櫙鏈嶅姟"; + case "las": + case "laz": + case "cpt": + return "涓夌淮鐐逛簯鏈嶅姟"; default: return "涓夌淮妯″瀷鏈嶅姟"; } @@ -245,4 +293,61 @@ } } } + + /** + * 鍒犻櫎鍙戝竷鏂囦欢 + */ + public void deleteFiles(List<PublishEntity> list) { + String lfData = pathHelper.getConfig().getLfData(); + for (PublishEntity pub : list) { + if (null != pub.getUrl() && pub.getUrl().contains("/SG/")) { + continue; + } + + String path = lfData + pub.getPath().replace("\\tileset.json", ""); + File file = new File(path); + if (!file.exists() || !file.isDirectory()) { + continue; + } + + String cmd = String.format("cmd /c rd \"%s\" /s /q", path); + WebHelper.exec(cmd); + } + } + + /** + * 鍒犻櫎鍙戝竷鏂囦欢 + */ + public void deleteFiles(List<Integer> ids, HttpServletRequest req) { + PubEntity entity = new PubEntity(); + entity.setIds(ids); + entity.setDircode("00"); + + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + entity.setUserId(ue.getId()); + entity.setToken(WebHelper.getToken(req)); + } + + long rows = postForPub(entity, "/Convert/DeleteFiles"); + } + + /** + * 鍙戦�佸彂甯冭姹� + */ + public long postForPub(PubEntity entity, String method) { + Map<String, Object> map = getMapData(entity); + + String str = RestHelper.postForRest(exportServer + method, map); + if (StringHelper.isEmpty(str)) { + return 0; + } + + ResponseMsg<String> msg = JSON.parseObject(str, ResponseMsg.class); + if (msg == null || msg.getCode() != StaticData.TWO_HUNDRED) { + return 0; + } + + return msg.getCount(); + } } -- Gitblit v1.9.3