From bc43c3d892d45ded60e1ba28df9d6a37b7c4d787 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 21 十一月 2022 09:12:43 +0800 Subject: [PATCH] 数据检索:添加上传文件功能 --- src/main/java/com/lf/server/service/data/DataLoaderService.java | 75 ++++++++++++++++++++++++++++++++++--- 1 files changed, 68 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/lf/server/service/data/DataLoaderService.java b/src/main/java/com/lf/server/service/data/DataLoaderService.java index 57fe974..5846fce 100644 --- a/src/main/java/com/lf/server/service/data/DataLoaderService.java +++ b/src/main/java/com/lf/server/service/data/DataLoaderService.java @@ -1,18 +1,21 @@ package com.lf.server.service.data; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.lf.server.entity.all.BaseEntity; import com.lf.server.entity.ctrl.TabMapperEntity; import com.lf.server.entity.data.MetaEntity; import com.lf.server.entity.data.MetaFileEntity; -import com.lf.server.entity.md.MdZxcgEntity; import com.lf.server.helper.ClassHelper; import com.lf.server.helper.ExcelHelper; import com.lf.server.helper.FileHelper; +import com.lf.server.mapper.all.GeomBaseMapper; +import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.all.BaseUploadService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.File; +import java.lang.reflect.Field; import java.util.List; /** @@ -57,7 +60,7 @@ } // 鍏冩暟鎹枃浠� - MetaFileEntity mfe = createMetaFileEntity(entity, mf, filePath); + MetaFileEntity mfe = createMetaFileEntity(me, mf, filePath); if (metaFileService.insert(mfe) < 1) { continue; } @@ -126,15 +129,15 @@ /** * 鍒涘缓鍏冩暟鎹枃浠跺疄浣� */ - private MetaFileEntity createMetaFileEntity(MetaEntity metaEntity, MetaFileEntity entity, String filePath) { + private MetaFileEntity createMetaFileEntity(MetaEntity me, MetaFileEntity entity, String filePath) { MetaFileEntity mfe = new MetaFileEntity(); mfe.setName(entity.getName()); - mfe.setMetaid(metaEntity.getId()); + mfe.setMetaid(me.getId()); mfe.setGuid(entity.getGuid()); mfe.setSizes(entity.getSizes()); mfe.setPath(FileHelper.getRelativePath(filePath)); - mfe.setCreateUser(metaEntity.getCreateUser()); - mfe.setCreateTime(metaEntity.getCreateTime()); + mfe.setCreateUser(me.getCreateUser()); + mfe.setCreateTime(me.getCreateTime()); return mfe; } @@ -203,7 +206,65 @@ return 0; } - return 0; + setCreateInfo(list, mfe); + + int rows = 0; + for (int i = 0, c = list.size(); i < c; i++) { + rows += baseMapper.insert(list.get(i)); + } + + if (baseMapper instanceof GeomBaseMapper) { + GeomBaseMapper geomBaseMapper = (GeomBaseMapper) baseMapper; + updateGeom(geomBaseMapper, list); + } + + return rows; + } + + /** + * 璁剧疆鍒涘缓淇℃伅 + */ + @SuppressWarnings("AlibabaRemoveCommentedCode") + private <T> void setCreateInfo(List<T> list, MetaFileEntity mfe) { + try { + for (T t : list) { + Field cuField = t.getClass().getDeclaredField("createuser"); + cuField.setAccessible(true); + cuField.set(t, mfe.getCreateUser()); + + Field ctField = t.getClass().getDeclaredField("createtime"); + ctField.setAccessible(true); + ctField.set(t, mfe.getCreateTime()); + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + + /** + * 璁剧疆绌洪棿淇℃伅 + */ + private <T> void updateGeom(GeomBaseMapper geomBaseMapper, List<T> list) { + try { + String tabName = BaseQueryService.getTabName(geomBaseMapper); + for (T t : list) { + Field xField = t.getClass().getDeclaredField("x"); + xField.setAccessible(true); + double x = (double) xField.get(t); + + Field yField = t.getClass().getDeclaredField("y"); + yField.setAccessible(true); + double y = (double) yField.get(t); + + BaseEntity baseEntity = (BaseEntity) t; + Integer gid = baseEntity.getGid(); + + String wkt = String.format("POINT(%f %f)", x, y); + geomBaseMapper.updateGeom(tabName, gid, wkt); + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } } /** -- Gitblit v1.9.3