Browse Source

实现字典管理-信息点排序的需求

lijie 3 years ago
parent
commit
1b49d6aab0

+ 4 - 0
dmp-model/src/main/java/com/persagy/dmp/rwd/model/FuncidDefModel.java

@@ -37,6 +37,10 @@ public class FuncidDefModel {
     private String note;
     private Boolean subFlag;
     private Boolean weakPoint;
+    /**通用信息点标记,1-通用信息点,2-个性化信息点*/
+    private String shareType;
+    /**逻辑排序序号*/
+    private Integer orderSeq;
 
     private Integer isUsed;//状态 0.历史版本 1.使用中
     private String version;//版本

+ 4 - 2
dmp-rwd-datautils/src/main/resources/application-dev.yml

@@ -1,10 +1,12 @@
 persagy:
   dmp:
     rwd:
-      server: http://39.102.54.110:8082
+      #server: http://39.102.54.110:8082
+      server: http://192.168.64.17:8082
     rwdedit:
       #server: http://39.102.54.110:8088
-      server: http://localhost:8838
+      server: http://192.168.64.17:8838
+      #server: http://localhost:8838
 #spring:
 #  datasource:
 #    url: jdbc:mysql://39.102.54.110:9005/dmp_test?useUnicode=true&characterEncoding=utf-8&mysqlEncoding=utf8&useSSL=false

+ 936 - 0
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/datautils/ImportFuncidForRwdEdit.java

@@ -0,0 +1,936 @@
+package com.persagy.dmp.rwd.datautils;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.common.criteria.JacksonCriteria;
+import com.persagy.common.date.DateUtils;
+import com.persagy.common.json.JacksonMapper;
+import com.persagy.dmp.common.http.HttpUtils;
+import com.persagy.dmp.rwd.dic.DataTypeMapping;
+import com.persagy.dmp.rwd.dic.ExcelUtils;
+import com.persagy.dmp.rwd.dic.FuncidDefModel;
+import com.persagy.dmp.rwd.dic.FuncidUtils;
+import com.persagy.dmp.rwd.enums.FuncidDataType;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.*;
+import java.text.DateFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeFormatterBuilder;
+import java.util.*;
+
+/**
+ * @author: yaoll
+ * @date: 2020-11-30
+ * @verison: 1.0
+ */
+@Slf4j
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class ImportFuncidForRwdEdit {
+
+    private String basepath = "D:\\资料\\工作资料\\原型图\\数据中台\\数据字典数据";
+
+    private String outPath = "D:/资料/工作资料/原型图/数据中台/out/funcid-" + DateUtils.format(new Date()) + ".dml.sql";
+
+    private String VERSION = "3.1.7";
+
+    @Autowired
+    private HttpUtils httpUtils;
+
+    @Value("${persagy.dmp.rwdedit.server}")
+    private String rwdeditServer;
+
+    @Before
+    public void init() {
+        FuncidUtils.httpUtils = httpUtils;
+        FuncidUtils.rwdeditServer = rwdeditServer;
+    }
+
+    @Test
+    public void importFuncidDef() throws IOException {
+        List<FuncidDefModel> funcids = new LinkedList<>();
+        //importBase(funcids);
+        importSpace(funcids);
+        importSystem(funcids);
+        importEquipment(funcids);
+        importComponent(funcids);
+        importVirtual(funcids);
+        importTool(funcids);
+        importMaterial(funcids);
+
+
+    }
+
+    private void writeFuncSqlToFile(List<FuncidDefModel> funcids,String classCode) throws IOException {
+        FileWriter writer = new FileWriter(outPath,true);
+        writer.append("delete from rwd_def_funcid where class_code='"+classCode+"';");
+        writer.append("\n");
+        writer.append("commit;");
+        writer.append("\n");
+        for (FuncidDefModel item : funcids) {
+            writer.append(toSql(item));
+            writer.append("\n");
+        }
+        writer.append("commit;");
+        writer.append("\n");
+        writer.flush();
+        writer.close();
+    }
+
+
+    private void importBase(List<FuncidDefModel> funcids) throws IOException {
+        funcids.addAll(readSheet("system", "/附表6-机电精装类对象通用属性点表.xlsx", "系统类"));
+        funcids.addAll(readSheet("equipment", "/附表6-机电精装类对象通用属性点表.xlsx", "设备类"));
+        funcids.addAll(readSheet("component", "/附表6-机电精装类对象通用属性点表.xlsx", "部件类"));
+
+    }
+
+    private String toSql(FuncidDefModel model) {
+        StringBuilder buff = new StringBuilder("");
+        buff.append("insert into rwd_def_funcid ");
+        buff.append("(id,code,orig_code,name,alias_code,alias_name,class_code,type,group_code,project_id,category,");
+        buff.append("first_tag,second_tag,priority,input_mode,unit,data_type,orig_data_type,is_multiple,is_region,formater,data_source,orig_data_source,note,sub_flag,weak_point,");
+        buff.append("is_used,version,last_update_time,share_type,order_seq) \n");
+        buff.append("values (");
+        buff.append("'").append(UUID.randomUUID().toString().replace("-", "")).append("',"); // id
+        buff.append("'").append(model.getCode()).append("',"); // code
+        buff.append("'").append(model.getOrigCode()).append("',"); // orig_code
+        buff.append("'").append(model.getName()).append("',"); // name
+        buff.append("'").append(model.getAliasCode()).append("',"); // alias_code
+        buff.append("'").append(model.getAliasName()).append("',"); // alias_name
+        buff.append("'").append(model.getClassCode()).append("',"); // class_code
+        buff.append("'").append(model.getType()).append("',"); // type
+        buff.append("'").append(model.getGroupCode()).append("',"); // group_code
+        buff.append("'").append(model.getProjectId()).append("',"); // project_id
+        buff.append("'").append(model.getCategory().name()).append("',"); // category
+        if (model.getFirstTag() != null) {
+            buff.append("'").append(model.getFirstTag()).append("',"); // first_tag
+        } else {
+            buff.append("null,");
+        }
+        if (model.getSecondTag() != null) {
+            buff.append("'").append(model.getSecondTag()).append("',"); // second_tag
+        } else {
+            buff.append("null,");
+        }
+        if (model.getPriority() != null) {
+            buff.append("'").append(model.getPriority()).append("',"); // priority
+        } else {
+            buff.append("null,");
+        }
+        if (model.getInputMode() != null) {
+            buff.append("'").append(model.getInputMode()).append("',"); // input_mode
+        } else {
+            buff.append("null,");
+        }
+        if (model.getUnit() != null) {
+            buff.append("'").append(model.getUnit()).append("',"); // unit
+        } else {
+            buff.append("null,");
+        }
+
+        buff.append("'").append(model.getDataType().name()).append("',"); // data_type
+        buff.append("'").append(model.getOrigDataType()).append("',"); // orig_data_type
+        buff.append(model.getIsMultiple() ? 1 : 0).append(","); // is_multiple
+        buff.append(model.getIsRegion() ? 1 : 0).append(","); // is_region
+        if (model.getFormater() != null) {
+            buff.append("'").append(model.getFormater()).append("',"); // formater
+        } else {
+            buff.append("null,");
+        }
+        if (model.getDataSource() != null) {
+            buff.append("'").append(model.getDataSource().toString()).append("',"); // data_source
+        } else {
+            buff.append("null,");
+        }
+        if (model.getOrigDataSource() != null) { // orig_data_source
+            buff.append("'").append(model.getOrigDataSource()).append("',"); // data_source
+        } else {
+            buff.append("null,");
+        }
+        if (model.getNote() != null) {
+            buff.append("'").append(model.getNote()).append("',"); // note}
+        } else {
+            buff.append("null,");
+        }
+        buff.append(model.getSubFlag() ? 1 : 0).append(","); // sub_flag
+        buff.append(model.getWeakPoint() ? 1 : 0).append(","); // weak_point
+        buff.append(1).append(","); // is_used
+        buff.append("'").append(VERSION).append("',"); // version
+        buff.append("'").append(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now())).append("',"); // last_update_time
+        if (null!=model.getShareType()){// share_type
+            buff.append("'").append(model.getShareType()).append("',");
+        }else {
+            buff.append("null,");
+        }
+        if (null!=model.getOrderSeq()){// order_seq
+            buff.append(model.getOrderSeq()).append(",");
+        }else {
+            buff.append("null,");
+        }
+        buff.deleteCharAt(buff.length() - 1);
+        buff.append(");");
+        return buff.toString();
+    }
+
+    private FuncidDefModel toFuncidDefModel(CacheModel model) {
+        FuncidDefModel funcid = new FuncidDefModel();
+        funcid.setGroupCode("0");
+        funcid.setProjectId("0");
+        funcid.setType("common");
+        funcid.setShareType(model.shareType);
+        funcid.setOrderSeq(model.orderSeq);
+        funcid.setClassCode(model.classCode);
+        funcid.setFirstTag(model.firstTag != null ? model.firstTag.replace("\n", "") : null);
+        funcid.setSecondTag(model.secondTag != null ? model.secondTag.replace("\n", "") : null);
+        funcid.setCode(model.origCode.substring(0, 1).toLowerCase() + model.origCode.substring(1));
+        funcid.setOrigCode(model.origCode);
+        funcid.setAliasCode(model.origCode);
+        if (model.name != null) {
+            funcid.setName(model.name.replace("\n", ""));
+            funcid.setAliasName(model.name.replace("\n", ""));
+        } else {
+            log.error("funcid name is null : {}", JacksonMapper.toSimpleJson(funcid));
+        }
+        funcid.setUnit(model.unit);
+        funcid.setPriority(model.priority);
+        funcid.setInputMode(model.inputMode);
+        funcid.setOrigDataType(model.origDataType);
+        funcid.setSubFlag(false);
+        funcid.setWeakPoint(false);
+        FuncidDefModel dataType = DataTypeMapping.getDataType(model.origDataType);
+        if (dataType != null) {
+            funcid.setCategory(dataType.getCategory());
+            funcid.setDataType(dataType.getDataType());
+            funcid.setIsMultiple(dataType.getIsMultiple());
+            funcid.setIsRegion(dataType.getIsRegion());
+        } else {
+            return null;
+        }
+        funcid.setSubFlag(false);
+        if (model.remark != null) {
+            funcid.setNote(model.remark.replace("\n", ""));
+            if (model.remark != null) {
+                if (model.remark.contains("YYYYMMDD-YYYYMMDD")) {
+                    funcid.setFormater("YYYYMMDD-YYYYMMDD");
+                }else if (model.remark.contains("YYYYMMDD")) {
+                    funcid.setFormater("YYYYMMDD");
+                }else if (model.remark.contains("YYYY")) {
+                    funcid.setFormater("YYYY");
+                }
+            }
+        }
+
+        if (model.origDataSource != null) {
+            funcid.setOrigDataSource(model.origDataSource.replace("\n", "nn")); // 去掉换行符
+        }
+        if (funcid.getDataType() == FuncidDataType.ENUM || funcid.getDataType() == FuncidDataType.MENUM || funcid.getDataType() == FuncidDataType.BOOLEAN) {
+            funcid.setDataSource(FuncidUtils.transEnumDataSource(model.origDataSource)); // 解析datasource
+        }
+        return funcid;
+    }
+
+    private void importSpace(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("project", "/附表5-建筑空间类对象属性点表/附表5.1-项目.xlsx", "项目","2");
+        analysisSheetDataAndWriteToFile("building", "/附表5-建筑空间类对象属性点表/附表5.2-建筑.xlsx", "建筑","2");
+        analysisSheetDataAndWriteToFile("floor", "/附表5-建筑空间类对象属性点表/附表5.3-楼层.xlsx", "楼层","2");
+        analysisSheetDataAndWriteToFile("shaft", "/附表5-建筑空间类对象属性点表/附表5.4-竖井.xlsx", "竖井","2");
+        analysisSheetDataAndWriteToFile("GeneralZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "CMZ物业分区","2");
+        analysisSheetDataAndWriteToFile("PowerSupplyZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "PSZ供电分区","2");
+        analysisSheetDataAndWriteToFile("LightingZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "LTZ照明分区","2");
+        analysisSheetDataAndWriteToFile("NetworkZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "NWZ网络分区","2");
+        analysisSheetDataAndWriteToFile("AirConditioningZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "ACZ空调分区","2");
+        analysisSheetDataAndWriteToFile("HeatingZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "HTZ采暖分区","2");
+        analysisSheetDataAndWriteToFile("CleanZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "CLZ洁净分区","2");
+        analysisSheetDataAndWriteToFile("DomesticWaterSupplyZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "DWZ生活给水分区","2");
+        analysisSheetDataAndWriteToFile("FireZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "FRZ防火分区","2");
+        analysisSheetDataAndWriteToFile("SecurityZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "SCZ安防分区","2");
+        analysisSheetDataAndWriteToFile("TenantZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "TNZ租户分区","2");
+        analysisSheetDataAndWriteToFile("FunctionZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "FCZ功能分区","2");
+        analysisSheetDataAndWriteToFile("PassengerFlowZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "PFZ客流分区","2");
+        analysisSheetDataAndWriteToFile("EvacuateZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "EVZ疏散分区","2");
+        analysisSheetDataAndWriteToFile("EnvironmentZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "ENZ环境分区","2");
+        analysisSheetDataAndWriteToFile("OtherZone", "/附表5-建筑空间类对象属性点表/附表5.5-空间.xlsx", "OTZ其他分区","2");
+    }
+
+    private void analysisSheetDataAndWriteToFile(String classCode, String fileName, String sheetName,String shareType) throws IOException {
+        // 1.解析Sheet数据
+        List<FuncidDefModel> funcids = new ArrayList<>(readSheet(classCode, fileName, sheetName, shareType));
+        // 2.写入文件
+        writeFuncSqlToFile(funcids,classCode);
+    }
+
+    private void importSystem(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("system", "/附表6-机电精装类对象通用属性点表.xlsx", "系统类","1");
+        analysisSheetDataAndWriteToFile("SETD", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "TD变配电系统 ","2");
+        analysisSheetDataAndWriteToFile("SEDG", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "DG柴发机房系统","2");
+        analysisSheetDataAndWriteToFile("SEBP", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "BP备用电源系统","2");
+        analysisSheetDataAndWriteToFile("SEEP", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "EP机房动力系统","2");
+        analysisSheetDataAndWriteToFile("SEOP", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "OP室外动力系统","2");
+        analysisSheetDataAndWriteToFile("SEEL", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "EL电梯系统","2");
+        analysisSheetDataAndWriteToFile("SELT", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "LT照明系统","2");
+        analysisSheetDataAndWriteToFile("SETP", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "TP租户配电系统","2");
+        analysisSheetDataAndWriteToFile("SELP", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "LP雷电防护系统","2");
+        analysisSheetDataAndWriteToFile("SESD", "/附表7-系统类对象分类属性点表/附表7.1-强电专业系统.xlsx", "SD强电人防系统","2");
+        analysisSheetDataAndWriteToFile("WEBA", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "BA建筑设备控制系统","2");
+        analysisSheetDataAndWriteToFile("WETV", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "TV电视信号系统","2");
+        analysisSheetDataAndWriteToFile("WEMI", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "MI多媒体信息发布系统  ","2");
+        analysisSheetDataAndWriteToFile("WEWT", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "WT无线对讲系统   ","2");
+        analysisSheetDataAndWriteToFile("WEGM", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "GM车库管理系统","2");
+        analysisSheetDataAndWriteToFile("WELN", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "LN本地网络系统","2");
+        analysisSheetDataAndWriteToFile("WEMA", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "MA移动通信信号放大系统","2");
+        analysisSheetDataAndWriteToFile("WETM", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "TM租户管理系统","2");
+        analysisSheetDataAndWriteToFile("WEPM", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "PM客流管理系统","2");
+        analysisSheetDataAndWriteToFile("WEEM", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "EM能源管理系统","2");
+        analysisSheetDataAndWriteToFile("WEMM", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "MM气象监测系统","2");
+        analysisSheetDataAndWriteToFile("WECM", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "CM收银管理系统","2");
+        analysisSheetDataAndWriteToFile("WEOF", "/附表7-系统类对象分类属性点表/附表7.2-弱电专业系统.xlsx", "OF办公系统","2");
+        analysisSheetDataAndWriteToFile("ACCC", "/附表7-系统类对象分类属性点表/附表7.3-空调专业系统.xlsx", "CC中央供冷系统 ","2");
+        analysisSheetDataAndWriteToFile("ACCH", "/附表7-系统类对象分类属性点表/附表7.3-空调专业系统.xlsx", "CH中央供热系统","2");
+        analysisSheetDataAndWriteToFile("ACAT", "/附表7-系统类对象分类属性点表/附表7.3-空调专业系统.xlsx", "AT空调末端系统","2");
+        analysisSheetDataAndWriteToFile("ACVT", "/附表7-系统类对象分类属性点表/附表7.3-空调专业系统.xlsx", "VT通风系统","2");
+        analysisSheetDataAndWriteToFile("ACKL", "/附表7-系统类对象分类属性点表/附表7.3-空调专业系统.xlsx", "KL厨房排油烟系统","2");
+        analysisSheetDataAndWriteToFile("ACAD", "/附表7-系统类对象分类属性点表/附表7.3-空调专业系统.xlsx", "AD空调人防系统","2");
+        analysisSheetDataAndWriteToFile("WSDW", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "DW生活给水系统","2");
+        analysisSheetDataAndWriteToFile("WSDH", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "DH生活热水系统","2");
+        analysisSheetDataAndWriteToFile("WSRW", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "RW中水系统","2");
+        analysisSheetDataAndWriteToFile("WSDD", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "DD直饮水系统","2");
+        analysisSheetDataAndWriteToFile("WSST", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "ST污水处理系统","2");
+        analysisSheetDataAndWriteToFile("WSSI", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "SI喷灌系统","2");
+        analysisSheetDataAndWriteToFile("WSWS", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "WS水景系统","2");
+        analysisSheetDataAndWriteToFile("WSWP", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "WP泳池系统","2");
+        analysisSheetDataAndWriteToFile("WSFG", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "FG燃气系统","2");
+        analysisSheetDataAndWriteToFile("WSWH", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "WH给排水电伴热系统","2");
+        analysisSheetDataAndWriteToFile("WSWD", "/附表7-系统类对象分类属性点表/附表7.4-给排水专业系统.xlsx", "WD给排水人防系统","2");
+        analysisSheetDataAndWriteToFile("FFFA", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "FA火灾报警系统","2");
+        analysisSheetDataAndWriteToFile("FFGA", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "GA燃气报警系统","2");
+        analysisSheetDataAndWriteToFile("FFEA", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "EA漏电火灾报警系统","2");
+        analysisSheetDataAndWriteToFile("FFBM", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "BM紧急广播及背景音乐系统","2");
+        analysisSheetDataAndWriteToFile("FFFS", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "FS消防给水系统","2");
+        analysisSheetDataAndWriteToFile("FFGE", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "GE气体灭火系统","2");
+        analysisSheetDataAndWriteToFile("FFFE", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "FE灭火器系统","2");
+        analysisSheetDataAndWriteToFile("FFSC", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "SC防排烟系统","2");
+        analysisSheetDataAndWriteToFile("FFFR", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "FR防火卷帘门系统","2");
+        analysisSheetDataAndWriteToFile("FFEE", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "EE应急照明及疏散指示系统","2");
+        analysisSheetDataAndWriteToFile("FFKE", "/附表7-系统类对象分类属性点表/附表7.5-消防专业系统.xlsx", "KE厨房自动灭火系统","2");
+        analysisSheetDataAndWriteToFile("SPVS", "/附表7-系统类对象分类属性点表/附表7.6-安防专业系统.xlsx", "VS视频监控系统","2");
+        analysisSheetDataAndWriteToFile("SPNP", "/附表7-系统类对象分类属性点表/附表7.6-安防专业系统.xlsx", "NP巡更系统","2");
+        analysisSheetDataAndWriteToFile("SPEG", "/附表7-系统类对象分类属性点表/附表7.6-安防专业系统.xlsx", "EG门禁系统","2");
+        analysisSheetDataAndWriteToFile("SPIA", "/附表7-系统类对象分类属性点表/附表7.6-安防专业系统.xlsx", "IA入侵报警系统","2");
+    }
+
+    private void importEquipment(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("equipment", "/附表6-机电精装类对象通用属性点表.xlsx", "设备类","1");
+        analysisSheetDataAndWriteToFile("SETDTF", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDTF变压器","2");
+        analysisSheetDataAndWriteToFile("SETDHS", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDHS高压开关柜","2");
+        analysisSheetDataAndWriteToFile("SETDLS", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDLS低压开关柜","2");
+        analysisSheetDataAndWriteToFile("SETDDS", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDDS直流屏","2");
+        analysisSheetDataAndWriteToFile("SETDIV", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDIV逆变器","2");
+        analysisSheetDataAndWriteToFile("SETDBP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDBP变配电母线插接箱","2");
+        analysisSheetDataAndWriteToFile("SETDCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.1-变配电系统设备.xlsx", "TDCU变配电控制模块","2");
+        analysisSheetDataAndWriteToFile("SESDCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.10-强电人防系统设备.xlsx", "SDCU强电人防控制模块","2");
+        analysisSheetDataAndWriteToFile("SEDGDG", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.2-柴发机房系统设备.xlsx", "DGDG柴油发电机","2");
+        analysisSheetDataAndWriteToFile("SEDGDT", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.2-柴发机房系统设备.xlsx", "DGDT柴发储油箱","2");
+        analysisSheetDataAndWriteToFile("SEDGPP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.2-柴发机房系统设备.xlsx", "DGPP柴发输油泵","2");
+        analysisSheetDataAndWriteToFile("SEDGJH", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.2-柴发机房系统设备.xlsx", "DGJH柴发水套加热器","2");
+        analysisSheetDataAndWriteToFile("SEDGEP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.2-柴发机房系统设备.xlsx", "DGEP柴发尾气净化装置","2");
+        analysisSheetDataAndWriteToFile("SEDGCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.2-柴发机房系统设备.xlsx", "DGCU柴发控制模块","2");
+        analysisSheetDataAndWriteToFile("SEBPBP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.3-备用电源系统设备.xlsx", "BPBP备用电源","2");
+        analysisSheetDataAndWriteToFile("SEBPSP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.3-备用电源系统设备.xlsx", "BPSP太阳能电池板","2");
+        analysisSheetDataAndWriteToFile("SEBPWG", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.3-备用电源系统设备.xlsx", "BPWG风力发电装置","2");
+        analysisSheetDataAndWriteToFile("SEBPHT", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.3-备用电源系统设备.xlsx", "BPHT备用电源主机","2");
+        analysisSheetDataAndWriteToFile("SEBPCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.3-备用电源系统设备.xlsx", "BPCU备用电源控制模块","2");
+        analysisSheetDataAndWriteToFile("SEEPCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.4-机房动力系统设备.xlsx", "EPCU机房动力控制模块","2");
+        analysisSheetDataAndWriteToFile("SEOPCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.5-室外动力系统设备.xlsx", "OPCU室外动力控制模块","2");
+        analysisSheetDataAndWriteToFile("SEELEL", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.6-电梯系统设备.xlsx", "ELEL直梯","2");
+        analysisSheetDataAndWriteToFile("SEELES", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.6-电梯系统设备.xlsx", "ELES扶梯","2");
+        analysisSheetDataAndWriteToFile("SEELCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.6-电梯系统设备.xlsx", "ELCU电梯控制模块","2");
+        analysisSheetDataAndWriteToFile("SEELET", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.6-电梯系统设备.xlsx", "ELET电梯曳引机","2");
+        analysisSheetDataAndWriteToFile("SELTLT", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.7-照明系统设备.xlsx", "LTLT照明灯具","2");
+        analysisSheetDataAndWriteToFile("SELTCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.7-照明系统设备.xlsx", "LTCU照明控制模块","2");
+        analysisSheetDataAndWriteToFile("SELTCP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.7-照明系统设备.xlsx", "LTCP照明控制面板","2");
+        analysisSheetDataAndWriteToFile("SELTCC", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.7-照明系统设备.xlsx", "LTCC照明回路(预计330后删除)","2");
+        analysisSheetDataAndWriteToFile("SELTLG", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.7-照明系统设备.xlsx", "LTLG照明灯组(预计330后删除)","2");
+        analysisSheetDataAndWriteToFile("SETPCU", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.8-租户配电系统设备.xlsx", "TPCU租户配电控制模块","2");
+        analysisSheetDataAndWriteToFile("SETPBP", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.8-租户配电系统设备.xlsx", "TPBP租户母线插接箱","2");
+        analysisSheetDataAndWriteToFile("SELPAT", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.9-雷电防护系统设备.xlsx", "LPAT接闪器","2");
+        analysisSheetDataAndWriteToFile("SELPDL", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.9-雷电防护系统设备.xlsx", "LPDL引下线","2");
+        analysisSheetDataAndWriteToFile("SELPGD", "/附表8-设备类对象分类属性点表/附表8.1-强电专业设备/附表8.1.9-雷电防护系统设备.xlsx", "LPGD接地装置","2");
+        analysisSheetDataAndWriteToFile("WEBAHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BAHT楼控主机","2");
+        analysisSheetDataAndWriteToFile("WEBACU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BACU楼控控制模块","2");
+        analysisSheetDataAndWriteToFile("WEBADC", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BADC楼控数据采集器","2");
+        analysisSheetDataAndWriteToFile("WEBAPS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BAPS楼控电源供应器","2");
+        analysisSheetDataAndWriteToFile("WEBAEC", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BAEC楼控机柜","2");
+        analysisSheetDataAndWriteToFile("WEBADS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BADS楼控显示屏","2");
+        analysisSheetDataAndWriteToFile("WEBACP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.1-建筑设备控制系统设备.xlsx", "BACP楼控控制面板","2");
+        analysisSheetDataAndWriteToFile("WEEMHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.10-能源管理系统设备.xlsx", "EMHT能源管理主机","2");
+        analysisSheetDataAndWriteToFile("WEEMCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.10-能源管理系统设备.xlsx", "EMCU能源管理控制模块","2");
+        analysisSheetDataAndWriteToFile("WEMMHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.11-气象监测系统设备.xlsx", "MMHT气象监测主机","2");
+        analysisSheetDataAndWriteToFile("WEMMCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.11-气象监测系统设备.xlsx", "MMCU气象监测控制模块","2");
+        analysisSheetDataAndWriteToFile("WEMMMS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.11-气象监测系统设备.xlsx", "MMMS气象监测站","2");
+        analysisSheetDataAndWriteToFile("WECMHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.12-收银管理系统设备.xlsx", "CMHT收银管理主机","2");
+        analysisSheetDataAndWriteToFile("WECMCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.12-收银管理系统设备.xlsx", "CMCU收银管理控制模块","2");
+        analysisSheetDataAndWriteToFile("WEOFTL", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFTL办公电话","2");
+        analysisSheetDataAndWriteToFile("WEOFCM", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFCM办公摄像头","2");
+        analysisSheetDataAndWriteToFile("WEOFCP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFCP办公控制面板","2");
+        analysisSheetDataAndWriteToFile("WEOFCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFCU办公控制模块","2");
+        analysisSheetDataAndWriteToFile("WEOFDS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFDS办公显示屏","2");
+        analysisSheetDataAndWriteToFile("WEOFFE", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFFE办公前端设备","2");
+        analysisSheetDataAndWriteToFile("WEOFHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFHT办公主机","2");
+        analysisSheetDataAndWriteToFile("WEOFSP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFSP办公扬声器","2");
+        analysisSheetDataAndWriteToFile("WEOFCK", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFCK办公时钟","2");
+        analysisSheetDataAndWriteToFile("WEOFPT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFPT办公打印机","2");
+        analysisSheetDataAndWriteToFile("WEOFMP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFMP办公话筒","2");
+        analysisSheetDataAndWriteToFile("WEOFPJ", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFPJ办公投影仪","2");
+        analysisSheetDataAndWriteToFile("WEOFPS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFPS办公投影幕","2");
+        analysisSheetDataAndWriteToFile("WEOFTV", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.13-办公系统设备.xlsx", "OFTV办公电视机","2");
+        analysisSheetDataAndWriteToFile("WETVFE", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.2-电视信号系统设备.xlsx", "TVFE电视前端设备","2");
+        analysisSheetDataAndWriteToFile("WETVTV", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.2-电视信号系统设备.xlsx", "TVTV电视机","2");
+        analysisSheetDataAndWriteToFile("WETVCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.2-电视信号系统设备.xlsx", "TVCU电视信号控制模块","2");
+        analysisSheetDataAndWriteToFile("WEMIHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.3-多媒体信息发布系统设备.xlsx", "MIHT多媒体主机","2");
+        analysisSheetDataAndWriteToFile("WEMIPL", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.3-多媒体信息发布系统设备.xlsx", "MIPL播放器","2");
+        analysisSheetDataAndWriteToFile("WEMIDS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.3-多媒体信息发布系统设备.xlsx", "MIDS多媒体显示屏","2");
+        analysisSheetDataAndWriteToFile("WEMIST", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.3-多媒体信息发布系统设备.xlsx", "MIST自助终端机","2");
+        analysisSheetDataAndWriteToFile("WEMIFE", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.3-多媒体信息发布系统设备.xlsx", "MIFE多媒体前端设备","2");
+        analysisSheetDataAndWriteToFile("WEMICU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.3-多媒体信息发布系统设备.xlsx", "MICU多媒体控制模块","2");
+        analysisSheetDataAndWriteToFile("WEWTWT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.4-无线对讲系统设备.xlsx", "WTWT对讲机","2");
+        analysisSheetDataAndWriteToFile("WEWTRS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.4-无线对讲系统设备.xlsx", "WTRS中继台","2");
+        analysisSheetDataAndWriteToFile("WEWTCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.4-无线对讲系统设备.xlsx", "WTCU无线对讲控制模块","2");
+        analysisSheetDataAndWriteToFile("WEGMHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMHT车库主机","2");
+        analysisSheetDataAndWriteToFile("WEGMCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMCU车库控制模块","2");
+        analysisSheetDataAndWriteToFile("WEGMCM", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMCM车库摄像头","2");
+        analysisSheetDataAndWriteToFile("WEGMDS", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMDS车库显示屏","2");
+        analysisSheetDataAndWriteToFile("WEGMGT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMGT进出闸机","2");
+        analysisSheetDataAndWriteToFile("WEGMMP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMMP机械车位","2");
+        analysisSheetDataAndWriteToFile("WEGMCP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMCP充电桩","2");
+        analysisSheetDataAndWriteToFile("WEGMPD", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMPD车位检测器","2");
+        analysisSheetDataAndWriteToFile("WEGMGL", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMGL车位引导灯","2");
+        analysisSheetDataAndWriteToFile("WEGMLP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMLP升降防撞柱","2");
+        analysisSheetDataAndWriteToFile("WEGMPL", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.5-车库管理系统设备.xlsx", "GMPL车库地锁","2");
+        analysisSheetDataAndWriteToFile("WELNHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNHT服务器主机","2");
+        analysisSheetDataAndWriteToFile("WELNRT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNRT路由器","2");
+        analysisSheetDataAndWriteToFile("WELNEX", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNEX交换机","2");
+        analysisSheetDataAndWriteToFile("WELNHF", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNHF硬件防火墙","2");
+        analysisSheetDataAndWriteToFile("WELNAC", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNAC无线控制器","2");
+        analysisSheetDataAndWriteToFile("WELNAP", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNAP无线AP点位","2");
+        analysisSheetDataAndWriteToFile("WELNCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.6-本地网络系统设备.xlsx", "LNCU网络控制模块","2");
+        analysisSheetDataAndWriteToFile("WEMAHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.7-移动通信信号放大系统设备.xlsx", "MAHT移动通信信号放大主机","2");
+        analysisSheetDataAndWriteToFile("WEMAAT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.7-移动通信信号放大系统设备.xlsx", "MAAT移动通信信号放大天线","2");
+        analysisSheetDataAndWriteToFile("WEMACU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.7-移动通信信号放大系统设备.xlsx", "MACU移动通信信号放大控制模块","2");
+        analysisSheetDataAndWriteToFile("WETMHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.8-租户管理系统设备.xlsx", "TMHT租户管理主机","2");
+        analysisSheetDataAndWriteToFile("WETMCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.8-租户管理系统设备.xlsx", "TMCU租户管理控制模块","2");
+        analysisSheetDataAndWriteToFile("WEPMHT", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.9-客流管理系统设备.xlsx", "PMHT客流管理主机","2");
+        analysisSheetDataAndWriteToFile("WEPMCU", "/附表8-设备类对象分类属性点表/附表8.2-弱电专业设备/附表8.2.9-客流管理系统设备.xlsx", "PMCU客流管理控制模块","2");
+        analysisSheetDataAndWriteToFile("ACCCCC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCCC离心式冷水机组","2");
+        analysisSheetDataAndWriteToFile("ACCCSC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCSC螺杆式冷水机组","2");
+        analysisSheetDataAndWriteToFile("ACCCPC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCPC活塞式冷水机组","2");
+        analysisSheetDataAndWriteToFile("ACCCAC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCAC吸收式冷水机组","2");
+        analysisSheetDataAndWriteToFile("ACCCAH", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCAH空调空气源热泵","2");
+        analysisSheetDataAndWriteToFile("ACCCWH", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCWH空调水源热泵","2");
+        analysisSheetDataAndWriteToFile("ACCCGH", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCGH空调地源热泵","2");
+        analysisSheetDataAndWriteToFile("ACCCOT", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCOT冷却塔","2");
+        analysisSheetDataAndWriteToFile("ACCCCP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCCP供冷冷冻水泵","2");
+        analysisSheetDataAndWriteToFile("ACCCOP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCOP供冷冷却水泵","2");
+        analysisSheetDataAndWriteToFile("ACCCGP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCGP供冷乙二醇泵","2");
+        analysisSheetDataAndWriteToFile("ACCCFP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCFP供冷补水泵","2");
+        analysisSheetDataAndWriteToFile("ACCCCF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCCF供冷定压补水装置","2");
+        analysisSheetDataAndWriteToFile("ACCCPT", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCPT供冷压力罐","2");
+        analysisSheetDataAndWriteToFile("ACCCHE", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCHE供冷换热器","2");
+        analysisSheetDataAndWriteToFile("ACCCVD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCVD供冷真空脱气机","2");
+        analysisSheetDataAndWriteToFile("ACCCCD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCCD供冷水加药装置","2");
+        analysisSheetDataAndWriteToFile("ACCCSD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCSD供冷软化水装置","2");
+        analysisSheetDataAndWriteToFile("ACCCTU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCTU供冷全程水处理仪","2");
+        analysisSheetDataAndWriteToFile("ACCCST", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCST供冷蓄冷热槽","2");
+        analysisSheetDataAndWriteToFile("ACCCDB", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCDB供冷分水器","2");
+        analysisSheetDataAndWriteToFile("ACCCCL", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCCL供冷集水器","2");
+        analysisSheetDataAndWriteToFile("ACCCWT", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCWT供冷水箱","2");
+        analysisSheetDataAndWriteToFile("ACCCOC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCOC供冷在线清洗装置","2");
+        analysisSheetDataAndWriteToFile("ACCCTC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCTC供冷伴热电缆","2");
+        analysisSheetDataAndWriteToFile("ACCCCU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.1-中央供冷系统设备.xlsx", "CCCU供冷控制模块","2");
+        analysisSheetDataAndWriteToFile("ACCHCB", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHCB供热燃煤锅炉","2");
+        analysisSheetDataAndWriteToFile("ACCHFB", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHFB供热燃油锅炉","2");
+        analysisSheetDataAndWriteToFile("ACCHGB", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHGB供热燃气锅炉","2");
+        analysisSheetDataAndWriteToFile("ACCHEB", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHEB供热电锅炉","2");
+        analysisSheetDataAndWriteToFile("ACCHHP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHHP供热水泵","2");
+        analysisSheetDataAndWriteToFile("ACCHFP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHFP供热补水泵","2");
+        analysisSheetDataAndWriteToFile("ACCHCF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHCF供热定压补水装置","2");
+        analysisSheetDataAndWriteToFile("ACCHPT", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHPT供热压力罐","2");
+        analysisSheetDataAndWriteToFile("ACCHHE", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHHE供热换热器","2");
+        analysisSheetDataAndWriteToFile("ACCHVD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHVD供热真空脱气机","2");
+        analysisSheetDataAndWriteToFile("ACCHCD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHCD供热水加药装置","2");
+        analysisSheetDataAndWriteToFile("ACCHSD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHSD供热软化水装置","2");
+        analysisSheetDataAndWriteToFile("ACCHTU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHTU供热全程水处理仪","2");
+        analysisSheetDataAndWriteToFile("ACCHST", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHST供热蓄冷热槽","2");
+        analysisSheetDataAndWriteToFile("ACCHDB", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHDB供热分水器","2");
+        analysisSheetDataAndWriteToFile("ACCHCL", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHCL供热集水器","2");
+        analysisSheetDataAndWriteToFile("ACCHWT", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHWT供热水箱","2");
+        analysisSheetDataAndWriteToFile("ACCHOC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHOC供热在线清洗装置","2");
+        analysisSheetDataAndWriteToFile("ACCHBF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHBF生物质炊暖炉","2");
+        analysisSheetDataAndWriteToFile("ACCHCU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.2-中央供热系统设备.xlsx", "CHCU供热控制模块","2");
+        analysisSheetDataAndWriteToFile("ACATAH", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATAH空调机组","2");
+        analysisSheetDataAndWriteToFile("ACATFU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATFU新风机组","2");
+        analysisSheetDataAndWriteToFile("ACATFC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATFC风机盘管","2");
+        analysisSheetDataAndWriteToFile("ACATSA", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATSA分体空调","2");
+        analysisSheetDataAndWriteToFile("ACATSI", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATSI分体空调室内机","2");
+        analysisSheetDataAndWriteToFile("ACATSO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATSO分体空调室外机","2");
+        analysisSheetDataAndWriteToFile("ACATVR", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATVR变频多联机","2");
+        analysisSheetDataAndWriteToFile("ACATVI", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATVI变频多联机室内机","2");
+        analysisSheetDataAndWriteToFile("ACATVO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATVO变频多联机室外机","2");
+        analysisSheetDataAndWriteToFile("ACATVA", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATVA变风量箱","2");
+        analysisSheetDataAndWriteToFile("ACATFA", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATFA地板空调器","2");
+        analysisSheetDataAndWriteToFile("ACATIO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATIO空调风口","2");
+        analysisSheetDataAndWriteToFile("ACATRD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATRD散热器","2");
+        analysisSheetDataAndWriteToFile("ACATIR", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATIR红外辐射单元","2");
+        analysisSheetDataAndWriteToFile("ACATFH", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATFH地板采暖设备","2");
+        analysisSheetDataAndWriteToFile("ACATHD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATHD空调加湿器","2");
+        analysisSheetDataAndWriteToFile("ACATMF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATMF空调消声器","2");
+        analysisSheetDataAndWriteToFile("ACATPC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATPC空调静压箱","2");
+        analysisSheetDataAndWriteToFile("ACATCA", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATCA定风量箱","2");
+        analysisSheetDataAndWriteToFile("ACATCU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.3-空调末端系统设备.xlsx", "ATCU空调末端控制模块","2");
+        analysisSheetDataAndWriteToFile("ACVTSF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTSF通风风机","2");
+        analysisSheetDataAndWriteToFile("ACVTAC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTAC热风幕","2");
+        analysisSheetDataAndWriteToFile("ACVTAP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTAP空气净化器","2");
+        analysisSheetDataAndWriteToFile("ACVTDO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTDO通风除味装置","2");
+        analysisSheetDataAndWriteToFile("ACVTIO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTIO通风风口","2");
+        analysisSheetDataAndWriteToFile("ACVTMF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTMF通风消声器","2");
+        analysisSheetDataAndWriteToFile("ACVTPC", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTPC通风静压箱","2");
+        analysisSheetDataAndWriteToFile("ACVTCU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTCU通风控制模块","2");
+        analysisSheetDataAndWriteToFile("ACVTCP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.4-通风系统设备.xlsx", "VTCP通风控制面板","2");
+        analysisSheetDataAndWriteToFile("ACKLSF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.5-厨房排油烟系统设备.xlsx", "KLSF厨房排油烟风机","2");
+        analysisSheetDataAndWriteToFile("ACKLAP", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.5-厨房排油烟系统设备.xlsx", "KLAP厨房油烟净化器","2");
+        analysisSheetDataAndWriteToFile("ACKLCU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.5-厨房排油烟系统设备.xlsx", "KLCU厨房排油烟控制模块","2");
+        analysisSheetDataAndWriteToFile("ACKLIO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.5-厨房排油烟系统设备.xlsx", "KLIO厨房排油烟风口","2");
+        analysisSheetDataAndWriteToFile("ACADSF", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.6-空调人防系统设备.xlsx", "ADSF空调人防风机","2");
+        analysisSheetDataAndWriteToFile("ACADFD", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.6-空调人防系统设备.xlsx", "ADFD滤毒除湿机","2");
+        analysisSheetDataAndWriteToFile("ACADCU", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.6-空调人防系统设备.xlsx", "ADCU空调人防控制模块","2");
+        analysisSheetDataAndWriteToFile("ACADIO", "/附表8-设备类对象分类属性点表/附表8.3-空调专业设备/附表8.3.6-空调人防系统设备.xlsx", "ADIO空调人防风口","2");
+        analysisSheetDataAndWriteToFile("WSDWSU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWSU生活给水供水机组","2");
+        analysisSheetDataAndWriteToFile("WSDWTS", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWTS生活给水水箱消毒器","2");
+        analysisSheetDataAndWriteToFile("WSDWUS", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWUS生活给水紫外线消毒器","2");
+        analysisSheetDataAndWriteToFile("WSDWWT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWWT生活给水储水箱","2");
+        analysisSheetDataAndWriteToFile("WSDWPT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWPT生活给水压力罐","2");
+        analysisSheetDataAndWriteToFile("WSDWPP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWPP生活给水水泵","2");
+        analysisSheetDataAndWriteToFile("WSDWCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.1-生活给水系统设备.xlsx", "DWCU生活给水控制模块","2");
+        analysisSheetDataAndWriteToFile("WSWHTC", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.10-给排水电伴热系统设备.xlsx", "WHTC给排水伴热电缆","2");
+        analysisSheetDataAndWriteToFile("WSWHIB", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.10-给排水电伴热系统设备.xlsx", "WHIB给排水伴热保温器","2");
+        analysisSheetDataAndWriteToFile("WSWHCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.10-给排水电伴热系统设备.xlsx", "WHCU给排水伴热控制模块","2");
+        analysisSheetDataAndWriteToFile("WSWDWT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.11-给排水人防系统设备.xlsx", "WDWT给排水人防储水箱","2");
+        analysisSheetDataAndWriteToFile("WSWDCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.11-给排水人防系统设备.xlsx", "WDCU给排水人防控制模块","2");
+        analysisSheetDataAndWriteToFile("WSDHCB", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHCB生活热水燃煤锅炉","2");
+        analysisSheetDataAndWriteToFile("WSDHFB", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHFB生活热水燃油锅炉","2");
+        analysisSheetDataAndWriteToFile("WSDHGB", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHGB生活热水燃气锅炉","2");
+        analysisSheetDataAndWriteToFile("WSDHEB", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHEB生活热水电锅炉","2");
+        analysisSheetDataAndWriteToFile("WSDHAH", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHAH生活热水空气源热泵","2");
+        analysisSheetDataAndWriteToFile("WSDHGH", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHGH生活热水燃气热水器","2");
+        analysisSheetDataAndWriteToFile("WSDHEH", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHEH生活热水电热水器","2");
+        analysisSheetDataAndWriteToFile("WSDHSC", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHSC生活热水太阳能集热器","2");
+        analysisSheetDataAndWriteToFile("WSDHHA", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHHA生活热水辅热设备","2");
+        analysisSheetDataAndWriteToFile("WSDHHE", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHHE生活热水换热器","2");
+        analysisSheetDataAndWriteToFile("WS DHS", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", " DHSU生活热水供水机组","2");
+        analysisSheetDataAndWriteToFile("WSDHHP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHHP生活热水水泵","2");
+        analysisSheetDataAndWriteToFile("WSDHSD", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHSD生活热水软化水装置","2");
+        analysisSheetDataAndWriteToFile("WSDHCF", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHCF生活热水定压补水装置","2");
+        analysisSheetDataAndWriteToFile("WSDHPT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHPT生活热水压力罐","2");
+        analysisSheetDataAndWriteToFile("WSDHST", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHST生活热水蓄冷热槽","2");
+        analysisSheetDataAndWriteToFile("WSDHWT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHWT生活热水储水箱","2");
+        analysisSheetDataAndWriteToFile("WSDHCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.2-生活热水系统设备.xlsx", "DHCU生活热水控制模块","2");
+        analysisSheetDataAndWriteToFile("WSRWSU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWSU中水供水机组","2");
+        analysisSheetDataAndWriteToFile("WSRWTU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWTU中水处理机组","2");
+        analysisSheetDataAndWriteToFile("WSRWWT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWWT中水储水箱","2");
+        analysisSheetDataAndWriteToFile("WSRWRC", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWRC雨水收集设备","2");
+        analysisSheetDataAndWriteToFile("WSRWPT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWPT中水供水压力罐","2");
+        analysisSheetDataAndWriteToFile("WSRWPP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWPP中水供水水泵","2");
+        analysisSheetDataAndWriteToFile("WSRWCD", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWCD中水水加药装置","2");
+        analysisSheetDataAndWriteToFile("WSLAFT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "LAFT中水过滤器","2");
+        analysisSheetDataAndWriteToFile("WSRWCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.3-中水系统设备.xlsx", "RWCU中水控制模块","2");
+        analysisSheetDataAndWriteToFile("WSDDTU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.4-直饮水系统设备.xlsx", "DDTU直饮水处理机组","2");
+        analysisSheetDataAndWriteToFile("WSDDIH", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.4-直饮水系统设备.xlsx", "DDIH直饮水即时加热器","2");
+        analysisSheetDataAndWriteToFile("WSDDCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.4-直饮水系统设备.xlsx", "DDCU直饮水控制模块","2");
+        analysisSheetDataAndWriteToFile("WSSTLU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STLU污废水一体式提升机组","2");
+        analysisSheetDataAndWriteToFile("WSSTSP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STSP潜污泵","2");
+        analysisSheetDataAndWriteToFile("WSSTOR", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STOR餐饮除油成套设备","2");
+        analysisSheetDataAndWriteToFile("WSSTST", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STST化粪池","2");
+        analysisSheetDataAndWriteToFile("WSSTCP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STCP集水坑","2");
+        analysisSheetDataAndWriteToFile("WSSTOS", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STOS隔油池","2");
+        analysisSheetDataAndWriteToFile("WSSTQM", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STQM污水水质监测仪","2");
+        analysisSheetDataAndWriteToFile("WSSTCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.5-污水处理系统设备.xlsx", "STCU污水控制模块","2");
+        analysisSheetDataAndWriteToFile("WSSISU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.6-喷灌系统设备.xlsx", "SISU喷灌机组","2");
+        analysisSheetDataAndWriteToFile("WSSISN", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.6-喷灌系统设备.xlsx", "SISN喷灌喷头","2");
+        analysisSheetDataAndWriteToFile("WSSICU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.6-喷灌系统设备.xlsx", "SICU喷灌控制模块","2");
+        analysisSheetDataAndWriteToFile("WSWSCF", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.7-水景系统设备.xlsx", "WSCF水景循环过滤机组","2");
+        analysisSheetDataAndWriteToFile("WSWSSN", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.7-水景系统设备.xlsx", "WSSN水景喷头","2");
+        analysisSheetDataAndWriteToFile("WSWSCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.7-水景系统设备.xlsx", "WSCU水景控制模块","2");
+        analysisSheetDataAndWriteToFile("WSWSLT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.7-水景系统设备.xlsx", "WSLT水景灯具","2");
+        analysisSheetDataAndWriteToFile("WSWSPP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.7-水景系统设备.xlsx", "WSPP水景水泵","2");
+        analysisSheetDataAndWriteToFile("WSWPCF", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPCF泳池循环过滤机组","2");
+        analysisSheetDataAndWriteToFile("WSWPPP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPPP泳池循环水泵","2");
+        analysisSheetDataAndWriteToFile("WSWPHE", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPHE泳池换热器","2");
+        analysisSheetDataAndWriteToFile("WSWPOS", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPOS泳池臭氧消毒器","2");
+        analysisSheetDataAndWriteToFile("WSWPQM", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPQM泳池水质监测仪","2");
+        analysisSheetDataAndWriteToFile("WSWPPB", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPPB泳池PH值平衡投药泵","2");
+        analysisSheetDataAndWriteToFile("WSWPOP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPOP泳池氧消毒剂投药泵","2");
+        analysisSheetDataAndWriteToFile("WSWPWT", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPWT泳池水箱","2");
+        analysisSheetDataAndWriteToFile("WSWPCU", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.8-泳池系统设备.xlsx", "WPCU泳池控制模块","2");
+        analysisSheetDataAndWriteToFile("WSFGPA", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.9-燃气系统设备.xlsx", "FGPA燃气调压箱","2");
+        analysisSheetDataAndWriteToFile("WSFGLP", "/附表8-设备类对象分类属性点表/附表8.4-给排水专业设备/附表8.4.9-燃气系统设备.xlsx", "FGLP液化石油气瓶","2");
+        analysisSheetDataAndWriteToFile("FFFAHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FAHT火灾报警主机","2");
+        analysisSheetDataAndWriteToFile("FFFADS", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FADS火灾报警显示屏","2");
+        analysisSheetDataAndWriteToFile("FFFALP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FALP联动琴台","2");
+        analysisSheetDataAndWriteToFile("FFFASE", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FASE火灾探测器","2");
+        analysisSheetDataAndWriteToFile("FFFAAL", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FAAL火灾报警声光报警器","2");
+        analysisSheetDataAndWriteToFile("FFFAMA", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FAMA消防手动报警按钮","2");
+        analysisSheetDataAndWriteToFile("FFFAHA", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FAHA消火栓报警按钮","2");
+        analysisSheetDataAndWriteToFile("FFFATL", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FATL消防电话","2");
+        analysisSheetDataAndWriteToFile("FFFACU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.1-火灾报警系统设备.xlsx", "FACU火灾报警控制模块","2");
+        analysisSheetDataAndWriteToFile("FFEEHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.10-应急照明及疏散指示系统设备.xlsx", "EEHT应急照明及疏散指示主机","2");
+        analysisSheetDataAndWriteToFile("FFEECU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.10-应急照明及疏散指示系统设备.xlsx", "EECU应急照明及疏散指示控制模块","2");
+        analysisSheetDataAndWriteToFile("FFEEEL", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.10-应急照明及疏散指示系统设备.xlsx", "EEEL应急照明灯具","2");
+        analysisSheetDataAndWriteToFile("FFEEEI", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.10-应急照明及疏散指示系统设备.xlsx", "EEEI疏散指示灯牌","2");
+        analysisSheetDataAndWriteToFile("FFKECU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.11-厨房自动灭火系统设备.xlsx", "KECU厨房自动灭火控制模块","2");
+        analysisSheetDataAndWriteToFile("FFKEEC", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.11-厨房自动灭火系统设备.xlsx", "KEEC厨房自动灭火灭火剂容器","2");
+        analysisSheetDataAndWriteToFile("FFKESN", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.11-厨房自动灭火系统设备.xlsx", "KESN厨房自动灭火喷头","2");
+        analysisSheetDataAndWriteToFile("FFGAHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.2-燃气报警系统设备.xlsx", "GAHT燃气报警主机","2");
+        analysisSheetDataAndWriteToFile("FFGASE", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.2-燃气报警系统设备.xlsx", "GASE燃气探测器","2");
+        analysisSheetDataAndWriteToFile("FFGACV", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.2-燃气报警系统设备.xlsx", "GACV燃气切断阀","2");
+        analysisSheetDataAndWriteToFile("FFGACU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.2-燃气报警系统设备.xlsx", "GACU燃气报警控制模块","2");
+        analysisSheetDataAndWriteToFile("FFEAHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.3-漏电火灾报警系统设备.xlsx", "EAHT漏电火灾报警主机","2");
+        analysisSheetDataAndWriteToFile("FFEALS", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.3-漏电火灾报警系统设备.xlsx", "EALS漏电探测器","2");
+        analysisSheetDataAndWriteToFile("FFEACU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.3-漏电火灾报警系统设备.xlsx", "EACU漏电火灾报警控制模块","2");
+        analysisSheetDataAndWriteToFile("FFBMFE", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.4-紧急广播及背景音乐系统设备.xlsx", "BMFE广播前端设备","2");
+        analysisSheetDataAndWriteToFile("FFBMHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.4-紧急广播及背景音乐系统设备.xlsx", "BMHT广播主机","2");
+        analysisSheetDataAndWriteToFile("FFBMCU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.4-紧急广播及背景音乐系统设备.xlsx", "BMCU广播分区控制模块","2");
+        analysisSheetDataAndWriteToFile("FFBMDS", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.4-紧急广播及背景音乐系统设备.xlsx", "BMDS广播显示屏","2");
+        analysisSheetDataAndWriteToFile("FFBMMP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.4-紧急广播及背景音乐系统设备.xlsx", "BMMP广播话筒","2");
+        analysisSheetDataAndWriteToFile("FFBMSP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.4-紧急广播及背景音乐系统设备.xlsx", "BMSP广播扬声器","2");
+        analysisSheetDataAndWriteToFile("FFFSHP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSHP消火栓供水加压泵","2");
+        analysisSheetDataAndWriteToFile("FFFSSP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSSP喷淋供水加压泵","2");
+        analysisSheetDataAndWriteToFile("FFFSMP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSMP水喷雾供水加压泵","2");
+        analysisSheetDataAndWriteToFile("FFFSAP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSAP停机坪消防供水加压泵","2");
+        analysisSheetDataAndWriteToFile("FFFSPP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSPP预作用加压泵","2");
+        analysisSheetDataAndWriteToFile("FFFSGP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSGP窗玻璃喷淋泵","2");
+        analysisSheetDataAndWriteToFile("FFFSIP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSIP加密喷淋泵","2");
+        analysisSheetDataAndWriteToFile("FFFSWP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSWP水炮泵","2");
+        analysisSheetDataAndWriteToFile("FFFSPM", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSPM消防稳压泵","2");
+        analysisSheetDataAndWriteToFile("FFFSWM", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSWM消防水炮设备","2");
+        analysisSheetDataAndWriteToFile("FFFSCF", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSCF消防给水定压补水装置","2");
+        analysisSheetDataAndWriteToFile("FFFSPT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSPT消防给水压力罐","2");
+        analysisSheetDataAndWriteToFile("FFFSFT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSFT泡沫储罐组","2");
+        analysisSheetDataAndWriteToFile("FFFSAC", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSAC消防空压机","2");
+        analysisSheetDataAndWriteToFile("FFFSWV", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSWV湿式报警阀组","2");
+        analysisSheetDataAndWriteToFile("FFFSDV", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSDV干式报警阀组","2");
+        analysisSheetDataAndWriteToFile("FFFSPV", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSPV预作用报警阀组","2");
+        analysisSheetDataAndWriteToFile("FFFSHB", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSHB消火栓箱","2");
+        analysisSheetDataAndWriteToFile("FFFSOH", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSOH室外消火栓","2");
+        analysisSheetDataAndWriteToFile("FFFSPC", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSPC消防水泵接合器","2");
+        analysisSheetDataAndWriteToFile("FFFSTC", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSTC消防伴热电缆","2");
+        analysisSheetDataAndWriteToFile("FFFSET", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSET消防末端试水装置","2");
+        analysisSheetDataAndWriteToFile("FFFSWT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSWT消防水箱","2");
+        analysisSheetDataAndWriteToFile("FFFSTS", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSTS消防水箱消毒器","2");
+        analysisSheetDataAndWriteToFile("FFFSFP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSFP消防补水泵","2");
+        analysisSheetDataAndWriteToFile("FFFSSN", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSSN消防喷头","2");
+        analysisSheetDataAndWriteToFile("FFFSCP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSCP消火栓控制面板","2");
+        analysisSheetDataAndWriteToFile("FFFSHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSHT消防给水主机","2");
+        analysisSheetDataAndWriteToFile("FFFSCU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.5-消防给水系统设备.xlsx", "FSCU消防给水控制模块","2");
+        analysisSheetDataAndWriteToFile("FFGEBG", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.6-气体灭火系统设备.xlsx", "GEBG气体灭火瓶组","2");
+        analysisSheetDataAndWriteToFile("FFGESB", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.6-气体灭火系统设备.xlsx", "GESB气体灭火启动瓶","2");
+        analysisSheetDataAndWriteToFile("FFGEHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.6-气体灭火系统设备.xlsx", "GEHT气体灭火主机","2");
+        analysisSheetDataAndWriteToFile("FFGECU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.6-气体灭火系统设备.xlsx", "GECU气体灭火控制模块","2");
+        analysisSheetDataAndWriteToFile("FFGESN", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.6-气体灭火系统设备.xlsx", "GESN气体灭火喷头","2");
+        analysisSheetDataAndWriteToFile("FFFEFE", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.7-灭火器系统设备.xlsx", "FEFE灭火器","2");
+        analysisSheetDataAndWriteToFile("FFSCEF", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.8-防排烟系统设备.xlsx", "SCEF防排烟风机","2");
+        analysisSheetDataAndWriteToFile("FFSCIO", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.8-防排烟系统设备.xlsx", "SCIO排烟风口","2");
+        analysisSheetDataAndWriteToFile("FFSCHW", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.8-防排烟系统设备.xlsx", "SCHW电动挡烟垂壁","2");
+        analysisSheetDataAndWriteToFile("FFSCSD", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.8-防排烟系统设备.xlsx", "SCSD防火排烟阀","2");
+        analysisSheetDataAndWriteToFile("FFSCCU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.8-防排烟系统设备.xlsx", "SCCU防排烟控制模块","2");
+        analysisSheetDataAndWriteToFile("FFFRFR", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.9-防火卷帘门系统设备.xlsx", "FRFR防火卷帘门","2");
+        analysisSheetDataAndWriteToFile("FFFRFD", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.9-防火卷帘门系统设备.xlsx", "FRFD防火门","2");
+        analysisSheetDataAndWriteToFile("FFFRHT", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.9-防火卷帘门系统设备.xlsx", "FRHT防火卷帘门主机","2");
+        analysisSheetDataAndWriteToFile("FFFRCP", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.9-防火卷帘门系统设备.xlsx", "FRCP防火卷帘门控制面板","2");
+        analysisSheetDataAndWriteToFile("FFFRCU", "/附表8-设备类对象分类属性点表/附表8.5-消防专业设备/附表8.5.9-防火卷帘门系统设备.xlsx", "FRCU防火卷帘门控制模块","2");
+        analysisSheetDataAndWriteToFile("SPVSHT", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSHT监控主机","2");
+        analysisSheetDataAndWriteToFile("SPVSCM", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSCM监控摄像头","2");
+        analysisSheetDataAndWriteToFile("SPVSFE", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSFE监控前端设备","2");
+        analysisSheetDataAndWriteToFile("SPVSVM", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSVM监视器","2");
+        analysisSheetDataAndWriteToFile("SPVSDR", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSDR硬盘录像机","2");
+        analysisSheetDataAndWriteToFile("SPVSCP", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSCP监控控制面板","2");
+        analysisSheetDataAndWriteToFile("SPVSCU", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.1-视频监控系统设备.xlsx", "VSCU监控控制模块","2");
+        analysisSheetDataAndWriteToFile("SPNPHT", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.2-巡更系统设备.xlsx", "NPHT巡更主机","2");
+        analysisSheetDataAndWriteToFile("SPNPCU", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.2-巡更系统设备.xlsx", "NPCU巡更控制模块","2");
+        analysisSheetDataAndWriteToFile("SPNPCP", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.2-巡更系统设备.xlsx", "NPCP巡更通讯座","2");
+        analysisSheetDataAndWriteToFile("SPNPPS", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.2-巡更系统设备.xlsx", "NPPS巡更棒","2");
+        analysisSheetDataAndWriteToFile("SPEGHT", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGHT门禁主机","2");
+        analysisSheetDataAndWriteToFile("SPEGCU", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGCU门禁控制模块","2");
+        analysisSheetDataAndWriteToFile("SPEGCR", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGCR门禁读卡器","2");
+        analysisSheetDataAndWriteToFile("SPEGWT", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGWT门禁对讲机","2");
+        analysisSheetDataAndWriteToFile("SPEGTK", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGTK破胎器","2");
+        analysisSheetDataAndWriteToFile("SPEGDL", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGDL门禁门锁","2");
+        analysisSheetDataAndWriteToFile("SPEGBG", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGBG破玻璃按钮","2");
+        analysisSheetDataAndWriteToFile("SPEGCP", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGCP门禁控制面板","2");
+        analysisSheetDataAndWriteToFile("SPEGFG", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.3-门禁系统设备.xlsx", "EGFG速通门","2");
+        analysisSheetDataAndWriteToFile("SPIAHT", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.4-入侵报警系统设备.xlsx", "IAHT入侵报警主机","2");
+        analysisSheetDataAndWriteToFile("SPIACU", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.4-入侵报警系统设备.xlsx", "IACU入侵报警控制模块","2");
+        analysisSheetDataAndWriteToFile("SPIAMA", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.4-入侵报警系统设备.xlsx", "IAMA入侵报警手动报警按钮","2");
+        analysisSheetDataAndWriteToFile("SPIAAL", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.4-入侵报警系统设备.xlsx", "IAAL入侵报警声光报警器","2");
+        analysisSheetDataAndWriteToFile("SPIACP", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.4-入侵报警系统设备.xlsx", "IACP入侵报警控制面板","2");
+        analysisSheetDataAndWriteToFile("SPIASE", "/附表8-设备类对象分类属性点表/附表8.6-安防专业设备/附表8.6.4-入侵报警系统设备.xlsx", "IASE入侵报警探测器","2");
+        analysisSheetDataAndWriteToFile("CFCSFD", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSFD基础","2");
+        analysisSheetDataAndWriteToFile("CFCSCL", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSCL柱","2");
+        analysisSheetDataAndWriteToFile("CFCSGD", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSGD梁","2");
+        analysisSheetDataAndWriteToFile("CFCSTR", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSTR桁架","2");
+        analysisSheetDataAndWriteToFile("CFCSWL", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSWL墙","2");
+        analysisSheetDataAndWriteToFile("CFCSFL", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSFL楼板","2");
+        analysisSheetDataAndWriteToFile("CFCSRF", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSRF屋顶","2");
+        analysisSheetDataAndWriteToFile("CFCSSW", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.1-土建结构设备.xlsx", "CSSW楼梯","2");
+        analysisSheetDataAndWriteToFile("CFBECW", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BECW幕墙","2");
+        analysisSheetDataAndWriteToFile("CFBEBC", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BEBC呼吸式幕墙","2");
+        analysisSheetDataAndWriteToFile("CFBELR", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BELR采光顶","2");
+        analysisSheetDataAndWriteToFile("CFBEDR", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BEDR门","2");
+        analysisSheetDataAndWriteToFile("CFBEWN", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BEWN窗","2");
+        analysisSheetDataAndWriteToFile("CFBEAW", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BEAW雨篷","2");
+        analysisSheetDataAndWriteToFile("CFBEES", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BEES电动遮阳帘","2");
+        analysisSheetDataAndWriteToFile("CFBEMT", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BEMT遮阳电机","2");
+        analysisSheetDataAndWriteToFile("CFBECT", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.2-围护结构设备.xlsx", "BECT普通遮阳帘","2");
+        analysisSheetDataAndWriteToFile("CFIDWS", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDWS盥洗盆","2");
+        analysisSheetDataAndWriteToFile("CFIDTL", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDTL坐便器","2");
+        analysisSheetDataAndWriteToFile("CFIDSP", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDSP蹲便器","2");
+        analysisSheetDataAndWriteToFile("CFIDUR", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDUR小便器","2");
+        analysisSheetDataAndWriteToFile("CFIDHD", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDHD干手机","2");
+        analysisSheetDataAndWriteToFile("CFIDBT", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDBT浴缸","2");
+        analysisSheetDataAndWriteToFile("CFIDSK", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDSK洗碗槽","2");
+        analysisSheetDataAndWriteToFile("CFIDSC", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDSC插座","2");
+        analysisSheetDataAndWriteToFile("CFIDFN", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDFN家具","2");
+        analysisSheetDataAndWriteToFile("CFIDCL", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDCL吊顶","2");
+        analysisSheetDataAndWriteToFile("CFIDFD", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.3-室内装饰设备.xlsx", "IDFD地漏","2");
+        analysisSheetDataAndWriteToFile("CFCADM", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CADM装饰材料","2");
+        analysisSheetDataAndWriteToFile("CFCAHD", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAHD栏杆","2");
+        analysisSheetDataAndWriteToFile("CFCASB", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CASB减速带","2");
+        analysisSheetDataAndWriteToFile("CFCAST", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAST地桩","2");
+        analysisSheetDataAndWriteToFile("CFCADB", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CADB展示板","2");
+        analysisSheetDataAndWriteToFile("CFCAID", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAID标识","2");
+        analysisSheetDataAndWriteToFile("CFCAWC", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAWC擦窗机","2");
+        analysisSheetDataAndWriteToFile("CFCADD", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CADD排水沟","2");
+        analysisSheetDataAndWriteToFile("CFCAWB", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAWB垃圾桶","2");
+        analysisSheetDataAndWriteToFile("CFCAMC", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAMC井盖","2");
+        analysisSheetDataAndWriteToFile("CFCAIS", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAIS检查井","2");
+        analysisSheetDataAndWriteToFile("CFCAOP", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.4-建筑附件设备.xlsx", "CAOP室外道路","2");
+        analysisSheetDataAndWriteToFile("CFPKPS", "/附表8-设备类对象分类属性点表/附表8.7-土建精装专业设备/附表8.7.5-停车场设备.xlsx", "PKPS停车位","2");
+        analysisSheetDataAndWriteToFile("OTSAEW", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.1-强电线路及附件设备.xlsx", "SAEW强电线路","2");
+        analysisSheetDataAndWriteToFile("OTWAEW", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.2-弱电线路及附件设备.xlsx", "WAEW弱电线路","2");
+        analysisSheetDataAndWriteToFile("OTLAPL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.3-液体管道及附件设备.xlsx", "LAPL液体管道","2");
+        analysisSheetDataAndWriteToFile("OTLAFI", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.3-液体管道及附件设备.xlsx", "LAFI水流指示器","2");
+        analysisSheetDataAndWriteToFile("OTLAFT", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.3-液体管道及附件设备.xlsx", "LAFT水管过滤器","2");
+        analysisSheetDataAndWriteToFile("OTAAPL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.4-气体管道及附件设备.xlsx", "AAPL气体管道","2");
+        analysisSheetDataAndWriteToFile("OTAAFT", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.4-气体管道及附件设备.xlsx", "AAFT风道过滤器","2");
+        analysisSheetDataAndWriteToFile("OTSECB", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SECB组合式传感器","2");
+        analysisSheetDataAndWriteToFile("OTSETP", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SETP温度传感器","2");
+        analysisSheetDataAndWriteToFile("OTSERH", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SERH湿度传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEPS", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEPS压力传感器","2");
+        analysisSheetDataAndWriteToFile("OTSECT", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SECT浓度传感器","2");
+        analysisSheetDataAndWriteToFile("OTSESP", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SESP速度传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEDP", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEDP位移传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEFL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEFL流量传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEHT", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEHT热量传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEEE", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEEE电度传感器","2");
+        analysisSheetDataAndWriteToFile("OTSESD", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SESD声音传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEVD", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEVD图像传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEPF", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEPF人流量传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEIL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEIL照度传感器","2");
+        analysisSheetDataAndWriteToFile("OTSEIP", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.5-传感器设备.xlsx", "SEIP室内定位传感器","2");
+        analysisSheetDataAndWriteToFile("OTAEOV", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AEOV通断阀","2");
+        analysisSheetDataAndWriteToFile("OTAEAV", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AEAV调节阀","2");
+        analysisSheetDataAndWriteToFile("OTAECV", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AECV止回阀","2");
+        analysisSheetDataAndWriteToFile("OTAERV", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AERV减压阀","2");
+        analysisSheetDataAndWriteToFile("OTAESV", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AESV安全阀","2");
+        analysisSheetDataAndWriteToFile("OTAERL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AERL继电器","2");
+        analysisSheetDataAndWriteToFile("OTAEFC", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AEFC变频器","2");
+        analysisSheetDataAndWriteToFile("OTAEIL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AEIL提示灯","2");
+        analysisSheetDataAndWriteToFile("OTAEAL", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.6-执行器设备.xlsx", "AEAL声光报警器","2");
+        analysisSheetDataAndWriteToFile("OTXXFZ", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.7-其他设备.xlsx", "XXFZ冷柜(恒温柜)","2");
+        analysisSheetDataAndWriteToFile("OTXXDC", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.7-其他设备.xlsx", "XXDC风干柜","2");
+        analysisSheetDataAndWriteToFile("OTXXAC", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.7-其他设备.xlsx", "XXAC冷风机","2");
+        analysisSheetDataAndWriteToFile("OTXXSC", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.7-其他设备.xlsx", "XXSC消毒柜","2");
+        analysisSheetDataAndWriteToFile("OTXXUA", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.7-其他设备.xlsx", "XXUA无人机","2");
+        analysisSheetDataAndWriteToFile("OTXXCR", "/附表8-设备类对象分类属性点表/附表8.8-其他专业设备/附表8.8.7-其他设备.xlsx", "XXCR扫地机器人","2");
+    }
+
+    private void importComponent(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("component", "/附表6-机电精装类对象通用属性点表.xlsx", "部件类","1");
+
+        analysisSheetDataAndWriteToFile("SETDHSIP", "/附表9-部件类对象分类属性点表/附表9.1-强电专业部件.xlsx", "TDHSIP综合保护装置","2");
+        analysisSheetDataAndWriteToFile("SETDLSDW", "/附表9-部件类对象分类属性点表/附表9.1-强电专业部件.xlsx", "TDLSDW低压配电抽屉","2");
+        analysisSheetDataAndWriteToFile("WEBADCBP", "/附表9-部件类对象分类属性点表/附表9.2-弱电专业部件.xlsx", "BADCBP总线端口","2");
+        analysisSheetDataAndWriteToFile("ACCCSCMT", "/附表9-部件类对象分类属性点表/附表9.3-空调专业部件.xlsx", "CCSCMT螺杆式冷水机组电机","2");
+        analysisSheetDataAndWriteToFile("ACCCGHBP", "/附表9-部件类对象分类属性点表/附表9.3-空调专业部件.xlsx", "CCGHBP地埋管","2");
+        analysisSheetDataAndWriteToFile("ACCCOTFN", "/附表9-部件类对象分类属性点表/附表9.3-空调专业部件.xlsx", "CCOTFN冷却塔风机","2");
+        //analysisSheetDataAndWriteToFile("WSSheet1", "/附表9-部件类对象分类属性点表/附表9.4-给排水专业部件.xlsx", "Sheet1","2");
+        //analysisSheetDataAndWriteToFile("FFSheet1", "/附表9-部件类对象分类属性点表/附表9.5-消防专业部件.xlsx", "Sheet1","2");
+        //analysisSheetDataAndWriteToFile("SPSheet1", "/附表9-部件类对象分类属性点表/附表9.6-安防专业部件.xlsx", "Sheet1","2");
+        analysisSheetDataAndWriteToFile("CFCSFDCS", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDCS基础垫层","2");
+        analysisSheetDataAndWriteToFile("CFCSFDWB", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDWB基础防水板","2");
+        analysisSheetDataAndWriteToFile("CFCSFDGD", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDGD基础梁","2");
+        analysisSheetDataAndWriteToFile("CFCSFDPN", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDPN基础嵌板","2");
+        analysisSheetDataAndWriteToFile("CFCSFDAA", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDAA基础抗浮锚杆","2");
+        analysisSheetDataAndWriteToFile("CFCSFDPL", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDPL基础桩","2");
+        analysisSheetDataAndWriteToFile("CFCSFDED", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDED基础电梯基坑","2");
+        analysisSheetDataAndWriteToFile("CFCSFDCP", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSFDCP基础集水坑","2");
+        analysisSheetDataAndWriteToFile("CFCSWLBD", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSWLBD墙体","2");
+        analysisSheetDataAndWriteToFile("CFCSWLIL", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSWLIL墙保温层","2");
+        analysisSheetDataAndWriteToFile("CFCSWLEP", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSWLEP墙预埋件","2");
+        analysisSheetDataAndWriteToFile("CFCSWLCT", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSWLCT墙涂层","2");
+        analysisSheetDataAndWriteToFile("CFCSSWBD", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSSWBD楼梯主体","2");
+        analysisSheetDataAndWriteToFile("CFCSSWRW", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSSWRW楼梯坡道","2");
+        analysisSheetDataAndWriteToFile("CFCSSWAR", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "CSSWAR楼梯扶手","2");
+        analysisSheetDataAndWriteToFile("CFBECWKL", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "BECWKL幕墙龙骨","2");
+        analysisSheetDataAndWriteToFile("CFBECWPN", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "BECWPN幕墙嵌板","2");
+        analysisSheetDataAndWriteToFile("CFBECWCP", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "BECWCP幕墙组件","2");
+        analysisSheetDataAndWriteToFile("CFBELRKL", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "BELRKL采光顶龙骨","2");
+        analysisSheetDataAndWriteToFile("CFBELRPN", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "BELRPN采光顶嵌板","2");
+        analysisSheetDataAndWriteToFile("CFBELRCP", "/附表9-部件类对象分类属性点表/附表9.7-土建精装专业部件.xlsx", "BELRCP采光顶组件","2");
+        //analysisSheetDataAndWriteToFile("OTSheet1", "/附表9-部件类对象分类属性点表/附表9.8-其他专业部件.xlsx", "Sheet1","2");
+
+    }
+
+    private void importVirtual(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("VOEm", "/附表13-虚拟对象属性点表.xlsx", "能耗模型","2");
+        analysisSheetDataAndWriteToFile("VOSe", "/附表13-虚拟对象属性点表.xlsx", "分项","2");
+        analysisSheetDataAndWriteToFile("VOBc", "/附表13-虚拟对象属性点表.xlsx", "信标","2");
+        analysisSheetDataAndWriteToFile("VOTn", "/附表13-虚拟对象属性点表.xlsx", "租户","2");
+        analysisSheetDataAndWriteToFile("VoWs", "/附表13-虚拟对象属性点表.xlsx", "工作历","2");
+        analysisSheetDataAndWriteToFile("VoBl", "/附表13-虚拟对象属性点表.xlsx", "集团","2");
+    }
+
+    private void importTool(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("tool", "/附表10-耗材工具类对象通用属性点表.xlsx", "工具类","2");
+    }
+
+    private void importMaterial(List<FuncidDefModel> funcids) throws IOException {
+        analysisSheetDataAndWriteToFile("material", "/附表10-耗材工具类对象通用属性点表.xlsx", "耗材类","2");
+    }
+
+    @Data
+    private static class CacheModel {
+        private String classCode;
+        private String firstTag;
+        private String secondTag;
+        private String origCode;
+        private String name;
+        private String unit;
+        private String origDataType;
+        private String priority; // 优先级
+        private String inputMode;
+        private String origDataSource; // 字典选择
+        private String remark; // 备注
+        private String shareType; // 通用信息点标记,1-通用信息点,2-个性化信息点
+        private Integer orderSeq; // 排序序号
+    }
+
+    private List<FuncidDefModel> readSheet(String classCode, String fileName, String sheetName) throws IOException {
+        return readSheet(classCode,fileName,sheetName,"2");
+    }
+
+    private List<FuncidDefModel> readSheet(String classCode, String fileName, String sheetName,String shareType) throws IOException {
+        List<FuncidDefModel> data = new LinkedList<>();
+        String classFile = basepath + fileName;
+        FileInputStream inputStream = new FileInputStream(classFile);
+        Workbook workbook = new XSSFWorkbook(inputStream);
+        Sheet sheet = workbook.getSheet(sheetName);
+        if (sheet == null) {
+            return data;
+        }
+        // 行号从0开始, 从第2行开始读数据
+        int startRowNum = 2;
+        int lastRowNum = sheet.getLastRowNum();
+        CacheModel cache = new CacheModel();
+        for (int rowIndex = startRowNum; rowIndex <= lastRowNum; rowIndex++) {
+            Row row = sheet.getRow(rowIndex);
+            if (row == null) {
+                log.info("file: {}, sheet: {}, row[{}] is null", fileName, sheetName, rowIndex);
+                continue;
+            }
+            // 0:firstTag, 1:secondTag, 2:name, 3:origCode, 4:unit, 5:origDataType, 6:priorite, 7:imputMode, 8:origDataSource, 9:remark
+            CacheModel target = new CacheModel();
+            target.classCode = classCode;
+            target.firstTag = (String) ExcelUtils.parseCell(row.getCell(0), "string");
+            target.secondTag = (String) ExcelUtils.parseCell(row.getCell(1), "string");
+            target.name = (String) ExcelUtils.parseCell(row.getCell(2), "string");
+            target.origCode = (String) ExcelUtils.parseCell(row.getCell(3), "string");
+            target.unit = (String) ExcelUtils.parseCell(row.getCell(4), "string");
+            target.origDataType = (String) ExcelUtils.parseCell(row.getCell(5), "string");
+            target.priority = (String) ExcelUtils.parseCell(row.getCell(6), "string");
+            target.inputMode = (String) ExcelUtils.parseCell(row.getCell(7), "string");
+            target.origDataSource = (String) ExcelUtils.parseCell(row.getCell(8), "string");
+            target.remark = (String) ExcelUtils.parseCell(row.getCell(9), "string");
+            target.shareType = shareType;
+            target.orderSeq = rowIndex-1;
+            if (target.origCode == null || "".equals(target.origCode) || "`".equals(target.origCode)) {
+                continue;
+            }
+            // firstTag不为空
+            if (target.firstTag != null) {
+                cache.firstTag = target.firstTag;
+                cache.secondTag = null;
+            } else {
+                target.firstTag = cache.firstTag;
+            }
+
+            // secondTag
+            if (target.secondTag != null) {
+                cache.secondTag = target.secondTag;
+            } else {
+                target.secondTag = cache.secondTag;
+            }
+            FuncidDefModel funcidDefModel = toFuncidDefModel(target);
+            if (funcidDefModel == null) {
+                log.info("file: {}, sheet: {}, row: {} data type [{}] error", fileName, sheetName, rowIndex, target.origDataType);
+            } else {
+                if (FuncidUtils.isBase(target.origCode)) {
+                    funcidDefModel.setCode(FuncidUtils.getRealCode(target.origCode));
+                }
+                data.add(funcidDefModel);
+            }
+        }
+        return data;
+    }
+
+    @Test
+    public void test() {
+        ArrayNode array = JsonNodeFactory.instance.arrayNode();
+        //查询知识库详情
+        String url = rwdeditServer + "/rwdedit/ref/type/infos/query";
+        JacksonCriteria criteria = JacksonCriteria.newInstance();
+        criteria.add("refKey", "classificationSystem");
+        HttpUtils.HttpResult response = httpUtils.post(url, JacksonMapper.toSimpleJson(criteria), 300000);
+        String content = response.getContent();
+        ObjectNode objectNode = JacksonMapper.toObject(content, ObjectNode.class);
+        ArrayNode data = JacksonMapper.getArray(objectNode, "data", JsonNodeFactory.instance.arrayNode());
+        for (JsonNode datum : data) {
+            ObjectNode obj = (ObjectNode) datum;
+            ObjectNode item = array.addObject();
+            item.put("code", JacksonMapper.getString(obj, "code"));
+            item.put("name", JacksonMapper.getString(obj, "name"));
+            String parentCode = JacksonMapper.getString(obj, "parentCode");
+            if (parentCode != null) {
+                item.put("parentCode", parentCode);
+            }
+        }
+        System.err.println(JacksonMapper.toSimpleJson(array));
+    }
+
+}
+

+ 183 - 0
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/dic/ExcelUtilsForEdit.java

@@ -0,0 +1,183 @@
+package com.persagy.dmp.rwd.dic;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.junit.Test;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author: yaoll
+ * @date: 2020-11-30
+ * @verison: 1.0
+ */
+public class ExcelUtilsForEdit {
+
+    public static Object parseCell(Cell cell, String type) {
+        if (cell == null) {
+            return null;
+        }
+        CellType cellType = cell.getCellTypeEnum();
+        if ("string".equalsIgnoreCase(type)) {
+            if (cellType == CellType.STRING) {
+                String val = cell.getStringCellValue();
+                return val == null ? null : val.trim();
+            } else if (cellType == CellType.NUMERIC) {
+                return cell.getNumericCellValue() + "";
+            }
+        } else if ("integer".equalsIgnoreCase(type)) {
+            if (cellType == CellType.STRING) {
+                String stringCellValue = cell.getStringCellValue();
+                return stringCellValue == null ? null : Double.valueOf(stringCellValue).intValue();
+            } else if (cellType == CellType.NUMERIC) {
+                return Double.valueOf(cell.getNumericCellValue()).intValue();
+            }
+        } else if ("double".equalsIgnoreCase(type)) {
+            if (cellType == CellType.STRING) {
+                String stringCellValue = cell.getStringCellValue();
+                return stringCellValue == null ? null : Double.valueOf(stringCellValue);
+            } else if (cellType == CellType.NUMERIC) {
+                return cell.getNumericCellValue();
+            }
+        } else if ("date".equalsIgnoreCase(type)) {
+            if (cellType == CellType.NUMERIC) {
+                Date dateCellValue = cell.getDateCellValue();
+                return dateCellValue == null ? null : dateCellValue;
+            } else if (cellType == CellType.STRING) {
+                String val = cell.getStringCellValue();
+                return val == null ? null : val.trim();
+            }
+        }
+        return null;
+    }
+
+
+    private String basepath = "D:\\资料\\工作资料\\原型图\\数据中台\\数据字典数据";
+
+    @Test
+    public void test1() throws Exception {
+        String path = basepath + "/附表7-系统类对象分类属性点表";
+        showPath(path);
+    }
+
+    public void showPath(String path) throws Exception {
+        Map<String, String> dtType = new HashMap<>();
+        dtType.put("SE", "强电");
+        dtType.put("WE", "弱电");
+        dtType.put("AC", "空调");
+        dtType.put("FF", "消防");
+        dtType.put("SP", "安防");
+        dtType.put("WS", "给排水");
+        dtType.put("CF", "土建");
+        dtType.put("OT", "其他");
+        List<String> names = listFile(path);
+        if (names != null) {
+            for (String name : names) {
+//				System.out.println("----------------------");
+                String fileName = path + "/" + name;
+                FileInputStream inputStream = new FileInputStream(fileName);
+//				System.out.println(fileName);
+                Workbook workbook = new XSSFWorkbook(inputStream);
+                int numberOfSheets = workbook.getNumberOfSheets();
+                for (int i = 0; i < numberOfSheets; i++) {
+                    Sheet sheet = workbook.getSheetAt(i);
+                    String sheetName = sheet.getSheetName();
+                    // funcids.addAll(readSheet("FFFA", "/2.2-设备设施类对象/2.2.3-系统/50-消防专业系统.xlsx", "FA火灾报警系统"));
+                    dtType.entrySet().forEach(item -> {
+                        String key = item.getKey();
+                        String value = item.getValue();
+                        if (name.contains(value)) {
+                            System.out.println("analysisSheetDataAndWriteToFile(\"" + key + sheetName.substring(0, 2) + "\", \"/附表7-系统类对象分类属性点表/" + name + "\", \"" + sheetName + "\",\"2\");");
+                        }
+                    });
+                }
+            }
+        }
+    }
+
+    @Test
+    public void test2() throws Exception {
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.1-强电专业设备", "SE");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.2-弱电专业设备", "WE");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.3-空调专业设备", "AC");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.4-给排水专业设备", "WS");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.5-消防专业设备", "FF");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.6-安防专业设备", "SP");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.7-土建精装专业设备", "CF");
+        showPathForEquipment(basepath, "/附表8-设备类对象分类属性点表/" + "附表8.8-其他专业设备", "OT");
+    }
+
+    public void showPathForEquipment(String path, String pathName, String key) throws Exception {
+        List<String> names = listFile(path + pathName);
+        if (names != null) {
+            for (String name : names) {
+//				System.out.println("----------------------");
+                String fileName = path + pathName + "/" + name;
+                FileInputStream inputStream = new FileInputStream(fileName);
+//				System.out.println(fileName);
+                Workbook workbook = new XSSFWorkbook(inputStream);
+                int numberOfSheets = workbook.getNumberOfSheets();
+                for (int i = 0; i < numberOfSheets; i++) {
+                    Sheet sheet = workbook.getSheetAt(i);
+                    String sheetName = sheet.getSheetName();
+                    // funcids.addAll(readSheet("FFFA", "/2.2-设备设施类对象/2.2.3-系统/50-消防专业系统.xlsx", "FA火灾报警系统"));
+                    System.out.println("analysisSheetDataAndWriteToFile(\"" + key + sheetName.substring(0, 4) + "\", \"" + pathName + "/" + name + "\", \"" + sheetName + "\",\"2\");");
+                }
+            }
+        }
+    }
+
+    @Test
+    public void test3() throws Exception {
+        showPathForComponent(basepath + "/附表9-部件类对象分类属性点表");
+    }
+
+    public void showPathForComponent(String path) throws Exception {
+        Map<String, String> dtType = new HashMap<>();
+        dtType.put("SE", "强电");
+        dtType.put("WE", "弱电");
+        dtType.put("AC", "空调");
+        dtType.put("FF", "消防");
+        dtType.put("SP", "安防");
+        dtType.put("WS", "给排水");
+        dtType.put("CF", "土建");
+        dtType.put("OT", "其他");
+        List<String> names = listFile(path);
+        if (names != null) {
+            for (String name : names) {
+//				System.out.println("----------------------");
+                String fileName = path + "/" + name;
+                FileInputStream inputStream = new FileInputStream(fileName);
+//				System.out.println(fileName);
+                Workbook workbook = new XSSFWorkbook(inputStream);
+                int numberOfSheets = workbook.getNumberOfSheets();
+                for (int i = 0; i < numberOfSheets; i++) {
+                    Sheet sheet = workbook.getSheetAt(i);
+                    String sheetName = sheet.getSheetName();
+                    // funcids.addAll(readSheet("FFFA", "/2.2-设备设施类对象/2.2.3-系统/50-消防专业系统.xlsx", "FA火灾报警系统"));
+                    dtType.entrySet().forEach(item -> {
+                        String key = item.getKey();
+                        String value = item.getValue();
+                        if (name.contains(value)) {
+                            System.out.println("analysisSheetDataAndWriteToFile(\"" + key + sheetName.substring(0, 6) + "\", \"/附表9-部件类对象分类属性点表/" + name + "\", \"" + sheetName + "\",\"2\");");
+                        }
+                    });
+                }
+            }
+        }
+    }
+
+
+    private List<String> listFile(String path) {
+        File file = new File(path);
+        File[] files = file.listFiles();
+        return Arrays.stream(files).map(File::getName).filter(item -> !item.startsWith("~")).collect(Collectors.toList());
+    }
+
+}

+ 2 - 0
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/dic/FuncidDefModel.java

@@ -36,5 +36,7 @@ public class FuncidDefModel {
 	private String note;
 	private Boolean subFlag;
 	private Boolean weakPoint;
+	private String shareType;
+	private Integer orderSeq;
 
 }

+ 66 - 63
dmp-rwd-datautils/src/test/java/com/persagy/dmp/rwd/dic/FuncidUtils.java

@@ -24,79 +24,82 @@ import java.util.regex.Pattern;
 @Component
 public class FuncidUtils {
 
-    private final static Set<String> baseFuncid = new HashSet<>();
+    private final static Map<String,String> baseFuncid = new HashMap<>();
 
     public static HttpUtils httpUtils;
 
     public static String rwdeditServer;
 
     static {
-        baseFuncid.add("ProjID");
-        baseFuncid.add("ProjName");
-        baseFuncid.add("ProjLocalID");
-        baseFuncid.add("ProjLocalName");
-        baseFuncid.add("BuildID");
-        baseFuncid.add("BuildName");
-        baseFuncid.add("BuildLocalID");
-        baseFuncid.add("BuildLocalName");
-        baseFuncid.add("FloorID");
-        baseFuncid.add("FloorName");
-        baseFuncid.add("FloorLocalID");
-        baseFuncid.add("FloorLocalName");
-        baseFuncid.add("RoomID");
-        baseFuncid.add("RoomName");
-        baseFuncid.add("RoomLocalID");
-        baseFuncid.add("RoomLocalName");
-        baseFuncid.add("ShaftID");
-        baseFuncid.add("ShaftName");
-        baseFuncid.add("ShaftLocalID");
-        baseFuncid.add("ShaftLocalName");
-        baseFuncid.add("SysID");
-        baseFuncid.add("SysName");
-        baseFuncid.add("SysLocalID");
-        baseFuncid.add("SysLocalName");
-        baseFuncid.add("EquipID");
-        baseFuncid.add("EquipName");
-        baseFuncid.add("EquipLocalID");
-        baseFuncid.add("EquipLocalName");
-        baseFuncid.add("ToolID");
-        baseFuncid.add("ToolName");
-        baseFuncid.add("ToolLocalID");
-        baseFuncid.add("ToolLocalName");
-        baseFuncid.add("ConsumID");
-        baseFuncid.add("ConsumName");
-        baseFuncid.add("ConsumLocalID");
-        baseFuncid.add("ConsumLocalName");
-
-        baseFuncid.add("ECModelID");
-        baseFuncid.add("ECModelName");
-        baseFuncid.add("ECModelLocalID");
-        baseFuncid.add("ECModelLocalName");
-
-        baseFuncid.add("SubentryID");
-        baseFuncid.add("SubentryName");
-        baseFuncid.add("SubentryLocalID");
-        baseFuncid.add("SubentryLocalName");
-
-        baseFuncid.add("BranchID");
-        baseFuncid.add("BranchName");
-        baseFuncid.add("BranchLocalID");
-        baseFuncid.add("BranchLocalName");
-
-        baseFuncid.add("BeaconID");
-        baseFuncid.add("BeaconlName");
-        baseFuncid.add("BeaconLocalID");
-        baseFuncid.add("BeaconLocalName");
-
-        baseFuncid.add("TenantID");
-        baseFuncid.add("TenantName");
-        baseFuncid.add("TenantLocalID");
-        baseFuncid.add("TenantLocalName");
+        baseFuncid.put("ProjID","id");
+        baseFuncid.put("ProjName","name");
+        baseFuncid.put("ProjLocalID","localId");
+        baseFuncid.put("ProjLocalName","localName");
+        baseFuncid.put("BuildID","id");
+        baseFuncid.put("BuildName","name");
+        baseFuncid.put("BuildLocalID","localId");
+        baseFuncid.put("BuildLocalName","localName");
+        baseFuncid.put("FloorID","id");
+        baseFuncid.put("FloorName","name");
+        baseFuncid.put("FloorLocalID","localId");
+        baseFuncid.put("FloorLocalName","localName");
+        baseFuncid.put("RoomID","id");
+        baseFuncid.put("RoomName","name");
+        baseFuncid.put("RoomLocalID","localId");
+        baseFuncid.put("RoomLocalName","localName");
+        baseFuncid.put("ShaftID","id");
+        baseFuncid.put("ShaftName","name");
+        baseFuncid.put("ShaftLocalID","localId");
+        baseFuncid.put("ShaftLocalName","localName");
+        baseFuncid.put("SysID","id");
+        baseFuncid.put("SysName","name");
+        baseFuncid.put("SysLocalID","localId");
+        baseFuncid.put("SysLocalName","localName");
+        baseFuncid.put("EquipID","id");
+        baseFuncid.put("EquipName","name");
+        baseFuncid.put("EquipLocalID","localId");
+        baseFuncid.put("EquipLocalName","localName");
+        baseFuncid.put("ToolID","id");
+        baseFuncid.put("ToolName","name");
+        baseFuncid.put("ToolLocalID","localId");
+        baseFuncid.put("ToolLocalName","localName");
+        baseFuncid.put("ConsumID","id");
+        baseFuncid.put("ConsumName","name");
+        baseFuncid.put("ConsumLocalID","localId");
+        baseFuncid.put("ConsumLocalName","localName");
+
+        baseFuncid.put("ECModelID","id");
+        baseFuncid.put("ECModelName","name");
+        baseFuncid.put("ECModelLocalID","localId");
+        baseFuncid.put("ECModelLocalName","localName");
+
+        baseFuncid.put("SubentryID","id");
+        baseFuncid.put("SubentryName","name");
+        baseFuncid.put("SubentryLocalID","localId");
+        baseFuncid.put("SubentryLocalName","localName");
+
+        baseFuncid.put("BranchID","id");
+        baseFuncid.put("BranchName","name");
+        baseFuncid.put("BranchLocalID","localId");
+        baseFuncid.put("BranchLocalName","localName");
+
+        baseFuncid.put("BeaconID","id");
+        baseFuncid.put("BeaconlName","name");
+        baseFuncid.put("BeaconLocalID","localId");
+        baseFuncid.put("BeaconLocalName","localName");
+
+        baseFuncid.put("TenantID","id");
+        baseFuncid.put("TenantName","name");
+        baseFuncid.put("TenantLocalID","localId");
+        baseFuncid.put("TenantLocalName","localName");
 
     }
 
     public static boolean isBase(String code) {
-        return baseFuncid.contains(code);
+        return baseFuncid.containsKey(code);
+    }
+    public static String getRealCode(String code) {
+        return baseFuncid.get(code);
     }
 
     public static ArrayNode transEnumDataSource(String dataSource) {

+ 6 - 0
dmp-rwd-edit/pom.xml

@@ -87,6 +87,12 @@
             <groupId>org.apache.poi</groupId>
             <artifactId>poi-ooxml</artifactId>
         </dependency>
+        <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.7.2</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 8 - 0
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/entity/FuncidDef.java

@@ -53,6 +53,10 @@ public class FuncidDef {
     private String note;
     private Boolean subFlag;
     private Boolean weakPoint;
+    /**通用信息点标记,1-通用信息点,2-个性化信息点*/
+    private String shareType;
+    /**逻辑排序序号*/
+    private Integer orderSeq;
     private Integer isUsed;//状态 0.历史版本 1.使用中
     private String version;//版本
     private Date lastUpdateTime;//最后更新时间
@@ -87,6 +91,8 @@ public class FuncidDef {
         entity.setIsUsed(model.getIsUsed());//状态 0.历史版本 1.使用中
         entity.setVersion(model.getVersion());//版本
         entity.setLastUpdateTime(model.getLastUpdateTime());//发布时间
+        entity.setOrderSeq(model.getOrderSeq());
+        entity.setShareType(model.getShareType());
         return entity;
     }
 
@@ -120,6 +126,8 @@ public class FuncidDef {
         model.setIsUsed(this.getIsUsed());//状态 0.历史版本 1.使用中
         model.setVersion(this.getVersion());//版本
         model.setLastUpdateTime(this.getLastUpdateTime());//发布时间
+        model.setOrderSeq(this.getOrderSeq());
+        model.setShareType(this.getShareType());
         return model;
     }
 

+ 30 - 1
dmp-rwd-edit/src/main/java/com/persagy/dmp/rwd/edit/service/FuncidDefService.java

@@ -1,5 +1,6 @@
 package com.persagy.dmp.rwd.edit.service;
 
+import cn.hutool.core.collection.CollUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.common.criteria.CriteriaUtils;
@@ -34,18 +35,46 @@ public class FuncidDefService {
     @Autowired
     private CriteriaUtils criteriaUtils;
 
-
+    /***
+     * Description: 根据条件查询信息点
+     * @param request : 请求参数
+     * @return : com.persagy.common.web.ListResponse<com.persagy.dmp.rwd.model.FuncidDefModel>
+     * @author : lijie
+     * @date :2021/6/22 12:17
+     * Update By lijie 2021/6/22 12:17
+     */
     public ListResponse<FuncidDefModel> queryFuncid(JacksonCriteria request) {
+        // 1.根据classCode查询符合条件的信息点
         ListResponse<FuncidDefModel> resp = new ListResponse<>();
         List<FuncidDefModel> list = null;
         boolean hasClassCode = request.getCriteria().has("classCode");
         if (hasClassCode) {
             list = queryWithClassCode(request);
         }
+        // 2.2021年6月22日12:18:10的排序需求
+        if (CollUtil.isNotEmpty(list)){
+            sortFuncidForEdit(list);
+        }
 
         resp.setData(list);
         return resp;
     }
+    /***
+     * Description: 对信息点列表进行排序
+     * @param list : 信息点列表
+     * @return : void
+     * @author : lijie
+     * @date :2021/6/22 12:19
+     * Update By lijie 2021/6/22 12:19
+     */
+    private void sortFuncidForEdit(List<FuncidDefModel> list) {
+        // TODO:暂时不做,通过Excel格式归纳到一起.一级按照“技术参数-运行参数-设定参数-台账参数”的逻辑展示;
+        // 二级按通用信息点、个性化信息点的excel表格进行排序展示;
+        // 三级按照excel表格的逻辑进行排序展示
+        list.sort(Comparator
+                .comparing(FuncidDefModel::getShareType)
+                .thenComparingInt(FuncidDefModel::getOrderSeq));
+    }
 
     public PagedResponse<FuncidDefModel> query(JacksonCriteria criteria) {
         // 预处理criteria

+ 3 - 0
dmp-rwd-edit/src/main/resources/ddl/rwd_def_funcid.sql

@@ -0,0 +1,3 @@
+-- 2021年6月22日11:11:46 更改表结构 新增两个字段:share_type,order_seq
+alter table rwd_def_funcid Add column `share_type` varchar(10) DEFAULT '2' COMMENT '通用信息点标记,1-通用信息点,2-个性化信息点';
+alter table rwd_def_funcid Add column `order_seq` int(10) DEFAULT NULL COMMENT '逻辑排序序号';