Przeglądaj źródła

滨江要素一本帐,上传图形

liutao 4 miesięcy temu
rodzic
commit
4158fb518c

+ 17 - 0
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/controller/app/BjXcController.java

@@ -1,13 +1,16 @@
 package com.zjugis.ysgzybz.controller.app;
 
+import com.vividsolutions.jts.io.ParseException;
 import com.zjugis.ysgzybz.controller.BaseRestController;
 import com.zjugis.ysgzybz.domain.dto.BjxcjlPageReqDTO;
 import com.zjugis.ysgzybz.domain.dto.CommonDTO;
+import com.zjugis.ysgzybz.domain.entity.UploadTxtResultVO;
 import com.zjugis.ysgzybz.domain.vo.BjxcjlCreateReqVO;
 import com.zjugis.ysgzybz.service.XcjlService;
 import com.zjugis.ysgzybz.service.XcryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * @Author 陈俊
@@ -87,6 +90,20 @@ public class BjXcController extends BaseRestController {
         }
     }
 
+    @PostMapping("/uploadTxt")
+    public Object uploadTxt(@RequestParam("file") MultipartFile file) {
+        //对file进行校验
+        try {
+            UploadTxtResultVO result = xcjlService.uploadFile(file.getInputStream());
+            return result(result);
+        } catch (ParseException e) {
+            return error(e.getMessage(), ErrorCode.DEFAULT);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return error("上传文件失败,请检查文件格式!", ErrorCode.DEFAULT);
+        }
+    }
+
     @GetMapping("/getXcryDkDetailByDksyh")
     public Object getXcryDkDetailByDksyh(@RequestParam("dksyh") String dksyh) {
         try {

+ 10 - 0
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/dao/BjwkflyMapper.java

@@ -0,0 +1,10 @@
+package com.zjugis.ysgzybz.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zjugis.ysgzybz.domain.entity.Bjwkfly;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface BjwkflyMapper extends BaseMapper<Bjwkfly> {
+    void updateGeometry(String geometry, Integer id);
+}

+ 7 - 0
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/service/XcjlService.java

@@ -3,9 +3,11 @@ package com.zjugis.ysgzybz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zjugis.ysgzybz.domain.dto.BjxcjlPageReqDTO;
 import com.zjugis.ysgzybz.domain.entity.Bjxcjl;
+import com.zjugis.ysgzybz.domain.entity.UploadTxtResultVO;
 import com.zjugis.ysgzybz.domain.vo.BjxcjlCreateReqVO;
 import com.zjugis.ysgzybz.domain.vo.BjxcjlRespVO;
 
+import java.io.InputStream;
 import java.util.List;
 import java.util.Map;
 
@@ -17,6 +19,7 @@ import java.util.Map;
 public interface XcjlService extends IService<Bjxcjl> {
     /**
      * 新增巡查记录
+     *
      * @param reqVO
      * @return
      */
@@ -24,6 +27,7 @@ public interface XcjlService extends IService<Bjxcjl> {
 
     /**
      * 根据地块索引号获取巡查记录列表
+     *
      * @param dksyh
      * @return
      */
@@ -31,8 +35,11 @@ public interface XcjlService extends IService<Bjxcjl> {
 
     /**
      * 根据地块索引号获取巡查记录列表
+     *
      * @param bjxcjlPageReqDTO
      * @return
      */
     Map<String, Object> getListByDksyhPage(BjxcjlPageReqDTO bjxcjlPageReqDTO);
+
+    UploadTxtResultVO uploadFile(InputStream inputStream) throws Exception;
 }

+ 37 - 2
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/service/impl/XcjlServiceImpl.java

@@ -3,10 +3,12 @@ package com.zjugis.ysgzybz.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.vividsolutions.jts.geom.Geometry;
+import com.zjugis.ysgzybz.dao.BjlsydMapper;
+import com.zjugis.ysgzybz.dao.BjwkflyMapper;
 import com.zjugis.ysgzybz.dao.XcjlMapper;
 import com.zjugis.ysgzybz.domain.dto.BjxcjlPageReqDTO;
-import com.zjugis.ysgzybz.domain.entity.Bjxcjl;
-import com.zjugis.ysgzybz.domain.entity.BjxcjlImg;
+import com.zjugis.ysgzybz.domain.entity.*;
 import com.zjugis.ysgzybz.domain.vo.BjxcjlCreateReqVO;
 import com.zjugis.ysgzybz.domain.vo.BjxcjlImgCreateReqVO;
 import com.zjugis.ysgzybz.domain.vo.BjxcjlImgRespVO;
@@ -14,10 +16,14 @@ import com.zjugis.ysgzybz.domain.vo.BjxcjlRespVO;
 import com.zjugis.ysgzybz.service.XcjlImgService;
 import com.zjugis.ysgzybz.service.XcjlService;
 import com.zjugis.ysgzybz.utils.StringUtils;
+import com.zjugis.ysgzybz.utils.geocomm.JzdDk;
+import com.zjugis.ysgzybz.utils.geocomm.ParseResult;
+import com.zjugis.ysgzybz.utils.geocomm.TxtReader;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.InputStream;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -29,6 +35,9 @@ import java.util.stream.Collectors;
 @Service
 public class XcjlServiceImpl extends ServiceImpl<XcjlMapper, Bjxcjl> implements XcjlService {
 
+    @Autowired
+    private BjwkflyMapper bjwkflyMapper;
+
     @Autowired
     private XcjlImgService xcjlImgService;
 
@@ -56,6 +65,32 @@ public class XcjlServiceImpl extends ServiceImpl<XcjlMapper, Bjxcjl> implements
         return entiy;
     }
 
+    @Override
+    public UploadTxtResultVO uploadFile(InputStream inputStream) throws Exception {
+        //解析上传的txt为ParseResult
+        TxtReader txtReader = new TxtReader(inputStream);
+        ParseResult result = txtReader.read();
+
+        Geometry geometry = result.getGeometry();
+        List<JzdDk> jzdDkList = result.getJzdDkList();
+        String dkmc = jzdDkList.get(0).getDkmc();
+        UploadTxtResultVO vo = new UploadTxtResultVO();
+        vo.setErrorList(result.getErrorList());
+        QueryWrapper<Bjwkfly> wrapper = new QueryWrapper<>();
+        wrapper.select("max(id) as id");
+        Bjwkfly bjwkfly = bjwkflyMapper.selectOne(wrapper);
+        Integer id = bjwkfly.getId() + 1;
+        Bjwkfly entity = new Bjwkfly();
+        entity.setDksyh(UUID.randomUUID().toString());
+        entity.setDkbh(dkmc);
+        entity.setId(id);
+        int insert = bjwkflyMapper.insert(entity);
+        if (insert > 0) {
+            bjwkflyMapper.updateGeometry(geometry.toText(), id);
+        }
+        return vo;
+    }
+
     @Override
     public List<BjxcjlRespVO> getListByDksyh(String dksyh) {
         QueryWrapper<Bjxcjl> queryWrapper = new QueryWrapper<>();

+ 10 - 0
BJYSYBZ_S/src/main/resources/mapper/BjwkflyMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zjugis.ysgzybz.dao.BjwkflyMapper">
+
+    <update id="updateGeometry">
+        update sde.bjwkfly2000
+        set shape = st_transform(st_geomfromtext(#{geometry}, 4528), 4490)
+        where id = #{id}
+    </update>
+</mapper>