Procházet zdrojové kódy

Merge remote-tracking branch 'origin/develop' into develop

liyang před 2 roky
rodič
revize
582f5cc2ed

+ 1 - 1
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/controller/DataMigrationController.java

@@ -74,7 +74,7 @@ public class DataMigrationController {
         try {
 
             if (migrationInfo == null || StrUtil.isBlank(migrationInfo.getTargetUrl())) {
-                throw new BusinessException(ResponseCode.A0402.getCode(), ResponseCode.A0402.getDesc());
+                throw new BusinessException(ResponseCode.A0402.toString());
             }
             InstanceUrlParam context = AdmContextUtil.toDmpContext();
             //确定集团编码 和 项目id

+ 5 - 5
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/MigrationAbstractServiceImpl.java

@@ -385,7 +385,7 @@ public class MigrationAbstractServiceImpl<T> implements IMigrationAbstractServic
             syncData.setTableName(tableName);
             syncData.setTargetId("error");
             syncData.setError(msg);
-            syncData.setSign(1);
+            syncData.setSign(3);//异常
             syncDataList.add(syncData);
         }
         return syncDataList;
@@ -432,12 +432,12 @@ public class MigrationAbstractServiceImpl<T> implements IMigrationAbstractServic
                 }
                 return DataMigrationResponse.success(JsonNodeUtils.toEntity(arrayNode, clazz, null));
             }else {
-                log.error(commonResult.getMessage());
-                return DataMigrationResponse.error(commonResult.getMessage());
+                log.error(StrUtil.format("获取中台数据失败{}",commonResult.getMessage()));
+                return DataMigrationResponse.error(StrUtil.format("获取中台数据失败{}",commonResult.getMessage()));
             }
         }catch (Exception e){
-            log.error(e.getMessage());
-            return DataMigrationResponse.error(e.getMessage());
+            log.error(StrUtil.format("获取中台数据异常{}",e.getMessage()));
+            return DataMigrationResponse.error(StrUtil.format("获取中台数据异常{}",e.getMessage()));
         }
 
     }

+ 16 - 12
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/ObjectDigitalMigration.java

@@ -84,9 +84,9 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             log.info("######################### dt_object "+objType.getCode()+"同步开始 #########################");
 
             QueryCriteria queryCriteria = getQueryCriteria(objType.getCode());
-            List<SyncData> syncDataList = startMigrateForLog(context,migrationInfo,queryCriteria);
+            startMigrateForLog(context,migrationInfo,queryCriteria);
 
-            log.info("######################### dt_object "+objType.getCode()+"同步结束 共计:"+syncDataList.size()+"条 #########################");
+            log.info("######################### dt_object "+objType.getCode()+"同步结束 #########################");
         }
         long end = System.currentTimeMillis();
         log.info("######################### dt_object 数据迁移已结束 时间:"+(end-start)+" #########################");
@@ -190,8 +190,7 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
      * 迁移数据,记录日志
      *
      */
-    private List<SyncData> startMigrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo, QueryCriteria queryCriteria) {
-        List<SyncData> syncDataList = new ArrayList<>();
+    private void startMigrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo, QueryCriteria queryCriteria) {
         List<ObjectNode> admData = getAdmData(context,queryCriteria);
 
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
@@ -205,7 +204,9 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
         String insertUrl = requestUrl(context, migrationInfo, MigrationType.CREATE.getCode());
         if(CollUtil.isEmpty(projObjectNodeList)){
             DataMigrationResponse dataMigrationResponse = insertBatch(admData, ObjectDigital.class, insertUrl);
-            syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
+            List<SyncData> syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
+            //处理并保存日志
+            super.addSynLog(context, syncDataList);
         }
         Map<String,Object> projectMap = toEntityMap(projObjectNodeList, ObjectDigital.class);
         Map<String,Object> admMap = toEntityMap(admData, ObjectDigital.class);
@@ -216,11 +217,13 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             //调用中台验证待新增的数据
             List<ObjectDigital> digitalList = validateInfoCode(insertData, context);
             //将验证结果放到日志
-            syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.CREATE.getCode()));
+            //处理并保存日志
+            super.addSynLog(context,processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.CREATE.getCode()));
 
             //插入数据
             DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectDigital.class, insertUrl);
-            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
+            //处理并保存日志
+            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
         }
 
         //差集 删除
@@ -233,7 +236,8 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
             List<String> successIds = (List<String>) dataMigrationResponse.getData();
             List<ObjectNode> delObjs = toListByIds(successIds, projObjectNodeList);
             dataMigrationResponse.setData(delObjs);
-            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
+            //处理并保存日志
+            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
         }
 
         //交集更新
@@ -246,16 +250,16 @@ public class ObjectDigitalMigration extends MigrationAbstractServiceImpl<ObjectD
                 List<ObjectNode> updateData = toList(compareData, admData);
                 //调用中台验证待更新的数据
                 List<ObjectDigital> digitalList = validateInfoCode(updateData, context);
-                //将验证结果放到日志
-                syncDataList.addAll(processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.UPDATE.getCode()));
+                //将验证结果放到日志并保存
+                super.addSynLog(context,processDataForLog(DataMigrationResponse.success(digitalList), MigrationType.UPDATE.getCode()));
 
                 //更新
                 String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
                 DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectDigital.class, updateUrl);
-                syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
+                //处理并保存日志
+                super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
             }
         }
-       return super.addSynLog(context, syncDataList);
     }
 
     /**

+ 13 - 37
adm-business/adm-middleware/src/main/java/com/persagy/proxy/migration/service/Impl/ObjectRelationMigration.java

@@ -101,36 +101,18 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         log.info("######################### dt_relation 同步开始 #########################");
         long start = System.currentTimeMillis();
         ExecutorService service = getExcecutor();
-        List<SyncData> syncDataList = new ArrayList<>();
-        List<Future<List<SyncData>>> list = new ArrayList<>();
 
         for (MiGrationRelCode miGrationRelCode: MiGrationRelCode.values()){
             log.info("######################### dt_relation "+miGrationRelCode.getCode()+"数据迁移开始 #########################");
 
-            Future<List<SyncData>> future = service.submit(new Callable<List<SyncData>>(){
+            service.submit(new Runnable() {
                 @Override
-                public List<SyncData> call() throws Exception {
-                    return startMigrateForLog(context, migrationInfo, miGrationRelCode.getCode());
+                public void run() {
+                    startMigrateForLog(context, migrationInfo, miGrationRelCode.getCode());
                 }
             });
-            list.add(future);
         }
         service.shutdown();
-        for (Future<List<SyncData>> future : list) {
-            try {
-                List<SyncData> syncDatas = future.get();
-                if(CollUtil.isNotEmpty(syncDatas)){
-                    syncDataList.addAll(syncDatas);
-                }
-
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-                log.error("######################### dt_relation 数据迁移失败"+e.getMessage());
-            } catch (ExecutionException e) {
-                e.printStackTrace();
-                log.error("######################### dt_relation 数据迁移失败"+e.getMessage());
-            }
-        }
         long end = System.currentTimeMillis();
         log.info("######################### dt_relation 同步结束 "+(end-start)+"#########################");
         return AdmResponse.success();
@@ -146,15 +128,6 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
     public String migrateForSql(InstanceUrlParam context) {
         StringBuffer sqls = new StringBuffer(" \n -- 数据迁移  dt_relation ------ \n");
         //获取已经采集的数据
-        /* StringBuffer sqls_temp = new StringBuffer();
-        for (MiGrationRelCode miGrationRelCode: MiGrationRelCode.values()){
-            QueryCriteria queryCriteria = getQueryCriteria(miGrationRelCode.getCode());
-            List<ObjectRelation> admData = getAdmData(context,queryCriteria);
-            if(CollUtil.isEmpty(admData)){
-                continue;
-            }
-        }*/
-
         String sqls_temp = "";
         ExecutorService service = getExcecutor();
         List<Future<StringBuffer>> futureList = new ArrayList<>();
@@ -345,9 +318,8 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         return dataMigrationExcels;
     }
 
-    private List<SyncData> startMigrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo, String code){
+    private void startMigrateForLog(InstanceUrlParam context, MigrationInfo migrationInfo, String code){
         QueryCriteria queryCriteria = getQueryCriteria(code);
-        List<SyncData> syncDataList = new ArrayList<>();
         List<ObjectRelation> admRelations = getAdmData(context, queryCriteria);
 
         String queryUrl = requestUrl(context, migrationInfo, MigrationType.QUERY.getCode());
@@ -359,7 +331,9 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         String insertUrl = requestUrl(context, migrationInfo, MigrationType.CREATE.getCode());
         if(CollUtil.isEmpty(projectRelations)){
             DataMigrationResponse dataMigrationResponse = insertBatch(admRelations, ObjectRelation.class, insertUrl);
-            syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
+            List<SyncData> syncDataList = processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode());
+            //处理并保存日志
+            super.addSynLog(context,syncDataList);
         }
         List<ObjectNode> objectNodeListPro = JsonNodeUtils.toListNode(projectRelations, null, null);
         Map<String,Object> projectDefineMap = toEntityMap(objectNodeListPro, ObjectRelation.class);
@@ -371,7 +345,8 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
         if(!CollUtil.isEmpty(doSubtractFromInsert)){
             List<ObjectRelation> insertData = toList(doSubtractFromInsert, admRelations);
             DataMigrationResponse dataMigrationResponse = insertBatch(insertData, ObjectRelation.class, insertUrl);
-            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
+            //处理并保存日志
+            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.CREATE.getCode()));
         }
 
         //差集 删除
@@ -381,7 +356,8 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
             String delUrl = requestUrl(context, migrationInfo, MigrationType.DELETE.getCode());
             //处理删除的数据
             DataMigrationResponse dataMigrationResponse = deleteBatch(deleteIds, delUrl);
-            syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
+            //处理并保存日志
+            super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.DELETE.getCode()));
         }
 
         //交集更新
@@ -393,10 +369,10 @@ public class ObjectRelationMigration extends MigrationAbstractServiceImpl<Object
                 List<ObjectRelation> updateData = toList(compareData, admRelations);
                 String updateUrl = requestUrl(context, migrationInfo, MigrationType.UPDATE.getCode());
                 DataMigrationResponse dataMigrationResponse = updateBatch(updateData, ObjectRelation.class, updateUrl);
-                syncDataList.addAll(processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
+                //处理并保存日志
+                super.addSynLog(context,processDataForLog(dataMigrationResponse, MigrationType.UPDATE.getCode()));
             }
         }
-        return super.addSynLog(context, syncDataList);
     }
 
 

+ 1 - 4
adm-business/adm-server/src/main/java/com/persagy/adm/server/custom/controller/AdmFileController.java

@@ -4,9 +4,8 @@ package com.persagy.adm.server.custom.controller;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.persagy.adm.server.custom.common.AdmResult;
-import com.persagy.adm.server.custom.dao.AdmFileMapper;
-import com.persagy.adm.server.custom.entity.db.AdmCad;
 import com.persagy.adm.server.custom.entity.CadFileQueryParam;
+import com.persagy.adm.server.custom.entity.db.AdmCad;
 import com.persagy.adm.server.custom.service.IAdmCadService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,8 +24,6 @@ public class AdmFileController {
 
     @Autowired
     IAdmCadService iAdmCadService;
-    @Autowired
-    AdmFileMapper admFileMapper;
 
     /**
      * CAD文件查询接口

+ 163 - 1
adm-business/adm-server/src/main/resources/db/init/data.sql

@@ -1 +1,163 @@
-SHOW TABLES;
+SHOW TABLES;
+
+truncate table `adm_define_problem_type`;
+#墙
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSWL', '墙', 'CFCSWL_LESS', '墙体缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSWL', '墙', 'CFCSWL_MORE', '墙体多余');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSWL', '墙', 'CFCSWL_MATERIAL_ERROR', '墙体材质错误');
+
+#楼板(地面)
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSFL', '楼板(地面)', 'CFCSFL_LESS', '楼板缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSFL', '楼板(地面)', 'CFCSFL_HOLE_LESS', '板洞缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSFL', '楼板(地面)', 'CFCSFL_ELEVATION_ERROR', '楼板标高错误');
+
+#柱
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSCL', '柱', 'CFCSCL_LESS', '柱缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSCL', '柱', 'CFCSCL_MORE', '柱多余');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSCL', '柱', 'CFCSCL_SECTION_SHAPE_ERROR', '柱截面形状错误');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFCSCL', '柱', 'CFCSCL_SIZE_ERROR', '柱尺寸错误');
+
+#物业空间
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'GeneralZone', '物业空间', 'GeneralZone_OUTLINE_ERROR', '重新绘制物业空间');
+
+#门
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEDR', '门', 'CFBEDR_LESS', '门缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEDR', '门', 'CFBEDR_MORE', '门多余');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEDR', '门', 'CFBEDR_PROPERTY_ERROR', '门属性错误');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEDR', '门', 'CFBEDR_POSITION_ERROR', '门位置错误');
+
+#窗
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEWN', '窗', 'CFBEWN_LESS', '窗缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEWN', '窗', 'CFBEWN_MORE', '窗多余');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEWN', '窗', 'CFBEWN_PROPERTY_ERROR', '窗属性错误');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFBEWN', '窗', 'CFBEWN_POSITION_ERROR', '窗位置错误');
+
+#停车位
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFPKPS', '停车位', 'CFPKPS_LESS', '停车位缺少');
+INSERT INTO `adm_define_problem_type`(`id`, `obj_type_code`, `obj_type_name`, `problem_type_code`, `problem_type_name`) VALUES (UUID(), 'CFPKPS', '停车位', 'CFPKPS_MORE', '停车位多余');
+
+#问题信息项记录点
+truncate table `adm_define_problem_info`;
+#墙体缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '墙体路由', 'CFCSWL_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'wallHeight', '墙体高度', 'CFCSWL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'materialType', '材质', 'CFCSWL_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "钢筋混凝土结构"}, {"code": "2", "name": "砌体结构"}, {"code": "99", "name": "其他"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'wallThick', '墙厚', 'CFCSWL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSWL_LESS', NULL, 'STRING', 0, NULL);
+
+#墙体多余
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '墙体路由', 'CFCSWL_MORE', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSWL_MORE', NULL, 'STRING', 0, NULL);
+
+#墙体材质错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '墙体路由', 'CFCSWL_MATERIAL_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'materialType', '材质', 'CFCSWL_MATERIAL_ERROR', NULL, 'ENUM', 0, '[{"code": "1", "name": "钢筋混凝土结构"}, {"code": "2", "name": "砌体结构"}, {"code": "99", "name": "其他"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'wallThick', '墙厚', 'CFCSWL_MATERIAL_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSWL_MATERIAL_ERROR', NULL, 'STRING', 0, NULL);
+
+#楼板缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '板轮廓', 'CFCSFL_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'height', '板高度(距本层标高的相对高度)', 'CFCSFL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSFL_LESS', NULL, 'STRING', 0, NULL);
+
+#板洞缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '洞口轮廓', 'CFCSFL_HOLE_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSFL_HOLE_LESS', NULL, 'STRING', 0, NULL);
+
+#楼板标高错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '板轮廓', 'CFCSFL_ELEVATION_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'height', '正确的板标高(距本层标高的相对高度)', 'CFCSFL_ELEVATION_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSFL_ELEVATION_ERROR', NULL, 'STRING', 0, NULL);
+
+#柱缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '标记缺少柱点', 'CFCSCL_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'crossShapeType', '柱样式', 'CFCSCL_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "方柱"}, {"code": "2", "name": "圆柱"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'rectangleCrossLength', '长', 'CFCSCL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'rectangleCrossWidth', '宽', 'CFCSCL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'circularCrossDiameter', '直径', 'CFCSCL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'columnLength', '柱高度', 'CFCSCL_LESS', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSCL_LESS', NULL, 'STRING', 0, NULL);
+
+#柱多余
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记多余柱点', 'CFCSCL_MORE', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSCL_MORE', NULL, 'STRING', 0, NULL);
+
+#柱截面形状错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记错误柱子', 'CFCSCL_SECTION_SHAPE_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'crossShapeType', '正确的截面形状', 'CFCSCL_SECTION_SHAPE_ERROR', NULL, 'ENUM', 0, '[{"code": "1", "name": "方柱"}, {"code": "2", "name": "圆柱"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'rectangleCrossLength', '长', 'CFCSCL_SECTION_SHAPE_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'rectangleCrossWidth', '宽', 'CFCSCL_SECTION_SHAPE_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'circularCrossDiameter', '直径', 'CFCSCL_SECTION_SHAPE_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSCL_SECTION_SHAPE_ERROR', NULL, 'STRING', 0, NULL);
+
+#柱尺寸错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记错误柱子', 'CFCSCL_SIZE_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'rectangleCrossLength', '长', 'CFCSCL_SIZE_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'rectangleCrossWidth', '宽', 'CFCSCL_SIZE_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'circularCrossDiameter', '直径', 'CFCSCL_SIZE_ERROR', 'mm', 'DOUBLE', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFCSCL_SIZE_ERROR', NULL, 'STRING', 0, NULL);
+
+#重新绘制物业空间
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '标记物业空间', 'GeneralZone_OUTLINE_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'RoomLocalName', '正确的空间名称', 'GeneralZone_OUTLINE_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'GeneralZone_OUTLINE_ERROR', NULL, 'STRING', 0, NULL);
+
+#门缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '标记缺少门位置', 'CFBEDR_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'equipmentType', '设备类', 'CFBEDR_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "门"}, {"code": "2", "name": "防火门"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'materialType', '门材质', 'CFBEDR_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "玻璃"}, {"code": "99", "name": "其他"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'openType', '开启方式', 'CFBEDR_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "卷帘门"},{"code": "2", "name": "平开门"}, {"code": "3", "name": "弹簧门"},{"code": "4", "name": "折叠门"},{"code": "5", "name": "推拉门"},{"code": "6", "name": "旋转门"},{"code": "99", "name": "其他"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'doorLeafType', '门扇类型', 'CFBEDR_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "单开"},{"code": "2", "name": "双开"},{"code": "99", "name": "其他"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'doorWidth ', '宽', 'CFBEDR_LESS', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'doorHeight ', '高', 'CFBEDR_LESS', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEDR_LESS', NULL, 'STRING', 0, NULL);
+
+#门多余
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记多余门位置', 'CFBEDR_MORE', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEDR_MORE', NULL, 'STRING', 0, NULL);
+
+#门属性错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记错误门', 'CFBEDR_PROPERTY_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'equipmentType', '正确的设备类', 'CFBEDR_PROPERTY_ERROR', NULL, 'ENUM', 0, '[{"code": "0", "name": "保持"},{"code": "1", "name": "门"}, {"code": "2", "name": "防火门"},{"code": "3", "name": "防火卷帘"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'materialType', '门材质', 'CFBEDR_PROPERTY_ERROR', NULL, 'ENUM', 0, '[{"code": "0", "name": "保持"},{"code": "1", "name": "玻璃"},{"code": "2", "name": "常规"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'openType', '开启方式', 'CFBEDR_PROPERTY_ERROR', NULL, 'ENUM', 0, '[{"code": "1", "name": "卷帘门"},{"code": "2", "name": "平开门"}, {"code": "3", "name": "弹簧门"},{"code": "4", "name": "折叠门"},{"code": "5", "name": "推拉门"},{"code": "6", "name": "旋转门"},{"code": "99", "name": "其他"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'doorWidth ', '宽', 'CFBEDR_PROPERTY_ERROR', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'doorHeight ', '高', 'CFBEDR_PROPERTY_ERROR', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEDR_PROPERTY_ERROR', NULL, 'STRING', 0, NULL);
+
+# 门位置错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'moveDirection', '移动方向', 'CFBEDR_POSITION_ERROR', NULL, 'ENUM', 0, '[{"code": "1", "name": "左"},{"code": "2", "name": "右"}, {"code": "3", "name": "上"},{"code": "4", "name": "下"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'moveDistance ', '移动距离', 'CFBEDR_POSITION_ERROR', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEDR_POSITION_ERROR', NULL, 'STRING', 0, NULL);
+
+#窗缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '标记缺少窗位置', 'CFBEWN_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'equipmentType', '正确的设备类', 'CFBEWN_LESS', NULL, 'ENUM', 0, '[{"code": "1", "name": "窗"},{"code": "2", "name": "防火窗"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'windowWidth', '宽', 'CFBEWN_LESS', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'windowHeight ', '高', 'CFBEWN_LESS', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEWN_LESS', NULL, 'STRING', 0, NULL);
+
+#窗多余
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记多余窗位置', 'CFBEWN_MORE', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEWN_MORE', NULL, 'STRING', 0, NULL);
+
+#窗属性错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记错误窗', 'CFBEWN_PROPERTY_ERROR', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'equipmentType', '正确的设备类', 'CFBEWN_PROPERTY_ERROR', NULL, 'ENUM', 0, '[{"code": "0", "name": "窗"},{"code": "1", "name": "窗"},{"code": "2", "name": "防火窗"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'windowType', '正确的窗样式', 'CFBEWN_PROPERTY_ERROR', NULL, 'ENUM', 0, '[{"code": "0", "name": "保持"},{"code": "1", "name": "平开(推拉)窗"},{"code": "2", "name": "飘窗"},{"code": "3", "name": "百叶窗"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'windowWidth', '宽', 'CFBEWN_PROPERTY_ERROR', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'windowHeight ', '高', 'CFBEWN_PROPERTY_ERROR', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEWN_PROPERTY_ERROR', NULL, 'STRING', 0, NULL);
+
+#窗位置错误
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'moveDirection', '移动方向', 'CFBEWN_POSITION_ERROR', NULL, 'ENUM', 0, '[{"code": "1", "name": "左"},{"code": "2", "name": "右"}, {"code": "3", "name": "上"},{"code": "4", "name": "下"}]');
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'moveDistance ', '移动距离', 'CFBEWN_POSITION_ERROR', 'mm', 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFBEWN_POSITION_ERROR', NULL, 'STRING', 0, NULL);
+
+#停车位缺少
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'coordinate', '标记车位位置', 'CFPKPS_LESS', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFPKPS_LESS', NULL, 'STRING', 0, NULL);
+
+#停车位多余
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'objectId', '标记车位', 'CFPKPS_MORE', NULL, 'STRING', 0, NULL);
+INSERT INTO `adm_define_problem_info`(`id`, `code`, `name`, `problem_type_code`, `unit`, `data_type`, `is_multiple`, `data_source`) VALUES (UUID(), 'senceImg', '拍摄照片', 'CFPKPS_MORE', NULL, 'STRING', 0, NULL);