mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.) - frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts - scripts/: build, test-env, tools (Docker Compose, service templates, API parity) - docs/: AGENTS.md, superpowers specs, architecture docs - .gitignore: standard Java/Maven exclusions Moved from legacy maven-*/ root layout to backend/ organized structure.
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>cn.cloudwalk.elevator</groupId>
|
||||
<artifactId>cw-elevator-application-reactor</artifactId>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
|
||||
<artifactId>cw-elevator-application-common</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<properties>
|
||||
<alibaba.eclipse.codestyle.path>${project.basedir}/../../docs/style/alibaba-eclipse-codestyle.xml</alibaba.eclipse.codestyle.path>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>cn.cloudwalk.cloud</groupId>
|
||||
<artifactId>cloudwalk-common-result</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.ant</groupId>
|
||||
<artifactId>ant</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.coobird</groupId>
|
||||
<artifactId>thumbnailator</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat.embed</groupId>
|
||||
<artifactId>tomcat-embed-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.cloudwalk.cloud</groupId>
|
||||
<artifactId>cloudwalk-common-web</artifactId>
|
||||
</dependency>
|
||||
<!-- cloudwalk-common-web 在部分私服 POM 上传递依赖不完整;隔离仓库构建时显式补齐编译 classpath -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-autoconfigure</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.zxing</groupId>
|
||||
<artifactId>core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.lingala.zip4j</groupId>
|
||||
<artifactId>zip4j</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.data</groupId>
|
||||
<artifactId>spring-data-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>net.revelc.code.formatter</groupId>
|
||||
<artifactId>formatter-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package cn.cloudwalk.elevator.annontation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 标记字段与达芬奇(Davinci)图片存储或展示相关的元信息。
|
||||
* <p>
|
||||
* 所在包名 {@code annontation} 为历史拼写,与既有引用保持一致,请勿单独重命名包路径。
|
||||
*/
|
||||
@Target({ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface DavinciPic {}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
package cn.cloudwalk.elevator.cache;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.RedisSerializer;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
@Configuration
|
||||
public class CacheOverrideConfig {
|
||||
public static final String CACHE_NAME_APPLICATIONIDS = "ACS_Applicationids";
|
||||
public static final String CACHE_NAME_ACS_DEVICE_TYPES = "ACS_DeviceTypesCache";
|
||||
public static final String CACHE_NAME_ACS_DEVICE_TYPE_FEATURES = "ACS_DeviceTypeFeaturesCache";
|
||||
public static final String CACHE_NAME_ACS_DEVICE_ATTRS = "ACS_DeviceAttrsCache";
|
||||
public static final String CACHE_NAME_ACS_RECORD_STATISTICS = "ACS_RecordStatisticsCache";
|
||||
public static final String CACHE_NAME_ACS_DEVICE_TREE = "ACS_DeviceTreeCache";
|
||||
public static final String CACHE_NAME_ACS_AREA_TREE = "ACS_AreaTreeCache";
|
||||
public static final String CACHE_KEY_APPLICATION_IDS_PREFIX = "acs_applicationIds:";
|
||||
public static final String CACHE_KEY_ACS_DEVICE_TYPES_PREFIX = "acs_deviceTypes:";
|
||||
public static final String CACHE_KEY_ACS_DEVICE_TYPE_FEATURES_PREFIX = "acs_deviceTypeFeatures:";
|
||||
public static final String CACHE_KEY_ACS_EXPORT_PREFIX = "acs_export_prefix:";
|
||||
public static final String CACHE_KEY_ACS_DEVICE_ATTRS_PREFIX = "acs_deviceAttrs:";
|
||||
public static final String CACHE_KEY_ACS_RECORD_STATISTICS_PREFIX = "acs_recordStatistics:";
|
||||
public static final String CACHE_KEY_ACS_DEVICE_TREE_PREFIX = "acs_deviceTreeCache";
|
||||
public static final String CACHE_KEY_ACS_AREA_TREE_PREFIX = "acs_areaTreeCache:";
|
||||
|
||||
@Primary
|
||||
@Bean({"redisTemplate"})
|
||||
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
||||
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate();
|
||||
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
||||
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
|
||||
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
||||
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
|
||||
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
|
||||
redisTemplate.setValueSerializer((RedisSerializer)jackson2JsonRedisSerializer);
|
||||
redisTemplate.setKeySerializer((RedisSerializer)stringRedisSerializer);
|
||||
redisTemplate.afterPropertiesSet();
|
||||
return redisTemplate;
|
||||
}
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
public class AcsConstants {
|
||||
|
||||
public static final String SUCCESS_CODE = "00000000";
|
||||
public static final String SERVICE_CODE = "elevator-app";
|
||||
public static final Long ONE_DAY_MILLISECONDS = Long.valueOf(86400000L);
|
||||
public static final Long ONE_YEAR_MILLISECONDS = Long.valueOf(31536000000L);
|
||||
public static final String DEFAULT_CALLER = "defaultUserId";
|
||||
public static final String DEFAULT_CALLER_NAME = "defaultUserName";
|
||||
public static final String ACS_OPEN_DOOR_RECORD_EVENT_TOPIC = "ACS_OPEN_DOOR_RECORD_EVENT_TOPIC";
|
||||
public static final String ACS_BACKEND_REG_LOG_ID_KEY_PREFIX = "acs:backendRegLogId:";
|
||||
public static final String ACS_BACKEND_REG_EXPIRE_PREFIX = "acs:backendRegExpire:";
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
public class AcsLockConstants {
|
||||
|
||||
public static final String LOCK_EXPORT_BUSINESSID_PREFIX = "AcsExport:";
|
||||
|
||||
public static final String LOCK_RECORD_STATISTICS_BUSINESSID_PREFIX = "AcsRecordStatistics:";
|
||||
|
||||
public static final String LOCK_BACKEND_REG_LOG_ID_PREFIX = "AcsBackendRegLogId:";
|
||||
|
||||
public static final String LOCK_URGENT_GROUP_DEVICE_ID_PREFIX = "AcsUrgentGroupDeviceIds:";
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "cloudwalk.elevator.common")
|
||||
public class ElevatorCwosConfig {
|
||||
private String relativePrefix;
|
||||
|
||||
public String getRelativePrefix() {
|
||||
return this.relativePrefix;
|
||||
}
|
||||
|
||||
public void setRelativePrefix(String relativePrefix) {
|
||||
this.relativePrefix = relativePrefix;
|
||||
}
|
||||
}
|
||||
+458
@@ -0,0 +1,458 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
public class ErrorCode {
|
||||
|
||||
public static final String OTHER_ERROR = "00000001";
|
||||
|
||||
public static final String ID_IS_NULL = "53060410";
|
||||
|
||||
public static final String ID_ARRAY_IS_NULL = "53060411";
|
||||
|
||||
public static final String ADD_IMAGE_STORE_ERROR = "53060413";
|
||||
|
||||
public static final String ID_IS_ERROR = "53060414";
|
||||
|
||||
public static final String EDIT_IMAGE_STORE_IS_ERROR = "53060415";
|
||||
|
||||
public static final String IMAGE_STORE_REF_IS_ALL_NULL = "53060416";
|
||||
|
||||
public static final String IMAGFE_STORE_ORG_ID_ARRAY_IS_ERROR = "53060417";
|
||||
|
||||
public static final String IMAGFE_STORE_LABEL_ID_ARRAY_IS_ERROR = "53060418";
|
||||
|
||||
public static final String IMAGFE_STORE_PERSON_ID_ARRAY_IS_ERROR = "53060419";
|
||||
|
||||
public static final String IMAGFE_STORE_LABEL_ID_EXCLUDE_ARRAY_IS_ERROR = "53060420";
|
||||
|
||||
public static final String IMAGFE_STORE_PERSON_ID_EXCLUDE_ARRAY_IS_ERROR = "53060421";
|
||||
|
||||
public static final String IMAGE_STORE_DELETE_ERROR = "53060422";
|
||||
|
||||
public static final String IMAGE_STORE_NAME_IS_ERROR = "53060423";
|
||||
|
||||
public static final String ID_LENGTH_IS_ERROR = "53060424";
|
||||
|
||||
public static final String ORG_PARENT_NODE_IS_ERROR = "53060425";
|
||||
|
||||
public static final String GET_BUSINESS_NAME_IS_ERROR = "53060426";
|
||||
|
||||
public static final String PARENT_ID_LENGTH_IS_ERROR = "53060427";
|
||||
|
||||
public static final String FILE_UPLOAD_ERROR = "80014001";
|
||||
|
||||
public static final String FILE_UPLOAD_CONTROLLER_ERROR = "80014013";
|
||||
|
||||
public static final String FILE_TYPE_IS_INVALID = "53060429";
|
||||
|
||||
public static final String FILE_MAX_IS_ERROR = "53060428";
|
||||
|
||||
public static final String ROTATE_IMAGE_ERROR = "53060430";
|
||||
|
||||
public static final String EXTRACT_FEATURE_FAIL = "53060431";
|
||||
|
||||
public static final String FACE_DETECT_IS_EMPTY = "53060432";
|
||||
|
||||
public static final String FACE_DETECT_OVER_SIZE = "53060433";
|
||||
|
||||
public static final String IMAGE_IS_EMPTY = "53060434";
|
||||
|
||||
public static final String EXTRACT_FEATURE_EXCEPTION = "53060435";
|
||||
|
||||
public static final String EXTRACT_FEATURE_RESULT_IS_EMPTY = "53060436";
|
||||
|
||||
public static final String UPLOAD_SINGLE_FACE = "53060437";
|
||||
|
||||
public static final String GROUP_ID_IS_EMPTY = "53060438";
|
||||
|
||||
public static final String FACE_DETECT_EXCEPTION = "53060439";
|
||||
|
||||
public static final String FACE_DETECT_RESULT_IS_EMPTY = "53060440";
|
||||
|
||||
public static final String QUERY_ALL_GROUP_TOPN_FAIL = "53060441";
|
||||
|
||||
public static final String QUERY_EVERY_GROUP_TOPN_FAIL = "53060442";
|
||||
|
||||
public static final String QUERY_FEATURE_RESULT_IS_EMPTY = "53060443";
|
||||
|
||||
public static final String QUERY_FEATURE_RESULT_FAIL = "53060444";
|
||||
|
||||
public static final String IMAGE_UNDER_SIZE = "53060445";
|
||||
|
||||
public static final String IMAGE_PIXEL_UNDER_SIZE = "53060446";
|
||||
|
||||
public static final String ADD_FACE_FAIL = "53060447";
|
||||
|
||||
public static final String REMOVE_FACE_FAIL = "53060448";
|
||||
|
||||
public static final String FILE_MANAGER_READ_FILE_ERROR = "80014016";
|
||||
|
||||
public static final String FILE_MANAGER_DEL_ERROR = "80014017";
|
||||
|
||||
public static final String ADD_ORG_TYPE_ERROR = "53003800";
|
||||
|
||||
public static final String EDIT_ORG_TYPE_ERROR = "53003801";
|
||||
|
||||
public static final String DEL_ORG_TYPE_ERROR = "53003802";
|
||||
|
||||
public static final String ADD_ORG_TYPE_DUPLICATE_NAME = "53003803";
|
||||
|
||||
public static final String QUERY_ORG_TYPE_ERROR = "53003804";
|
||||
|
||||
public static final String PROPERTIES_DUPLICATE_NAME_ERROR = "53003805";
|
||||
|
||||
public static final String ADD_AREA_TYPE_ERROR = "53004800";
|
||||
|
||||
public static final String EDIT_AREA_TYPE_ERROR = "53004801";
|
||||
|
||||
public static final String DEL_AREA_TYPE_ERROR = "53004802";
|
||||
|
||||
public static final String ADD_AREA_TYPE_DUPLICATE_NAME = "53004803";
|
||||
|
||||
public static final String QUERY_AREA_TYPE_ERROR = "53004804";
|
||||
|
||||
public static final String AREA_TYPE_NAME_NOT_NULL = "53004806";
|
||||
|
||||
public static final String AREA_TYPE_NAME_LENGTH_INVAILD = "53004807";
|
||||
|
||||
public static final String AREA_TYPE_PRO_NAME_NOT_NULL = "53004810";
|
||||
|
||||
public static final String AREA_TYPE_PRO_REQUIRED_NOT_NULL = "53004811";
|
||||
|
||||
public static final String AREA_TYPE_PRO_REQUIRED_RANGE_INVAILD = "53004812";
|
||||
|
||||
public static final String AREA_TYPE_HAS_LOWER_DATA = "53004813";
|
||||
|
||||
public static final String AREA_TYPE_NOT_EDIT_DEFAULT = "53004815";
|
||||
|
||||
public static final String EXIST_AREA_WITH_TYPE = "53004854";
|
||||
|
||||
public static final String AREA_TYPE_PRO_ORDER_NOT_NULL = "53004816";
|
||||
|
||||
public static final String AREA_TYPE_PRO_ORDER_RANGE_INVAILD = "53004817";
|
||||
|
||||
public static final String QUERY_ORG_ERROR = "53003300";
|
||||
|
||||
public static final String TYPE_ID_IS_NULL = "53003301";
|
||||
|
||||
public static final String TYPE_ID_LENGTH_IS_ERROR = "53003302";
|
||||
|
||||
public static final String PARAM_LENGTH_IS_ERROR = "53003303";
|
||||
|
||||
public static final String EXIST_ORG_WITH_TYPE = "53003304";
|
||||
|
||||
public static final String ORG_ID_IS_NULL = "53003305";
|
||||
|
||||
public static final String ORG_PARENT_HSH_LOWER_LEVEL_ERROR = "53003306";
|
||||
|
||||
public static final String ORG_PARENT_ID_IS_NULL = "53003307";
|
||||
|
||||
public static final String ORG_LEVEL_IS_ERROR = "53003308";
|
||||
|
||||
public static final String ORG_NAME_IS_EXIST = "53003309";
|
||||
|
||||
public static final String ORG_ID_IS_ERROR = "53003310";
|
||||
|
||||
public static final String PERSON_ID_ARRAY_IS_ERROR = "53003311";
|
||||
|
||||
public static final String ORG_NAME_IS_NULL = "53003312";
|
||||
|
||||
public static final String ORG_YI_IS_NOT_DELETE = "53003313";
|
||||
|
||||
public static final String ORG_PARENT_IS_HAVING = "53003314";
|
||||
|
||||
public static final String ORG_CANNOT_DELETE = "53003315";
|
||||
|
||||
public static final String QZ_BUSINESS_ID_INVALID = "53014000";
|
||||
|
||||
public static final String QZ_PERSON_CODE_INVALID = "53014001";
|
||||
|
||||
public static final String QZ_PERSON_NAME_INVALID = "53014002";
|
||||
|
||||
public static final String QZ_PERSON_USER_NAME_INVALID = "53014003";
|
||||
|
||||
public static final String QZ_PERSON_PHONE_INVALID = "53014004";
|
||||
|
||||
public static final String QZ_PERSON_EMAIL_INVALID = "53014005";
|
||||
|
||||
public static final String QZ_PERSON_SYNC_ACCOUNT_INVALID = "53014006";
|
||||
|
||||
public static final String QZ_PERSON_CUSTOM_FIELD_INVALID = "53014007";
|
||||
|
||||
public static final String QZ_PERSON_ADD_ERROR = "53014008";
|
||||
|
||||
public static final String QZ_PERSON_EDIT_ERROR = "53014009";
|
||||
|
||||
public static final String QZ_PERSON_DEL_ERROR = "53014010";
|
||||
|
||||
public static final String QZ_PERSON_QUERY_ERROR = "53014011";
|
||||
|
||||
public static final String QZ_PERSON_CODE_DUPLICATE = "53014012";
|
||||
|
||||
public static final String QZ_PERSON_USER_NAME_DUPLICATE = "53014013";
|
||||
|
||||
public static final String QZ_PERSON_PHONE_DUPLICATE = "53014014";
|
||||
|
||||
public static final String QZ_PERSON_EMAIL_DUPLICATE = "53014015";
|
||||
|
||||
public static final String QZ_PERSON_FILED_LOSE = "53014016";
|
||||
|
||||
public static final String QZ_PERSON_FILED_INVALID = "53014017";
|
||||
|
||||
public static final String QZ_PERSON_FILED_NOT_EXISTS = "53014018";
|
||||
|
||||
public static final String QZ_PERSON_NO_SYSTEM_ID = "53014019";
|
||||
|
||||
public static final String QZ_PERSON_FILED_LABEL_ORGANIZATION_LOSE = "53014020";
|
||||
|
||||
public static final String QZ_PERSON_SOURCE_ILLEGAL = "53014021";
|
||||
|
||||
public static final String QZ_PERSON_PROPERTIES_CERT_LOSE = "53014022";
|
||||
|
||||
public static final String QZ_PERSON_CERT_ID_DUPLICATE = "53014023";
|
||||
|
||||
public static final String PERSON_ID_LIST_IS_EMPTY = "53014024";
|
||||
|
||||
public static final String IMAGE_ID_LIST_IS_EMPTY = "53014025";
|
||||
|
||||
public static final String IMAGE_ID_IS_EMPTY = "53014026";
|
||||
|
||||
public static final String QZ_SYSTEM_ID_VALUE_EMPTY = "53014027";
|
||||
|
||||
public static final String QZ_SYSTEM_ID_VALUE_DUPLICATE = "53014028";
|
||||
|
||||
public static final String PERSONNEL_ATTRIBUTES_ARE_NOT_SET = "53014029";
|
||||
|
||||
public static final String QZ_BATCH_ID_INVALID = "53014030";
|
||||
|
||||
public static final String QZ_BATCH_STATUS_INVALID = "53014031";
|
||||
|
||||
public static final String QZ_BATCH_ADD_ERROR = "53014032";
|
||||
|
||||
public static final String QZ_BATCH_QUERY_ERROR = "53014033";
|
||||
|
||||
public static final String QZ_BATCH_DETAIL_QUERY_ERROR = "53014034";
|
||||
|
||||
public static final String BATCH_IMPORT_INSERT_ERROR = "53014035";
|
||||
|
||||
public static final String BATCH_IMPORT_PROCESS_EXCEPTION = "53014036";
|
||||
|
||||
public static final String BATCH_IMPORT_ZIP_FILE_EMPTY = "53014037";
|
||||
|
||||
public static final String BATCH_IMPORT_UNZIP_FAILED = "53014038";
|
||||
|
||||
public static final String BATCH_IMPORT_EXCEL_FILE_NOTFOUND = "53014039";
|
||||
|
||||
public static final String BATCH_IMPORT_DATA_EMPTY = "53014040";
|
||||
|
||||
public static final String FILE_INIT_FAIL = "53014041";
|
||||
|
||||
public static final String FILE_FINISHI_FAIL = "53014042";
|
||||
|
||||
public static final String FILE_GET_FAIL = "53014043";
|
||||
|
||||
public static final String LABEL_NAME_IS_EXIST = "53003700";
|
||||
|
||||
public static final String LABEL_ID_IS_ERROR = "53003701";
|
||||
|
||||
public static final String LABEL_PAGE_IS_ERROR = "53003702";
|
||||
|
||||
public static final String QZ_LABEL_NAME_INVALID = "53003703";
|
||||
|
||||
public static final String QZ_LABEL_CODE_INVALID = "53003704";
|
||||
|
||||
public static final String LABEL_CODE_IS_EXIST = "53003705";
|
||||
|
||||
public static final String QZ_LABEL_ADD_TYPE_INVALID = "53003706";
|
||||
|
||||
public static final String QZ_LABEL_DEL_PERSON_RELATION = "53003707";
|
||||
|
||||
public static final String PERSON_PRO_NAME_NOT_NULL = "53014800";
|
||||
|
||||
public static final String PERSON_PRO_NAME_LENGTH_INVAILD = "53014801";
|
||||
|
||||
public static final String PERSON_PRO_TYPE_NOT_NULL = "53014802";
|
||||
|
||||
public static final String PERSON_PRO_TYPE_RANGE_INVAILD = "53014803";
|
||||
|
||||
public static final String PERSON_PRO_SYSACCOUNT_RANGE_INVAILD = "53014804";
|
||||
|
||||
public static final String PERSON_PRO_REQUIRED_RANGE_INVAILD = "53014805";
|
||||
|
||||
public static final String PERSON_PRO_ORDER_NOT_NULL = "53014806";
|
||||
|
||||
public static final String PERSON_PRO_REMINDER_NOT_NULL = "53014807";
|
||||
|
||||
public static final String PERSON_PRO_REMINDER_LENGTH_INVAILD = "53014808";
|
||||
|
||||
public static final String PERSON_PRO_ARRAYDATA_LENGTH_INVAILD = "53014809";
|
||||
|
||||
public static final String PERSON_PRO_MULTIPLE_RANGE_INVAILD = "53014810";
|
||||
|
||||
public static final String DEFAULT_ACCOUNT_CAN_NOT_CHANGE = "53014811";
|
||||
|
||||
public static final String REQUIRED_CAN_NOT_CHANGE = "53014812";
|
||||
|
||||
public static final String SWITCH_SIZE_PARAM_INVALID = "53014813";
|
||||
|
||||
public static final String SWITCH_BACKGROUND_OBJECT_INVALID = "53014814";
|
||||
|
||||
public static final String ORG_TYPE_NAME_NOT_NULL = "53003806";
|
||||
|
||||
public static final String ORG_TYPE_NAME_LENGTH_INVAILD = "53003807";
|
||||
|
||||
public static final String ORG_TYPE_LOWER_NOT_NULL = "53003808";
|
||||
|
||||
public static final String ORG_TYPE_LOWER_RANGE_INVAILD = "53003809";
|
||||
|
||||
public static final String ORG_TYPE_PRO_NAME_NOT_NULL = "53003810";
|
||||
|
||||
public static final String ORG_TYPE_PRO_REQUIRED_NOT_NULL = "53003811";
|
||||
|
||||
public static final String ORG_TYPE_PRO_REQUIRED_RANGE_INVAILD = "53003812";
|
||||
|
||||
public static final String ORG_TYPE_HAS_LOWER_DATA = "53003813";
|
||||
|
||||
public static final String ORG_TYPE_NOT_NEW_DEFAULT = "53003814";
|
||||
|
||||
public static final String ORG_TYPE_NOT_EDIT_DEFAULT = "53003815";
|
||||
|
||||
public static final String ORG_TYPE_PRO_ORDER_NOT_NULL = "53003816";
|
||||
|
||||
public static final String ORG_TYPE_PRO_ORDER_RANGE_INVAILD = "53003817";
|
||||
|
||||
public static final String CAT_NOT_EDIT_DEFAULT_TYPE = "53003818";
|
||||
|
||||
public static final String PERSON_NOT_EXIST = "53003819";
|
||||
|
||||
public static final String PERSON_IMAGE_SCORE_FAILE = "53003820";
|
||||
|
||||
public static final String ORG_SEARCH_PARAM_FAILE = "53003821";
|
||||
|
||||
public static final String PERSON_REGISTRY_STATUS_IS_NULL = "53014500";
|
||||
|
||||
public static final String PERSON_REGISTRY_DEVICESTATUS_IS_NULL = "53014501";
|
||||
|
||||
public static final String PERSON_REGISTRY_CODESTATUS_IS_NULL = "53014502";
|
||||
|
||||
public static final String PERSON_REGISTRY_PROPERTY_IS_NULL = "53014503";
|
||||
|
||||
public static final String PERSON_REGISTRY_DEVICE_IS_NULL = "53014504";
|
||||
|
||||
public static final String PERSON_REGISTRY_STATUS_INVALID = "53014505";
|
||||
|
||||
public static final String PERSON_REGISTRY_DEVICESTATUS_INVALID = "53014506";
|
||||
|
||||
public static final String PERSON_REGISTRY_CODESTATUS_INVALID = "53014507";
|
||||
|
||||
public static final String PERSON_REGISTRY_PRO_ID_LIST_IS_ERROR = "53014508";
|
||||
|
||||
public static final String PERSON_REGISTRY_PRO_NAME_IS_REQUIRED = "53014509";
|
||||
|
||||
public static final String PERSON_REGISTRY_PRO_ORG_LABEL_IS_REQUIRED = "53014510";
|
||||
|
||||
public static final String PERSON_REGISTRY_PRO_IS_REQUIRED = "53014511";
|
||||
|
||||
public static final String PERSON_REGISTRY_ORG_IDS_IS_ERROR = "53014512";
|
||||
|
||||
public static final String PERSON_REGISTRY_LABEL_IDS_IS_ERROR = "53014513";
|
||||
|
||||
public static final String PERSON_REGISTRY_DEVICE_IS_ERROR = "53014514";
|
||||
|
||||
public static final String PERSON_REGISTRY_ADD_FAIL = "53014515";
|
||||
|
||||
public static final String PERSON_REGISTRY_SAVE_FAIL = "53014516";
|
||||
|
||||
public static final String PERSON_REGISTRY_IS_NULL = "53014517";
|
||||
|
||||
public static final String PERSON_REGISTRY_STATUS_IS_CLOSED = "53014518";
|
||||
|
||||
public static final String PERSON_REGISTRY_DEVICE_IS_NOT_ADD = "53014519";
|
||||
|
||||
public static final String PERSON_REGISTRY_DETAIL_FAIL = "53014520";
|
||||
|
||||
public static final String PERSON_REGISTRY_PRO_LIST_FAIL = "53014521";
|
||||
|
||||
public static final String PERSON_REGISTRY_UNIQUE_PRO_IS_NULL = "53014522";
|
||||
|
||||
public static final String PERSON_REGISTRY_UNIQUE_PRO_FAIL = "53014523";
|
||||
|
||||
public static final String PERSON_PRO_IS_NULL = "53014524";
|
||||
|
||||
public static final String PERSON_CERT_PRO_IS_NULL = "53014525";
|
||||
|
||||
public static final String CARDID_NOT_BIND_PRO = "53014526";
|
||||
|
||||
public static final String NAME_NOT_BIND_PRO = "53014527";
|
||||
|
||||
public static final String BIND_PRO_ONE_TO_MANY = "53014528";
|
||||
|
||||
public static final String DEFAULT_PRO_ORG_LABEL_IS_REQUIRED = "53014529";
|
||||
|
||||
public static final String PERSON_REGISTRY_TYPE_INVALID = "53014530";
|
||||
|
||||
public static final String QUERY_DISTRICT_TREE_FAIL = "53014600";
|
||||
|
||||
public static final String QUERY_DEVICE_LIST_FAIL = "53014700";
|
||||
|
||||
public static final String DEVICE_ID_IS_NULL = "53014701";
|
||||
|
||||
public static final String QUERY_PERSON_GROUP_RELATIONS_FAIL = "53014702";
|
||||
|
||||
public static final String QUERY_QR_CODE_URL_FAIL = "53014900";
|
||||
|
||||
public static final String PERSON_AUDIT_PARAM_SOURCE = "53060533";
|
||||
|
||||
public static final String PERSON_AUDIT_DEVICE_FORBID = "53060534";
|
||||
|
||||
public static final String PERSON_AUDIT_ADD_EXCEPTION = "53060535";
|
||||
|
||||
public static final String PERSON_AUDIT_ID_INVALID = "53060536";
|
||||
|
||||
public static final String PERSON_AUDIT_ID_ISNULL = "53060537";
|
||||
|
||||
public static final String PERSON_AUDIT_QUERY_FAILED = "53060538";
|
||||
|
||||
public static final String PERSON_AUDIT_APPLY_FAILED = "53060539";
|
||||
|
||||
public static final String PERSON_AUDIT_PAGE_FAILED = "53060540";
|
||||
|
||||
public static final String PERSON_AUDIT_REGISTRY_SETTING_FAILED = "53060541";
|
||||
|
||||
public static final String PERSON_AUDIT_DEVICECODE_EMPTY = "53060542";
|
||||
|
||||
public static final String PERSON_AUDIT_DEVICE_INVALID = "53060543";
|
||||
|
||||
public static final String PERSON_AUDIT_UPLOAD_BASE64_EMPTY = "53060544";
|
||||
|
||||
public static final String PERSON_AUDIT_CHECK_NAME_EMPTY = "53060545";
|
||||
|
||||
public static final String PERSON_AUDIT_CHECK_WRONG_CAPTCHA = "53060546";
|
||||
|
||||
public static final String PERSON_AUDIT_UNIQUE_PROPERTY_ERROR = "53060547";
|
||||
|
||||
public static final String PERSON_AUDIT_QUERY_AUDIT_EMPTY = "53060548";
|
||||
|
||||
public static final String PERSON_AUDIT_AGREE_CAN_NOT_EDIT = "53060549";
|
||||
|
||||
public static final String AREA_PARENT_ID_IS_NULL = "53015100";
|
||||
|
||||
public static final String AREA_PARENT_HSH_LOWER_LEVEL_ERROR = "53015101";
|
||||
|
||||
public static final String AREA_PARENT_IS_HAVING = "53015102";
|
||||
|
||||
public static final String AREA_NAME_IS_EXIST = "53015103";
|
||||
|
||||
public static final String AREA_ID_IS_ERROR = "53015104";
|
||||
|
||||
public static final String AREA_PARENT_NODE_IS_ERROR = "53015105";
|
||||
|
||||
public static final String AREA_YI_IS_NOT_DELETE = "53015106";
|
||||
|
||||
public static final String AREA_TYPE_ID_IS_NULL = "53015107";
|
||||
|
||||
public static final String UNIT_ID_ARRAY_IS_ERROR = "53015108";
|
||||
|
||||
public static final String QUERY_AREA_ERROR = "53015109";
|
||||
|
||||
public static final String DETAIL_AREA_ERROR = "53015110";
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
public class FeignRemoteConfig {
|
||||
|
||||
public static final String PLATFORM_USER_ID = "platformuserid";
|
||||
|
||||
public static final String LOGIN_ID = "loginid";
|
||||
|
||||
public static final String BUSINESS_ID = "businessid";
|
||||
|
||||
public static final String USER_NAME = "username";
|
||||
|
||||
public static final String APPLICATION_ID = "applicationid";
|
||||
|
||||
public static final String AUTHORIZATION = "authorization";
|
||||
|
||||
public static final String SERVICE_CODE = "elevator-app";
|
||||
}
|
||||
+97
@@ -0,0 +1,97 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
import cn.cloudwalk.cloud.context.CloudwalkCallContext;
|
||||
import cn.cloudwalk.cloud.session.extend.DefaultExtendContext;
|
||||
import cn.cloudwalk.elevator.context.CloudWalkExtendContextValue;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
public class FeignThreadLocalUtil {
|
||||
private static ThreadLocal<Map<String, String>> threadLocal = new ThreadLocal<>();
|
||||
|
||||
public static void set(Map<String, String> t) {
|
||||
threadLocal.remove();
|
||||
threadLocal.set(t);
|
||||
}
|
||||
|
||||
public static Map<String, String> get() {
|
||||
return threadLocal.get();
|
||||
}
|
||||
|
||||
public static void remove() {
|
||||
threadLocal.remove();
|
||||
}
|
||||
|
||||
public static Map<String, String> getRequestHeader(HttpServletRequest request) {
|
||||
Map<String, String> map = new ConcurrentHashMap<>(10);
|
||||
if (null != request.getHeader("platformuserid")) {
|
||||
map.put("platformuserid", request.getHeader("platformuserid"));
|
||||
}
|
||||
if (null != request.getHeader("loginid")) {
|
||||
map.put("loginid", request.getHeader("loginid"));
|
||||
}
|
||||
if (null != request.getHeader("businessid")) {
|
||||
map.put("businessid", request.getHeader("businessid"));
|
||||
}
|
||||
if (null != request.getHeader("username")) {
|
||||
map.put("username", request.getHeader("username"));
|
||||
}
|
||||
if (null != request.getHeader("applicationid")) {
|
||||
map.put("applicationid", request.getHeader("applicationid"));
|
||||
}
|
||||
if (null != request.getHeader("authorization")) {
|
||||
map.put("authorization", request.getHeader("authorization"));
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
public static Map<String, String> getDefaultReqesutHeader(String businessId) {
|
||||
Map<String, String> map = new ConcurrentHashMap<>(2);
|
||||
map.put("businessid", businessId);
|
||||
map.put("username", "default");
|
||||
return map;
|
||||
}
|
||||
|
||||
public static void setRequestHeader(Map<String, String> headerMap) {
|
||||
set(headerMap);
|
||||
}
|
||||
|
||||
public static Map<String, String> getDefaultRequestHeader(CloudwalkCallContext context) {
|
||||
Map<String, String> map = new HashMap<>(10);
|
||||
DefaultExtendContext<CloudWalkExtendContextValue> extendContext =
|
||||
(DefaultExtendContext<CloudWalkExtendContextValue>)context.getExt();
|
||||
map.put("platformuserid", context.getUser().getCaller());
|
||||
map.put("loginid", ((CloudWalkExtendContextValue)extendContext.getValue()).getLoginId());
|
||||
map.put("businessid", context.getCompany().getCompanyId());
|
||||
map.put("username",
|
||||
StringUtils.isEmpty(context.getUser().getCallerName()) ? "default" : context.getUser().getCallerName());
|
||||
map.put("applicationid", context.getApplicationId());
|
||||
map.put("authorization", ((CloudWalkExtendContextValue)extendContext.getValue()).getAuthorization());
|
||||
return map;
|
||||
}
|
||||
|
||||
public static void setRequestHeader(CloudwalkCallContext context) {
|
||||
set(getDefaultRequestHeader(context));
|
||||
}
|
||||
|
||||
/**
|
||||
* 在有界线程池等子线程中调用 Feign 前,必须为当前线程设置与 {@code context} 一致的请求头 ThreadLocal; 调用结束后恢复/清理,避免池化线程泄漏或串扰。
|
||||
*/
|
||||
public static <T> T callWithContext(CloudwalkCallContext context, Callable<T> action) throws Exception {
|
||||
Map<String, String> previous = get();
|
||||
try {
|
||||
setRequestHeader(context);
|
||||
return action.call();
|
||||
} finally {
|
||||
if (previous != null) {
|
||||
set(previous);
|
||||
} else {
|
||||
remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package cn.cloudwalk.elevator.config;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ImageStoreConstants {
|
||||
|
||||
public static final short IS_NOT_DEL = 0;
|
||||
public static final short IS_DEL = 1;
|
||||
public static final int ASSOCIATED_ACTION_INCLUDE = 0;
|
||||
public static final int ASSOCIATED_ACTION_EXCLUDE = 1;
|
||||
public static final int ASSOCIATED_OBJECT_ORG_TYPE = 1;
|
||||
public static final int ASSOCIATED_OBJECT_LABEL_TYPE = 2;
|
||||
public static final int ASSOCIATED_OBJECT_PERSON_TYPE = 3;
|
||||
public static final int ASSOCIATED_OBJECT_MATCHPATTERN_TYPE = 4;
|
||||
public static final int ASSOCIATED_OBJECT_IMAGE_STORE_TYPE = 5;
|
||||
public static final String COMMON_BUSINESS_ID = "cloudwalk";
|
||||
public static final Integer COMMON_PROPERTIES_STATUS = Integer.valueOf(99);
|
||||
public static final Integer COMMON_UNIT_PROPERTIES_STATUS = Integer.valueOf(98);
|
||||
public static final Integer COMMON_PARK_PROPERTIES_STATUS = Integer.valueOf(97);
|
||||
private static final List<String> CUST_PROPERTIES = Arrays.asList(new String[] {"ext1", "ext2", "ext3", "ext4",
|
||||
"ext5", "ext6", "ext7", "ext8", "ext9", "ext10", "ext11", "ext12", "ext13", "ext14", "ext15", "ext16", "ext17",
|
||||
"ext18", "ext19", "ext20", "ext21", "ext22", "ext23", "ext24", "ext25", "ext26", "ext27", "ext28", "ext29",
|
||||
"ext30", "ext31", "ext32", "ext33", "ext34", "ext35", "ext36", "ext37", "ext38", "ext39", "ext40"});
|
||||
public static final String PERSON_PROPERTY_USER_NAME = "userName";
|
||||
|
||||
public static List<String> getCustProperties() {
|
||||
return CUST_PROPERTIES;
|
||||
}
|
||||
|
||||
public static final String PERSON_PROPERTY_PHONE = "phone";
|
||||
public static final String PERSON_PROPERTY_EMAIL = "email";
|
||||
public static final String COMPARE_PICTURE = "comparePicture";
|
||||
public static final String PERSON_PROPERTY_PERSON_CODE = "personCode";
|
||||
public static final String IC_CAED_NO = "icCardNo";
|
||||
public static final String IC_CAED_TYPE = "icCardType";
|
||||
public static final String FLOORS = "floors";
|
||||
public static final String PROPERTY_CODE = "code";
|
||||
public static final String PROPERTY_HAS_REQUIRED = "hasRequired";
|
||||
public static final int PROPERTY_REQUIRED = 1;
|
||||
public static final int PROPERTY_UNREQUIRED = 0;
|
||||
public static final String PERSON_PROPERTY_NAME = "name";
|
||||
public static final String PERSON_PROPERTY_ORGANIZATIONIDS = "organizationIds";
|
||||
public static final String PERSON_PROPERTY_LABELIDS = "labelIds";
|
||||
public static final String CREATE_SYS_ACCOUNT_CODE = "createSysAccount";
|
||||
public static final String CREATE_SYS_ACCOUNT_NAME = "同步创建账号";
|
||||
public static final String SYS_ACCOUNT_ID_CODE = "sysAccountId";
|
||||
public static final String SYS_ACCOUNT_ID_NAME = "同步创建账号系统ID";
|
||||
public static final Integer AGREE = Integer.valueOf(0);
|
||||
public static final String SYSTEM_USER = "system";
|
||||
public static final String IMAGE_STORE_ID = "imageStoreId";
|
||||
public static final String PASS_CRONS = "passCrons";
|
||||
public static final short PERSON_DELETED = -1;
|
||||
public static final short PERSON_VALIDATE = 0;
|
||||
public static final short PERSON_INVALIDATE = 1;
|
||||
public static final short DEVICE_PERSON_VALIDATE = 1;
|
||||
public static final short DEVICE_PERSON_INVALIDATE = 0;
|
||||
public static final Integer MAX_FILE = Integer.valueOf(3145728);
|
||||
public static final String SYSTEM_GROUP_CREATE_USER_ID = "group";
|
||||
public static final int PERSON_ACTION_DELETE = -1;
|
||||
public static final int PERSON_ACTION_ADD = 0;
|
||||
public static final int PERSON_ACTION_UPDATE = 1;
|
||||
public static final short GROUP_MODEL_STATUS_NO_IMG = 0;
|
||||
public static final int PERSON_VALIDATE_UNPROCESSED = 0;
|
||||
public static final int PERSON_VALIDATE_PROCESSED = 1;
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package cn.cloudwalk.elevator.context;
|
||||
|
||||
public class CloudWalkExtendContextValue {
|
||||
private String loginId;
|
||||
private String authorization;
|
||||
|
||||
public String getLoginId() {
|
||||
return this.loginId;
|
||||
}
|
||||
|
||||
public void setLoginId(String loginId) {
|
||||
this.loginId = loginId;
|
||||
}
|
||||
|
||||
public String getAuthorization() {
|
||||
return this.authorization;
|
||||
}
|
||||
|
||||
public void setAuthorization(String authorization) {
|
||||
this.authorization = authorization;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsApplicationSourceEnum {
|
||||
ACCESS_CONTROL("ACCESS_CONTROL", "门禁应用"), CWOS_PORTAL("CWOS_PORTAL", "平台应用");
|
||||
|
||||
private final String code;
|
||||
private final String name;
|
||||
|
||||
AcsApplicationSourceEnum(String code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static AcsApplicationSourceEnum getEnumByCode(String code) {
|
||||
for (AcsApplicationSourceEnum item : values()) {
|
||||
if (code.equals(item.code)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsDeviceIdentifyTypeEnum {
|
||||
FRONT_REG(Integer.valueOf(0), "前端识别"), BACKEND_REG(Integer.valueOf(1), "后端识别");
|
||||
|
||||
private Integer code;
|
||||
private String name;
|
||||
|
||||
AcsDeviceIdentifyTypeEnum(Integer code, String name) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public static AcsDeviceIdentifyTypeEnum getEnumByCode(Integer code) {
|
||||
for (AcsDeviceIdentifyTypeEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsDeviceQueryTypeEnum {
|
||||
QUERY_MAIN(Integer.valueOf(1), "只查询主设备"), QUERY_MAIN_AND_SUB(Integer.valueOf(2), "查询主设备及其子设备");
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
AcsDeviceQueryTypeEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static AcsDeviceQueryTypeEnum getEnumByCode(Integer code) {
|
||||
for (AcsDeviceQueryTypeEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public enum AcsDeviceSettingEnum {
|
||||
QUALITY_SCORE("qualityScore", "人脸抓拍质量分", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
TEMP_THRESHOLD("tempThreshold", "温度报警阈值", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
TEMP_MIN("tempMin", "温度最低值", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
MASK_THRESHOLD("maskThreshold", "口罩阈值", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
LIVE_STATE("liveState", "活体检测开关", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
TEMP_STATE("tempState", "温度控制开关", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
FACE_SIZE_MIN("faceSizeMin", "人脸最小尺寸", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
FACE_SIZE_MAX("faceSizeMax", "人脸最大尺寸", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
FACE_ONE_THRESHOLD("faceOneThreshold", "人脸1:1识别阈值", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
FACE_MANY_THRESHOLD("faceManyThreshold", "人脸1:N识别阈值", AcsApplicationSourceEnum.CWOS_PORTAL),
|
||||
ACS_FACE_REG_THRESHOLD("ACS_FACE_REG_THRESHOLD", "人脸抓拍识别阈值", AcsApplicationSourceEnum.ACCESS_CONTROL);
|
||||
|
||||
private String code;
|
||||
private String remark;
|
||||
private AcsApplicationSourceEnum source;
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getRemark() {
|
||||
return this.remark;
|
||||
}
|
||||
|
||||
public AcsApplicationSourceEnum getSource() {
|
||||
return this.source;
|
||||
}
|
||||
|
||||
AcsDeviceSettingEnum(String code, String remark, AcsApplicationSourceEnum source) {
|
||||
this.code = code;
|
||||
this.remark = remark;
|
||||
this.source = source;
|
||||
}
|
||||
|
||||
public static AcsDeviceSettingEnum getEnumByCode(String code) {
|
||||
for (AcsDeviceSettingEnum item : values()) {
|
||||
if (code.equals(item.code)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static List<AcsDeviceSettingEnum> getEnumBySource(String source) {
|
||||
List<AcsDeviceSettingEnum> list = new ArrayList<>();
|
||||
for (AcsDeviceSettingEnum item : values()) {
|
||||
if (source.equals(item.source.getCode())) {
|
||||
list.add(item);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsOpenDoorStatusEnum {
|
||||
INIT(Integer.valueOf(0), "初始化"), SUCESS(Integer.valueOf(1), "成功"), FAIL(Integer.valueOf(2), "失败");
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
AcsOpenDoorStatusEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static AcsOpenDoorStatusEnum getEnumByCode(Integer code) {
|
||||
for (AcsOpenDoorStatusEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsOperateStatusEnum {
|
||||
INIT(Integer.valueOf(0), "初始化"), MATCHED(Integer.valueOf(1), "已匹配");
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
AcsOperateStatusEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static AcsOperateStatusEnum getEnumByCode(Integer code) {
|
||||
for (AcsOperateStatusEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsOperateTypeEnum {
|
||||
REMOTE_OPEN_DOOR("REMOTE_OPEN_DOOR", "远程开门"), QRCODE_OPEN_DOOR("QRCODE_OPEN_DOOR", "小程序扫码开门");
|
||||
|
||||
private String code;
|
||||
private String message;
|
||||
|
||||
AcsOperateTypeEnum(String code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static AcsOperateTypeEnum getEnumByCode(String code) {
|
||||
for (AcsOperateTypeEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AcsPassTypeEnum {
|
||||
LONG_TIME(Integer.valueOf(0), "长期"), AUTO_PASS(Integer.valueOf(1), "自定义时间"), PASS_TIME(Integer.valueOf(2), "通行时间段");
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
AcsPassTypeEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static YesNoTypeEnum getEnumByCode(Integer code) {
|
||||
for (YesNoTypeEnum item : YesNoTypeEnum.values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum AlarmStateCodeEnum {
|
||||
OPERATION_FAILED("36000001", "操作失败"), EMPTY_PARAMETERS_WRONG("36000002", "参数不能为空"),
|
||||
INSERT_DATABSE_EREEOR("36000003", "插入数据库异常"), EMPTY_USER_ID("36000004", "ID不能为空"),
|
||||
PARAM_ERROR("36000005", "参数不符合要求"), SEARCH_INFORMATION_FAILED("36000006", "查询信息失败"),
|
||||
TASK_NAME_EXIST("36000007", "布控名称重复"), TASK_TYPE_NAME_EXIST("36000012", "布控类型名称重复"),
|
||||
DELETE_NOT_EXIST("36000008", "被删除资源不存在"), CONTROL_TASK_TYPE_HAS_TASK("36000009", "存在关联任务"),
|
||||
SAVE_TASK_TYPE_ERROR("36000010", "保存区控类型失败"), UPDATE_TASK_TYPE_ERROR("36000011", "更新区控类型失败"),
|
||||
FILE_SIZE_ILLEGAL("3600030", "文件大小超过"), WRONG_PARAMETERS("400", "参数错误"), SERVER_EXCEPTION("500", "服务器异常"),
|
||||
SUCCESS("00000000", "成功"), CWOS_FEIGN_FAILED("36000007", "调用cwos接口异常"), PAGE_QUERY_FAILED("36000008", "分页查询失败"),
|
||||
PARAM_REPEAT("36000009", "证件类型+证件号重复"), CONTROL_TASK_ID_NOT_EXIST("36000010", "任务编号不存在"),
|
||||
DEVICE_NOT_EXIST("36000011", "回放链接已失效"), LABEL_NAME_DUPLICATE_FAILED("10001056", "库名称重复"),
|
||||
LABEL_NAME_INVALID("10001050", "库名称无效"), LABEL_QUERY_FAILED("10001051", "标签查询失败"),
|
||||
LABEL_SAVE_FAILED("10001052", "标签保存失败"), LABEL_UPDATE_FAILED("10001053", "标签更新失败"),
|
||||
LABEL_DELETE_FAILED("10001054", "标签删除失败"), EMPTY_LABEL_NAME("10001055", "标签名称为空"),
|
||||
LABEL_PAGE_FAILED("10001055", "分页查询标签异常"), LABEL_LIST_FAILED("10001057", "列表查询标签异常"),
|
||||
LABEL_BRAND_FAILED("10001060", "查询车辆品牌异常"), VEHICLE_TYPE_FAILED("10001061", "查询车辆类型异常"),
|
||||
VEHICLE_DETAIL_ERROR("10001062", "车辆详情查询失败"), CODE_QUERY_ERROR("10001063", "查询失败"),
|
||||
LABEL_SIZE_FAILED("10001067", "库名称超过最大长度"), PLATE_NO_DUPLICATE("10001070", "车牌号重复添加"),
|
||||
VEHICLE_ADD_ERROR("10001071", "车辆添加失败"), VEHICLE_PROPERTY_UNQUALIFIED("10001087", "车辆属性不合格"),
|
||||
PLATE_NO_INVALID("10005202", "车牌号无效"), VEHICLE_TYPE_INVALID("10005203", "车牌类型无效"),
|
||||
VEHICLE_BRAND_INVALID("10005204", "车辆品牌无效"), VEHICLE_EDIT_FAIL("10001069", "车辆编辑失败"),
|
||||
VEHICLE_DELETE_ERROR("10001076", "车辆删除失败"), VEHICLE_PAGE_FAILED("10001064", "车辆分页查询失败"),
|
||||
VEHICLE_LIST_FAILED("10001065", "车辆LIST查询失败"), LABEL_BIND_VEHICLE("10001058", "该标签已被绑定具体车辆"),
|
||||
EMPTY_PIC_NAME("10001059", "图片地址为空"), PICTURE_FAILED("10001070", "图片不合法"),
|
||||
LABEL_BIND_PERSON("10002058", "该标签已被绑定具体人员"), LABEL_BIND_FIELD("10002059", "该标签绑定人员失败"),
|
||||
PERSON_PROPERTY_UNQUALIFIED("10002087", "人脸属性不合格"), PERSON_PIC_UNQUALIFIED("10002088", "人脸图片不合格"),
|
||||
PERSON_ORG_ADD_FEILD("10002089", "人员管理添加人员失败"), PERSON_ADD_ERROR("10002071", "人员添加失败"),
|
||||
PERSON_DUPLICATE("10002070", "人员重复添加"), PHONE_NO_INVALID("10005205", "手机号无效"), CARD_NO_INVALID("10005206", "身份证无效"),
|
||||
NAME_NO_INVALID("10005207", "名称无效"), CARD_NO_DUPLICATE("10005208", "身份证重复添加"),
|
||||
PERSON_EDIT_FAIL("10002069", "人员编辑失败"), PERSON_DELETE_ERROR("10002076", "人员删除失败"),
|
||||
PERSON_PAGE_FAILED("10002064", "人员分页查询失败"), PERSON_LIST_FAILED("10002065", "人员LIST查询失败"),
|
||||
ORGANIZATION_PERSONS_EMPTY("10002066", "人员管理人员信息为空"), FILE_TYPE_IS_INVALID("53060429", "上传文件类型不合法"),
|
||||
FILE_MAX_IS_ERROR("53060428", "上传文件超过最大大小"), FILE_UPLOAD_CONTROLLER_ERROR("80014013", "模块文件上传异常"),
|
||||
PIC_DELETE_ERROR("10001084", "图片删除失败"), EXPORT_TASK_DOWNLOAD_CENTER_FAILURE("36000008", "下载中心创建下载任务失败"),
|
||||
EXPORT_TASK_FAILURE("36000009", "添加导出任务失败"), EXPORT_TASK_TYPE_ERROR("36000010", "导出任务类型错误"),
|
||||
EXPORT_TASK_OVERLOAD_THRESHOLD("36000011", "查询导出记录超过设定阈值");
|
||||
|
||||
private String code;
|
||||
private String message;
|
||||
|
||||
AlarmStateCodeEnum(String code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum CompareTypeEnum {
|
||||
RECOG(Integer.valueOf(1), "1:N比对"), PERSON_CARD(Integer.valueOf(2), "人证比对"),
|
||||
ACS_BACK_RECOG(Integer.valueOf(3), "门禁1:N比对"), APP_BACK_RECOG(Integer.valueOf(4), "应用端1:N比对");
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
CompareTypeEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static CompareTypeEnum getEnumByCode(Integer code) {
|
||||
for (CompareTypeEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum EngineAddressEnum {
|
||||
PORTAL_USER_PAGE("用户查询接口", "/portal/user/manage/page"),
|
||||
PERSON_PROPERTIES_LIST("查询商户对应的员工属性", "/component/person/properties/list"),
|
||||
NINCACOMMON_AREA_GET_ALL_TREE("获取区域树状结构", "/sysetting/deviceArea/tree"),
|
||||
COMMON_VEHICLE_GET_ALL_LABLES("获取车辆管理标签信息", "/vm/label/list"),
|
||||
COMMON_VEHICLE_VM_VEHICLE_LABELREF("获取车辆管理车辆分页信息", "/vm/vehicle/control/labelRef"),
|
||||
COMMON_VEHICLE_VM_VEHICLE_LIST("批量获取车辆管理车辆信息", "/vm/vehicle/list"),
|
||||
CWOS_DEVICE_GET("设备列表查询", "/component/device/list"), CW0S_DEVICE_DETAIL("设备详情", "/core/atomic/device/detail"),
|
||||
CWOS_DEVICE_SETTING("下发参数到设备", "/server/push/55000"),
|
||||
CWOS_AREA_GET_ALL_TREE("获取区域树状结构", "/component/device/area/get/alltree"),
|
||||
CWOS_QUERY_DEVICE_APPLICATION("查询设备与应用关联列表", "/component/device/app/list"),
|
||||
CWOS_BIND_DEVICE_APPLICATION("绑定设备与应用", "/component/device/app/add"),
|
||||
CWOS_SPLIT_DEVICE_APPLICATION("解绑设备与应用", "/component/device/app/delete"),
|
||||
CWOS_QUERY_APPLICATION_ID("查询应用ID", "/res/application/instance/query"),
|
||||
CWOS_BIND_DEVICE_IMAGESTORE("绑定图库与设备", "/component/device/imagestore/add"),
|
||||
CWOS_SPLIT_DEVICE_IMAGESTORE("解除绑定图库与设备", "/component/device/imagestore/delete"),
|
||||
CWOS_BIND_IMAGESTORE_APPLICATION("绑定图库与应用", "/core/application/group/add"),
|
||||
CWOS_SPLIT_IMAGESTORE_APPLICATION("解绑图库与应用", "/core/application/group/delete"),
|
||||
CWOS_ORGANIZATION_TREE("查询机构树型结构", "/component/organization/tree"),
|
||||
CWOS_BIOLOGY_IMAGE_COMPARE("单库或多库比对", "/component/biology/tool/feature/query"),
|
||||
CWOS_BIOLOGY_PERSON_DETAIL("查询人员信息详情", "/component/person/detail"),
|
||||
CWOS_BIOLOGY_PERSON_LIST("查询人员信息", "/component/person/listPerson"),
|
||||
CWOS_BIOLOGY_IMAGESTORE_ADD("新增图库", "/component/imagestore/add"),
|
||||
CWOS_BIOLOGY_IMAGESTORE_EDIT("编辑图库", "/component/imagestore/edit"),
|
||||
CWOS_BIOLOGY_IMAGESTORE_LIST("查询图库", "/component/imagestore/list"),
|
||||
COWS_BIOLOGY_IMAGESTORE_DELETE("删除图库", "/component/imagestore/delete"),
|
||||
CWOS_BIOLOGY_IMAGESTORE_DETAIL("图库详情", "/component/imagestore/detail"),
|
||||
CWOS_BIOLOGY_PERSON_PAGE("分页查询人员", "/component/person/page"),
|
||||
CWOS_BIOLOGY_PERSON_ADD("新增人员", "/component/person/add"),
|
||||
CWOS_BIOLOGY_PERSON_EDIT("编辑人员", "/component/person/edit"),
|
||||
CWOS_BIOLOGY_PERSON_DELETE("删除人员", "/component/person/delete"),
|
||||
CWOS_BIOLOGY_LABEL_GETALLLABELS("查询标签列表", "/biology/label/getAllLabels"),
|
||||
CWOS_BIOLOGY_LABLE_ADD("新增标签", "/biology/label/add"), CWOS_BIOLOGY_LABLE_EDIT("编辑标签", "/biology/label/edit"),
|
||||
CWOS_BIOLOGY_LABLE_DELETE("删除标签", "/biology/label/delete"),
|
||||
CWOS_BIOLOGY_LABLE_PERSONS_ADD("标签人员新增", "/biology/label/personsAdd"),
|
||||
CWOS_BIOLOGY_LABLE_PERSONS_DEL("标签人员删除", "/biology/label/personsDel"),
|
||||
CWOS_FILE_UPLOAD("文件上传", "/portal/fileManager/{moduleCategory}/fileUpload"),
|
||||
CWOS_FILE_DELETE("文件删除", "/portal/fileManager/remove/images"),
|
||||
CWOS_FILE_PART_INIT("分片上传文件初始化", "/portal/file/part/init"),
|
||||
CWOS_FILE_PART_FINISH("分片上传文件结束", "/portal/file/part/finish"), CWOS_FILE_APPEND("文件追加", "/portal/file/part/append"),
|
||||
PINEAPPLE_FACE_FEATURE_GET("人脸特征提取", "staticdb/search/feature"),
|
||||
PINEAPPLE_FACE_SEARCH_MULTIPLE("多库人脸检索", "staticdb/search/multiple"),
|
||||
PINEAPPLE_STRUCTURE_ATTRIBUTE("全结构化属性", "structure/recognize"),
|
||||
PINEAPPLE_CLUSTER_FACE_ADD("特征入库", "api/cluster/feature/add"),
|
||||
PINEAPPLE_CLUSTER_START_DEVICE("按groupId聚类", "api/cluster/doClusterByDeviceId"),
|
||||
PINEAPPLE_CLUSTER_GET_TASK_INFO("获取聚类任务信息", "api/cluster/getAllTaskInfo"),
|
||||
PINEAPPLE_CLUSTER_STOP("停止聚类", "api/cluster/stopIncreCluster"),
|
||||
PINEAPPLE_CLUSTER_GROUP_REMOVE("删除聚类库", "api/cluster/group/base/remove"),
|
||||
PINEAPPLE_ENGINE_PAGE_INFO("引擎分页查询", "gateway/config/server/getbypage"),
|
||||
SEND_MESSAGE_TO_MQTT("发送数据到mqtt", "mqtt/publish"), GET_ALIVE_CLIENTS_OF_MQTT("获得所有存活的客户端", "mqtt/getClients"),
|
||||
ALARM_OCCUR("声光报警器触发", "mqtt/publish"), VISITOR_QUERY("查询识别记录详情", "/intelligent/visitor/record/query");
|
||||
|
||||
private final String api;
|
||||
private final String address;
|
||||
|
||||
EngineAddressEnum(String api, String address) {
|
||||
this.api = api;
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getApi() {
|
||||
return this.api;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return this.address;
|
||||
}
|
||||
}
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum OpenDoorTypeEnum {
|
||||
FACE("FACE", "人脸开门"), APP("APP", "远程开门"), GUARD_CARD("GUARD_CARD", "门禁卡开门"), PASSWORD("PASSWORD", "密码开门"),
|
||||
ID_CARD("ID_CARD", "身份证开门"), FACE_GUARD_CARD("FACE_GUARD_CARD", "人脸门禁卡开门"), INTERCOM("INTERCOM", "室内机开门"),
|
||||
ONE("01", "人脸开门"), TWO("02", "门禁卡开门"), THREE("03", "二维码开门");
|
||||
|
||||
private String code;
|
||||
private String remark;
|
||||
|
||||
public String getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getRemark() {
|
||||
return this.remark;
|
||||
}
|
||||
|
||||
OpenDoorTypeEnum(String code, String remark) {
|
||||
this.code = code;
|
||||
this.remark = remark;
|
||||
}
|
||||
|
||||
public static String getEnumByCode(String code) {
|
||||
for (OpenDoorTypeEnum item : values()) {
|
||||
if (code.equals(item.code) || code.toUpperCase().equals(item.code)) {
|
||||
return item.remark;
|
||||
}
|
||||
}
|
||||
return code;
|
||||
}
|
||||
|
||||
public static OpenDoorTypeEnum getOpenDoorTypeEnumByCode(String code) {
|
||||
for (OpenDoorTypeEnum item : values()) {
|
||||
if (code.equals(item.code) || code.toUpperCase().equals(item.code)) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package cn.cloudwalk.elevator.em;
|
||||
|
||||
public enum YesNoTypeEnum {
|
||||
N(Integer.valueOf(0), "否"), Y(Integer.valueOf(1), "是");
|
||||
|
||||
private Integer code;
|
||||
private String message;
|
||||
|
||||
YesNoTypeEnum(Integer code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static YesNoTypeEnum getEnumByCode(Integer code) {
|
||||
for (YesNoTypeEnum item : values()) {
|
||||
if (code.equals(item.getCode())) {
|
||||
return item;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public Integer getCode() {
|
||||
return this.code;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
/**
|
||||
* 电梯应用公共层:工具、上下文、注解与跨模块复用的领域模型片段。
|
||||
* <p>
|
||||
* 被 {@code cw-elevator-application-data}、{@code cw-elevator-application-service}、{@code cw-elevator-application-web}
|
||||
* 等模块依赖, 请勿在本包引入对上层 Web 或具体业务编排的反向依赖。
|
||||
*/
|
||||
package cn.cloudwalk.elevator;
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
public class AcsCacheKeyUtil {
|
||||
public static String getOpenDoorCountKey(String date, String businessId) {
|
||||
return "elevator:passCount:" + date + ":" + businessId;
|
||||
}
|
||||
|
||||
public static String getRecogCountKey(String date, String businessId) {
|
||||
return "acs_recogCount_" + date + "_" + businessId;
|
||||
}
|
||||
|
||||
public static String getBackendRegLogIdKey(String deviceCode, String businessId, String captureId) {
|
||||
return "acs:backendRegLogId:" + deviceCode + "_" + businessId + "_" + captureId;
|
||||
}
|
||||
|
||||
public static String getBackendRegExpireKey(String businessId, String openDoorLogId) {
|
||||
return "acs:backendRegExpire:#" + businessId + "#" + openDoorLogId;
|
||||
}
|
||||
}
|
||||
+806
@@ -0,0 +1,806 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Array;
|
||||
import java.util.AbstractList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Queue;
|
||||
import java.util.Set;
|
||||
import java.util.Stack;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
|
||||
public class CollectionUtils {
|
||||
private static final int HASH_MAP_DEFAULT_INITIAL_CAPACITY = 16;
|
||||
private static final float HASH_MAP_DEFAULT_LOAD_FACTOR = 0.75F;
|
||||
|
||||
public static <E> E getFirst(Collection<E> c) {
|
||||
if (c == null) {
|
||||
return null;
|
||||
}
|
||||
if (c instanceof List) {
|
||||
List<E> list = (List<E>)c;
|
||||
return list.isEmpty() ? null : list.get(0);
|
||||
}
|
||||
if (c instanceof Set)
|
||||
return c.isEmpty() ? null : c.iterator().next();
|
||||
if (c instanceof Queue) {
|
||||
return c.isEmpty() ? null : ((Queue<E>)c).peek();
|
||||
}
|
||||
return c.isEmpty() ? null : c.iterator().next();
|
||||
}
|
||||
|
||||
public static List<String> removeList(List<String> listA, List<String> listB) {
|
||||
HashSet<String> hs1 = new HashSet<>(listA);
|
||||
HashSet<String> hs2 = new HashSet<>(listB);
|
||||
hs1.removeAll(hs2);
|
||||
List<String> listC = new ArrayList<>();
|
||||
listC.addAll(hs1);
|
||||
return listC;
|
||||
}
|
||||
|
||||
public static <E> List<List<E>> split(List<E> list, E element) {
|
||||
if (list == null) {
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
List<List<E>> result = new ArrayList<>();
|
||||
int start = 0, end = 0;
|
||||
for (E e : list) {
|
||||
if ((element == null) ? (e == null) : element.equals(e)) {
|
||||
result.add(new ArrayList<>(list.subList(start, end)));
|
||||
start = end + 1;
|
||||
}
|
||||
end++;
|
||||
}
|
||||
if (start == list.size()) {
|
||||
result.add(new ArrayList<>(0));
|
||||
} else if (start < list.size()) {
|
||||
result.add(new ArrayList<>(list.subList(start, list.size())));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <E> List<List<E>> split(List<E> list, int... index) {
|
||||
if (list == null) {
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
if (index == null || index.length == 0) {
|
||||
ArrayList<List<E>> arrayList = new ArrayList<>();
|
||||
arrayList.add(new ArrayList<>(list));
|
||||
return arrayList;
|
||||
}
|
||||
if (index.length > list.size()) {
|
||||
throw new IllegalArgumentException("{index}数量不能大于{list}长度。");
|
||||
}
|
||||
List<List<E>> result = new ArrayList<>();
|
||||
int temp = 0;
|
||||
for (int i : index) {
|
||||
if (i < temp) {
|
||||
throw new IllegalArgumentException("{index}的每个值必须比前一个大。");
|
||||
}
|
||||
if (i > list.size()) {
|
||||
throw new IllegalArgumentException("{index}值不能大于{list}长度。");
|
||||
}
|
||||
result.add(new ArrayList<>(list.subList(temp, i)));
|
||||
temp = i;
|
||||
}
|
||||
if (temp == list.size()) {
|
||||
result.add(new ArrayList<>(0));
|
||||
} else if (temp < list.size()) {
|
||||
result.add(new ArrayList<>(list.subList(temp, list.size())));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static <T> List<T> wrap(final T[] array) {
|
||||
if (array == null) {
|
||||
return null;
|
||||
}
|
||||
return new AbstractList<T>() {
|
||||
public T get(int index) {
|
||||
return (T)array[index];
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return array.length;
|
||||
}
|
||||
|
||||
public T set(int index, T element) {
|
||||
T old = (T)array[index];
|
||||
array[index] = element;
|
||||
return old;
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public int indexOf(Object o) {
|
||||
if (o == null) {
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
if (null == array[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
if (o.equals(array[i])) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int lastIndexOf(Object o) {
|
||||
if (o == null) {
|
||||
for (int i = array.length - 1; i > -1; i--) {
|
||||
if (null == array[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (int i = array.length - 1; i > -1; i--) {
|
||||
if (o.equals(array[i])) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public boolean removeAll(Collection<?> c) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean retainAll(Collection<?> c) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static <T> List<T> values(Map<?, T> map) {
|
||||
if (map == null) {
|
||||
return null;
|
||||
}
|
||||
List<T> list = new ArrayList<>(map.size());
|
||||
for (T t : map.values()) {
|
||||
list.add(t);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static <T> List<T> keys(Map<T, ?> map) {
|
||||
if (map == null) {
|
||||
return null;
|
||||
}
|
||||
List<T> list = new ArrayList<>(map.size());
|
||||
for (T t : map.keySet()) {
|
||||
list.add(t);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public static <E> int countOccurrence(E element, Iterable<E> elements) {
|
||||
if (elements == null) {
|
||||
return 0;
|
||||
}
|
||||
int i = 0;
|
||||
if (element == null) {
|
||||
for (E e : elements) {
|
||||
if (null == e) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (E e : elements) {
|
||||
if (element.equals(e)) {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
public static <E> E[] toArray(Collection<E> collection, Class<E> typeClass) {
|
||||
E[] t = (E[])Array.newInstance(typeClass, collection.size());
|
||||
int i = 0;
|
||||
for (Iterator<E> iterator = collection.iterator(); iterator.hasNext(); i++) {
|
||||
t[i] = iterator.next();
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
public static <E> Iterator<E> iterator(final Enumeration<E> enumeration) {
|
||||
return new Iterator<E>() {
|
||||
public boolean hasNext() {
|
||||
return enumeration.hasMoreElements();
|
||||
}
|
||||
|
||||
public E next() {
|
||||
if (!hasNext()) {
|
||||
throw new NoSuchElementException();
|
||||
}
|
||||
return enumeration.nextElement();
|
||||
}
|
||||
|
||||
public void remove() {
|
||||
throw new UnsupportedOperationException("该迭代器没有指向的集合,所以移除元素为不支持的操作。");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static <E> Enumeration<E> enumeration(final Iterator<E> iterator) {
|
||||
return new Enumeration<E>() {
|
||||
public boolean hasMoreElements() {
|
||||
return iterator.hasNext();
|
||||
}
|
||||
|
||||
public E nextElement() {
|
||||
return iterator.next();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static <T> void add(Collection<T> collection, Object value) {
|
||||
if (value == null) {
|
||||
collection.add(null);
|
||||
} else if (value.getClass().isArray()) {
|
||||
if (value instanceof Object[]) {
|
||||
for (Object o : (Object[])value) {
|
||||
collection.add((T)o);
|
||||
}
|
||||
} else {
|
||||
int length = Array.getLength(value);
|
||||
for (int i = 0; i < length; i++) {
|
||||
collection.add((T)Array.get(value, i));
|
||||
}
|
||||
}
|
||||
} else if (value instanceof Collection || value instanceof Stack) {
|
||||
for (Object object : (Iterable<?>)value) {
|
||||
collection.add((T)object);
|
||||
}
|
||||
} else if (value instanceof Iterator) {
|
||||
for (Iterator<T> iterator = (Iterator<T>)value; iterator.hasNext();) {
|
||||
collection.add(iterator.next());
|
||||
}
|
||||
} else {
|
||||
collection.add((T)value);
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> void push(Stack<T> stack, Object value) {
|
||||
if (value == null) {
|
||||
stack.push((T)null);
|
||||
} else if (value.getClass().isArray()) {
|
||||
if (value instanceof Object[]) {
|
||||
for (Object o : (Object[])value) {
|
||||
stack.push((T)o);
|
||||
}
|
||||
} else {
|
||||
int length = Array.getLength(value);
|
||||
for (int i = 0; i < length; i++) {
|
||||
stack.push((T)Array.get(value, i));
|
||||
}
|
||||
}
|
||||
} else if (value instanceof Collection || value instanceof Stack) {
|
||||
for (Object object : (Iterable<?>)value) {
|
||||
stack.push((T)object);
|
||||
}
|
||||
} else {
|
||||
stack.push((T)value);
|
||||
}
|
||||
}
|
||||
|
||||
public static <K, V> MultiValueMap<K, V> synchronizedMultiValueMap(MultiValueMap<K, V> multiValueMap) {
|
||||
if (multiValueMap == null) {
|
||||
throw new IllegalArgumentException("The input argument is null!");
|
||||
}
|
||||
return new SynchronizedMultiValueMap<>(multiValueMap);
|
||||
}
|
||||
|
||||
public static <K, V> MultiValueMap<K, V>
|
||||
unmodifiableMultiValueMap(MultiValueMap<? extends K, ? extends V> multiValueMap) {
|
||||
if (multiValueMap == null) {
|
||||
throw new IllegalArgumentException("The input argument is null!");
|
||||
}
|
||||
return new UnmodifiableMultiValueMap<>(multiValueMap);
|
||||
}
|
||||
|
||||
public static boolean isEmpty(Collection<?> collection) {
|
||||
return (collection == null || collection.isEmpty());
|
||||
}
|
||||
|
||||
public static boolean isEmpty(Stack<?> stack) {
|
||||
return (stack == null || stack.isEmpty());
|
||||
}
|
||||
|
||||
public static boolean isEmpty(Map<?, ?> map) {
|
||||
return (map == null || map.isEmpty());
|
||||
}
|
||||
|
||||
public static boolean isNotEmpty(Collection<?> collection) {
|
||||
return (collection != null && !collection.isEmpty());
|
||||
}
|
||||
|
||||
public static boolean isNotEmpty(Stack<?> stack) {
|
||||
return (stack != null && !stack.isEmpty());
|
||||
}
|
||||
|
||||
public static boolean isNotEmpty(Map<?, ?> map) {
|
||||
return (map != null && !map.isEmpty());
|
||||
}
|
||||
|
||||
private static boolean isComparable(List<?> list, List<?> compareList, int index) {
|
||||
if (isEmpty(list) || isEmpty(compareList)) {
|
||||
return false;
|
||||
}
|
||||
Assert.isTrue((index >= 0 && index < list.size()), "{index} 的值必须从0 至 list.size() - 1 之间。");
|
||||
if (list.size() < compareList.size()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static String[] toStringArray(Collection<?> collection) {
|
||||
if (collection == null) {
|
||||
return null;
|
||||
}
|
||||
String[] stringArray = new String[collection.size()];
|
||||
int i = 0;
|
||||
for (Object o : collection) {
|
||||
stringArray[i] = StringUtils.toString(o);
|
||||
i++;
|
||||
}
|
||||
return stringArray;
|
||||
}
|
||||
|
||||
public static <K, V> void putAllIfAbsent(Map<K, V> map, Map<? extends K, ? extends V> paramMap) {
|
||||
if (map == null || paramMap == null) {
|
||||
return;
|
||||
}
|
||||
for (Map.Entry<? extends K, ? extends V> entry : paramMap.entrySet()) {
|
||||
if (!map.containsKey(entry.getKey())) {
|
||||
map.put(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static int calculateHashMapMinInitialCapacity(int size) {
|
||||
return calculateHashMapMinInitialCapacity(size, 0.75F, 16);
|
||||
}
|
||||
|
||||
public static int calculateHashMapMinInitialCapacity(int size, float loadFactor, int initlalCapcity) {
|
||||
return Math.max((int)(size / loadFactor) + 1, initlalCapcity);
|
||||
}
|
||||
|
||||
public static List<Integer> strArrayToList(String var) {
|
||||
List<Integer> list = new ArrayList<>();
|
||||
for (String v : var.split(",")) {
|
||||
list.add(Integer.valueOf(Integer.parseInt(v)));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
static class SynchronizedMultiValueMap<K, V> implements MultiValueMap<K, V> {
|
||||
final MultiValueMap<K, V> multiValueMap;
|
||||
final Object mutex;
|
||||
private transient Set<K> keySet = null;
|
||||
private transient Set<Map.Entry<K, List<V>>> entrySet;
|
||||
private transient Collection<List<V>> values;
|
||||
private transient Set<Map.Entry<K, V>> singleValueEntrySet;
|
||||
private transient Collection<V> singleValues;
|
||||
|
||||
SynchronizedMultiValueMap(MultiValueMap<K, V> multiValueMap) {
|
||||
if (multiValueMap == null) {
|
||||
throw new IllegalArgumentException("The input argument is null!");
|
||||
}
|
||||
this.multiValueMap = multiValueMap;
|
||||
this.mutex = this;
|
||||
}
|
||||
|
||||
SynchronizedMultiValueMap(MultiValueMap<K, V> multiValueMap, Object mutex) {
|
||||
if (multiValueMap == null) {
|
||||
throw new IllegalArgumentException("The input argument is null!");
|
||||
}
|
||||
this.multiValueMap = multiValueMap;
|
||||
this.mutex = mutex;
|
||||
}
|
||||
|
||||
public void add(K key, V value) {
|
||||
synchronized (this.mutex) {
|
||||
this.multiValueMap.add(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void addAll(K k, List<? extends V> list) {}
|
||||
|
||||
public void addAll(MultiValueMap<K, V> multiValueMap) {}
|
||||
|
||||
public void clear() {
|
||||
synchronized (this.mutex) {
|
||||
this.multiValueMap.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean containsKey(Object key) {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.containsKey(key);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean containsValue(Object value) {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.containsValue(value);
|
||||
}
|
||||
}
|
||||
|
||||
public Set<Map.Entry<K, List<V>>> entrySet() {
|
||||
synchronized (this.mutex) {
|
||||
if (this.entrySet == null) {
|
||||
this.entrySet = new CollectionUtils.SynchronizedSet<>(this.multiValueMap.entrySet(), this.mutex);
|
||||
}
|
||||
return this.entrySet;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.equals(o);
|
||||
}
|
||||
}
|
||||
|
||||
public List<V> get(Object key) {
|
||||
synchronized (this.mutex) {
|
||||
return (List<V>)this.multiValueMap.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
public V getFirst(K key) {
|
||||
synchronized (this.mutex) {
|
||||
return (V)this.multiValueMap.getFirst(key);
|
||||
}
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.hashCode();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
public Set<K> keySet() {
|
||||
synchronized (this.mutex) {
|
||||
if (this.keySet == null) {
|
||||
this.keySet = new CollectionUtils.SynchronizedSet<>(this.multiValueMap.keySet(), this.mutex);
|
||||
}
|
||||
return this.keySet;
|
||||
}
|
||||
}
|
||||
|
||||
public List<V> put(K key, List<V> value) {
|
||||
synchronized (this.mutex) {
|
||||
return (List<V>)this.multiValueMap.put(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void putAll(Map<? extends K, ? extends List<V>> t) {
|
||||
synchronized (this.mutex) {
|
||||
this.multiValueMap.putAll(t);
|
||||
}
|
||||
}
|
||||
|
||||
public List<V> remove(Object key) {
|
||||
synchronized (this.mutex) {
|
||||
return (List<V>)this.multiValueMap.remove(key);
|
||||
}
|
||||
}
|
||||
|
||||
public void set(K key, V value) {
|
||||
synchronized (this.mutex) {
|
||||
this.multiValueMap.set(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
public void setAll(Map<K, V> values) {
|
||||
synchronized (this.mutex) {
|
||||
this.multiValueMap.setAll(values);
|
||||
}
|
||||
}
|
||||
|
||||
public int size() {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.size();
|
||||
}
|
||||
}
|
||||
|
||||
public Map<K, V> toSingleValueMap() {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.toSingleValueMap();
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<List<V>> values() {
|
||||
synchronized (this.mutex) {
|
||||
if (this.values == null) {
|
||||
this.values = new CollectionUtils.SynchronizedCollection<>(this.multiValueMap.values(), this.mutex);
|
||||
}
|
||||
return this.values;
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
synchronized (this.mutex) {
|
||||
return this.multiValueMap.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {
|
||||
synchronized (this.mutex) {
|
||||
s.defaultWriteObject();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class SynchronizedCollection<E> implements Collection<E>, Serializable {
|
||||
private static final long serialVersionUID = -7540724106974451779L;
|
||||
final Collection<E> collection;
|
||||
final Object mutex;
|
||||
|
||||
SynchronizedCollection(Collection<E> collection) {
|
||||
if (collection == null) {
|
||||
throw new IllegalArgumentException("The input argument is null!");
|
||||
}
|
||||
this.collection = collection;
|
||||
this.mutex = this;
|
||||
}
|
||||
|
||||
SynchronizedCollection(Collection<E> collection, Object mutex) {
|
||||
if (collection == null) {
|
||||
throw new IllegalArgumentException("The input argument is null!");
|
||||
}
|
||||
this.collection = collection;
|
||||
this.mutex = mutex;
|
||||
}
|
||||
|
||||
public int size() {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.size();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean contains(Object o) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.contains(o);
|
||||
}
|
||||
}
|
||||
|
||||
public Object[] toArray() {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.toArray();
|
||||
}
|
||||
}
|
||||
|
||||
public <T> T[] toArray(T[] a) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.toArray(a);
|
||||
}
|
||||
}
|
||||
|
||||
public Iterator<E> iterator() {
|
||||
return this.collection.iterator();
|
||||
}
|
||||
|
||||
public boolean add(E o) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.add(o);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean remove(Object o) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.remove(o);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean containsAll(Collection<?> coll) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.containsAll(coll);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean addAll(Collection<? extends E> coll) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.addAll(coll);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean removeAll(Collection<?> coll) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.removeAll(coll);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean retainAll(Collection<?> coll) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.retainAll(coll);
|
||||
}
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
synchronized (this.mutex) {
|
||||
this.collection.clear();
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.toString();
|
||||
}
|
||||
}
|
||||
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {
|
||||
synchronized (this.mutex) {
|
||||
s.defaultWriteObject();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class SynchronizedSet<E> extends SynchronizedCollection<E> implements Set<E> {
|
||||
private static final long serialVersionUID = 6982504952424781802L;
|
||||
|
||||
SynchronizedSet(Set<E> set) {
|
||||
super(set);
|
||||
}
|
||||
|
||||
SynchronizedSet(Set<E> set, Object mutex) {
|
||||
super(set, mutex);
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.equals(o);
|
||||
}
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
synchronized (this.mutex) {
|
||||
return this.collection.hashCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class UnmodifiableMultiValueMap<K, V> implements MultiValueMap<K, V>, Serializable {
|
||||
private static final long serialVersionUID = 7629840602579792180L;
|
||||
final MultiValueMap<K, V> multiValueMap;
|
||||
Set<Map.Entry<K, List<V>>> entrySet;
|
||||
Collection<List<V>> values;
|
||||
Set<K> keySet;
|
||||
Map<K, V> singleValueMap;
|
||||
|
||||
UnmodifiableMultiValueMap(MultiValueMap<? extends K, ? extends V> multiValueMap) {
|
||||
this.multiValueMap = (MultiValueMap)multiValueMap;
|
||||
}
|
||||
|
||||
public void add(K key, V value) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void addAll(K k, List<? extends V> list) {}
|
||||
|
||||
public void addAll(MultiValueMap<K, V> multiValueMap) {}
|
||||
|
||||
public void clear() {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public boolean containsKey(Object key) {
|
||||
return this.multiValueMap.containsKey(key);
|
||||
}
|
||||
|
||||
public boolean containsValue(Object value) {
|
||||
return this.multiValueMap.containsValue(value);
|
||||
}
|
||||
|
||||
public Set<Map.Entry<K, List<V>>> entrySet() {
|
||||
if (this.entrySet == null) {
|
||||
this.entrySet = Collections.unmodifiableSet(this.multiValueMap.entrySet());
|
||||
}
|
||||
return this.entrySet;
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
return this.multiValueMap.equals(o);
|
||||
}
|
||||
|
||||
public List<V> get(Object key) {
|
||||
return (List<V>)this.multiValueMap.get(key);
|
||||
}
|
||||
|
||||
public V getFirst(K key) {
|
||||
return (V)this.multiValueMap.getFirst(key);
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return this.multiValueMap.hashCode();
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return this.multiValueMap.isEmpty();
|
||||
}
|
||||
|
||||
public Set<K> keySet() {
|
||||
if (this.keySet == null) {
|
||||
this.keySet = Collections.unmodifiableSet(this.multiValueMap.keySet());
|
||||
}
|
||||
return this.keySet;
|
||||
}
|
||||
|
||||
public List<V> put(K key, List<V> value) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void putAll(Map<? extends K, ? extends List<V>> t) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public List<V> remove(Object key) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void set(K key, V value) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public void setAll(Map<K, V> values) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
public Set<Map.Entry<K, V>> singleValueEntrySet() {
|
||||
return toSingleValueMap().entrySet();
|
||||
}
|
||||
|
||||
public Collection<V> singleValues() {
|
||||
return toSingleValueMap().values();
|
||||
}
|
||||
|
||||
public int size() {
|
||||
return this.multiValueMap.size();
|
||||
}
|
||||
|
||||
public Map<K, V> toSingleValueMap() {
|
||||
if (this.singleValueMap == null) {
|
||||
this.singleValueMap = Collections.unmodifiableMap(this.multiValueMap.toSingleValueMap());
|
||||
}
|
||||
return this.singleValueMap;
|
||||
}
|
||||
|
||||
public Collection<List<V>> values() {
|
||||
if (this.values == null) {
|
||||
this.values = Collections.unmodifiableCollection(this.multiValueMap.values());
|
||||
}
|
||||
return this.values;
|
||||
}
|
||||
}
|
||||
}
|
||||
+114
@@ -0,0 +1,114 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
public class CommunityConstants {
|
||||
public static interface Common {
|
||||
public static final String NOTE_TYPE_ORG = "1";
|
||||
public static final String NOTE_TYPE_TAG = "2";
|
||||
public static final String NOTE_TYPE_PERSON = "3";
|
||||
public static final String NOTE_TYPE_EDG = "4";
|
||||
public static final String ACCESS_NAME_SUFFIX = "门禁";
|
||||
public static final Integer ACCESS_AUTO = Integer.valueOf(0);
|
||||
public static final Integer ONE_HUNDRED = Integer.valueOf(100);
|
||||
public static final Integer BATCH_SIZE = Integer.valueOf(500);
|
||||
public static final Integer MAX_SHOW_CAPTURE = Integer.valueOf(7);
|
||||
public static final String TEMP_PATH = "java.io.tmpdir";
|
||||
public static final String FONT_PATH = "font/simsun.ttc";
|
||||
public static final String TEMPLATE_NAME = "appraiseReportTemplate";
|
||||
public static final String FONT_SUFFIX = ".ttc";
|
||||
public static final String DASH = "-";
|
||||
public static final String HTTP_PREFIX = "http://";
|
||||
public static final String BR = "<br/>";
|
||||
public static final String FORMAT = "yyyy/MM/dd/HH";
|
||||
public static final String CLIENT_IP = "ClientIP";
|
||||
}
|
||||
|
||||
public static interface Snap {
|
||||
public static final String IMG_DOWNLOAD_PARSE_ERROR = "img_download_parse_error";
|
||||
public static final String DATA_IMAGE_BASE64_HEAD = "data:image/";
|
||||
}
|
||||
|
||||
public static interface Symbol {
|
||||
public static final String COMMA = ",";
|
||||
public static final String HYPHEN = "-";
|
||||
public static final String COLON = ":";
|
||||
}
|
||||
|
||||
public static interface Alarm {
|
||||
public static final Integer IN = Integer.valueOf(1);
|
||||
public static final Integer OUT = Integer.valueOf(0);
|
||||
public static final String STRANGER = "STRANGER";
|
||||
public static final String BLACK_LIST = "BLACK_LIST";
|
||||
}
|
||||
|
||||
public static interface Redis {
|
||||
public static final String EVENT_CODE_INC_KEY = "EVENT_CODE:INC_KEY";
|
||||
public static final Integer EVENT_CODE_INC_MAX_VALUE = Integer.valueOf(9999);
|
||||
public static final String TF_BRAIN_ACCESS_TOKEN = "tfbrain_access_token";
|
||||
public static final String USER_TOKEN_KEY = "USER_TOKEN:%s";
|
||||
public static final String OUT_IN_IMAGE_STORE = "upOutInStore";
|
||||
public static final String AGREEMENT = "redis://";
|
||||
public static final String LOCK = "redisLock";
|
||||
public static final String OLD_AUTO_CREATE_SETTING = "OLD:AUTO_CREATE";
|
||||
public static final String CHILD_AUTO_CREATE_SETTING = "CHILD:AUTO_CREATE:%s";
|
||||
public static final String IMPORT_FAILURE_MSG = "IMPORT:FAILURE:%s";
|
||||
public static final String VILLAGE_RECORD_LIST = "village:list";
|
||||
public static final String COMMUNITY_LIST = "community:list";
|
||||
public static final Long VALUE_CHANGE_EXPIRE_TIME = Long.valueOf(1L);
|
||||
public static final String PROVINCE_TREE = "tree:province:level:%s";
|
||||
}
|
||||
|
||||
public static interface Data {
|
||||
public static final String MALE = "男";
|
||||
public static final String FEMALE = "女";
|
||||
public static final String ID = "id";
|
||||
public static final String CREATE_TIME = "createTime";
|
||||
public static final String LAST_UPDATE_TIME = "lastUpdateTime";
|
||||
public static final String REGISTER_PERSON_ID = "register_person_id";
|
||||
public static final String GRID_ID = "grid_id";
|
||||
public static final Integer TOP_VALUE = Integer.valueOf(1);
|
||||
public static final Integer NO_TOP_VALUE = Integer.valueOf(0);
|
||||
public static final Integer PUBLISH_STATUS_1 = Integer.valueOf(1);
|
||||
public static final Integer PUBLISH_STATUS_2 = Integer.valueOf(2);
|
||||
public static final Integer PUBLISH_STATUS_3 = Integer.valueOf(3);
|
||||
public static final String AGE = "age";
|
||||
public static final String SEX = "sex";
|
||||
public static final String COMMUNITY_ID = "community_id";
|
||||
public static final String VILLAGE_ID = "village_id";
|
||||
}
|
||||
|
||||
public static interface Dcs {
|
||||
public static final String DCS_URL_ID_FORMAT = "%s:%s@%s:2015?dcsID=";
|
||||
public static final String DCS_URL_FORMAT = "%s:%s@%s:2015";
|
||||
}
|
||||
|
||||
public static interface Dcr {
|
||||
public static final String HTTPS_PREFIX = "https://";
|
||||
public static final String MID_PART_DOWNLOAD_URL = "/object/download?pool=";
|
||||
public static final String MID_PART_UPLOAD_URL = "/object/upload/do?token=";
|
||||
public static final String MID_DOWNLOAD_FILE_URL = "/simple-file/download?pool=";
|
||||
public static final String MID_UPLOAD_FILE_URL = "/simple-file/upload/full?pool=";
|
||||
public static final String PARA_PATH = "&path=";
|
||||
public static final String PARA_SIZE = "&offset=0&size=";
|
||||
public static final String PARA_ID = "&id=";
|
||||
public static final String ID = "ID";
|
||||
public static final String AUTH_TYPE = "Basic ";
|
||||
public static final String AUTH = "authorization";
|
||||
public static final String POOL = "pool";
|
||||
public static final String TOKEN = "Token";
|
||||
public static final String ADDRESS = "Address";
|
||||
public static final String AUTH_SUFFIX = "/object/upload";
|
||||
public static final Integer MAX_DOWNLOAD_SIZE = Integer.valueOf(16000000);
|
||||
public static final String OFFSET = "&offset=";
|
||||
public static final String SIZE = "&size=";
|
||||
}
|
||||
|
||||
public static interface Icc {
|
||||
public static final String ICC_RTSP_URL = "rtsp://%s:9090/dss/monitor/param?cameraid=%s%%24%s&substream=1";
|
||||
public static final String ICC_PLAYBACK_RTSP_URL =
|
||||
"rtsp://%s:9090/dss/playback/param?cameraid=%s%%24%s&substream=1&type=3";
|
||||
public static final String ICC_OUTSIDE_HLS_URL = "/live/cameraid/%s%%24%s/substream/1.m3u8";
|
||||
public static final String ICC_PLAYBACK_OUTSIDE_HLS_URL = "/vod/center/cameraid/%s%%24%s/substream/1";
|
||||
public static final int DEVICE_TYPE_NVR = 6;
|
||||
public static final int DEVICE_TYPE_IPC = 2;
|
||||
}
|
||||
}
|
||||
+441
@@ -0,0 +1,441 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
import java.security.Timestamp;
|
||||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.time.temporal.TemporalAdjusters;
|
||||
import java.time.temporal.WeekFields;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class DateUtils {
|
||||
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
|
||||
public static final long ONE_DAY_LONG = 86400000L;
|
||||
public static final String YYYYMMDD = "yyyyMMdd";
|
||||
public static final String STANDARD_FORMAT = "yyyy-MM-dd HH:mm";
|
||||
public static final String YYYY_MM_DD = "yyyy-MM-dd";
|
||||
public static final String YYYY_MM_DD_HMS = "yyyy-MM-dd HH:mm:ss";
|
||||
public static final String HHMMSS = "HH:mm:ss";
|
||||
public static final String YYYYMM = "yyyyMM";
|
||||
public static final String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
|
||||
|
||||
public static long getCurrentTime() {
|
||||
return System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public static String timestamp2String(Timestamp time, String pattern) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
|
||||
return sdf.format(time.getTimestamp());
|
||||
}
|
||||
|
||||
public static String formatDate(Date date, String pattern) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
|
||||
return sdf.format(date);
|
||||
}
|
||||
|
||||
public static int defaultFormat(Date date) {
|
||||
return Integer.valueOf(DateUtils.formatDate(date, YYYYMMDD));
|
||||
}
|
||||
|
||||
public static Date defaultFormat(String str) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(YYYYMMDD);
|
||||
try {
|
||||
return sdf.parse(str);
|
||||
} catch (ParseException e) {
|
||||
logger.error("日期格式转换失败", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static Date customFormat(String str, String pattern) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
|
||||
try {
|
||||
return sdf.parse(str);
|
||||
} catch (ParseException e) {
|
||||
logger.error("日期格式转换失败", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static int defaultFormat(long millis) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTimeInMillis(millis);
|
||||
return DateUtils.defaultFormat(cal.getTime());
|
||||
}
|
||||
|
||||
public static String parseTimestamp(Timestamp time) {
|
||||
return DateUtils.parseDate(time.getTimestamp());
|
||||
}
|
||||
|
||||
public static String parseDate(Date date) {
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(YYYYMMDD);
|
||||
return sdf.format(date);
|
||||
} catch (Exception e) {
|
||||
logger.error("日期格式转换失败", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static String parseDate(Date date, String partern) {
|
||||
try {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat(partern);
|
||||
return sdf.format(date);
|
||||
} catch (Exception e) {
|
||||
logger.error("日期格式转换失败", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static int getYear() {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(new Date());
|
||||
return cal.get(1);
|
||||
}
|
||||
|
||||
public static long getMonthFirstDate(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
calendar.set(5, 1);
|
||||
calendar.set(11, 0);
|
||||
calendar.set(12, 0);
|
||||
calendar.set(13, 0);
|
||||
calendar.set(14, 0);
|
||||
return calendar.getTime().getTime();
|
||||
}
|
||||
|
||||
public static long getMonthLastDate(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
calendar.set(5, calendar.getActualMaximum(5));
|
||||
calendar.set(11, 23);
|
||||
calendar.set(12, 59);
|
||||
calendar.set(13, 59);
|
||||
calendar.set(14, 999);
|
||||
return calendar.getTime().getTime();
|
||||
}
|
||||
|
||||
public static Long dateToStamp(String s) {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYYMMDD);
|
||||
try {
|
||||
Date date = simpleDateFormat.parse(s);
|
||||
long ts = date.getTime();
|
||||
return ts;
|
||||
} catch (Exception e) {
|
||||
logger.error("日期转为时间戳失败", e);
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
|
||||
public static String stampToDate(String s) {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYY_MM_DD_HMS);
|
||||
long lt = (new Long(s)).longValue();
|
||||
Date date = new Date(lt);
|
||||
String res = simpleDateFormat.format(date);
|
||||
return res;
|
||||
}
|
||||
|
||||
public static String getTwoDaysDesc(Integer startTime, Integer endTime) {
|
||||
List<Integer> days = new ArrayList<Integer>();
|
||||
if (null == startTime || null == endTime) {
|
||||
return "日";
|
||||
}
|
||||
DateFormat dateFormat = new SimpleDateFormat(YYYYMMDD);
|
||||
try {
|
||||
Date start = dateFormat.parse(String.valueOf(startTime));
|
||||
Date end = dateFormat.parse(String.valueOf(endTime));
|
||||
Calendar tempStart = Calendar.getInstance();
|
||||
tempStart.setTime(start);
|
||||
Calendar tempEnd = Calendar.getInstance();
|
||||
tempEnd.setTime(end);
|
||||
tempEnd.add(5, 1);
|
||||
while (tempStart.before(tempEnd)) {
|
||||
days.add(Integer.parseInt(dateFormat.format(tempStart.getTime())));
|
||||
tempStart.add(6, 1);
|
||||
}
|
||||
} catch (ParseException e) {
|
||||
logger.error("时间转换失败", e);
|
||||
}
|
||||
int dayOfWeek = 7;
|
||||
String twoDayDesc;
|
||||
if (days.size() > dayOfWeek) {
|
||||
twoDayDesc = "月";
|
||||
} else if (days.size() > 1) {
|
||||
twoDayDesc = "周";
|
||||
} else {
|
||||
twoDayDesc = "日";
|
||||
}
|
||||
return twoDayDesc;
|
||||
}
|
||||
|
||||
public static Long todayStart() {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.set(11, 0);
|
||||
calendar.set(12, 0);
|
||||
calendar.set(13, 0);
|
||||
calendar.set(14, 0);
|
||||
return calendar.getTimeInMillis();
|
||||
}
|
||||
|
||||
public static Long dateToStampTomorrow(String s) {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYYMMDD);
|
||||
try {
|
||||
Date date = simpleDateFormat.parse(s);
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(date);
|
||||
cal.add(5, 1);
|
||||
long ts = cal.getTimeInMillis();
|
||||
return ts;
|
||||
} catch (Exception e) {
|
||||
logger.error("日期转换失败", e);
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
|
||||
public static Date getDateSubDay(int day) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(new Date());
|
||||
cal.add(5, day);
|
||||
return cal.getTime();
|
||||
}
|
||||
|
||||
public static Date getDateSubDay(Date date, int day) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(date);
|
||||
cal.add(5, day);
|
||||
return cal.getTime();
|
||||
}
|
||||
|
||||
public static Long todayStart(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
calendar.set(11, 0);
|
||||
calendar.set(12, 0);
|
||||
calendar.set(13, 0);
|
||||
calendar.set(14, 0);
|
||||
return calendar.getTimeInMillis();
|
||||
}
|
||||
|
||||
public static Long todayEnd(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
calendar.set(11, 23);
|
||||
calendar.set(12, 59);
|
||||
calendar.set(13, 59);
|
||||
calendar.set(14, 999);
|
||||
return calendar.getTimeInMillis();
|
||||
}
|
||||
|
||||
public static Long todayEnd() {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.set(11, 23);
|
||||
calendar.set(12, 59);
|
||||
calendar.set(13, 59);
|
||||
calendar.set(14, 999);
|
||||
return calendar.getTimeInMillis();
|
||||
}
|
||||
|
||||
public static String formatTimeDuration(long duration, int format) {
|
||||
boolean fu = false;
|
||||
long fduration = duration;
|
||||
if (duration < 0L) {
|
||||
fu = true;
|
||||
fduration = Math.abs(duration);
|
||||
}
|
||||
StringBuilder builder = new StringBuilder();
|
||||
long sec = fduration / 1000L % 60L;
|
||||
long min = fduration / 1000L / 60L % 60L;
|
||||
long hour = fduration / 1000L / 60L / 60L % 24L;
|
||||
long day = fduration / 1000L / 60L / 60L / 24L;
|
||||
if (day > 0L && format > 0) {
|
||||
format--;
|
||||
builder.append(day).append("天");
|
||||
}
|
||||
format--;
|
||||
if (hour > 0L && format > 0) {
|
||||
builder.append(hour).append("小时");
|
||||
}
|
||||
format--;
|
||||
if (min > 0L && format > 0) {
|
||||
builder.append(min).append("分钟");
|
||||
}
|
||||
format--;
|
||||
if (sec > 0L && format > 0) {
|
||||
builder.append(sec).append("秒");
|
||||
}
|
||||
if (fu) {
|
||||
builder.insert(0, "-");
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public static String formatTimeDurationHour(long duration, int format) {
|
||||
if (duration == 0L) {
|
||||
return "-";
|
||||
}
|
||||
long fduration = Math.abs(duration);
|
||||
StringBuilder builder = new StringBuilder();
|
||||
long sec = fduration / 1000L % 60L;
|
||||
long min = fduration / 1000L / 60L % 60L;
|
||||
long hour = fduration / 1000L / 60L / 60L;
|
||||
if (hour > 0L && format > 0) {
|
||||
builder.append(hour).append("小时");
|
||||
}
|
||||
format--;
|
||||
if (min > 0L && format > 0) {
|
||||
builder.append(min).append("分钟");
|
||||
}
|
||||
format--;
|
||||
if (sec > 0L && format > 0) {
|
||||
builder.append(sec).append("秒");
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
public static Date getMonth(Date date, int count) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
int month = calendar.get(2);
|
||||
calendar.set(2, month - count);
|
||||
return calendar.getTime();
|
||||
}
|
||||
|
||||
public static int getYear(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
return calendar.get(1);
|
||||
}
|
||||
|
||||
public static int getMonth(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
return calendar.get(2) + 1;
|
||||
}
|
||||
|
||||
public static Long dateToStampFormat(String s, String format) {
|
||||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
|
||||
try {
|
||||
Date date = simpleDateFormat.parse(s);
|
||||
return date.getTime();
|
||||
} catch (Exception e) {
|
||||
logger.error("日期转换失败", e);
|
||||
return 0L;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean timeIsInRound(String now, String start, String end, String format) {
|
||||
Date nowTime;
|
||||
Date beginTime;
|
||||
Date endTime;
|
||||
SimpleDateFormat df = new SimpleDateFormat(format);
|
||||
try {
|
||||
nowTime = df.parse(now);
|
||||
beginTime = df.parse(start);
|
||||
endTime = df.parse(end);
|
||||
} catch (Exception e) {
|
||||
logger.error("时间格式转换异常,原因=[{}]", e.getMessage(), e);
|
||||
return false;
|
||||
}
|
||||
if (nowTime.getTime() >= beginTime.getTime() && nowTime.getTime() <= endTime.getTime()) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static int getDayOfWeek(Date date) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(date);
|
||||
return calendar.get(7);
|
||||
}
|
||||
|
||||
public static LocalDateTime millToDate(Long mill) {
|
||||
return LocalDateTime.ofInstant(Instant.ofEpochMilli(mill.longValue()), ZoneOffset.ofHours(8));
|
||||
}
|
||||
|
||||
public static List<StartTimeAndEndTime> getCycle(Integer timeType, int cycleNum) {
|
||||
LocalDateTime nowStartTime;
|
||||
LocalDateTime nowEndTime;
|
||||
int i;
|
||||
LocalDateTime nowMonday;
|
||||
LocalDateTime nowSunday;
|
||||
int j;
|
||||
LocalDateTime nowFirstDay;
|
||||
LocalDateTime nowLastDay;
|
||||
int k;
|
||||
if (timeType == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<StartTimeAndEndTime> timeList = new ArrayList<StartTimeAndEndTime>(cycleNum);
|
||||
switch (timeType.intValue()) {
|
||||
case 0:
|
||||
nowStartTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
|
||||
nowEndTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
|
||||
timeList.add(
|
||||
new StartTimeAndEndTime(Long.valueOf(nowStartTime.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
Long.valueOf(nowEndTime.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
nowStartTime.getDayOfMonth() + "号"));
|
||||
for (i = 1; i < cycleNum; i++) {
|
||||
LocalDateTime firstDay = nowStartTime.minusDays(i);
|
||||
LocalDateTime lastDay = nowEndTime.minusDays(i);
|
||||
timeList.add(
|
||||
new StartTimeAndEndTime(Long.valueOf(firstDay.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
Long.valueOf(lastDay.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
firstDay.getDayOfMonth() + "号"));
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
nowMonday = LocalDateTime.of(LocalDate.now(), LocalTime.MIN).with(DayOfWeek.MONDAY);
|
||||
nowSunday = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).with(DayOfWeek.SUNDAY);
|
||||
timeList
|
||||
.add(new StartTimeAndEndTime(Long.valueOf(nowMonday.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
Long.valueOf(nowSunday.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
nowMonday.get(WeekFields.ISO.weekOfWeekBasedYear()) + "周"));
|
||||
for (j = 1; j < cycleNum; j++) {
|
||||
LocalDateTime lastMonday = nowMonday.minusWeeks(j);
|
||||
LocalDateTime lastSunday = nowSunday.minusWeeks(j);
|
||||
timeList.add(
|
||||
new StartTimeAndEndTime(Long.valueOf(lastMonday.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
Long.valueOf(lastSunday.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
lastMonday.get(WeekFields.ISO.weekOfWeekBasedYear()) + "周"));
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
nowFirstDay =
|
||||
LocalDateTime.of(LocalDate.now(), LocalTime.MIN).with(TemporalAdjusters.firstDayOfMonth());
|
||||
nowLastDay = LocalDateTime.of(LocalDate.now(), LocalTime.MAX).with(TemporalAdjusters.lastDayOfMonth());
|
||||
timeList.add(
|
||||
new StartTimeAndEndTime(Long.valueOf(nowFirstDay.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
Long.valueOf(nowLastDay.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
nowFirstDay.get(ChronoField.MONTH_OF_YEAR) + "月"));
|
||||
for (k = 1; k < cycleNum; k++) {
|
||||
LocalDateTime firstDay = LocalDateTime.now().minusMonths(k)
|
||||
.with(TemporalAdjusters.firstDayOfMonth()).with(LocalTime.MIN);
|
||||
LocalDateTime lastDay =
|
||||
LocalDateTime.now().minusMonths(k).with(TemporalAdjusters.lastDayOfMonth()).with(LocalTime.MAX);
|
||||
timeList.add(
|
||||
new StartTimeAndEndTime(Long.valueOf(firstDay.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
Long.valueOf(lastDay.toInstant(ZoneOffset.of("+8")).toEpochMilli()),
|
||||
firstDay.get(ChronoField.MONTH_OF_YEAR) + "月"));
|
||||
}
|
||||
break;
|
||||
}
|
||||
return timeList;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(">>>>>>>>>>>>>>" + DateUtils.dateToStampFormat("202002", YYYYMM));
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.JavaType;
|
||||
import com.fasterxml.jackson.databind.Module;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class JsonUtils {
|
||||
private static final Logger log = LoggerFactory.getLogger(JsonUtils.class);
|
||||
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
|
||||
|
||||
public static String toJson(Object obj) {
|
||||
ObjectMapper mapper = objectMapper();
|
||||
try {
|
||||
return mapper.writeValueAsString(obj);
|
||||
} catch (JsonProcessingException e) {
|
||||
logger.warn("json parase exception :{}", e.getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> T toObj(String json, Class<T> clazz) {
|
||||
ObjectMapper mapper = objectMapper();
|
||||
T value = null;
|
||||
try {
|
||||
value = (T)mapper.readValue(json, clazz);
|
||||
} catch (IOException e) {
|
||||
logger.warn("json parase exception :{}", e.getMessage());
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static <T> T toObj(String json, TypeReference<T> tTypeReference) {
|
||||
ObjectMapper mapper = objectMapper();
|
||||
T value = null;
|
||||
try {
|
||||
value = (T)mapper.readValue(json, tTypeReference);
|
||||
} catch (IOException e) {
|
||||
logger.warn("json parase exception :{}", e.getMessage());
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static <T> List<T> toObjList(String json, Class<T> clazz) {
|
||||
ObjectMapper mapper = objectMapper();
|
||||
List<T> value = null;
|
||||
try {
|
||||
JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, new Class[] {clazz});
|
||||
value = (List<T>)mapper.readValue(json, jt);
|
||||
} catch (IOException e) {
|
||||
logger.warn("json parase exception :{}", e.getMessage());
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
public static ObjectMapper objectMapper() {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.registerModule((Module)new JavaTimeModule());
|
||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||
return mapper;
|
||||
}
|
||||
}
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import java.net.URI;
|
||||
import java.util.List;
|
||||
import javax.annotation.PostConstruct;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@Component
|
||||
public class RestTemplateUtil {
|
||||
private static final Logger logger = LoggerFactory.getLogger(DateUtils.class);
|
||||
private static RestTemplate restTemplate;
|
||||
|
||||
private static class SingletonRestTemplate {
|
||||
static SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
|
||||
static {
|
||||
requestFactory.setConnectTimeout(10000);
|
||||
requestFactory.setReadTimeout(10000);
|
||||
}
|
||||
static final RestTemplate INSTANCE = new RestTemplate((ClientHttpRequestFactory)requestFactory);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void getInstance() {
|
||||
RestTemplate restTemplate = SingletonRestTemplate.INSTANCE;
|
||||
List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters();
|
||||
HttpMessageConverter<?> converterTarget = null;
|
||||
for (HttpMessageConverter<?> item : converterList) {
|
||||
if (MappingJackson2HttpMessageConverter.class == item.getClass()) {
|
||||
converterTarget = item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (null != converterTarget) {
|
||||
converterList.remove(converterTarget);
|
||||
}
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||
converterList.add(new MappingJackson2HttpMessageConverter(objectMapper));
|
||||
RestTemplateUtil.restTemplate = restTemplate;
|
||||
}
|
||||
|
||||
public static String get(String url) {
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.add("Accept", "application/json");
|
||||
headers.add("Content-Encoding", "UTF-8");
|
||||
headers.add("Content-Type", "application/json; charset=UTF-8");
|
||||
HttpEntity<String> requestEntity = new HttpEntity(null, (MultiValueMap)headers);
|
||||
ResponseEntity<String> response =
|
||||
restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class, new Object[0]);
|
||||
return (String)response.getBody();
|
||||
}
|
||||
|
||||
public static String get(URI url, HttpHeaders headers) {
|
||||
HttpEntity<String> requestEntity = new HttpEntity(null, (MultiValueMap)headers);
|
||||
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
|
||||
return (String)response.getBody();
|
||||
}
|
||||
|
||||
public static <T> T get(URI url, HttpHeaders headers, Class<T> responseType) {
|
||||
HttpEntity<Object> requestEntity = new HttpEntity(null, (MultiValueMap)headers);
|
||||
T resultEntity = null;
|
||||
try {
|
||||
ResponseEntity<T> result = restTemplate.exchange(url, HttpMethod.GET, requestEntity, responseType);
|
||||
resultEntity = getResultEntity(result, url);
|
||||
} catch (Exception e) {
|
||||
logger.warn(">>>>>>>>>>>>>>>>>【{}】接口调用失败,错误信息", url, e);
|
||||
}
|
||||
return resultEntity;
|
||||
}
|
||||
|
||||
public static <T> T post(URI url, Object data, HttpHeaders headers, Class<T> responseType) {
|
||||
HttpEntity<Object> requestEntity = new HttpEntity(data, (MultiValueMap)headers);
|
||||
T resultEntity = null;
|
||||
try {
|
||||
logger.info(">>>>>>>>>>>>>>>>>开始请求接口:{},payload:{},", url.toString(), data);
|
||||
ResponseEntity<T> result = restTemplate.postForEntity(url, requestEntity, responseType);
|
||||
resultEntity = getResultEntity(result, url);
|
||||
} catch (Exception e) {
|
||||
logger.warn(">>>>>>>>>>>>>>>>>接口调用失败,错误信息:{}", e.getMessage());
|
||||
}
|
||||
return resultEntity;
|
||||
}
|
||||
|
||||
public static <T> T postTf(URI url, Object data, HttpHeaders headers, Class<T> responseType) throws Exception {
|
||||
HttpEntity<Object> requestEntity = new HttpEntity(data, (MultiValueMap)headers);
|
||||
T resultEntity = null;
|
||||
try {
|
||||
logger.info(">>>>>>>>>>>>>>>>>开始请求接口:{},payload:{},", url.toString(), data);
|
||||
ResponseEntity<T> result = restTemplate.postForEntity(url, requestEntity, responseType);
|
||||
resultEntity = getTfResultEntity(result, url);
|
||||
} catch (Exception e) {
|
||||
logger.warn(">>>>>>>>>>>>>>>>>接口调用失败,错误信息:{}", e.getMessage());
|
||||
throw e;
|
||||
}
|
||||
return resultEntity;
|
||||
}
|
||||
|
||||
public static <T> T post(URI url, Object data, HttpHeaders headers, TypeReference<T> tTypeReference) {
|
||||
HttpEntity<Object> requestEntity = new HttpEntity(data, (MultiValueMap)headers);
|
||||
T resultEntity = null;
|
||||
try {
|
||||
ResponseEntity<String> result = restTemplate.postForEntity(url, requestEntity, String.class);
|
||||
if (HttpStatus.OK == result.getStatusCode()) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("接口返回值:{}", JsonUtils.toJson(result.getBody()));
|
||||
}
|
||||
return JsonUtils.toObj((String)result.getBody(), tTypeReference);
|
||||
}
|
||||
logger.info(">>>>>>>>>>>>>>>>>接口调用失败,状态码:{},错误原因:{}", result.getStatusCode(),
|
||||
JsonUtils.toJson(result.getBody()));
|
||||
} catch (Exception e) {
|
||||
logger.warn(">>>>>>>>>>>>>>>>>接口调用失败,错误信息:{}", e.getMessage());
|
||||
}
|
||||
return resultEntity;
|
||||
}
|
||||
|
||||
private static <T> T getTfResultEntity(ResponseEntity<T> result, URI url) throws Exception {
|
||||
HttpStatus statusCode = result.getStatusCode();
|
||||
if (HttpStatus.OK == statusCode) {
|
||||
logger.info(">>>>>>>>>>>>>>>>>接口:{} 调用成功", url);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("接口返回值:{}", JsonUtils.toJson(result.getBody()));
|
||||
}
|
||||
return (T)result.getBody();
|
||||
}
|
||||
logger.info(">>>>>>>>>>>>>>>>>接口调用失败,状态码:{},错误原因:{}", statusCode, JsonUtils.toJson(result.getBody()));
|
||||
if (HttpStatus.UNAUTHORIZED == statusCode) {
|
||||
throw new Exception(statusCode.toString());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static <T> T getResultEntity(ResponseEntity<T> result, URI url) {
|
||||
if (HttpStatus.OK == result.getStatusCode()) {
|
||||
logger.info(">>>>>>>>>>>>>>>>>接口:{} 调用成功", url);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("接口返回值:{}", JsonUtils.toJson(result.getBody()));
|
||||
}
|
||||
return (T)result.getBody();
|
||||
}
|
||||
logger.info(">>>>>>>>>>>>>>>>>接口调用失败,状态码:{},错误原因:{}", result.getStatusCode(),
|
||||
JsonUtils.toJson(result.getBody()));
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
public class StartTimeAndEndTime {
|
||||
public StartTimeAndEndTime(Long startTime, Long endTime, String currentTime) {
|
||||
this.startTime = startTime;
|
||||
this.endTime = endTime;
|
||||
this.currentTime = currentTime;
|
||||
}
|
||||
|
||||
private Long startTime;
|
||||
private Long endTime;
|
||||
private String currentTime;
|
||||
|
||||
public Long getStartTime() {
|
||||
return this.startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Long startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Long getEndTime() {
|
||||
return this.endTime;
|
||||
}
|
||||
|
||||
public void setEndTime(Long endTime) {
|
||||
this.endTime = endTime;
|
||||
}
|
||||
|
||||
public String getCurrentTime() {
|
||||
return this.currentTime;
|
||||
}
|
||||
|
||||
public void setCurrentTime(String currentTime) {
|
||||
this.currentTime = currentTime;
|
||||
}
|
||||
}
|
||||
+2095
File diff suppressed because it is too large
Load Diff
+20
@@ -0,0 +1,20 @@
|
||||
package cn.cloudwalk.elevator.util;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class ToolUtil {
|
||||
|
||||
public static String generateUUID() {
|
||||
String uuid = UUID.randomUUID().toString();
|
||||
return uuid.replaceAll("-", "");
|
||||
}
|
||||
|
||||
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
|
||||
Set<Object> seen = ConcurrentHashMap.newKeySet();
|
||||
return t -> seen.add(keyExtractor.apply(t));
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
Manifest-Version: 1.0
|
||||
Implementation-Title: cw-elevator-application-common
|
||||
Implementation-Version: 2.0-SNAPSHOT
|
||||
Archiver-Version: Plexus Archiver
|
||||
Built-By: YCWB0304
|
||||
Implementation-Vendor-Id: cn.cloudwalk.elevator
|
||||
Created-By: Apache Maven 3.6.1
|
||||
Build-Jdk: 1.8.0_144
|
||||
Implementation-URL: http://projects.spring.io/spring-boot/cw-elevator-
|
||||
application/cw-elevator-application-common/
|
||||
Implementation-Vendor: Pivotal Software, Inc.
|
||||
|
||||
Reference in New Issue
Block a user