From d7e3011a44a85f32aaab975f603f17a9bec198c5 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 20 十一月 2022 14:54:36 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/entity/md/MdZxcgEntity.java | 59 ----------- src/main/java/com/lf/server/entity/md/MdGdcgEntity.java | 59 ----------- src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java | 12 ++ data/db_tab.sql | 9 + src/main/java/com/lf/server/entity/all/BaseEntity.java | 63 ++++++++++++ src/main/java/com/lf/server/service/data/DataLoaderService.java | 39 +++++++ src/main/java/com/lf/server/mapper/md/MdZxcgMapper.java | 4 src/main/java/com/lf/server/entity/all/BaseGeoEntity.java | 20 ++++ 8 files changed, 149 insertions(+), 116 deletions(-) diff --git a/data/db_tab.sql b/data/db_tab.sql index 64a20b4..5393048 100644 --- a/data/db_tab.sql +++ b/data/db_tab.sql @@ -970,10 +970,17 @@ create_user integer, create_time timestamp(6) without time zone default now(), update_user integer, - update_time timestamp(6) without time zone + update_time timestamp(6) without time zone, + geom geometry(Point, 4490) ); +create index if not exists md_zxcg_geom_idx on md.md_zxcg using gist (geom); +drop index if exists md_zxcg_geom_idx cascade; comment on table md.md_zxcg is '涓嚎鎴愭灉琛�'; +vacuum analyze md.md_zxcg; +insert into md.md_zxcg (zh, geom) values ('A01', ST_GeomFromText('POINT(95.80461853400004 34.13862467200005)')); +insert into md.md_zxcg (zh, geom) values ('A02', ST_GeomFromText('POINT(119.873000 39.392000)')); +select gid,zh,ST_ASText(geom) from md.md_zxcg; select * from md.md_zxcg; -- drop table if exists md.md_gdcg; diff --git a/src/main/java/com/lf/server/entity/all/BaseEntity.java b/src/main/java/com/lf/server/entity/all/BaseEntity.java new file mode 100644 index 0000000..a060f51 --- /dev/null +++ b/src/main/java/com/lf/server/entity/all/BaseEntity.java @@ -0,0 +1,63 @@ +package com.lf.server.entity.all; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; + +import java.sql.Timestamp; + +/** + * 鍩虹瀹炰綋绫� + * @author WWW + */ +public class BaseEntity { + @TableId(type = IdType.AUTO) + private Integer gid; + + private Integer createUser; + + private Timestamp createTime; + + private Integer updateUser; + + private Timestamp updateTime; + + public Integer getGid() { + return gid; + } + + public void setGid(Integer gid) { + this.gid = gid; + } + + public Integer getCreateUser() { + return createUser; + } + + public void setCreateUser(Integer createUser) { + this.createUser = createUser; + } + + public Timestamp getCreateTime() { + return createTime; + } + + public void setCreateTime(Timestamp createTime) { + this.createTime = createTime; + } + + public Integer getUpdateUser() { + return updateUser; + } + + public void setUpdateUser(Integer updateUser) { + this.updateUser = updateUser; + } + + public Timestamp getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Timestamp updateTime) { + this.updateTime = updateTime; + } +} diff --git a/src/main/java/com/lf/server/entity/all/BaseGeoEntity.java b/src/main/java/com/lf/server/entity/all/BaseGeoEntity.java new file mode 100644 index 0000000..74dd489 --- /dev/null +++ b/src/main/java/com/lf/server/entity/all/BaseGeoEntity.java @@ -0,0 +1,20 @@ +package com.lf.server.entity.all; + +import com.baomidou.mybatisplus.annotation.TableField; + +/** + * 绌洪棿鍩虹瀹炰綋绫� + * @author WWW + */ +public class BaseGeoEntity extends BaseEntity { + @TableField(select = false) + private String geom; + + public String getGeom() { + return geom; + } + + public void setGeom(String geom) { + this.geom = geom; + } +} diff --git a/src/main/java/com/lf/server/entity/md/MdGdcgEntity.java b/src/main/java/com/lf/server/entity/md/MdGdcgEntity.java index 429dff9..7f1a481 100644 --- a/src/main/java/com/lf/server/entity/md/MdGdcgEntity.java +++ b/src/main/java/com/lf/server/entity/md/MdGdcgEntity.java @@ -1,16 +1,15 @@ package com.lf.server.entity.md; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.lf.server.annotation.ExcelHead; +import com.lf.server.entity.all.BaseEntity; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.sql.Timestamp; /** * 绠¢亾鎴愭灉琛� @@ -21,11 +20,9 @@ @AllArgsConstructor @TableName("md.md_gdcg") @ExcelHead(headRows = 3,excludeSheets = "灏侀潰,鐩綍") -public class MdGdcgEntity implements Serializable { +@EqualsAndHashCode(callSuper = true) +public class MdGdcgEntity extends BaseEntity implements Serializable { private static final long serialVersionUID = -221347663194025408L; - - @TableId(type = IdType.AUTO) - private Integer gid; @ExcelProperty(index = 0) private String bh; @@ -80,14 +77,6 @@ @ExcelProperty(index = 17) private String bz; - - private Integer createUser; - - private Timestamp createTime; - - private Integer updateUser; - - private Timestamp updateTime; public String getBh() { return bh; @@ -231,45 +220,5 @@ public void setBz(String bz) { this.bz = bz; - } - - public Integer getGid() { - return gid; - } - - public void setGid(Integer gid) { - this.gid = gid; - } - - public Integer getCreateUser() { - return createUser; - } - - public void setCreateUser(Integer createUser) { - this.createUser = createUser; - } - - public Timestamp getCreateTime() { - return createTime; - } - - public void setCreateTime(Timestamp createTime) { - this.createTime = createTime; - } - - public Integer getUpdateUser() { - return updateUser; - } - - public void setUpdateUser(Integer updateUser) { - this.updateUser = updateUser; - } - - public Timestamp getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Timestamp updateTime) { - this.updateTime = updateTime; } } diff --git a/src/main/java/com/lf/server/entity/md/MdZxcgEntity.java b/src/main/java/com/lf/server/entity/md/MdZxcgEntity.java index 325ccdc..49f9750 100644 --- a/src/main/java/com/lf/server/entity/md/MdZxcgEntity.java +++ b/src/main/java/com/lf/server/entity/md/MdZxcgEntity.java @@ -1,16 +1,15 @@ package com.lf.server.entity.md; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.lf.server.annotation.ExcelHead; +import com.lf.server.entity.all.BaseGeoEntity; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import java.io.Serializable; -import java.sql.Timestamp; /** * 涓嚎鎴愭灉琛� @@ -21,11 +20,9 @@ @AllArgsConstructor @TableName("md.md_zxcg") @ExcelHead(headRows = 1) -public class MdZxcgEntity implements Serializable { +@EqualsAndHashCode(callSuper = true) +public class MdZxcgEntity extends BaseGeoEntity implements Serializable { private static final long serialVersionUID = 686714648588893312L; - - @TableId(type = IdType.AUTO) - private Integer gid; @ExcelProperty(index = 0) private String zh; @@ -44,14 +41,6 @@ @ExcelProperty(index = 5) private Double z; - - private Integer createUser; - - private Timestamp createTime; - - private Integer updateUser; - - private Timestamp updateTime; public String getZh() { return zh; @@ -99,45 +88,5 @@ public void setZ(Double z) { this.z = z; - } - - public Integer getGid() { - return gid; - } - - public void setGid(Integer gid) { - this.gid = gid; - } - - public Integer getCreateUser() { - return createUser; - } - - public void setCreateUser(Integer createUser) { - this.createUser = createUser; - } - - public Timestamp getCreateTime() { - return createTime; - } - - public void setCreateTime(Timestamp createTime) { - this.createTime = createTime; - } - - public Integer getUpdateUser() { - return updateUser; - } - - public void setUpdateUser(Integer updateUser) { - this.updateUser = updateUser; - } - - public Timestamp getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Timestamp updateTime) { - this.updateTime = updateTime; } } diff --git a/src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java b/src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java index dbcefd9..03e93c5 100644 --- a/src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java +++ b/src/main/java/com/lf/server/mapper/all/GeomBaseMapper.java @@ -2,6 +2,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; /** * 绌洪棿鍩虹Mapper @@ -27,4 +28,15 @@ */ @Select("select ST_SRID(geom) from ${tab} limit 1") public Integer selectSrid(@Param("tab") String tab); + + /** + * 鏇存柊绌洪棿浣嶇疆 + * + * @param tab 琛ㄥ悕 + * @param gid GID + * @param geom 绌洪棿浣嶇疆 + * @return 褰卞搷琛屾暟 + */ + @Update("update ${tab} set geom = ST_GeomFromText('${geom}') where gid = #{gid}") + public Integer updateGeom(@Param("tab") String tab, @Param("gid") Integer gid, @Param("geom") String geom); } diff --git a/src/main/java/com/lf/server/mapper/md/MdZxcgMapper.java b/src/main/java/com/lf/server/mapper/md/MdZxcgMapper.java index 4840b00..359225b 100644 --- a/src/main/java/com/lf/server/mapper/md/MdZxcgMapper.java +++ b/src/main/java/com/lf/server/mapper/md/MdZxcgMapper.java @@ -1,7 +1,7 @@ package com.lf.server.mapper.md; import com.lf.server.entity.md.MdZxcgEntity; -import com.lf.server.mapper.all.BasicMapper; +import com.lf.server.mapper.all.GeomBaseMapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @@ -11,5 +11,5 @@ */ @Mapper @Repository -public interface MdZxcgMapper extends BasicMapper<MdZxcgEntity> { +public interface MdZxcgMapper extends GeomBaseMapper<MdZxcgEntity> { } 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 aba8341..97c2edd 100644 --- a/src/main/java/com/lf/server/service/data/DataLoaderService.java +++ b/src/main/java/com/lf/server/service/data/DataLoaderService.java @@ -7,6 +7,7 @@ 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.BaseUploadService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -211,6 +212,11 @@ rows += baseMapper.insert(list.get(i)); } + if (baseMapper instanceof GeomBaseMapper) { + GeomBaseMapper geomBaseMapper = (GeomBaseMapper) baseMapper; + updateGeom(geomBaseMapper, list); + } + return rows; } @@ -224,9 +230,36 @@ cuField.setAccessible(true); cuField.set(t, mfe.getCreateUser()); - Field cuTime = t.getClass().getDeclaredField("createTime"); - cuTime.setAccessible(true); - cuTime.set(t, mfe.getCreateTime()); + 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 { + 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); + + String wkt = String.format("POINT(%f %f)", x, y); + + Field gField = t.getClass().getDeclaredField("geom"); + gField.setAccessible(true); + gField.set(t, wkt); + + //Integer gid= } } catch (Exception ex) { log.error(ex.getMessage(), ex); -- Gitblit v1.9.3