Explorar o código

提交rabbitMQ相关配置类

lixing %!s(int64=3) %!d(string=hai) anos
pai
achega
90c2285268

+ 222 - 0
src/main/java/com/persagy/apm/alarmservice/common/configuration/rabbitmq/JacksonMapper.java

@@ -0,0 +1,222 @@
+package com.persagy.apm.alarmservice.common.configuration.rabbitmq;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.databind.node.ArrayNode;
+import com.fasterxml.jackson.databind.node.JsonNodeType;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ * @author: yaoll
+ * @date: 2020-09-04
+ * @verison: 1.0
+ */
+public class JacksonMapper {
+
+	private static Logger logger = LoggerFactory.getLogger(JacksonMapper.class);
+
+	public static final ObjectMapper nonEmptyMapper;
+	public static final ObjectMapper nonDefaultMapper;
+	public static final ObjectMapper nonEmptyFormatMapper;
+
+	static {
+		nonEmptyMapper = new ObjectMapper();
+		nonEmptyMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
+		nonEmptyMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+		nonEmptyMapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
+
+		nonDefaultMapper = new ObjectMapper();
+		nonDefaultMapper.setSerializationInclusion(JsonInclude.Include.NON_DEFAULT);
+		nonDefaultMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+		nonDefaultMapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
+
+		nonEmptyFormatMapper = new ObjectMapper();
+		nonEmptyFormatMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
+		nonEmptyFormatMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+		nonEmptyFormatMapper.disable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES);
+		nonEmptyFormatMapper.enable(SerializationFeature.INDENT_OUTPUT);
+	}
+
+	private static boolean isEmpty(final CharSequence cs) {
+		return cs == null || cs.length() == 0;
+	}
+
+	public static <T> T toObject(String jsonString, Class<T> clazz) {
+		if (!isEmpty(jsonString)) {
+			try {
+				return nonEmptyMapper.readValue(jsonString, clazz);
+			} catch (IOException e) {
+				logger.warn("parse json string to {} error: {}", clazz.getName(), jsonString, e);
+			}
+		}
+		return null;
+	}
+
+	public static <T> T toObject(String jsonString, TypeReference<T> typeRef) {
+		if (!isEmpty(jsonString)) {
+			try {
+				return nonEmptyMapper.readValue(jsonString, typeRef);
+			} catch (IOException e) {
+				logger.warn("parse json string to {} error: {}", typeRef.toString(), jsonString, e);
+			}
+		}
+		return null;
+	}
+
+	public static <T> T toObject(String jsonString, JavaType javaType) {
+		if (!isEmpty(jsonString)) {
+			try {
+				return (T) nonEmptyMapper.readValue(jsonString, javaType);
+			} catch (IOException e) {
+				logger.warn("parse json string to {} error: {}", javaType.toString(), jsonString, e);
+			}
+		}
+		return null;
+	}
+
+	public static <T> T toObject(String jsonString, Class cla, Class... clb) {
+		if (!isEmpty(jsonString)) {
+			try {
+				JavaType javaType = nonEmptyMapper.getTypeFactory().constructParametricType(cla, clb);
+				return (T) nonEmptyMapper.readValue(jsonString, javaType);
+			} catch (IOException e) {
+				logger.warn("parse json string to {} error: {}", cla.getName(), jsonString, e);
+			}
+		}
+		return null;
+	}
+
+	public static JavaType constructParametricType(Class<?> parametrized, Class<?>... parameterClasses) {
+		return nonEmptyMapper.getTypeFactory().constructParametricType(parametrized, parameterClasses);
+	}
+
+	public static JavaType constructParametricType(Class<?> rawType, JavaType... parameterTypes) {
+		return nonEmptyMapper.getTypeFactory().constructParametricType(rawType, parameterTypes);
+	}
+
+	public static String toSimpleJson(Object object) {
+		try {
+			return nonEmptyMapper.writeValueAsString(object);
+		} catch (JsonProcessingException e) {
+			logger.error("write to json string error:" + object, e);
+		}
+		return null;
+	}
+
+	public static String toFormatJson(Object object) {
+		try {
+			return nonEmptyFormatMapper.writeValueAsString(object);
+		} catch (JsonProcessingException e) {
+			logger.error("write to json string error:" + object, e);
+		}
+		return null;
+	}
+
+	public static final String getString(ObjectNode obj, String key) {
+		return getString(obj, key, null);
+	}
+
+	public static final String getString(ObjectNode obj, String key, String defaultValue) {
+		if (obj == null) {
+			return defaultValue;
+		}
+		if (!obj.has(key)) {
+			return defaultValue;
+		}
+		return obj.get(key).asText();
+	}
+
+	public static final Integer getInteger(ObjectNode obj, String key) {
+		return getInteger(obj, key, null);
+	}
+
+	public static final Integer getInteger(ObjectNode obj, String key, Integer defaultValue) {
+		if (obj == null) {
+			return defaultValue;
+		}
+		if (!obj.has(key)) {
+			return defaultValue;
+		}
+		JsonNode jsonNode = obj.get(key);
+
+		return Integer.valueOf(jsonNode.asText());
+	}
+
+	public static final Double getDouble(ObjectNode obj, String key) {
+		return getDouble(obj, key, null);
+	}
+
+	public static final Double getDouble(ObjectNode obj, String key, Double defaultValue) {
+		if (obj == null) {
+			return defaultValue;
+		}
+		if (!obj.has(key)) {
+			return defaultValue;
+		}
+		return Double.valueOf(obj.get(key).asText());
+	}
+
+	public static final Boolean getBoolean(ObjectNode obj, String key) {
+		return getBoolean(obj, key, null);
+	}
+
+	public static final Boolean getBoolean(ObjectNode obj, String key, Boolean defaultValue) {
+		if (obj == null) {
+			return defaultValue;
+		}
+		if (!obj.has(key)) {
+			return defaultValue;
+		}
+		return Boolean.valueOf(obj.get(key).toString());
+	}
+
+	public static final ObjectNode getObject(ObjectNode obj, String key) {
+		return getObject(obj, key, null);
+	}
+
+	public static final ObjectNode getObject(ObjectNode obj, String key, ObjectNode defaultValue) {
+		if (obj == null) {
+			return defaultValue;
+		}
+		if (!obj.has(key)) {
+			return defaultValue;
+		}
+		JsonNode jsonNode = obj.get(key);
+		JsonNodeType nodeType = jsonNode.getNodeType();
+		if (nodeType == JsonNodeType.STRING) {
+			return toObject(jsonNode.asText(), ObjectNode.class);
+		} else if (nodeType == JsonNodeType.OBJECT) {
+			return (ObjectNode) jsonNode;
+		}
+		return defaultValue;
+	}
+
+
+	public static final ArrayNode getArray(ObjectNode obj, String key) {
+		return getArray(obj, key, null);
+	}
+
+	public static final ArrayNode getArray(ObjectNode obj, String key, ArrayNode defaultValue) {
+		if (obj == null) {
+			return defaultValue;
+		}
+		if (!obj.has(key)) {
+			return defaultValue;
+		}
+		JsonNode jsonNode = obj.get(key);
+		JsonNodeType nodeType = jsonNode.getNodeType();
+		if (nodeType == JsonNodeType.STRING) {
+			return toObject(jsonNode.asText(), ArrayNode.class);
+		} else if (nodeType == JsonNodeType.ARRAY) {
+			return (ArrayNode) jsonNode;
+		}
+		return defaultValue;
+	}
+
+}

+ 31 - 0
src/main/java/com/persagy/apm/alarmservice/common/configuration/rabbitmq/RabbitMsgConfig.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.alarmservice.common.configuration.rabbitmq;
+
+import com.persagy.apm.alarmservice.common.configuration.rabbitmq.JacksonMapper;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.amqp.support.converter.MessageConverter;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+
+/**
+ * rabbitmq消息配置
+ *
+ * @author lixing
+ * @version V1.0 2021/10/11 9:03 下午
+ **/
+@Configuration
+public class RabbitMsgConfig {
+    @Bean
+    public HttpMessageConverters customConverters() {
+        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
+        converter.setObjectMapper(JacksonMapper.nonEmptyMapper);
+        return new HttpMessageConverters(converter);
+    }
+
+    // JMS 使用
+    @Bean
+    public MessageConverter customMessageConvert() {
+        return new Jackson2JsonMessageConverter();
+    }
+}

+ 36 - 0
src/main/java/com/persagy/apm/alarmservice/common/configuration/rabbitmq/RabbitMsgSender.java

@@ -0,0 +1,36 @@
+package com.persagy.apm.alarmservice.common.configuration.rabbitmq;
+
+import com.persagy.apm.alarmservice.common.model.DmpMessage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.function.json.JacksonMapper;
+import org.springframework.stereotype.Component;
+
+/**
+ * rabbitmq消息发送者
+ *
+ * @author lixing
+ * @version V1.0 2021/10/11 8:20 下午
+ **/
+@Slf4j
+@Component
+public class RabbitMsgSender {
+    /**
+     * 报警交换机
+     */
+    private final String exchange = "exchange-dmp";
+
+    /**
+     * 报警定义路由键
+     */
+    private final String dmpAlarmConfigRoutingKey = "alarm-config-routing-key";
+
+    @Autowired
+    private RabbitTemplate rabbitTemplate;
+
+    public void convertAndSend(DmpMessage message) {
+        rabbitTemplate.convertAndSend(exchange, dmpAlarmConfigRoutingKey, message);
+    }
+}

+ 544 - 0
src/main/resources/db/init/data.sql.bak

@@ -0,0 +1,544 @@
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ChillWaterOutTemp', '冷水出口温度', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ChillWaterOutTempdifference', '连续时刻出水温度差', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ChillWaterValveOpening', '冷水阀开度', 'ACATAH', '%', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_FreshAirH', '新风焓值', 'ACATAH', 'kJ/kgda', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_FreshAirHdifference', '连续时刻室外焓值差', 'ACATAH', 'kJ/kgda', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_FreshAirValveOpening', '新风阀开度', 'ACATAH', '%', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ManualAutoStatus', '手自动状态', 'ACATAH', NULL,
+        '[{\"key\": \"0\", \"value\": \"手动\"}, {\"key\": \"1\", \"value\": \"自动\"}]', NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirCO2', '回风CO2浓度', 'ACATAH', 'ppm', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirCO2difference', '连续时刻CO2浓度差', 'ACATAH', 'ppm', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirH', '回风焓值', 'ACATAH', 'kJ/kgda', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirHdifference', '连续时刻室内焓值差', 'ACATAH', 'kJ/kgda', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirTemp', '回风温度', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirTempdifference', '连续时刻回风温度差', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirTempSet', '回风温度设定', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_ReturnAirValveOpening', '回风阀开度', 'ACATAH', '%', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_RunStatus', '运行状态', 'ACATAH', NULL,
+        '[{\"key\": \"0\", \"value\": \"停止\"}, {\"key\": \"1\", \"value\": \"运行\"}]', NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_SeasonChangeSet', '季节转换设定', 'ACATAH', NULL,
+        '[{\"key\": \"1\", \"value\": \"夏季\"}, {\"key\": \"2\", \"value\": \"换热季\"}, {\"key\": \"3\", \"value\": \"冬季\"}, {\"key\": \"99\", \"value\": \"其他\"}]',
+        NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_SupplyAirTemp', '送风温度', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_SupplyAirTempdifference', '连续时刻送风温度差', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_SupplyAirTempSet', '送风温度设定', 'ACATAH', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATAH_SupplyFanFreq', '送风机频率', 'ACATAH', 'Hz', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_ChillWaterOutTemp', '冷水出口温度', 'ACATFU', NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_ChillWaterOutTempdifference', '连续时刻出水温度差', 'ACATFU', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_ChillWaterValveOpening', '冷水阀开度', 'ACATFU', '%', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_ManualAutoStatus', '手自动状态', 'ACATFU', NULL,
+        '[{\"key\": \"0\", \"value\": \"手动\"}, {\"key\": \"1\", \"value\": \"自动\"}]', NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_RunStatus', '运行状态', 'ACATFU', NULL,
+        '[{\"key\": \"0\", \"value\": \"停止\"}, {\"key\": \"1\", \"value\": \"运行\"}]', NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_SeasonChangeSet', '季节转换设定', 'ACATFU', NULL,
+        '[{\"key\": \"1\", \"value\": \"夏季\"}, {\"key\": \"2\", \"value\": \"换热季\"}, {\"key\": \"3\", \"value\": \"冬季\"}, {\"key\": \"99\", \"value\": \"其他\"}]',
+        NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_SupplyAirTemp', '送风温度', 'ACATFU', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_SupplyAirTempdifference', '连续时刻送风温度差', 'ACATFU', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `monitor_indicator`
+VALUES ('ACATFU_SupplyAirTempSet', '送风温度设定', 'ACATFU', '℃', NULL, NULL, NULL, NULL, NULL, NULL, 1);
+REPLACE INTO `calculate_method`
+VALUES ('1', '冷水出口温度', '${obj;CurrentTime;15min;InfoCode;chillWaterOutTemp}', 'ACATAH_ChillWaterOutTemp', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('10', '回风焓值', '${obj;CurrentTime;15min;InfoCode;returnAirH}', 'ACATAH_ReturnAirH', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('11', '(当前时刻室内焓值-上一时刻室内焓值)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;returnAirHdifference}-${obj;LastTime;1h;InfoCode;returnAirHdifference}',
+        'ACATAH_ReturnAirHdifference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18',
+        1);
+REPLACE INTO `calculate_method`
+VALUES ('12', '回风温度', '${obj;CurrentTime;15min;InfoCode;returnAirTemp}', 'ACATAH_ReturnAirTemp', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('13', '(当前时刻回风温度-上一时刻回风温度)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;returnAirTempdifference}-${obj;LastTime;1h;InfoCode;returnAirTempdifference}',
+        'ACATAH_ReturnAirTempdifference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18',
+        1);
+REPLACE INTO `calculate_method`
+VALUES ('14', '回风温度设定', '${obj;CurrentTime;15min;InfoCode;returnAirTempSet}', 'ACATAH_ReturnAirTempSet', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('15', '回风阀开度', '${obj;CurrentTime;15min;InfoCode;returnAirValveOpening}', 'ACATAH_ReturnAirValveOpening', 1,
+        NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('16', '运行状态', '${obj;CurrentTime;15min;InfoCode;runStatus}', 'ACATAH_RunStatus', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('17', '季节转换设定', '${obj;CurrentTime;15min;InfoCode;seasonChangeSet}', 'ACATAH_SeasonChangeSet', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('18', '送风温度', '${obj;CurrentTime;15min;InfoCode;supplyAirTemp}', 'ACATAH_SupplyAirTemp', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('19', '(当前时刻送风温度-上一时刻送风温度)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;supplyAirTempdifference}-${obj;LastTime;1h;InfoCode;supplyAirTempdifference}',
+        'ACATAH_SupplyAirTempdifference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18',
+        1);
+REPLACE INTO `calculate_method`
+VALUES ('2', '(当前时刻出水温度-上一时刻出水温度)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;chillWaterOutTempdifference}-${obj;LastTime;1h;InfoCode;chillWaterOutTempdifference}',
+        'ACATAH_ChillWaterOutTempdifference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId',
+        '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('20', '送风温度设定', '${obj;CurrentTime;15min;InfoCode;supplyAirTempSet}', 'ACATAH_SupplyAirTempSet', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('21', '送风机频率', '${obj;CurrentTime;15min;InfoCode;supplyFanFreq}', 'ACATAH_SupplyFanFreq', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('22', '冷水出口温度', '${obj;CurrentTime;15min;InfoCode;chillWaterOutTemp}', 'ACATFU_ChillWaterOutTemp', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('23', '(当前时刻出水温度-上一时刻出水温度)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;chillWaterOutTempdifference}-${obj;LastTime;1h;InfoCode;chillWaterOutTempdifference}',
+        'ACATFU_ChillWaterOutTempdifference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId',
+        '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('24', '冷水阀开度', '${obj;CurrentTime;15min;InfoCode;chillWaterValveOpening}', 'ACATFU_ChillWaterValveOpening', 1,
+        NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('25', '手自动状态', '${obj;CurrentTime;15min;InfoCode;manualAutoStatus}', 'ACATFU_ManualAutoStatus', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('26', '运行状态', '${obj;CurrentTime;15min;InfoCode;runStatus}', 'ACATFU_RunStatus', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('27', '季节转换设定', '${obj;CurrentTime;15min;InfoCode;seasonChangeSet}', 'ACATFU_SeasonChangeSet', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('28', '送风温度', '${obj;CurrentTime;15min;InfoCode;supplyAirTemp}', 'ACATFU_SupplyAirTemp', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('29', '(当前时刻送风温度-上一时刻送风温度)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;supplyAirTempdifference}-${obj;LastTime;1h;InfoCode;supplyAirTempdifference}',
+        'ACATFU_SupplyAirTempdifference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18',
+        1);
+REPLACE INTO `calculate_method`
+VALUES ('3', '冷水阀开度', '${obj;CurrentTime;15min;InfoCode;chillWaterValveOpening}', 'ACATAH_ChillWaterValveOpening', 1,
+        NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('30', '送风温度设定', '${obj;CurrentTime;15min;InfoCode;supplyAirTempSet}', 'ACATFU_SupplyAirTempSet', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('4', '新风焓值', '${obj;CurrentTime;15min;InfoCode;freshAirH}', 'ACATAH_FreshAirH', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('5', '连续时刻室外焓值差', '${obj;CurrentTime;15min;InfoCode;freshAirHdifference}', 'ACATAH_FreshAirHdifference', 1,
+        NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('6', '新风阀开度', '${obj;CurrentTime;15min;InfoCode;freshAirValveOpening}', 'ACATAH_FreshAirValveOpening', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('7', '手自动状态', '${obj;CurrentTime;15min;InfoCode;manualAutoStatus}', 'ACATAH_ManualAutoStatus', 1, NULL,
+        'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('8', '回风CO2浓度', '${obj;CurrentTime;15min;InfoCode;returnAirCO2}', 'ACATAH_ReturnAirCO2', 1, NULL, 'systemId',
+        '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18', 1);
+REPLACE INTO `calculate_method`
+VALUES ('9', '(当前时刻CO2浓度-上一时刻CO2浓度)的绝对值',
+        '${obj;CurrentTime;1h;InfoCode;returnAirCO2difference}-${obj;LastTime;1h;InfoCode;returnAirCO2difference}',
+        'ACATAH_ReturnAirCO2difference', 1, NULL, 'systemId', '2021-09-20 17:13:56', 'systemId', '2021-09-20 17:14:18',
+        1);
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('1', '4304080001', '衡阳蒸湘万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('10', '3610020001', '抚州临川万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('100', '4110020001', '许昌魏都万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('101', '3717020001', '菏泽牡丹万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('102', '1305020001', '邢台襄都万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('103', '3212830001', '泰州泰兴万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('104', '5101120002', '成都龙泉驿万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('105', '6206020001', '武威凉州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('106', '3101140003', '上海中信泰富万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('107', '2312020001', '绥化万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('108', '4102020001', '开封龙亭万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('109', '3406030001', '淮北相山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('11', '3601110001', '南昌青山湖万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('110', '6501040001', '乌鲁木齐高新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('111', '3404030003', '淮南国庆路万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('112', '1502070001', '包头九原万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('113', '2109110001', '阜新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('114', '3705020002', '东营东城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('115', '4114030001', '商丘睢阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('116', '3418020001', '宣城宣州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('117', '4106220001', '鹤壁淇滨万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('118', '3204810001', '常州溧阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('119', '3201130002', '南京仙林万达茂', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('12', '3505030002', '泉州城东万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('120', '5105000001', '泸州龙马潭万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('121', '6501030001', '乌鲁木齐德汇万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('122', '4107110001', '新乡牧野万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('123', '3101120001', '上海颛桥万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('124', '1101060003', '北京西铁营万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('125', '3308020001', '衢州柯城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('126', '3206120001', '南通通州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('127', '5101210001', '成都金堂万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('128', '5202010001', '六盘水钟山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('129', '3210030001', '扬州邗江万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('13', '3604020001', '九江濂溪万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('130', '4104030001', '平顶山卫东万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('131', '6101130001', '西安高新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('132', '3407110001', '铜陵铜官万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('133', '6209020001', '酒泉肃州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('134', '5303020001', '曲靖麒麟万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('135', '2102110002', '大连甘井子万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('136', '2202020001', '吉林昌邑万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('137', '2201060001', '长春车城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('138', '2107110001', '锦州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('139', '5101840001', '成都崇州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('14', '4212020001', '咸宁咸安万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('140', '1501030001', '呼市回民区万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('141', '5001090001', '重庆北碚万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('142', '2102830001', '大连庄河万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('143', '1407020001', '晋中新建万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('144', '3306810001', '绍兴诸暨万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('145', '2110030001', '辽阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('146', '3205810001', '苏州常熟万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('147', '5118020001', '雅安万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('148', '3205830001', '苏州昆山青阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('149', '4108020001', '焦作解放万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('15', '4413030001', '惠州大亚湾万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('150', '3209030001', '盐城盐都万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('151', '3704030001', '枣庄薛城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('152', '3412040001', '阜阳颍泉万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('153', '1101060001', '北京槐房万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('154', '1101060002', '北京丰科万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('155', '5101050001', '成都青羊万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('156', '2108040001', '营口鲅鱼圈万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('157', '5111020001', '乐山市中万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('158', '5001180001', '重庆永川万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('159', '3206010001', '南通港闸万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('16', '4407810001', '江门台山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('160', '5108020001', '广元利州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('161', '1302020001', '唐山路南万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('162', '5101040001', '成都锦华路万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('163', '3507840001', '南平建阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('164', '4401830002', '广州新塘万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('165', '4407820001', '江门新会万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('166', '4419010003', '东莞虎门万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('167', '1102290003', '北京延庆万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('168', '1427010001', '运城盐湖万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('169', '5002240001', '重庆铜梁万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('17', '4501050001', '南宁江南万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('170', '5115210001', '宜宾万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('171', '3414020001', '合肥巢湖万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('172', '3201240001', '南京溧水万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('173', '1404110001', '长治高新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('174', '5114990001', '眉山东坡万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('175', '6402990001', '石嘴山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('176', '6403990001', '吴忠万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('177', '3302830001', '宁波奉化万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('178', '3304990001', '嘉兴龙鼎万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('179', '5201990001', '贵阳观山湖万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('18', '4503120003', '桂林临桂万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('180', '1102270001', '北京怀柔青春万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('181', '1201070001', '天津滨海万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('182', '5002220001', '重庆綦江万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('183', '1402110001', '大同平城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('184', '2102820001', '大连普兰店万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('185', '5101220001', '成都双流万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('186', '4000600001', '重庆南坪万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('19', '4401050001', '广州海珠万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('2', '3505240001', '泉州安溪万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('20', '4401150001', '广州南沙万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('21', '4312020001', '怀化鹤城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('22', '4418020001', '清远清城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('23', '4509020001', '玉林玉州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('24', '4409040001', '茂名电白万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('25', '4401120003', '广州南岗万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('26', '4406050001', '广州金沙洲万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('27', '4211000001', '黄冈黄州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('28', '4503030001', '桂林叠彩万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('29', '4403060001', '深圳宝安福城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('3', '4309030001', '益阳赫山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('30', '3501010001', '福清福和万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('31', '4201120002', '武汉东西湖万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('32', '4205060001', '宜昌夷陵万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('33', '3301110001', '杭州富阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('34', '3101121003', '上海马桥万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('35', '1201140001', '天津武清福源万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('36', '5134010001', '凉山州西昌万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('37', '1509020001', '乌兰察布万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('38', '4114020001', '商丘港汇万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('39', '6501040002', '乌鲁木齐德港万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('4', '4508020001', '贵港港北万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('40', '3212810002', '泰州兴化万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('41', '5201030002', '贵阳数博万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('42', '3413210001', '宿州砀山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('43', '3416020001', '亳州谯城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('44', '3210030005', '扬州蜀冈万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('45', '5101130001', '成都青白江万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('46', '3710020001', '威海环翠万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('47', '3302250001', '宁波象山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('48', '4116020001', '周口开元万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('49', '5103040001', '自贡汇川路万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('5', '4505030001', '北海银海万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('50', '1304020001', '邯郸邯山万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('51', '5301140003', '昆明呈贡万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('52', '3101510001', '上海崇明万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('53', '6109020001', '安康高新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('54', '1306820001', '保定定州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('55', '4101010001', '郑州高新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('56', '5401020001', '拉萨城关万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('57', '3703030003', '淄博张店万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('58', '3403110001', '蚌埠淮上万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('59', '3202140001', '无锡新吴万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('6', '4405110001', '汕头金平万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('60', '3206850001', '南通海安万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('61', '3205830004', '苏州昆山经开万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('62', '5104020001', '攀枝花万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('63', '2101120002', '沈阳全运万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('64', '1306060002', '保定未来石万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('65', '3101120008', '上海浦江万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('66', '5201030001', '贵阳云岩万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('67', '3213220001', '宿迁沭阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('68', '5001190001', '重庆南川万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('69', '3704030002', '枣庄滕州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('7', '3601030001', '南昌西湖万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('70', '3401210001', '合肥北城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('71', '2205020001', '通化万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('72', '4109020002', '濮阳经开万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('73', '1306060001', '保定嘉德万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('74', '3711020002', '日照东港万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('75', '1406020001', '朔州朔城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('76', '1303020001', '秦皇岛海港万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('77', '1411810001', '吕梁孝义万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('78', '3208120003', '淮安楚州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('79', '3413020002', '宿州CBD万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('8', '4211820001', '黄冈武穴万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('80', '3702140002', '青岛城阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('81', '3715020001', '聊城万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('82', '1506020001', '鄂尔多斯万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('83', '3713020002', '临沂上海路万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('84', '1522010001', '兴安盟万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('85', '3411030001', '滁州南谯万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('86', '2103040001', '鞍山高新万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('87', '5001020001', '重庆涪陵万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('88', '3301100001', '杭州余杭万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('89', '2306040001', '大庆让胡路万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('9', '4213030001', '随州万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('90', '1301020001', '石家庄长安万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('91', '6110020001', '商洛万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('92', '5001040001', '重庆大渡口万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('93', '5227010001', '黔南都匀万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('94', '3707830001', '潍坊寿光万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('95', '3205820003', '苏州张家港万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('96', '6108020001', '榆林榆阳万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('97', '2105020001', '本溪万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('98', '3213110001', '宿迁宿豫万达广场', 'WD');
+REPLACE INTO energy_alarm_service.alarm_project (id, project_id, project_name, group_code)
+VALUES ('99', '5001060001', '重庆沙坪坝万达广场', 'WD');