浏览代码

增加导入预览接口

欧阳劲驰 2 月之前
父节点
当前提交
70b02f1096

+ 2 - 3
src/main/java/com/shkpr/service/alambizplugin/components/GisSurveyThirdImporter.java

@@ -185,7 +185,6 @@ public class GisSurveyThirdImporter {
             //完成任务
             result.setImportStatus(GisSurveyImportStatusEnum.SUCCESS.getCode());
             result.setCompleteTime(LocalDateTime.now());
-            result.setPreviewData(layerApplyList);
 
             LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName
                     , String.format(
@@ -413,7 +412,7 @@ public class GisSurveyThirdImporter {
                     , propertyTemplate, params, GisSurveyImportDefine.LayerType.POINT);
             if (propertyValue != null) propertyValueList.add(propertyValue);
         }
-        layerApply.setPropertyValueList(propertyValueList);
+        layerApply.setPropertyValues(propertyValueList);
 
         return layerApply;
     }
@@ -447,7 +446,7 @@ public class GisSurveyThirdImporter {
             GisSurveyPropertyValueThirdCopy propertyValue = decodeDataToPropertyValue(line, layerApply, propertyTemplate, params, GisSurveyImportDefine.LayerType.LINE);
             if (propertyValue != null) propertyValueList.add(propertyValue);
         }
-        layerApply.setPropertyValueList(propertyValueList);
+        layerApply.setPropertyValues(propertyValueList);
 
         return layerApply;
     }

+ 10 - 8
src/main/java/com/shkpr/service/alambizplugin/constants/ApiURI.java

@@ -1,4 +1,5 @@
 package com.shkpr.service.alambizplugin.constants;
+
 public class ApiURI {
     public static final String HEADER_X_SOURCE_IP = "X-Source-IP";
     public static final String HEADER_BIZ_TYPE = "Biz-Type";
@@ -27,9 +28,10 @@ public class ApiURI {
     public static final String URI_XXX_SYS_CHECK = "sys-check";
     public static final String URI_XXX_SYS_CHECK_CANCEL = "sys-check-cancel";
     public static final String URI_XXX_SYS_CHECK_RESULTS = "sys-check-results";
-    public static final String URI_XXX_THIRD_IMPORT= "third-import";
-    public static final String URI_XXX_THIRD_IMPORT_CANCEL= "third-import-cancel";
-    public static final String URI_XXX_THIRD_IMPORT_COMMIT= "third-import-commit";
+    public static final String URI_XXX_THIRD_IMPORT = "third-import";
+    public static final String URI_XXX_THIRD_IMPORT_CANCEL = "third-import-cancel";
+    public static final String URI_XXX_THIRD_IMPORT_PREVIEW = "third-import-preview";
+    public static final String URI_XXX_THIRD_IMPORT_COMMIT = "third-import-commit";
 
     public static final String URI_ACCESS_TOKEN_CHECK = "/kpr-plugin/apply/access-token-check";
     public static final String URI_FILE_BUSI_XXX = "/files/**";
@@ -38,19 +40,19 @@ public class ApiURI {
     public static final String URI_ALL_BUSI_XXX = "/kpr-plugin/**";
 
     public static final String URI_GIS_SURVEY_H = "/kpr-plugin/gis-survey";
-    public static final String URI_GIS_SURVEY_XXX = URI_GIS_SURVEY_H+"/**";
+    public static final String URI_GIS_SURVEY_XXX = URI_GIS_SURVEY_H + "/**";
 
     public static final String URI_USERS_H = "/kpr-plugin/users";
-    public static final String URI_USERS_XXX = URI_USERS_H+"/**";
+    public static final String URI_USERS_XXX = URI_USERS_H + "/**";
 
     public static final String URI_COMMON_H = "/kpr-plugin/common";
-    public static final String URI_COMMON_XXX = URI_COMMON_H+"/**";
+    public static final String URI_COMMON_XXX = URI_COMMON_H + "/**";
 
     public static final String URI_FILES_H = "/kpr-plugin/files";
-    public static final String URI_FILES_XXX = URI_FILES_H+"/**";
+    public static final String URI_FILES_XXX = URI_FILES_H + "/**";
 
     public static final String URI_INTERNAL_H = "/kpr-plugin/internal";
-    public static final String URI_INTERNAL_XXX = URI_INTERNAL_H+"/**";
+    public static final String URI_INTERNAL_XXX = URI_INTERNAL_H + "/**";
 
     public static final String URI_INTERNAL_OPS_XXX = "/ops/**";
 }

+ 77 - 2
src/main/java/com/shkpr/service/alambizplugin/controller/ApiGisSurveyController.java

@@ -14,13 +14,18 @@ import com.shkpr.service.alambizplugin.constants.LogFlagBusiType;
 import com.shkpr.service.alambizplugin.constants.ResponseCode;
 import com.shkpr.service.alambizplugin.controllerfilter.TokenAuthenticationService;
 import com.shkpr.service.alambizplugin.controllervalid.CommonParamValidSK;
+import com.shkpr.service.alambizplugin.dbdao.services.GisSurveyLayerApplyThirdCopyServiceImpl;
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyService;
+import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
 import com.shkpr.service.alambizplugin.dto.GisSurveySystemCheckResult;
 import com.shkpr.service.alambizplugin.dto.GisSurveyThirdImportResult;
+import com.shkpr.service.alambizplugin.dto.PageResponse;
 import com.shkpr.service.alambizplugin.dto.ResponseRes;
 import com.shkpr.service.alambizplugin.exception.SelfException;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.web.PageableDefault;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -48,22 +53,29 @@ public class ApiGisSurveyController {
     private final AtomicInteger mSeqSysCheckCancelReq;
     private final AtomicInteger mSeqThirdImportReq;
     private final AtomicInteger mSeqThirdImportCancelReq;
+    private final AtomicInteger mSeqThirdImportPreviewReq;
+    private final AtomicInteger mSeqThirdImportCommitReq;
 
     private final GisSurveySystemCheckBizService systemCheckBizService;
     private final GisSurveyThirdImportBizService thirdImportBizService;
     private final GisSurveyLayerApplyService layerApplyService;
+    private final GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService;
 
     public ApiGisSurveyController(GisSurveySystemCheckBizService systemCheckBizService
-            , GisSurveyThirdImportBizService thirdImportBizService, GisSurveyLayerApplyService layerApplyService) {
+            , GisSurveyThirdImportBizService thirdImportBizService, GisSurveyLayerApplyService layerApplyService
+            , GisSurveyLayerApplyThirdCopyServiceImpl layerApplyThirdCopyService) {
         mStrClassName = "ApiGisSurveyController";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
         mSeqSysCheckReq = new AtomicInteger(0);
         mSeqSysCheckCancelReq = new AtomicInteger(0);
         mSeqThirdImportReq = new AtomicInteger(0);
         mSeqThirdImportCancelReq = new AtomicInteger(0);
+        mSeqThirdImportPreviewReq = new AtomicInteger(0);
+        mSeqThirdImportCommitReq = new AtomicInteger(0);
         this.systemCheckBizService = systemCheckBizService;
         this.thirdImportBizService = thirdImportBizService;
         this.layerApplyService = layerApplyService;
+        this.layerApplyThirdCopyService = layerApplyThirdCopyService;
     }
 
     /**
@@ -355,6 +367,69 @@ public class ApiGisSurveyController {
     }
 
     /**
+     * 预览第三方导入
+     *
+     * @param request       request
+     * @param strClientType 客户端类型
+     * @param strUserAgent  用户信息
+     * @param jobId         任务id
+     * @param pageable      分页
+     * @return 清除状态
+     * @throws SelfException selfException
+     */
+    @GetMapping(value = ApiURI.URI_XXX_THIRD_IMPORT_PREVIEW)
+    public ResponseRes<?> previewImport(HttpServletRequest request
+            , @RequestHeader(value = ApiURI.HEADER_CLIENT_TYPE, required = false) String strClientType
+            , @RequestHeader(value = ApiURI.HEADER_USER_AGENT, required = false) String strUserAgent
+            , @RequestParam("jobId") String jobId, @PageableDefault() Pageable pageable) throws Exception {
+        //入参校验
+        final String URI_PATH = request.getRequestURI();
+        final String strPlatform = CommTool.getPlatformByAgent(strClientType, strUserAgent);
+        final String strUserId = (String) request.getAttribute(TokenAuthenticationService.HEADER_USERID);
+        if (StringUtils.isBlank(jobId) || StringUtils.length(jobId) > 64) {
+            throw new SelfException(ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrCode()
+                    , String.format(ApiURI.EXCEPTION_FORMAT
+                    , strPlatform
+                    , URI_PATH
+                    , ResponseCode.STATUS_ERROR_PARAM_FORMAT.toStrMsg()));
+        }
+        //begin
+        long llReqBefore = System.currentTimeMillis();
+        String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportPreviewReq.incrementAndGet());
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
+                , String.format("%s:%s seq:{%s} param:%s begin====>"
+                        , strPlatform
+                        , URI_PATH
+                        , strRunSeq
+                        , jobId));
+
+
+        //构建result
+        ResponseRes<PageResponse<GisSurveyLayerApplyThirdCopy>> resResult = new ResponseRes<>();
+        resResult.setRescode(ResponseCode.RESULT_THIRD_IMPORT_FAILED.toStrCode());
+        resResult.setResmsg(ResponseCode.RESULT_THIRD_IMPORT_FAILED.toStrMsg());
+
+        //查询
+        PageResponse<GisSurveyLayerApplyThirdCopy> pageResponse = layerApplyThirdCopyService.findByJobId(jobId, pageable);
+        resResult.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
+        resResult.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
+        resResult.setResdata(pageResponse);
+
+        //end
+        resResult.setTimestamp(System.currentTimeMillis());
+        LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
+                , String.format("%s:%s seq:{%s} rescode:{%s} resmsg:{%s} time:{%d ms} end<===="
+                        , strPlatform
+                        , URI_PATH
+                        , strRunSeq
+                        , resResult.getRescode()
+                        , resResult.getResmsg()
+                        , resResult.getTimestamp() - llReqBefore));
+        return resResult;
+    }
+
+
+    /**
      * 提交第三方导入
      *
      * @param request       request
@@ -382,7 +457,7 @@ public class ApiGisSurveyController {
         }
         //begin
         long llReqBefore = System.currentTimeMillis();
-        String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportCancelReq.incrementAndGet());
+        String strRunSeq = String.format("%d-%d", llReqBefore, mSeqThirdImportCommitReq.incrementAndGet());
         LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_INFO, mBizType, mStrClassName, strUserId
                 , String.format("%s:%s seq:{%s} param:%s begin====>"
                         , strPlatform

+ 1 - 0
src/main/java/com/shkpr/service/alambizplugin/controllerfilter/third/ApiJWTGisSurveyBizFilter.java

@@ -24,6 +24,7 @@ public class ApiJWTGisSurveyBizFilter extends JWTAuthenticationFilter {
         msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_GIS_SURVEY_H, ApiURI.URI_XXX_SYS_CHECK_RESULTS), "GET");
         msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_GIS_SURVEY_H, ApiURI.URI_XXX_THIRD_IMPORT), "POST");
         msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_GIS_SURVEY_H, ApiURI.URI_XXX_THIRD_IMPORT_CANCEL), "GET");
+        msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_GIS_SURVEY_H, ApiURI.URI_XXX_THIRD_IMPORT_PREVIEW), "GET");
         msMapURI2Method.put(String.format("%s/%s", ApiURI.URI_GIS_SURVEY_H, ApiURI.URI_XXX_THIRD_IMPORT_COMMIT), "GET");
     }
 

+ 17 - 5
src/main/java/com/shkpr/service/alambizplugin/dbdao/mapper/GisSurveyLayerApplyThirdCopyMapper.java

@@ -3,6 +3,9 @@ package com.shkpr.service.alambizplugin.dbdao.mapper;
 import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
+import org.springframework.data.domain.Pageable;
+
+import java.util.List;
 
 /**
  * 采集元素第三方导入副本mapper
@@ -21,12 +24,13 @@ public interface GisSurveyLayerApplyThirdCopyMapper {
     int save(GisSurveyLayerApplyThirdCopy record);
 
     /**
-     * 根据任务Id删除
+     * 根据任务id查询
      *
-     * @param jobId jobId
-     * @return 删除数量
+     * @param jobId    任务id
+     * @param pageable 页码
+     * @return 采集元素副表对象
      */
-    int deleteByJobId(@Param("jobId") String jobId);
+    List<GisSurveyLayerApplyThirdCopy> findByJobId(@Param("jobId") String jobId, @Param("pageable") Pageable pageable);
 
     /**
      * 根据任务Id获取总数
@@ -34,5 +38,13 @@ public interface GisSurveyLayerApplyThirdCopyMapper {
      * @param jobId 任务id
      * @return 总数
      */
-    int countByJobId(@Param("jobId") String jobId);
+    long countByJobId(@Param("jobId") String jobId);
+
+    /**
+     * 根据任务Id删除
+     *
+     * @param jobId jobId
+     * @return 删除数量
+     */
+    int deleteByJobId(@Param("jobId") String jobId);
 }

+ 1 - 1
src/main/java/com/shkpr/service/alambizplugin/dbdao/services/GisSurveyLayerApplyServiceImpl.java

@@ -261,7 +261,7 @@ public class GisSurveyLayerApplyServiceImpl implements GisSurveyLayerApplyServic
                 GisSurveyJobInfoMapper jobInfoMapper = session.getMapper(GisSurveyJobInfoMapper.class);
 
                 //需要合并的数量
-                int mergeCount = layerApplyThirdCopyMapper.countByJobId(jobId);
+                long mergeCount = layerApplyThirdCopyMapper.countByJobId(jobId);
 
                 //合并属性
                 propertyValueMapper.mergeCopyByJobId(jobId);

+ 22 - 3
src/main/java/com/shkpr/service/alambizplugin/dbdao/services/GisSurveyLayerApplyThirdCopyServiceImpl.java

@@ -8,10 +8,12 @@ import com.shkpr.service.alambizplugin.dbdao.mapper.GisSurveyPropertyValueThirdC
 import com.shkpr.service.alambizplugin.dbdao.services.intef.GisSurveyLayerApplyThirdCopyService;
 import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
 import com.shkpr.service.alambizplugin.dto.GisSurveyPropertyValueThirdCopy;
+import com.shkpr.service.alambizplugin.dto.PageResponse;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -31,11 +33,14 @@ public class GisSurveyLayerApplyThirdCopyServiceImpl implements GisSurveyLayerAp
     private final String mStrClassName;
     private final String mBizType;
     private final SqlSessionFactory mainSqlSessionFactory;
+    private final GisSurveyLayerApplyThirdCopyMapper layerApplyThirdCopyMapper;
 
-    public GisSurveyLayerApplyThirdCopyServiceImpl(@Qualifier("mainSqlSessionFactory") SqlSessionFactory mainSqlSessionFactory) {
-        this.mainSqlSessionFactory = mainSqlSessionFactory;
+    public GisSurveyLayerApplyThirdCopyServiceImpl(@Qualifier("mainSqlSessionFactory") SqlSessionFactory mainSqlSessionFactory
+            , GisSurveyLayerApplyThirdCopyMapper layerApplyThirdCopyMapper) {
         mStrClassName = "GisSurveyThirdImporter";
         mBizType = LogFlagBusiType.BUSI_GIS_SURVEY.toStrValue();
+        this.mainSqlSessionFactory = mainSqlSessionFactory;
+        this.layerApplyThirdCopyMapper = layerApplyThirdCopyMapper;
     }
 
     /**
@@ -75,7 +80,7 @@ public class GisSurveyLayerApplyThirdCopyServiceImpl implements GisSurveyLayerAp
 
                 //提取属性集合
                 List<GisSurveyPropertyValueThirdCopy> propertyValueList = layerApplyList.parallelStream()
-                        .flatMap(it -> it.getPropertyValueList().stream())
+                        .flatMap(it -> it.getPropertyValues().stream())
                         .collect(Collectors.toList());
                 //批量插入属性
                 for (GisSurveyPropertyValueThirdCopy gisSurveyPropertyValueThirdCopy : propertyValueList) {
@@ -115,4 +120,18 @@ public class GisSurveyLayerApplyThirdCopyServiceImpl implements GisSurveyLayerAp
             }
         }
     }
+
+    /**
+     * 根据任务id查询
+     *
+     * @param jobId       任务id
+     * @param pageable 分页请求
+     * @return 采集元素副表对象
+     */
+    @Override
+    public PageResponse<GisSurveyLayerApplyThirdCopy> findByJobId(String jobId, Pageable pageable) {
+        List<GisSurveyLayerApplyThirdCopy> content = layerApplyThirdCopyMapper.findByJobId(jobId, pageable);
+        long total = layerApplyThirdCopyMapper.countByJobId(jobId);
+        return new PageResponse<>(content, total);
+    }
 }

+ 11 - 0
src/main/java/com/shkpr/service/alambizplugin/dbdao/services/intef/GisSurveyLayerApplyThirdCopyService.java

@@ -1,6 +1,8 @@
 package com.shkpr.service.alambizplugin.dbdao.services.intef;
 
 import com.shkpr.service.alambizplugin.dto.GisSurveyLayerApplyThirdCopy;
+import com.shkpr.service.alambizplugin.dto.PageResponse;
+import org.springframework.data.domain.Pageable;
 
 import java.util.List;
 
@@ -19,4 +21,13 @@ public interface GisSurveyLayerApplyThirdCopyService {
      * @return 保存状态
      */
     Boolean saveAll(String jobId, List<GisSurveyLayerApplyThirdCopy> layerApplyList) throws InterruptedException;
+
+    /**
+     * 根据任务id查询
+     *
+     * @param jobId    任务id
+     * @param pageable 分页请求
+     * @return 采集元素副表对象
+     */
+    PageResponse<GisSurveyLayerApplyThirdCopy> findByJobId(String jobId, Pageable pageable);
 }

+ 1 - 1
src/main/java/com/shkpr/service/alambizplugin/dto/GisSurveyLayerApplyThirdCopy.java

@@ -79,5 +79,5 @@ public class GisSurveyLayerApplyThirdCopy {
     /**
      * 属性值
      */
-    private List<GisSurveyPropertyValueThirdCopy> propertyValueList;
+    private List<GisSurveyPropertyValueThirdCopy> propertyValues;
 }

+ 25 - 0
src/main/java/com/shkpr/service/alambizplugin/dto/PageResponse.java

@@ -0,0 +1,25 @@
+package com.shkpr.service.alambizplugin.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 一页响应数据
+ *
+ * @author 欧阳劲驰
+ * @since 1.0.0
+ */
+@Data
+@AllArgsConstructor
+public class PageResponse<T> {
+    /**
+     * 内容
+     */
+    private List<T> content;
+    /**
+     * 数量
+     */
+    private Long total;
+}

+ 29 - 6
src/main/resources/mapper/GisSurveyLayerApplyThirdCopyMapper.xml

@@ -16,10 +16,18 @@
         <result column="elevation" jdbcType="DOUBLE" property="elevation"/>
         <result column="depth" jdbcType="DOUBLE" property="depth"/>
         <result column="no" jdbcType="VARCHAR" property="no"/>
+        <collection property="propertyValues"
+                    ofType="com.shkpr.service.alambizplugin.dto.GisSurveyPropertyValueThirdCopy">
+            <!--@Table k3_gis_survey_property_value_third_copy-->
+            <id column="property_job_id" jdbcType="VARCHAR" property="jobId"/>
+            <id column="property_code" jdbcType="VARCHAR" property="code"/>
+            <id column="property_property" jdbcType="VARCHAR" property="property"/>
+            <result column="property_value" jdbcType="VARCHAR" property="value"/>
+        </collection>
     </resultMap>
 
     <insert id="save">
-        INSERT INTO k3_gis_survey_layer_apply_third_copy
+        insert into k3_gis_survey_layer_apply_third_copy
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="jobId != null">
                 job_id,
@@ -99,14 +107,29 @@
         </trim>
     </insert>
 
-    <delete id="deleteByJobId">
-        delete from k3_gis_survey_layer_apply_third_copy
-        where job_id=#{jobId,jdbcType=VARCHAR}
-    </delete>
+    <select id="findByJobId" resultMap="BaseResultMap">
+        select
+        latc.code, latc.job_id, latc.layer, latc.kind, latc.gis, latc.apply, latc.source, latc.up_node, latc.down_node,
+        latc.elevation, latc.depth, latc.no,
+        pvtc.property as property_property, pvtc.code as property_code, pvtc.job_id as property_job_id,
+        pvtc.value as property_value
+        from (
+        select code, job_id, layer, kind, gis, apply, source, up_node, down_node, elevation, depth, no
+        from k3_gis_survey_layer_apply_third_copy
+        where job_id = #{jobId,jdbcType=VARCHAR}
+        limit #{pageable.pageSize} offset #{pageable.offset}
+        ) latc
+        left join k3_gis_survey_property_value_third_copy pvtc on latc.code = pvtc.code and latc.job_id = pvtc.job_id
+    </select>
 
-    <select id="countByJobId" resultType="java.lang.Integer">
+    <select id="countByJobId" resultType="java.lang.Long">
         select count(1)
         from k3_gis_survey_layer_apply_third_copy
         where job_id=#{jobId,jdbcType=VARCHAR}
     </select>
+
+    <delete id="deleteByJobId">
+        delete from k3_gis_survey_layer_apply_third_copy
+        where job_id=#{jobId,jdbcType=VARCHAR}
+    </delete>
 </mapper>