diff --git b/.mvn/wrapper/MavenWrapperDownloader.java a/.mvn/wrapper/MavenWrapperDownloader.java new file mode 100644 index 0000000..7f91a56 --- /dev/null +++ a/.mvn/wrapper/MavenWrapperDownloader.java @@ -0,0 +1,114 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + https://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +*/ + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.net.URL; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.util.Properties; + +public class MavenWrapperDownloader { + + /** + * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided. + */ + private static final String DEFAULT_DOWNLOAD_URL = + "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"; + + /** + * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to + * use instead of the default one. + */ + private static final String MAVEN_WRAPPER_PROPERTIES_PATH = + ".mvn/wrapper/maven-wrapper.properties"; + + /** + * Path where the maven-wrapper.jar will be saved to. + */ + private static final String MAVEN_WRAPPER_JAR_PATH = + ".mvn/wrapper/maven-wrapper.jar"; + + /** + * Name of the property which should be used to override the default download url for the wrapper. + */ + private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl"; + + public static void main(String args[]) { + System.out.println("- Downloader started"); + File baseDirectory = new File(args[0]); + System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath()); + + // If the maven-wrapper.properties exists, read it and check if it contains a custom + // wrapperUrl parameter. + File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH); + String url = DEFAULT_DOWNLOAD_URL; + if (mavenWrapperPropertyFile.exists()) { + FileInputStream mavenWrapperPropertyFileInputStream = null; + try { + mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile); + Properties mavenWrapperProperties = new Properties(); + mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream); + url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url); + } catch (IOException e) { + System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'"); + } finally { + try { + if (mavenWrapperPropertyFileInputStream != null) { + mavenWrapperPropertyFileInputStream.close(); + } + } catch (IOException e) { + // Ignore ... + } + } + } + System.out.println("- Downloading from: : " + url); + + File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH); + if (!outputFile.getParentFile().exists()) { + if (!outputFile.getParentFile().mkdirs()) { + System.out.println( + "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'"); + } + } + System.out.println("- Downloading to: " + outputFile.getAbsolutePath()); + try { + downloadFileFromURL(url, outputFile); + System.out.println("Done"); + System.exit(0); + } catch (Throwable e) { + System.out.println("- Error downloading"); + e.printStackTrace(); + System.exit(1); + } + } + + private static void downloadFileFromURL(String urlString, File destination) throws Exception { + URL website = new URL(urlString); + ReadableByteChannel rbc; + rbc = Channels.newChannel(website.openStream()); + FileOutputStream fos = new FileOutputStream(destination); + fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); + fos.close(); + rbc.close(); + } + +} diff --git b/.mvn/wrapper/maven-wrapper.jar a/.mvn/wrapper/maven-wrapper.jar new file mode 100644 index 0000000..01e6799 --- /dev/null +++ a/.mvn/wrapper/maven-wrapper.jar diff --git b/.mvn/wrapper/maven-wrapper.properties a/.mvn/wrapper/maven-wrapper.properties new file mode 100644 index 0000000..cd0d451 --- /dev/null +++ a/.mvn/wrapper/maven-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip diff --git b/pom.xml a/pom.xml new file mode 100644 index 0000000..a1dba4e --- /dev/null +++ a/pom.xml @@ -0,0 +1,213 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.1.6.RELEASE + + + com.objecteye.vehicle + vehicle-simple + 0.0.1-SNAPSHOT + vehicle + Project for Spring Boot + + + 1.8 + + + + + org.springframework.boot + spring-boot-starter-web + + + mysql + mysql-connector-java + 8.0.15 + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-websocket + 1.5.6.RELEASE + + + org.apache.commons + commons-pool2 + 2.4.2 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + + com.alibaba + druid-spring-boot-starter + 1.1.10 + + + + io.jsonwebtoken + jjwt + 0.9.0 + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.security + spring-security-jwt + 1.0.10.RELEASE + + + + net.logstash.logback + logstash-logback-encoder + 4.8 + + + io.springfox + springfox-swagger2 + 2.7.0 + + + io.springfox + springfox-swagger-ui + 2.7.0 + + + cn.hutool + hutool-all + 4.5.7 + + + com.github.pagehelper + pagehelper-spring-boot-autoconfigure + 1.2.9 + + + com.github.pagehelper + pagehelper + 5.0.0 + + + org.springframework.boot + spring-boot-starter-data-mongodb + + + + org.springframework.data + spring-data-commons + 2.1.5.RELEASE + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 1.2.0 + + + commons-net + commons-net + 3.6 + + + + org.mybatis + mybatis + 3.4.6 + + + org.apache.commons + commons-lang3 + 3.8.1 + + + org.apache.poi + poi-ooxml + 3.9 + + + com.alibaba + fastjson + 1.2.54 + + + org.apache.httpcomponents + httpclient + 4.5.7 + + + org.apache.httpcomponents + httpmime + 4.5.5 + + + org.junit.jupiter + junit-jupiter-api + 5.2.0 + compile + + + org.projectlombok + lombok + + + net.sf.json-lib + json-lib + 2.4 + jdk15 + + + org.springframework.boot + spring-boot-starter-amqp + + + net.sourceforge.owlapi + benchmarks + 4.1.0-RC2 + test + + + + + + + src/main/java + + **/*.xml + + true + + + src/main/resources + true + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git b/src/main/java/com/objecteye/VehicleApplication.java a/src/main/java/com/objecteye/VehicleApplication.java new file mode 100644 index 0000000..58f09f1 --- /dev/null +++ a/src/main/java/com/objecteye/VehicleApplication.java @@ -0,0 +1,43 @@ +package com.objecteye; + +import com.objecteye.handle.Ftp2Mongo; +import com.objecteye.websocket.SelectMongoData; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; +import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@SpringBootApplication +@EnableTransactionManagement +@EnableScheduling +@EnableWebSecurity +@EnableGlobalMethodSecurity(prePostEnabled = true) +public class VehicleApplication { + + public static void main(String[] args) { + ConfigurableApplicationContext run = SpringApplication.run(VehicleApplication.class, args); + + //存储系统开始运行时间 + SelectMongoData selectMongoData = run.getBean(SelectMongoData.class); + selectMongoData.setSystemStartTime(); + + Ftp2Mongo bean = run.getBean(Ftp2Mongo.class); + bean.downloadFile(); + + } + + @Bean + public TaskScheduler taskScheduler() { + + ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); + threadPoolTaskScheduler.setPoolSize(3); + threadPoolTaskScheduler.initialize(); + return threadPoolTaskScheduler; + } +} diff --git b/src/main/java/com/objecteye/common/CommonPage.java a/src/main/java/com/objecteye/common/CommonPage.java new file mode 100644 index 0000000..074d31d --- /dev/null +++ a/src/main/java/com/objecteye/common/CommonPage.java @@ -0,0 +1,84 @@ +package com.objecteye.common; + +import com.github.pagehelper.PageInfo; +import org.springframework.data.domain.Page; + +import java.util.List; + +/** + * 分页数据封装类 + */ +public class CommonPage { + private Integer pageNum; + private Integer pageSize; + private Integer totalPage; + private Long total; + private List list; + + /** + * 将PageHelper分页后的list转为分页信息 + */ + public static CommonPage restPage(List list) { + CommonPage result = new CommonPage(); + PageInfo pageInfo = new PageInfo(list); + result.setTotalPage(pageInfo.getPages()); + result.setPageNum(pageInfo.getPageNum()); + result.setPageSize(pageInfo.getPageSize()); + result.setTotal(pageInfo.getTotal()); + result.setList(pageInfo.getList()); + return result; + } + + /** + * 将SpringData分页后的list转为分页信息 + */ + public static CommonPage restPage(Page pageInfo) { + CommonPage result = new CommonPage(); + result.setTotalPage(pageInfo.getTotalPages()); + result.setPageNum(pageInfo.getNumber()); + result.setPageSize(pageInfo.getSize()); + result.setTotal(pageInfo.getTotalElements()); + result.setList(pageInfo.getContent()); + return result; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public Integer getTotalPage() { + return totalPage; + } + + public void setTotalPage(Integer totalPage) { + this.totalPage = totalPage; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } +} diff --git b/src/main/java/com/objecteye/common/CommonResult.java a/src/main/java/com/objecteye/common/CommonResult.java new file mode 100644 index 0000000..e393c82 --- /dev/null +++ a/src/main/java/com/objecteye/common/CommonResult.java @@ -0,0 +1,142 @@ +package com.objecteye.common; + +/** + * 通用返回对象 + */ +public class CommonResult { + private long code; + private String message; + private T data; + + + protected CommonResult() { + } + + protected CommonResult(long code, String message, T data) { + this.code = code; + this.message = message; + this.data = data; + } + + protected CommonResult(long code, String message) { + this.code = code; + this.message = message; + } + + /** + * 成功返回结果 + * + * @param data 获取的数据 + */ + public static CommonResult success(T data) { + return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data); + } + + /** + * 成功返回结果 + * + * @param data 获取的数据 + * @param message 提示信息 + */ + public static CommonResult success(T data, String message) { + return new CommonResult(ResultCode.SUCCESS.getCode(), message, data); + } + + /** + * 成功返回结果 + * + * @param data 获取的数据 + * @param message 提示信息 + */ + public static CommonResult success(int code, String message, T data) { + return new CommonResult(code, message, data); + } + + /** + * 失败返回结果 + * + * @param errorCode 错误码 + */ + public static CommonResult failed(IErrorCode errorCode) { + return new CommonResult(errorCode.getCode(), errorCode.getMessage(), null); + } + + /** + * 失败返回结果 + * + * @param message 提示信息 + */ + public static CommonResult failed(String message) { + return new CommonResult(ResultCode.FAILED.getCode(), message, null); + } + + /** + * 失败返回结果 + * + * @param message 提示信息 + */ + public static CommonResult failed(T data, String message) { + return new CommonResult(ResultCode.FAILED.getCode(), message, data); + } + + /** + * 失败返回结果 + */ + public static CommonResult failed() { + return failed(ResultCode.FAILED); + } + + /** + * 参数验证失败返回结果 + */ + public static CommonResult validateFailed() { + return failed(ResultCode.VALIDATE_FAILED); + } + + /** + * 参数验证失败返回结果 + * + * @param message 提示信息 + */ + public static CommonResult validateFailed(String message) { + return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), message, null); + } + + /** + * 未登录返回结果 + */ + public static CommonResult unauthorized(T data) { + return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data); + } + + /** + * 未授权返回结果 + */ + public static CommonResult forbidden(T data) { + return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data); + } + + public long getCode() { + return code; + } + + public void setCode(long code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } +} diff --git b/src/main/java/com/objecteye/common/IErrorCode.java a/src/main/java/com/objecteye/common/IErrorCode.java new file mode 100644 index 0000000..1a00a92 --- /dev/null +++ a/src/main/java/com/objecteye/common/IErrorCode.java @@ -0,0 +1,10 @@ +package com.objecteye.common; + +/** + * 封装API的错误码 + */ +public interface IErrorCode { + long getCode(); + + String getMessage(); +} diff --git b/src/main/java/com/objecteye/common/ResultCode.java a/src/main/java/com/objecteye/common/ResultCode.java new file mode 100644 index 0000000..3960161 --- /dev/null +++ a/src/main/java/com/objecteye/common/ResultCode.java @@ -0,0 +1,29 @@ +package com.objecteye.common; + +/** + * 枚举了一些常用API操作码 + */ +public enum ResultCode implements IErrorCode { + SUCCESS(200, "操作成功"), + FAILED(500, "操作失败"), + VALIDATE_FAILED(404, "参数检验失败"), + UNAUTHORIZED(401, "暂未登录或token已经过期"), + FORBIDDEN(403, "没有相关权限"); + private long code; + private String message; + + private ResultCode(long code, String message) { + this.code = code; + this.message = message; + } + + @Override + public long getCode() { + return code; + } + + @Override + public String getMessage() { + return message; + } +} diff --git b/src/main/java/com/objecteye/component/ParamInterceptor.java a/src/main/java/com/objecteye/component/ParamInterceptor.java new file mode 100644 index 0000000..d6ea525 --- /dev/null +++ a/src/main/java/com/objecteye/component/ParamInterceptor.java @@ -0,0 +1,74 @@ + +package com.objecteye.component; + +/*@Component +public class ParamInterceptor implements HandlerInterceptor { + + @Autowired + private JwtTokenUtil jwtTokenUtil; + @Autowired + private UserService userService; + + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + String token = request.getHeader("token"); + if (!(handler instanceof HandlerMethod)) { + return true; + } + if (token == null || token.equals("")) { + printJson(response, ""); + return false; + } + String userName = jwtTokenUtil.getUserNameFromToken(token); + SyUser user = userService.getAdminByUsername(userName); + if (user == null) { + printJson(response, ""); + return false; + } + + *//*String userId = user.getId(); + User sqlUser = getUserService().getUserById(userId); + String enterpriseId = getUserEnterpriseService().selectEnterpriseByUser(userId); + if (enterpriseId == null) { + getRedisService().set(REDIS_USER_SESSION_KEY + ":" + token, sqlUser, SSO_SESSION_EXPIRE); + return true; + } + Enterprise sqlEnterprise = getEnterpriseService().selectEnterpriseById(enterpriseId); + getRedisService().set(REDIS_USER_SESSION_KEY + ":" + token, sqlUser, SSO_SESSION_EXPIRE); + getRedisService().set(REDIS_ENTERPRISE_SESSION_KEY + ":" + token, sqlEnterprise, SSO_SESSION_EXPIRE);*//* + + return true; + } + + @Override + public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { + + + } + private static void printJson(HttpServletResponse response, String code) { + printContent(response, "token过期,请重新登陆"); + } + + + private static void printContent(HttpServletResponse response, String content) { + try { + response.reset(); + response.setContentType("application/json"); + response.setHeader("Cache-Control", "no-store"); + response.setCharacterEncoding("UTF-8"); + PrintWriter pw = response.getWriter(); + pw.write(content); + pw.flush(); + } catch (Exception e) { + e.printStackTrace(); + } + } +}*/ + diff --git b/src/main/java/com/objecteye/config/AccessConfirmServiceImpl.java a/src/main/java/com/objecteye/config/AccessConfirmServiceImpl.java new file mode 100644 index 0000000..f90e732 --- /dev/null +++ a/src/main/java/com/objecteye/config/AccessConfirmServiceImpl.java @@ -0,0 +1,82 @@ +package com.objecteye.config; + +import com.objecteye.pojo.SpecialAuthenticationUrlConfig; +import com.objecteye.pojo.UserDetailsMsg; +import com.objecteye.pojo.UserGroup; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.security.authentication.AnonymousAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; + +import javax.servlet.http.HttpServletRequest; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component("accessConfirmService") +public class AccessConfirmServiceImpl { + + @Autowired + private MongoTemplate mongoTemplate; + + private AntPathMatcher antPathMatcher = new AntPathMatcher(); + + public boolean hasPermission(HttpServletRequest request, Authentication auth) { + // 匿名token不允许访问所有的接口 + if (auth instanceof AnonymousAuthenticationToken) { + return false; + } + + UserDetails user = (UserDetails) auth.getPrincipal(); + Map specialUrlAccessMap = queryUrlByUserName(user.getUsername()); + for (Map.Entry entry : specialUrlAccessMap.entrySet()) { + if (antPathMatcher.match(entry.getKey(), request.getRequestURI())) { + return entry.getValue(); + } + } + return true; + } + + /** + * 查询用户权限 + * + * @param userName 用户名 + * @return key: 需要权限的url; value: 是否可以访问 + */ + private Map queryUrlByUserName(String userName) { + List userDetailsMsgList = mongoTemplate.find(Query.query(Criteria.where("userName").is(userName)), UserDetailsMsg.class); + Map specialUrlLevelMap = new HashMap<>(); + if (userDetailsMsgList.size() > 0) { + List levelList = new ArrayList<>(); + UserDetailsMsg userDetailsMsg = userDetailsMsgList.get(0); + levelList.add(userDetailsMsg.getUserRole()); + List userGroups = mongoTemplate.find(Query.query(Criteria.where("grouoId").is(userDetailsMsg.getGroup())), UserGroup.class); + if (userGroups.size() > 0) { + levelList.add(userGroups.get(0).getGroupLevel()); + } + // 保存的是所有的需要特殊权限才能访问的 + List specialUrlList = mongoTemplate.find(new Query(), SpecialAuthenticationUrlConfig.class); + if (specialUrlList.size() > 0) { + for (SpecialAuthenticationUrlConfig specialUrlConfig : specialUrlList) { + String url = specialUrlConfig.getUrl(); + Integer level = specialUrlConfig.getLevel(); + if (specialUrlLevelMap.containsKey(url)) { + // 历史数据不允许访问, 当前数据允许访问则刷新是否可以访问的状态 + if (!specialUrlLevelMap.get(url) && levelList.contains(level)) { + specialUrlLevelMap.put(url, true); + } + } else { + specialUrlLevelMap.put(url, levelList.contains(level)); + } + } + } + } + return specialUrlLevelMap; + } +} diff --git b/src/main/java/com/objecteye/config/AuthenticationHeadFilter.java a/src/main/java/com/objecteye/config/AuthenticationHeadFilter.java new file mode 100644 index 0000000..80f0074 --- /dev/null +++ a/src/main/java/com/objecteye/config/AuthenticationHeadFilter.java @@ -0,0 +1,52 @@ +package com.objecteye.config; + +import com.alibaba.fastjson.JSON; +import com.objecteye.pojo.TokenUser; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.jwt.Jwt; +import org.springframework.security.jwt.JwtHelper; +import org.springframework.security.jwt.crypto.sign.RsaVerifier; +import org.springframework.security.web.authentication.WebAuthenticationDetails; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 拦截request请求做token验证 + */ +public class AuthenticationHeadFilter extends OncePerRequestFilter { + + private RsaVerifier rsaVerifier; + + public void setRsaVerifier(RsaVerifier rsaVerifier) { + this.rsaVerifier = rsaVerifier; + } + + @Override + protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException { + String token = httpServletRequest.getHeader("Authentication"); + if (token == null || token.isEmpty()) { + filterChain.doFilter(httpServletRequest, httpServletResponse); + return; + } + + TokenUser user; + try { + Jwt jwt = JwtHelper.decodeAndVerify(token, rsaVerifier); + String claims = jwt.getClaims(); + user = JSON.parseObject(claims, TokenUser.class); + } catch (Exception e) { + httpServletResponse.setContentType("application/json;charset=UTF-8"); + httpServletResponse.getWriter().write("Useless token..."); + return; + } + AuthenticationToken authenticationToken = new AuthenticationToken(user, "", user.getAuthorities()); + authenticationToken.setDetails(new WebAuthenticationDetails(httpServletRequest)); + SecurityContextHolder.getContext().setAuthentication(authenticationToken); + filterChain.doFilter(httpServletRequest, httpServletResponse); + } +} diff --git b/src/main/java/com/objecteye/config/AuthenticationLoginFilter.java a/src/main/java/com/objecteye/config/AuthenticationLoginFilter.java new file mode 100644 index 0000000..fb715ea --- /dev/null +++ a/src/main/java/com/objecteye/config/AuthenticationLoginFilter.java @@ -0,0 +1,28 @@ +package com.objecteye.config; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter; +import org.springframework.security.web.authentication.WebAuthenticationDetails; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +public class AuthenticationLoginFilter extends AbstractAuthenticationProcessingFilter { + + public AuthenticationLoginFilter() { + super(new AntPathRequestMatcher("/login", "POST")); + } + + @Override + public Authentication attemptAuthentication(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws AuthenticationException, IOException, ServletException { + String userName = httpServletRequest.getParameter("username"); + String password = httpServletRequest.getParameter("password"); + AuthenticationToken authenticationToken = new AuthenticationToken(userName, password); + authenticationToken.setDetails(new WebAuthenticationDetails(httpServletRequest)); + return this.getAuthenticationManager().authenticate(authenticationToken); + } +} diff --git b/src/main/java/com/objecteye/config/AuthenticationProviderConfig.java a/src/main/java/com/objecteye/config/AuthenticationProviderConfig.java new file mode 100644 index 0000000..2e6d6ba --- /dev/null +++ a/src/main/java/com/objecteye/config/AuthenticationProviderConfig.java @@ -0,0 +1,85 @@ +package com.objecteye.config; + +import org.springframework.security.authentication.*; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.crypto.password.PasswordEncoder; + +public class AuthenticationProviderConfig implements AuthenticationProvider { + + private UserDetailsService userDetailsService; + + private PasswordEncoder passwordEncoder; + + public void setUserDetailsService(UserDetailsService userDetailsService) { + this.userDetailsService = userDetailsService; + } + + public void setPasswordEncoder(PasswordEncoder passwordEncoder) { + this.passwordEncoder = passwordEncoder; + } + + /** + * 用户默认检查,用户是否锁定过期等 + */ + private void defaultCheck(UserDetails user) { + if (!user.isAccountNonLocked()) { + throw new LockedException("User account is locked"); + } + + if (!user.isEnabled()) { + throw new DisabledException("User is disabled"); + } + + if (!user.isAccountNonExpired()) { + throw new AccountExpiredException("User account has expired"); + } + } + + /** + * (附加检查项)检查密码是否正确 + */ + private void additionalAuthenticationChecks(UserDetails userDetails, + AuthenticationToken authenticationToken) throws AuthenticationException { + if (authenticationToken.getCredentials() == null) { + throw new BadCredentialsException("username or password is wrong!"); + } + String presentedPassword = authenticationToken.getCredentials().toString(); + if (!passwordEncoder.matches(presentedPassword, userDetails.getPassword())) { + throw new BadCredentialsException("username or password is wrong!"); + } + } + + /** + * 创建一个认证成功的Authentication对象,传入的是一个还没有认证的Authentication对象 + * + * @param authentication 未认证的 + * @return + * @throws AuthenticationException + * @see AuthenticationToken#AuthenticationToken(Object, Object) + */ + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + String userName = authentication.getName(); + UserDetails userDetails = userDetailsService.loadUserByUsername(userName); + AuthenticationToken checkToken = (AuthenticationToken) authentication; + defaultCheck(userDetails); + additionalAuthenticationChecks(userDetails, checkToken); + AuthenticationToken authenticationToken = new AuthenticationToken(userDetails, checkToken.getCredentials(), userDetails.getAuthorities()); + authenticationToken.setDetails(checkToken.getDetails()); + return authenticationToken; + } + + /** + * 判断token是否是该类型 + * + * @param aClass + * @return + */ + @Override + public boolean supports(Class aClass) { + return AuthenticationToken.class.isAssignableFrom(aClass); + } +} diff --git b/src/main/java/com/objecteye/config/AuthenticationToken.java a/src/main/java/com/objecteye/config/AuthenticationToken.java new file mode 100644 index 0000000..5ae9088 --- /dev/null +++ a/src/main/java/com/objecteye/config/AuthenticationToken.java @@ -0,0 +1,56 @@ +package com.objecteye.config; + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; + +import java.util.Collection; + +public class AuthenticationToken extends AbstractAuthenticationToken { + + private static final long serialVersionUID = 4169946299521307024L; + /** + * 用户名 + */ + private final Object principal; + /** + * 密码 + */ + private Object credentials; + + /** + * 创建一个认证成功的token + * + * @param principal + * @param credentials + * @param authorities + */ + public AuthenticationToken(Object principal, Object credentials, Collection authorities) { + super(authorities); + this.principal = principal; + this.credentials = credentials; + super.setAuthenticated(true); + } + + /** + * 创建一个未认证的token + * + * @param principal + * @param credentials + */ + public AuthenticationToken(Object principal, Object credentials) { + super(null); + this.principal = principal; + this.credentials = credentials; + super.setAuthenticated(false); + } + + @Override + public Object getCredentials() { + return this.credentials; + } + + @Override + public Object getPrincipal() { + return this.principal; + } +} diff --git b/src/main/java/com/objecteye/config/ExecutorConfig.java a/src/main/java/com/objecteye/config/ExecutorConfig.java new file mode 100644 index 0000000..5d8c78b --- /dev/null +++ a/src/main/java/com/objecteye/config/ExecutorConfig.java @@ -0,0 +1,36 @@ +package com.objecteye.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.task.TaskExecutor; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @author yumiu + */ +@Configuration +@Async +public class ExecutorConfig { + + @Bean + public TaskExecutor taskExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + // 设置核心线程数 + executor.setCorePoolSize(5); + // 设置最大线程数 + executor.setMaxPoolSize(20); + // 设置队列容量 + executor.setQueueCapacity(50); + // 设置线程活跃时间(秒) + executor.setKeepAliveSeconds(60); + //executor.setThreadNamePrefix("hello-"); + // 设置拒绝策略 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 等待所有任务结束后再关闭线程池 + executor.setWaitForTasksToCompleteOnShutdown(true); + return executor; + } +} diff --git b/src/main/java/com/objecteye/config/LoginFailureHandler.java a/src/main/java/com/objecteye/config/LoginFailureHandler.java new file mode 100644 index 0000000..012b9cb --- /dev/null +++ a/src/main/java/com/objecteye/config/LoginFailureHandler.java @@ -0,0 +1,21 @@ +package com.objecteye.config; + +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 登录失败处理 + */ +public class LoginFailureHandler extends SimpleUrlAuthenticationFailureHandler { + + @Override + public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { + response.setContentType("application/json;charset=UTF-8"); + response.getWriter().write("登录失败"); + } +} diff --git b/src/main/java/com/objecteye/config/LoginSuccessHandler.java a/src/main/java/com/objecteye/config/LoginSuccessHandler.java new file mode 100644 index 0000000..d423b05 --- /dev/null +++ a/src/main/java/com/objecteye/config/LoginSuccessHandler.java @@ -0,0 +1,32 @@ +package com.objecteye.config; + +import com.alibaba.fastjson.JSON; +import org.springframework.security.core.Authentication; +import org.springframework.security.jwt.JwtHelper; +import org.springframework.security.jwt.crypto.sign.RsaSigner; +import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 登录成功处理 + */ +public class LoginSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { + + private RsaSigner signer; + + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { + response.setContentType("application/json;charset=UTF-8"); + String userJsonStr = JSON.toJSONString(authentication.getPrincipal()); + String token = JwtHelper.encode(userJsonStr, signer).getEncoded(); + //签发token + response.getWriter().write("token=" + token); + } + + public void setSigner(RsaSigner signer) { + this.signer = signer; + } +} diff --git b/src/main/java/com/objecteye/config/MyBatisConfig.java a/src/main/java/com/objecteye/config/MyBatisConfig.java new file mode 100644 index 0000000..902ff57 --- /dev/null +++ a/src/main/java/com/objecteye/config/MyBatisConfig.java @@ -0,0 +1,10 @@ +package com.objecteye.config; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan({"com.objecteye.mapper"}) +public class MyBatisConfig { + +} diff --git b/src/main/java/com/objecteye/config/RabbitmqConfig.java a/src/main/java/com/objecteye/config/RabbitmqConfig.java new file mode 100644 index 0000000..d71ad1a --- /dev/null +++ a/src/main/java/com/objecteye/config/RabbitmqConfig.java @@ -0,0 +1,80 @@ +package com.objecteye.config; + + +import org.springframework.amqp.core.*; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + + +@Configuration +public class RabbitmqConfig { + public static final String QUEUE_INFORM_STORE = "queue_inform_store"; + public static final String QUEUE_INFORM_ALARM = "queue_inform_alarm"; + public static final String QUEUE_INFORM_PERSON = "queue_inform_person"; + public static final String QUEUE_INFORM_FORBIDDEN_TASK = "queue_inform_forbidden"; + + public static final String EXCHANGE_TOPICS_INFORM = "exchange_topics_inform"; + + /** + * 配置交换机 + * ExchangeBuilder提供了fonout,direct,topic,header的交换机的配置 + * + * @return + */ + @Bean(EXCHANGE_TOPICS_INFORM) + public Exchange EXCHANGE_TOPICS_INFORM() { + return ExchangeBuilder.topicExchange(EXCHANGE_TOPICS_INFORM).durable(true).build(); + } + + /** + * 声明队列 + * + * @return + */ + @Bean(QUEUE_INFORM_STORE) + public Queue QUEUE_INFORM_STORE() { + return new Queue(QUEUE_INFORM_STORE); + } + + @Bean(QUEUE_INFORM_ALARM) + public Queue QUEUE_INFORM_ALARM() { + return new Queue(QUEUE_INFORM_ALARM); + } + + @Bean(QUEUE_INFORM_PERSON) + public Queue QUEUE_INFORM_PERSON() { + return new Queue(QUEUE_INFORM_PERSON); + } + + @Bean(QUEUE_INFORM_FORBIDDEN_TASK) + public Queue QUEUE_INFORM_FORBIDDEN_TASK() { + return new Queue(QUEUE_INFORM_FORBIDDEN_TASK); + } + + /** + * 绑定队列到交换机 + * + * @return + */ + @Bean + public Binding BINDING_QUEUE_INFORM_ALARM(@Qualifier(QUEUE_INFORM_ALARM) Queue queue, @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with("inform.#.alarm.#").noargs(); + } + + //绑定队列到交换机 + @Bean + public Binding BINDING_QUEUE_INFORM_STORE(@Qualifier(QUEUE_INFORM_STORE) Queue queue, @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with("inform.#.store.#").noargs(); + } + + @Bean + public Binding BINDING_QUEUE_INFORM_PERSON(@Qualifier(QUEUE_INFORM_PERSON) Queue queue, @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with("inform.#.person.#").noargs(); + } + + @Bean + public Binding BINDING_QUEUE_INFORM_FORBIDDEN_TASK(@Qualifier(QUEUE_INFORM_FORBIDDEN_TASK) Queue queue, @Qualifier(EXCHANGE_TOPICS_INFORM) Exchange exchange) { + return BindingBuilder.bind(queue).to(exchange).with("inform.#.forbidden.#").noargs(); + } +} diff --git b/src/main/java/com/objecteye/config/RestTemplateConfig.java a/src/main/java/com/objecteye/config/RestTemplateConfig.java new file mode 100644 index 0000000..ad62ec9 --- /dev/null +++ a/src/main/java/com/objecteye/config/RestTemplateConfig.java @@ -0,0 +1,30 @@ +package com.objecteye.config; + + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +/** + * @author yumiu + */ +@Configuration +public class RestTemplateConfig { + + @Bean + public RestTemplate restTemplate(ClientHttpRequestFactory factory) { + return new RestTemplate(factory); + } + + @Bean + public ClientHttpRequestFactory simpleClientHttpRequestFactory() { + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + //单位为ms + factory.setReadTimeout(5000); + //单位为ms + factory.setConnectTimeout(5000); + return factory; + } +} diff --git b/src/main/java/com/objecteye/config/RsaKeyConfig.java a/src/main/java/com/objecteye/config/RsaKeyConfig.java new file mode 100644 index 0000000..2de3a48 --- /dev/null +++ a/src/main/java/com/objecteye/config/RsaKeyConfig.java @@ -0,0 +1,45 @@ +package com.objecteye.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.jwt.crypto.sign.RsaSigner; +import org.springframework.security.jwt.crypto.sign.RsaVerifier; + +@Configuration +public class RsaKeyConfig { + + /** + * RSA私钥 + */ + private static final String PRIVATE_KEY = "-----BEGIN RSA PRIVATE KEY-----" + + "MIICWwIBAAKBgQCM1YBbzMijYIp4/mf1+gdVBXQMJEv5KpuTDh6DiTGJAk1yrsWA" + + "RfqjpC83/t0xzpmvHa1M7WykUg5E0PmneNddyD/MTjkCDNhqBgr0AnJTZsTnEjMa" + + "PB0cXeVF1ty1p+ZBuvHKMvhJwqgNmQd7uGpl2Rq1gR1L86YTWSkYceSoNwIDAQAB" + + "AoGAcYrr+pcGp5l86oGJhWm4IZbM8cENs2vjk9LNTRT9580AbdZ0Cq/gm7ASFZ4X" + + "7UD47JMLljrQ3UX+lQK6VIf7cTUGZdR1nVArOqJaMKVvCYkwqR6bm5Gc6qx6XWAW" + + "0/PY2LcWt0cW1Q1CU65M1oM08P+ohQvE4kJI45RcoIl6VwkCQQCO0Za4bYiZWtzE" + + "UzRka+kHa//h1YjYbQVglPLb5FuOdSm62eGQThfQRpyLU1WD6sATv9yPWxUaRCEL" + + "Fh+s/YfrAkEA/HFDLl/Nl439/A5Q05HWhMKWZ8tt8k448mNNlefJUK1ApCuWdDWm" + + "kBTk8ytjRvdFlVKvVVXUV8LeSyWMXpR55QJACe/rXMnCR2lbEw33B0W64RlSpJQH" + + "AYgUZ7P1cfdhp3fff3DJkRDd90/ydH9H4/Xhh35CCnd78GftJKhVa+P4IQJABYv3" + + "je1M9yeHjSJDZGKv8/rSkzVFFS3i0nCcI88T/VHROco7ZBJJtqC+5xjs9YI5ZS6L" + + "67QXFlaRy9TnYKyigQJAHjuzdwDgKBj2orf6k05ri+Ks1nGvp5S4JxzcGCmkQB+l" + + "6KOJ8lAFma4qxWKaMeNi0ekrzkSrJNEt5yJPbw1Lmg==" + + "-----END RSA PRIVATE KEY-----"; + + /** + * 使用私钥签名 + */ + @Bean + public RsaSigner getSigner() { + return new RsaSigner(PRIVATE_KEY); + } + + /** + * 使用公钥验签(这里是可以通过私钥生成密钥对,包含公钥) + */ + @Bean + public RsaVerifier getVerifier() { + return new RsaVerifier(PRIVATE_KEY); + } +} diff --git b/src/main/java/com/objecteye/config/Swagger2Config.java a/src/main/java/com/objecteye/config/Swagger2Config.java new file mode 100644 index 0000000..84b3b25 --- /dev/null +++ a/src/main/java/com/objecteye/config/Swagger2Config.java @@ -0,0 +1,87 @@ +package com.objecteye.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.ApiKey; +import springfox.documentation.service.AuthorizationScope; +import springfox.documentation.service.SecurityReference; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spi.service.contexts.SecurityContext; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.ArrayList; +import java.util.List; + +/** + * Swagger2API文档的配置 + */ +@Configuration +@EnableSwagger2 +public class Swagger2Config { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("com.objecteye.controller")) + .paths(PathSelectors.any()) + .build() + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("人像平台后台系统") + .description("人像平台后台模块") + .contact("face") + .version("1.0") + .build(); + } + + private List securitySchemes() { + //设置请求头信息 + List result = new ArrayList<>(); + ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header"); + result.add(apiKey); + return result; + } + + private List securityContexts() { + //设置需要登录认证的路径 + List result = new ArrayList<>(); + result.add(getContextByPath("/alarm/.*")); + result.add(getContextByPath("/capture/.*")); + result.add(getContextByPath("/deploy/.*")); + result.add(getContextByPath("/equipment/.*")); + result.add(getContextByPath("/feature/.*")); + result.add(getContextByPath("/location/.*")); + result.add(getContextByPath("/personnel/.*")); + result.add(getContextByPath("/preview/.*")); + result.add(getContextByPath("/record/.*")); + result.add(getContextByPath("/user/.*")); + result.add(getContextByPath("/areaEquipment/.*")); + return result; + } + + private SecurityContext getContextByPath(String pathRegex) { + return SecurityContext.builder() + .securityReferences(defaultAuth()) + .forPaths(PathSelectors.regex(pathRegex)) + .build(); + } + + private List defaultAuth() { + List result = new ArrayList<>(); + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + result.add(new SecurityReference("Authorization", authorizationScopes)); + return result; + } +} diff --git b/src/main/java/com/objecteye/config/WebSecurityConfig.java a/src/main/java/com/objecteye/config/WebSecurityConfig.java new file mode 100644 index 0000000..9e5e9da --- /dev/null +++ a/src/main/java/com/objecteye/config/WebSecurityConfig.java @@ -0,0 +1,74 @@ +package com.objecteye.config; + +import com.objecteye.common.ResultCode; +import com.objecteye.service.impl.UserDetailServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.jwt.crypto.sign.RsaSigner; +import org.springframework.security.jwt.crypto.sign.RsaVerifier; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + +@Configuration +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + private RsaVerifier verifier; + + @Autowired + private RsaSigner signer; + + @Autowired + private UserDetailServiceImpl userDetailService; + + @Override + protected void configure(HttpSecurity http) throws Exception { + AuthenticationLoginFilter authenticationLoginFilter = new AuthenticationLoginFilter(); + authenticationLoginFilter.setAuthenticationManager(this.authenticationManagerBean()); + + LoginSuccessHandler loginSuccessHandler = new LoginSuccessHandler(); + loginSuccessHandler.setSigner(signer); + authenticationLoginFilter.setAuthenticationSuccessHandler(loginSuccessHandler); + authenticationLoginFilter.setAuthenticationFailureHandler(new LoginFailureHandler()); + + AuthenticationProviderConfig provider = new AuthenticationProviderConfig(); + provider.setPasswordEncoder(passwordEncoder()); + provider.setUserDetailsService(userDetailService); + + AuthenticationHeadFilter headFilter = new AuthenticationHeadFilter(); + headFilter.setRsaVerifier(verifier); + + http.exceptionHandling().authenticationEntryPoint((request, response, authException) -> { + response.setContentType("application/json;charset=UTF-8"); + response.getWriter().write(ResultCode.UNAUTHORIZED.getMessage()); + }) + .accessDeniedHandler((httpServletRequest, httpServletResponse, accessDeniedException) -> { + httpServletResponse.setContentType("application/json;charset=UTF-8"); + httpServletResponse.getWriter().write(ResultCode.FORBIDDEN.getMessage()); + }) + .and() + .authorizeRequests() + .anyRequest().access("@accessConfirmService.hasPermission(request , authentication)") + .and() + //注册授权管理器(AuthenticationManager) + .authenticationProvider(provider) + .addFilterAfter(authenticationLoginFilter, UsernamePasswordAuthenticationFilter.class) + .addFilterAfter(headFilter, AuthenticationLoginFilter.class) + //禁用session + .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) + .and() + .csrf().disable(); + } + + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + +} diff --git b/src/main/java/com/objecteye/controller/AreaEquipmentController.java a/src/main/java/com/objecteye/controller/AreaEquipmentController.java new file mode 100644 index 0000000..9246a22 --- /dev/null +++ a/src/main/java/com/objecteye/controller/AreaEquipmentController.java @@ -0,0 +1,155 @@ +package com.objecteye.controller; + + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.SyAreaEquipment; +import com.objecteye.service.AreaEquipmentService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * controller + * + * @author Administrator + */ +@RestController +@Api(tags = "AreaEquipmentController", description = "区域设备管理") +@RequestMapping("/areaEquipment") +@CrossOrigin +public class AreaEquipmentController { + + @Autowired + private AreaEquipmentService areaEquipmentService; + + /** + * 返回全部列表 + * + * @return + */ + @ApiOperation("区域设备树的展示==区域可操作") + @RequestMapping(value = "/findAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findAll() { + if (areaEquipmentService.findAll() == null) { + return CommonResult.success("", "无符合条件的数据"); + } + return CommonResult.success(areaEquipmentService.findAll()); + } + + /** + * 返回全部列表 + * + * @return + */ + @ApiOperation("区域设备树的展示==区域设备可操作") + @RequestMapping(value = "/findAllEquipAndArea", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findAllEquipAndArea() { + if (areaEquipmentService.findAllEquipAndArea() == null) { + return CommonResult.success("", "无符合条件的数据"); + } + return CommonResult.success(areaEquipmentService.findAllEquipAndArea()); + } + + /** + * 增加 + * + * @param areaEquipment + * @return + */ + @ApiOperation("添加区域") + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult add(@RequestBody SyAreaEquipment areaEquipment) { + Integer parentId = areaEquipment.getParentId(); + if (parentId == 1) { + int count = areaEquipmentService.add(areaEquipment); + if (count > 0) { + return CommonResult.success(count); + } + } + return CommonResult.failed("该区域下只能创建设备"); + } + + /** + * 修改 + * + * @param areaEquipment + * @return + */ + @ApiOperation("修改区域名称") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody SyAreaEquipment areaEquipment) { + int count = areaEquipmentService.update(areaEquipment); + if (count > 0) { + return CommonResult.success(count); + } + return CommonResult.failed("节点id无效"); + } + + /** + * 获取实体 + * + * @return + */ + /*@ApiOperation("查找区域或者设备") + @RequestMapping(value = "/findOne",method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findOne(@RequestBody Map map){ + Integer id = map.get("id"); + if(areaEquipmentService.findOne(id)==null){ + return CommonResult.success("","节点无效"); + } + return CommonResult.success(areaEquipmentService.findOne(id)); + }*/ + + /** + * 删除区域 + * + * @param map + * @return + */ + @ApiOperation("删除区域") + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + int[] ids = map.get("ids"); + areaEquipmentService.delete(ids); + return CommonResult.success("删除成功", "删除成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + @ApiOperation("判断该区域下是否有设备") + @RequestMapping(value = "/isHaveChild", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult isHaveChild(@RequestBody Map map) { + int id = map.get("id"); + List ids = areaEquipmentService.findCaptureById(id); + if (ids == null || ids.size() == 0) { + return CommonResult.success(ids, "是否确认删除该区域?"); + } + return CommonResult.success(ids, "该区域下存在设备,且可能存在正在执行的布控任务,请确认是否删除该区域?"); + } + + + @ApiOperation("根据id查找该区域下所有设备") + @RequestMapping(value = "/findCaptureById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findCaptureById(@RequestBody Map map) { + try { + Integer id = map.get("id"); + List> captureMsgById = areaEquipmentService.findCaptureMsgById(id); + if (captureMsgById == null) { + return CommonResult.success("", "该区域下无设备"); + } + return CommonResult.success(captureMsgById); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + +} diff --git b/src/main/java/com/objecteye/controller/DataSourceController.java a/src/main/java/com/objecteye/controller/DataSourceController.java new file mode 100644 index 0000000..b4925c9 --- /dev/null +++ a/src/main/java/com/objecteye/controller/DataSourceController.java @@ -0,0 +1,62 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.handle.PictureHandle; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.io.File; + +@RestController +@Api(tags = "DataSourceController", description = "数据源上传") +@RequestMapping("/upload") +@CrossOrigin +public class DataSourceController { + + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private PictureHandle pictureHandle; + + @Value("${picture.storePath}") + private String storePath; + + /** + * 上传图片绝对路径到队列中 + * + * @param path + * @return + */ + @ApiOperation("根据绝对路径上传数据") + @RequestMapping(value = "/findPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult uploadPicByPath(String path) { + + File file = new File(path); + boolean directory = file.isDirectory(); + boolean exists = file.exists(); + if (directory && exists) { + File[] files = file.listFiles(); + if (files != null && files.length > 0) { + int length = files.length; + for (int i = 0; i < length; i++) { + File file1 = files[i]; + String name = file1.getName(); + String newPath = storePath + name; + File file2 = new File(newPath); + file1.renameTo(file2); + redisTemplate.opsForList().leftPush("picPath", name); + pictureHandle.handlePic(); + } + } + } + return CommonResult.success("{}"); + } +} diff --git b/src/main/java/com/objecteye/controller/DeployController.java a/src/main/java/com/objecteye/controller/DeployController.java new file mode 100644 index 0000000..6931347 --- /dev/null +++ a/src/main/java/com/objecteye/controller/DeployController.java @@ -0,0 +1,252 @@ +package com.objecteye.controller; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.common.CommonResult; +import com.objecteye.entity.MonitorMainTableQueryInfo; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyDeploy; +import com.objecteye.service.DeployService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * controller + * + * @author Administrator + */ +@RestController +@Api(tags = "DeployController", description = "布控管理") +@RequestMapping("/deploy") +@CrossOrigin +public class DeployController { + + @Autowired + private DeployService deployService; + + /** + * 布控任务- 主列表查询 + * + * @return + */ + @ApiOperation("布控任务- 主列表查询") + @RequestMapping(value = "/monitorMainTableByPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult monitorMainTableByPage(@RequestBody MonitorMainTableQueryInfo info) { + PageResult pageResult = deployService.monitorMainTableByPage(info); + if (pageResult.getRow() == null || pageResult.getRow().size() == 0) { + return CommonResult.success(201, "无符合条件的数据", new PageResult<>()); + } + return CommonResult.success(pageResult); + } + + /** + * 返回全部列表 + * + * @return + */ + @ApiOperation("查看全部的布控任务") + @RequestMapping(value = "/findAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findAll() { + List all = deployService.findAll(); + if (all == null) { + return CommonResult.success(201, "暂无布控任务", new ArrayList<>()); + } + return CommonResult.success(all); + } + + /** + * 查看布控任务详细信息 + * + * @return + */ + @ApiOperation("查看布控任务详细信息") + @RequestMapping(value = "/findOne", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findOne(@RequestBody Map param) { + SyDeploy syDeploy = deployService.findOne(param.get("id")); + if (syDeploy == null) { + return CommonResult.success(201, "没有找到对应任务", new ArrayList<>()); + } + return CommonResult.success(syDeploy); + } + + /** + * 分页返回列表 + * + * @return + */ + @ApiOperation("分页查看全部的布控任务") + @RequestMapping(value = "/findPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findPage(@RequestParam Integer currentpage, @RequestParam Integer pagevolume, @RequestParam Integer deployType) { + SyDeploy syDeploy = new SyDeploy(); + syDeploy.setDeployType(deployType); + PageResult page = deployService.findPage(syDeploy, currentpage, pagevolume); + if (page == null) { + return CommonResult.success(201, "无符合条件的数据", new PageResult<>()); + } + return CommonResult.success(page); + } + + /** + * 分页查看全部的布控任务内容 + * + * @param pagevolume 页面容量 + * @param currentpage 页码 + * @param deployId 任务id + * @return 结果集 + */ + @ApiOperation("分页查看全部的布控任务内容") + @RequestMapping(value = "/findMonitorTaskDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findMonitorTaskDetail(@RequestParam Integer currentpage, @RequestParam Integer pagevolume, @RequestParam Integer deployId) { + PageResult page = deployService.findMonitorTaskDetail(deployId, currentpage, pagevolume); + if (page.getRow().size() == 0) { + return CommonResult.success(201, "无符合条件的数据", new PageResult<>()); + } + return CommonResult.success(page); + } + + /** + * 增加 + * + * @param deploy + * @return + */ + @ApiOperation("添加布控任务") + @RequestMapping(value = "/addDeployTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult addDeployTask(@RequestBody SyDeploy deploy) { + try { + deployService.add(deploy); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 修改 + * + * @param deploy + * @return + */ + @ApiOperation("修改布控任务") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody SyDeploy deploy) { + try { + deployService.update(deploy); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @ApiOperation("删除布控任务") + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + int[] ids = map.get("ids"); + deployService.delete(ids); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 撤销- 布控任务撤销 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("撤销- 布控任务撤销") + @RequestMapping(value = "/changeTaskStatus", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult changeTaskStatus(@RequestBody Map map) { + try { + Integer status = deployService.cancelOrReNewDeployTask(map.get("deployId")); + return CommonResult.success(status); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.success(201, "布控时间已过期, 请更新布控时间后再操作", null); + } + } + + /** + * 撤销- 车牌布控 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("撤销- 车牌布控") + @RequestMapping(value = "/changeStatusPlateNum", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult changeStatusPlateNum(@RequestBody Map map) { + try { + Integer status = deployService.cancelOrReNewTaskByPlate(Integer.parseInt(map.get("deployId")), map.get("plateNumber")); + return CommonResult.success(status); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 撤销- 车辆布控 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("撤销- 车辆布控") + @RequestMapping(value = "/changeStatusVehicle", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult changeStatusVehicle(@RequestBody Map map) { + try { + Integer status = deployService.cancelOrReNewTaskByVehicleId(Integer.parseInt(map.get("deployId")), + Integer.parseInt(map.get("featureId")), map.get("id")); + return CommonResult.success(status); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 撤销- 人像布控 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("撤销- 人像布控") + @RequestMapping(value = "/changeStatusPerson", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult changeStatusPerson(@RequestBody Map map) { + try { + Integer status = deployService.cancelOrReNewTaskByPersonId(Integer.parseInt(map.get("deployId")), + Integer.parseInt(map.get("featureId")), Integer.parseInt(map.get("id"))); + return CommonResult.success(status); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 获取底库的相关信息 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("获取底库的相关信息") + @RequestMapping(value = "/getLibMsgById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JSONObject getLibMsgById(@RequestBody Map map) { + return deployService.getLibMsgById(map.get("id")); + } +} diff --git b/src/main/java/com/objecteye/controller/EquipmentController.java a/src/main/java/com/objecteye/controller/EquipmentController.java new file mode 100644 index 0000000..a7c4c4e --- /dev/null +++ a/src/main/java/com/objecteye/controller/EquipmentController.java @@ -0,0 +1,173 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyEquipment; +import com.objecteye.service.EquipmentService; +import com.objecteye.utils.GlobalUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * controller + * + * @author Administrator + */ +@RestController +@RequestMapping("/equipment") +@Api(tags = "EquipmentController", description = "设备管理") +@CrossOrigin +public class EquipmentController { + + @Autowired + private EquipmentService equipmentService; + @Autowired + private RedisTemplate redisTemplate; + + /** + * 返回全部列表 + * + * @return + */ + @ApiOperation("分页返回全部设备") + @RequestMapping(value = "/findPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findPage(@RequestParam int currentpage, @RequestParam int pagevolume) { //@RequestBody PagePara pagePara + //PageResult page1 = equipmentService.findPage(pagePara.getPage(), pagePara.getLimit()); + PageResult page1 = equipmentService.findPage(currentpage, pagevolume); + if (page1 != null) { + return CommonResult.success(page1); + } + return CommonResult.success("", "无可用设备"); + } + + /** + * 增加 + * + * @param equipment + * @return + */ + @ApiOperation("添加设备") + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult add(@RequestBody SyEquipment equipment) { + SyEquipment byIp = equipmentService.findByIp(equipment.getEquipmentIp()); + SyEquipment byName = equipmentService.findByName(equipment.getEquipmentName()); + SyEquipment byPort = equipmentService.findByPort(equipment.getEquipmentPort()); + if ((byIp == null) & (byName == null) & (byPort == null)) { + int count = equipmentService.add(equipment); + if (count > 0) { + return CommonResult.success(count); + } + return CommonResult.failed(); + } + return CommonResult.failed("设备名称、ip、端口不能重复"); + } + + /** + * 修改 + * + * @param equipment + * @return + */ + @ApiOperation("更新设备") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody SyEquipment equipment) { + int update = equipmentService.update(equipment); + if (update > 0) { + return CommonResult.success(update); + } + if (update == 0) { + return CommonResult.failed("设备名称不能重复"); + } + return CommonResult.failed(); + } + + /** + * 获取实体 + * + * @return + */ + @ApiOperation("根据id查找设备") + @RequestMapping(value = "/findOne", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findOne(@RequestBody Map map) { + Integer id = map.get("id"); + SyEquipment equipment = equipmentService.findOne(id); + if (equipment != null) { + return CommonResult.success(equipment); + } + return CommonResult.failed("设备id无效"); + } + + /** + * 批量删除 + * + * @return + */ + @ApiOperation("删除设备") + @Transactional + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + int[] ids = map.get("ids"); + equipmentService.delete(ids); + return CommonResult.success("删除成功", "操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + /** + * 设备开关 + * + * @param map + * @return + */ + @ApiOperation("设备开关") + @RequestMapping(value = "/updateStatusById", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult updateStatusById(@RequestBody Map map) { + Integer id = map.get("id"); + int i = equipmentService.updateStatusById(id); + if (i == -1) { + return CommonResult.failed("设备id无效"); + } + if (i != 0) { + return CommonResult.success("设备状态更新成功"); + } + return CommonResult.failed(); + } + + /** + * 设备开关 + * + * @param map id区域id + * @return 设备是否可以删除 + */ + @ApiOperation("设备是否可以删除") + @RequestMapping(value = "/checkDelete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult checkDelete(@RequestBody Map map) { + Integer id = map.get("id"); + boolean canDel = true; + List msgList = new ArrayList<>(); + if (redisTemplate.opsForHash().hasKey(GlobalUtil.IPWITHDEPLOYLIST, id)) { + canDel = false; + msgList.add("布控预警任务"); + } + if (redisTemplate.opsForHash().hasKey(GlobalUtil.FORBIDDEN_TASK, id)) { + canDel = false; + msgList.add("禁行任务"); + } + if (canDel) { + return CommonResult.success(200, "不存在设备占用情况", ""); + } else { + return CommonResult.success(201, "存在" + String.join(",", msgList) + "占用设备", ""); + } + } +} diff --git b/src/main/java/com/objecteye/controller/FeatureController.java a/src/main/java/com/objecteye/controller/FeatureController.java new file mode 100644 index 0000000..fd7a04a --- /dev/null +++ a/src/main/java/com/objecteye/controller/FeatureController.java @@ -0,0 +1,130 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyFeature; +import com.objecteye.service.DeployService; +import com.objecteye.service.FeatureService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * controller + * + * @author YU MIU + */ +@RestController +@Api(tags = "FeatureController", description = "人像库管理") +@RequestMapping("/feature") +@CrossOrigin +public class FeatureController { + + @Autowired + private FeatureService featureService; + @Autowired + private DeployService deployService; + + /** + * 人像库下拉框 + * + * @return + */ + @ApiOperation("人像库下拉框") + @RequestMapping(value = "/findAllName", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findAllName() { + List> all = featureService.findAllName(); + if (all != null) { + return CommonResult.success(all); + } + return CommonResult.success("", "人像库为空"); + } + + /** + * 返回全部列表 + * + * @return + */ + @ApiOperation("分页返回全部人像库") + @RequestMapping(value = "/findPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findPage(@RequestParam int currentpage, @RequestParam int pagevolume) { + PageResult page = featureService.findPage(currentpage, pagevolume); + if (page != null) { + return CommonResult.success(page); + } + return CommonResult.success("", "无符合条件的数据"); + } + + /** + * 增加 + * + * @param feature + * @return + */ + @ApiOperation("添加人像库") + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult add(@RequestBody SyFeature feature) { + + int count = featureService.add(feature); + if (count > 0) { + return CommonResult.success(count); + } + return CommonResult.failed(); + } + + /** + * @param feature + * @return + */ + @ApiOperation("更新人像库") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody SyFeature feature) { + int count = featureService.update(feature); + if (count > 0) { + return CommonResult.success(count); + } + return CommonResult.failed(); + } + + /** + * 批量删除 + * + * @param + * @return + */ + @ApiOperation("删除人像库") + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + int[] ids = map.get("ids"); + featureService.delete(ids); + return CommonResult.success("操作成功"); + } catch (RuntimeException e) { + e.printStackTrace(); + return CommonResult.failed(); + } catch (Exception e) { + return CommonResult.failed(); + } + } + + /** + * 判断人像库是否被使用 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("判断人像库是否被使用") + @RequestMapping(value = "/checkDelete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult checkDelete(@RequestBody Map map) { + List deploys = deployService.getDeployListByLibAndDeployType(map.get("id"), 2); + if (deploys != null && deploys.size() > 0) { + return CommonResult.success(201, "存在布控任务使用该人像库", ""); + } else { + return CommonResult.success(200, "不存在布控任务使用该人像库", ""); + } + } +} diff --git b/src/main/java/com/objecteye/controller/HumanVehicleAssociationController.java a/src/main/java/com/objecteye/controller/HumanVehicleAssociationController.java new file mode 100644 index 0000000..95f394c --- /dev/null +++ a/src/main/java/com/objecteye/controller/HumanVehicleAssociationController.java @@ -0,0 +1,78 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.pojo.FaceInfoParam; +import com.objecteye.pojo.SearchPeopleOfHphmInfo; +import com.objecteye.pojo.SearchPeopleOfHphmRequest; +import com.objecteye.pojo.SearchPeopleOfhphmResult; +import com.objecteye.service.HumanVehicleAssociationService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 人车关联类 + */ +@RestController +@RequestMapping("/HumanVehicle") +@Api(tags = "HumanVehicleAssociationController", description = "人车关联类") +@CrossOrigin +public class HumanVehicleAssociationController { + + @Autowired + private HumanVehicleAssociationService humanVehicleAssociationService; + + @ApiOperation("以人搜车") + @RequestMapping(value = "/hvAssociation/searchVehicleFromHuman", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult searchVehicleFromHuman(@RequestParam Long starttime, @RequestParam Long endtime, @RequestParam Float thresholds, @RequestParam int[] customspass, @RequestParam int currentpage, @RequestParam int pagevolume, MultipartFile picfile) { + try { + PageResult pageResult = humanVehicleAssociationService.searchVehicleFromHuman(starttime, endtime, thresholds, customspass, currentpage, pagevolume, picfile); + if (pageResult == null || pageResult.getRow().size() == 0) { + return CommonResult.success(201, "没有符合要求的数据", null); + } + return CommonResult.success(pageResult, "数据查询成功!!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + + } + + @ApiOperation("以车牌搜人") + @RequestMapping(value = "/hvAssociation/searchPeopleFromHphm", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult searchPeopleFromHphm(@RequestBody SearchPeopleOfHphmRequest searchPeopleOfHphmRequest) { + try { + SearchPeopleOfhphmResult searchPeopleOfhphmResult = humanVehicleAssociationService.searchPeopleFromHphm(searchPeopleOfHphmRequest.getStarttime(), searchPeopleOfHphmRequest.getEndtime(), searchPeopleOfHphmRequest.getCustomspass(), searchPeopleOfHphmRequest.getCurrentpage(), + searchPeopleOfHphmRequest.getPagevolume(), searchPeopleOfHphmRequest.getHphm()); + List row = searchPeopleOfhphmResult.getRow(); + if (row == null || row.size() == 0) { + return CommonResult.success(201, "没有符合要求的数据", searchPeopleOfhphmResult); + } + return CommonResult.success(searchPeopleOfhphmResult, "数据查询成功!!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + @ApiOperation("以车辆图片搜人") + @RequestMapping(value = "/hvAssociation/searchPeopleFromVehiclePic", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult searchPeopleFromVehiclePic(@RequestParam int number, @RequestParam double threshold, @RequestParam int currentpage, + @RequestParam int pagevolume, @RequestParam MultipartFile picfile) { + try { + List faceInfoParam = humanVehicleAssociationService.searchPeopleOfVehiclePic(number, threshold, currentpage, pagevolume, picfile); + if (faceInfoParam == null || faceInfoParam.size() == 0) { + return CommonResult.success(201, "没有符合要求的数据", faceInfoParam); + } + return CommonResult.success(faceInfoParam, "数据查询成功!!"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } +} diff --git b/src/main/java/com/objecteye/controller/LocalTestController.java a/src/main/java/com/objecteye/controller/LocalTestController.java new file mode 100644 index 0000000..c777f91 --- /dev/null +++ a/src/main/java/com/objecteye/controller/LocalTestController.java @@ -0,0 +1,22 @@ +package com.objecteye.controller; + +import com.objecteye.service.ILocalTestService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/localTest") +@CrossOrigin +public class LocalTestController { + + @Autowired + private ILocalTestService iLocalTestService; + + @RequestMapping(value = "/mongoToRedisVehicleFeature", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public void mongoToRedisVehicleFeature() { + iLocalTestService.mongoToRedisVehicleFeature(); + } +} diff --git b/src/main/java/com/objecteye/controller/LocusOrbitController.java a/src/main/java/com/objecteye/controller/LocusOrbitController.java new file mode 100644 index 0000000..a427d0d --- /dev/null +++ a/src/main/java/com/objecteye/controller/LocusOrbitController.java @@ -0,0 +1,95 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.LocusOrbitQueryParams; +import com.objecteye.entity.LocusOrbitResultParams; +import com.objecteye.entity.PageResult; +import com.objecteye.service.ILocusOrbitService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; + +/** + * 轨迹分析 + * + * @author liuhaoyu + */ +@RestController +@RequestMapping("locusOrbit") +@Api(tags = "LocusOrbitController", description = "轨迹分析") +@CrossOrigin +public class LocusOrbitController { + + @Autowired + private ILocusOrbitService locusOrbitService; + + /** + * 轨迹分析接口 + * + * @param locusOrbitQueryParams 请求参数模型 + * @return 结果集 + */ + @PostMapping("locusOrbitAnalysis") + @ResponseBody + @ApiOperation("轨迹分析接口") + public CommonResult locusOrbitByPlateNumber(@RequestBody LocusOrbitQueryParams locusOrbitQueryParams) { + List resultList = locusOrbitService.locusOrbitByPlateNumber(locusOrbitQueryParams); + if (resultList.size() > 0) { + return CommonResult.success(resultList); + } else { + return CommonResult.success(201, "没有符合要求的值", new ArrayList<>()); + } + } + + /** + * 轨迹分析页面列表 + * + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param plateNumber 车牌号 + * @param currentpage 页码 + * @param pagevolume 页面容量 + * @return 结果集 + */ + @PostMapping("locusOrbitTableByPlateNumber") + @ResponseBody + @ApiOperation("轨迹分析页面列表") + public CommonResult locusOrbitTableByPlateNumber(@RequestParam Integer currentpage, @RequestParam Integer pagevolume, + @RequestParam Long startTime, @RequestParam Long endTime, + @RequestParam String plateNumber) { + LocusOrbitQueryParams queryParams = new LocusOrbitQueryParams(); + queryParams.setPlateNumber(plateNumber); + queryParams.setStartTime(startTime); + queryParams.setEndTime(endTime); + PageResult pageResult = locusOrbitService.locusOrbitTableByPlateNumber(queryParams, currentpage, pagevolume); + if (pageResult.getRow().size() > 0) { + return CommonResult.success(pageResult); + } else { + return CommonResult.success(201, "没有符合要求的值", new PageResult<>()); + } + } + + /** + * 轨迹分析接口(图片搜索) + * + * @param gcxh 车辆序号 + * @param customsPass 地区id, 设备id, 自行判断是地区的还是设备的 + * @param startTime 起始时间戳 + * @param endTime 结束时间戳 + * @param multipartFile 文件信息 + * @return 结果集 + */ + @PostMapping("locusOrbitAnalysisByFile") + @ResponseBody + @ApiOperation("轨迹分析接口") + public CommonResult locusOrbitByPlateNumber(int gcxh, Integer customsPass, Long startTime, Long endTime, MultipartFile multipartFile) { + LocusOrbitQueryParams queryParams = new LocusOrbitQueryParams(customsPass, startTime, endTime, null); + List resultList = locusOrbitService.locusOrbitByPlateNumber(gcxh, queryParams, multipartFile); + return resultList.size() > 0 ? CommonResult.success(resultList) : CommonResult.success(201, "没有符合要求的值", new ArrayList<>()); + } +} diff --git b/src/main/java/com/objecteye/controller/PersonnelController.java a/src/main/java/com/objecteye/controller/PersonnelController.java new file mode 100644 index 0000000..3a8f944 --- /dev/null +++ a/src/main/java/com/objecteye/controller/PersonnelController.java @@ -0,0 +1,134 @@ + +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyPersonnel; +import com.objecteye.service.PersonnelService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Map; + + +/** + * controller + * + * @author Administrator + */ + +@RestController +@RequestMapping("/personnel") +@Api(tags = "PersonnelController", description = "人像库人像管理") +@CrossOrigin +public class PersonnelController { + + @Autowired + private PersonnelService personnelService; + + /** + * 上传图片 + * + * @param uploadFiles + * @param featureId + * @return + */ + @ApiOperation("人像库上传多条数据") + @RequestMapping(value = "/uploadfiles", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult uploadfiles(MultipartFile[] uploadFiles, @RequestParam(name = "featureId") int featureId) { + + String msg = personnelService.uploadFiles(uploadFiles, featureId); + if (uploadFiles != null && uploadFiles.length > 0) { + if (null != msg) { + return CommonResult.success("操作成功", msg); + } else { + return null; + } + } + return CommonResult.failed("上传文件不能为空"); + } + + + /** + * 修改 + * + * @param personnel + * @return + */ + + @ApiOperation("更新单条人像信息") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody SyPersonnel personnel) { + try { + personnelService.update(personnel); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + + /** + * 获取实体 + * + * @return + */ + @ApiOperation("查找单条人像信息") + @RequestMapping(value = "/findOne", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findOne(@RequestBody Map map) { + Integer id = map.get("id"); + SyPersonnel one = personnelService.findOne(id); + if (one != null) { + return CommonResult.success(one); + } + return CommonResult.success("", "id无效"); + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @ApiOperation("批量删除") + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + int[] ids = map.get("ids"); + personnelService.delete(ids); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + + /** + * 查询+分页 + * + * @param + * @return + */ + @ApiOperation("根据人像库、人像名、人像创建时间进行分页查询人像底库数据") + @RequestMapping(value = "/search", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult search(@RequestParam int currentpage, @RequestParam int pagevolume, @RequestParam int fid, @RequestParam String name) {//@RequestBody PagePara pagePara + + PageResult page = personnelService.findPage(fid, name, currentpage, pagevolume); + /*if (page != null) { + return CommonResult.success(page); + } + return CommonResult.success("", "无符合条件的数据");*/ + if (page.gettotal() == 0) { + return CommonResult.failed("无符合条件的数据"); + } + return CommonResult.success(page); + + } + +} + diff --git b/src/main/java/com/objecteye/controller/PreviewController.java a/src/main/java/com/objecteye/controller/PreviewController.java new file mode 100644 index 0000000..671993f --- /dev/null +++ a/src/main/java/com/objecteye/controller/PreviewController.java @@ -0,0 +1,77 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.SyAreaEquipment; +import com.objecteye.entity.SyEquipment; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.EquipmentService; +import com.objecteye.utils.PreviewUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Map; + +@Api(tags = "PreviewController", description = "实时预览") +@RestController +@RequestMapping(value = "/preview") +@CrossOrigin +public class PreviewController { + + + @Autowired + private EquipmentService equipmentService; + @Autowired + private AreaEquipmentService areaEquipmentService; + + + @ApiOperation("实时预览:获取rtmp流") + @RequestMapping(value = "/getRtmpStream", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult getRtmpStream(@RequestBody Map map) { + + try { + /*String token = map.get("token"); + String userNameFromToken = jwtTokenUtil.getUserNameFromToken(token); + System.out.println("username:"+userNameFromToken);*/ + String address = InetAddress.getLocalHost().toString().split("/")[1]; + + //获得区域信息 + int deviceId = map.get("deviceId"); + SyAreaEquipment areaEquipment = areaEquipmentService.findOne(deviceId); + + if (areaEquipment != null) { + Integer isEquipment = areaEquipment.getIsEquipment(); + + //为设备,进行转流 + if (isEquipment == 1) { + Integer typeId = areaEquipment.getTypeId(); + SyEquipment equipment = equipmentService.findOne(typeId); + + if (equipment == null) { + throw new RuntimeException("设备无效"); + } + //进行转流 + String rtmp = PreviewUtils.RtspToRtmp(address, equipment.getRtspUrl(), typeId, equipment.getUsername(), equipment.getPassword(), equipment.getEquipmentIp(), equipment.getIntentPort()); + if (rtmp != null) { + return CommonResult.success(rtmp); + } + return CommonResult.failed("转流失败"); + + } else { //选择区域,则提示信息 + return CommonResult.failed("请选择具体设备"); + } + } + } catch (RuntimeException e) { + //e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + return CommonResult.failed("转流失败"); + } +} diff --git b/src/main/java/com/objecteye/controller/RoleController.java a/src/main/java/com/objecteye/controller/RoleController.java new file mode 100644 index 0000000..c6e4017 --- /dev/null +++ a/src/main/java/com/objecteye/controller/RoleController.java @@ -0,0 +1,43 @@ +package com.objecteye.controller; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.service.RoleServices; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@CrossOrigin +@RestController +@RequestMapping("/vehicle/role") +public class RoleController { + + @Autowired + public RoleServices roleServices; + + /** + * 角色列表分页展示 + * + * @param currentpage + * @param pagevolume + * @return + */ + @RequestMapping("/rolePage") + public JSONObject rolePage(@RequestParam int currentpage, @RequestParam int pagevolume) { + JSONObject rolePageInfo = roleServices.rolePage(currentpage, pagevolume); + + return rolePageInfo; + } + + /** + * 角色下拉列表展示 + * + * @return + */ + @RequestMapping("/roleDis") + public JSONObject roleDis() { + return roleServices.roleDis(); + } + +} diff --git b/src/main/java/com/objecteye/controller/SpecialtyVehicleController.java a/src/main/java/com/objecteye/controller/SpecialtyVehicleController.java new file mode 100644 index 0000000..fee749b --- /dev/null +++ a/src/main/java/com/objecteye/controller/SpecialtyVehicleController.java @@ -0,0 +1,152 @@ +package com.objecteye.controller; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.dao.MongoTemplates; +import com.objecteye.pojo.VehicleCondition; +import com.objecteye.service.SpecialtyServices; +import com.objecteye.utils.CustomAssert; +import com.objecteye.utils.CustomParamCollections; +import com.objecteye.utils.VehicleEngine; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Map; + +@CrossOrigin +@RestController +@RequestMapping("/vehicle") +public class SpecialtyVehicleController { + @Autowired + private MongoTemplates mongoTemplates; + @Autowired + private SpecialtyServices specialtyServices; + @Autowired + private VehicleEngine vehicleEngine; + + /** + * 通过车牌(支持模糊)、多条件查询车辆信息(平铺) + * + * @param vehicleCondition + * @return + */ + @RequestMapping("/slagCar/findByCondition") + public JSONObject findByCondition(@RequestBody VehicleCondition vehicleCondition) { + //渣土车查询 + JSONObject by = mongoTemplates.findBy(vehicleCondition, 2); + return by; + } + + + /** + * 通过图片返回各种车的坐标 + * + * @param picfile + * @return + */ + @RequestMapping("/slagCar/findCoordinateByPic") + public JSONObject siteByPic(@RequestParam("picfile") MultipartFile picfile, Integer vehicle_special_type_number) { + //渣土车坐标 vehicle_special_type_number + JSONObject coordinateByPic = specialtyServices.findCoordinateByPic(picfile, vehicle_special_type_number); + return coordinateByPic; + + + } + + /** + * 通过车辆特征码、时间、地点范围进行搜索 + * + * @return + */ + @RequestMapping("/slagCar/findByPic") + public JSONObject findByPic(@RequestParam int number, @RequestParam double threshold, @RequestParam int currentpage, + @RequestParam int pagevolume, MultipartFile picfile, @RequestParam Long starttime, + @RequestParam Long endtime, @RequestParam int[] customspass) throws InterruptedException { + return specialtyServices.findByPic(number, threshold, currentpage, pagevolume, picfile, starttime, endtime, customspass, 2); + } + + /** + * 通过id搜索相关车辆 + * + * @return + */ + @RequestMapping("/slagCar/findById") + public JSONObject findById(@RequestBody Map map) { + JSONObject byPic = specialtyServices.findById(map.get("id")); + return byPic; + } + + /** + * 通过过车序号搜索相关车辆 + * + * @return + */ + @RequestMapping("/slagCar/findByGcxh") + public JSONObject findByGcxh(int gcxh, MultipartFile picfile) { + JSONObject coordinateByPic = specialtyServices.findByGcxh(gcxh, picfile); + return coordinateByPic; + /* + //老接口 + JSONObject byPic = specialtyServices.findByGcxh1(gcxh, picfile); + return byPic;*/ + } + + + /** + * 危化品车 + * 通过车牌(支持模糊)、多条件查询车辆信息(平铺) + * + * @return + */ + @RequestMapping("/chemistryCar/findByCondition") + public JSONObject chemistryFindByCondition(@RequestBody VehicleCondition vehicleCondition) { + //危化品车查询 + JSONObject vehicleInfoRes = mongoTemplates.findBy(vehicleCondition, 1); + return vehicleInfoRes; + } + + /** + * 危化品车 + * 通通过车辆特征码、时间、地点范围进行搜索 + * + * @return + */ + @RequestMapping("/chemistryCar/findByPic") + public JSONObject chemistryFindByPic(@RequestParam int number, @RequestParam Double threshold, @RequestParam int currentpage, + @RequestParam int pagevolume, MultipartFile picfile, @RequestParam Long starttime, + @RequestParam Long endtime, @RequestParam int[] customspass) throws InterruptedException { + return specialtyServices.findByPic(number, threshold, currentpage, pagevolume, picfile, starttime, endtime, customspass, 1); + + } + + + /** + * 测试 + * + * @return + */ + @RequestMapping("/chemistryCar/test") + public JSONObject test(Integer gcxh, @RequestParam("picfile") MultipartFile picfile) { + + + JSONObject coordinateByPic = specialtyServices.findByGcxh(gcxh, picfile); + return coordinateByPic; + + } + + + /** + * 测试 + * + * @return + */ + @RequestMapping("/getResult") + public Object getResult(@RequestBody Map body) { + //CustomAssert.checkHeader(header); + CustomAssert.checkField(body, CustomParamCollections.VEHICLE_SINGLE_PARAM); + CustomAssert.checkSimpleMapParam(body, CustomParamCollections.VEHICLE_SINGLE_PARAM); + Map colorAndBrand = specialtyServices.getColorAndBrand(body); + + return colorAndBrand; + } +} diff --git b/src/main/java/com/objecteye/controller/UserController.java a/src/main/java/com/objecteye/controller/UserController.java new file mode 100644 index 0000000..464e95c --- /dev/null +++ a/src/main/java/com/objecteye/controller/UserController.java @@ -0,0 +1,95 @@ +package com.objecteye.controller; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.service.UserServices; +import com.objecteye.utils.GlobalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@CrossOrigin +@RestController +@RequestMapping("/vehicle/user") +public class UserController { + + @Autowired + public UserServices userServices; + + @RequestMapping(value = "checkUser", method = RequestMethod.POST, produces = GlobalUtil.COMMON_HEADER_CONTENT_TYPE) + public CommonResult checkUser(@RequestBody Map requestMap) { + return jsonObjectResultHandle(userServices.checkUser(requestMap)); + } + + /** + * 用户新增 + * + * @return + */ + @RequestMapping(value = "/addUser", method = RequestMethod.POST, produces = GlobalUtil.COMMON_HEADER_CONTENT_TYPE) + public CommonResult addUser(@RequestBody Map requestMap) { + return jsonObjectResultHandle(userServices.addUser(requestMap)); + } + + /** + * 用户列表分页展示 + * + * @return + */ + @RequestMapping(value = "/userPage", method = RequestMethod.POST, produces = GlobalUtil.COMMON_HEADER_CONTENT_TYPE) + public CommonResult userPage(@RequestBody Map requestMap) { + PageResult pageResult = userServices.userPage(requestMap); + if (pageResult.getRow().size() == 0) { + return CommonResult.success(201, "未找到有效数据", null); + } + return CommonResult.success(pageResult); + } + + /** + * 用户更新数据 + * + * @return + */ + @RequestMapping("/updateUser") + public CommonResult updateUser(@RequestBody Map requestMap) { + return jsonObjectResultHandle(userServices.updateUser(requestMap)); + } + + /** + * 用户移除 + * + * @param requestMap 请求参数 + * @return + */ + @RequestMapping("/deleteUser") + public CommonResult deleteUser(@RequestBody Map requestMap) { + return jsonObjectResultHandle(userServices.deleteUser(requestMap)); + } + + /** + * 根据用户id查询用户 + * + * @param requestMap 请求参数 + * @return + */ + @RequestMapping("/findUserById") + public CommonResult findUserById(@RequestBody Map requestMap) { + return jsonObjectResultHandle(userServices.findUserById(requestMap)); + } + + /** + * jsonObject通用处理 + * + * @param resultObj 返回参数 + * @return 结果集 + */ + private CommonResult jsonObjectResultHandle(JSONObject resultObj) { + if (resultObj.containsKey("error")) { + return CommonResult.success(201, resultObj.getString("error"), null); + } + return CommonResult.success(resultObj); + } + +} diff --git b/src/main/java/com/objecteye/controller/VehicleController.java a/src/main/java/com/objecteye/controller/VehicleController.java new file mode 100644 index 0000000..1b5ffa3 --- /dev/null +++ a/src/main/java/com/objecteye/controller/VehicleController.java @@ -0,0 +1,107 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.UploadVehicleDbResult; +import com.objecteye.service.VehicleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/vehicle") +@Api(tags = "VehicleController", description = "车辆库车辆管理") +@CrossOrigin +public class VehicleController { + + @Autowired + private VehicleService vehicleService; + + + @ApiOperation("车辆库上传多条数据") + @RequestMapping(value = "/uploadfiles", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult uploadfiles(MultipartFile[] uploadFiles, int vehicleId) { + if (uploadFiles != null && uploadFiles.length > 0) { + String msg = vehicleService.uploadFiles(uploadFiles, vehicleId); + if (null != msg) { + return CommonResult.success("操作成功", msg); + } else { + return null; + } + } + return CommonResult.failed("上传文件不能为空"); + } + + + @ApiOperation("根据车库、车辆名进行分页查询车辆底库数据") + @RequestMapping(value = "/findPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findPage(@RequestParam int vehicleId, @RequestParam String picName, @RequestParam int currentpage, @RequestParam int pagevolume) { + + PageResult page = vehicleService.findPage(vehicleId, picName, currentpage, pagevolume); + if (page.gettotal() == 0) { + return CommonResult.failed("车库无数据"); + } + return CommonResult.success(page); + } + + /** + * 批量删除 + * + * @param map + * @return + */ + @ApiOperation("批量删除") + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + String[] ids = map.get("ids"); + //int vehicleId= (int) map.get("vehicleId"); + vehicleService.delete(ids); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 修改车辆名 + * + * @param uploadVehicleDbResult + * @return + */ + @ApiOperation("修改车辆名") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody UploadVehicleDbResult uploadVehicleDbResult) { + try { + vehicleService.update(uploadVehicleDbResult); + return CommonResult.success("操作成功"); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } + + /** + * 根据车名检索 + * + * @param uploadVehicleDbResult + * @return + */ + @ApiOperation("根据车名检索") + @RequestMapping(value = "/findByPicName", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findByPicName(@RequestBody UploadVehicleDbResult uploadVehicleDbResult) { + try { + List uploadVehicleResultList = vehicleService.findByPicName(uploadVehicleDbResult); + return CommonResult.success(uploadVehicleResultList); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(); + } + } +} diff --git b/src/main/java/com/objecteye/controller/VehicleCurrencyController.java a/src/main/java/com/objecteye/controller/VehicleCurrencyController.java new file mode 100644 index 0000000..21ee9ac --- /dev/null +++ a/src/main/java/com/objecteye/controller/VehicleCurrencyController.java @@ -0,0 +1,161 @@ +package com.objecteye.controller; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.common.CommonResult; +import com.objecteye.pojo.NameValue; +import com.objecteye.pojo.PicVehicleDataResult; +import com.objecteye.pojo.VehicleCurrencyReques; +import com.objecteye.service.VehicleCurrencyService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +import java.util.Map; + +@CrossOrigin +@RestController +@RequestMapping("/vehicle") +public class VehicleCurrencyController { + + @Autowired + private VehicleCurrencyService vehicleCurrencyService; + + /** + * 通过车牌(支持模糊)、多条件查询车辆信息(平铺) + * + * @param vehicleCurrencyReques + * @return + */ + @RequestMapping("/car/findByCondition") + public CommonResult findByCondition(@RequestBody VehicleCurrencyReques vehicleCurrencyReques) { + JSONObject byCondition = vehicleCurrencyService.findByCondition(vehicleCurrencyReques); + JSONArray row = byCondition.getJSONArray("row"); + if (row != null && row.size() > 0 && byCondition.getInteger("total") > 0) { + return CommonResult.success(byCondition); + } else if (row == null || row.size() == 0) { + return CommonResult.success(201, "没有符合要求的数据", byCondition); + } else { + return CommonResult.success(byCondition, "数据异常"); + } + + } + + /** + * 通过车辆图片以及其他条件查询车辆 + * + * @param number + * @param threshold + * @param currentpage + * @param pagevolume + * @param picfile + * @param starttime + * @param endtime + * @param customspass + * @return + */ + @RequestMapping("/car/findByPic") + public CommonResult findByPic(@RequestParam int number, @RequestParam double threshold, + @RequestParam int currentpage, @RequestParam int pagevolume, + MultipartFile picfile, @RequestParam Long starttime, + @RequestParam Long endtime, @RequestParam int[] customspass) throws InterruptedException { + return vehicleCurrencyService.findVehicleByPic(number, threshold, currentpage, pagevolume, picfile, starttime, + endtime, customspass); + } + + /** + * 返回所有车辆类型的首字母 + * List selectDisplayForInitials(); + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleModelId") + public CommonResult> selectDisplayForInitials() { + CommonResult> commonResult = vehicleCurrencyService.selectDisplayForInitials(); + return commonResult; + } + + + /** + * 根据首字母返回符合要求的车辆品牌 + * List selectDisplayForBrand(); + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleModelInitials") + public CommonResult> selectDisplayForBrand(@RequestBody Map map) { + CommonResult> commonResult = vehicleCurrencyService.selectDisplayForBrand(map.get("vehicleModelInitials")); + return commonResult; + } + + + /** + * 根据车辆品牌返回符合要求的车辆子品牌 + * List selectDisplayForSubbrand(); + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleModelSubbrandByBrand") + public CommonResult> selectDisplayForSubbrand(@RequestBody Map map) { + CommonResult> commonResult = vehicleCurrencyService.selectDisplayForSubbrand(map.get("vehicleModelBrand")); + return commonResult; + } + + /** + * 根据车辆子品牌查询生产年限 + * List selectDisplayForBirthday(); + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleModelBirthdayBySubbrand") + public CommonResult> selectDisplayForBirthday(@RequestBody Map map) { + CommonResult> commonResult = vehicleCurrencyService.selectDisplayForBirthday(map.get("vehicleModelSubbrand")); + return commonResult; + } + + + /** + * 返回所有车辆类型列表 + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleTypeList") + public CommonResult> displayVehicleTypeList() { + CommonResult> commonResult = vehicleCurrencyService.displayVehicleTypeList(); + return commonResult; + } + + /** + * 返回所有车辆车身颜色列表 + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleColorList") + public CommonResult> displayVehicleColorList() { + CommonResult> commonResult = vehicleCurrencyService.displayVehicleColorList(); + return commonResult; + } + + /** + * 返回所有车辆号牌类型列表 + * + * @return + */ + @RequestMapping("/vehicleBase/getVehiclePlateTypeList") + public CommonResult> displayVehiclePlateTypeList() { + CommonResult> commonResult = vehicleCurrencyService.displayVehiclePlateTypeList(); + return commonResult; + } + + /** + * 返回所有车辆年检标个数列表 + * + * @return + */ + @RequestMapping("/vehicleBase/getVehicleNjbNumberList") + public CommonResult> displayVehicleNjbNumberList() { + CommonResult> commonResult = vehicleCurrencyService.displayVehicleNjbNumberList(); + return commonResult; + } +} diff --git b/src/main/java/com/objecteye/controller/VehicleDbController.java a/src/main/java/com/objecteye/controller/VehicleDbController.java new file mode 100644 index 0000000..0ed7a38 --- /dev/null +++ a/src/main/java/com/objecteye/controller/VehicleDbController.java @@ -0,0 +1,148 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyVehicleDb; +import com.objecteye.service.DeployService; +import com.objecteye.service.VehicleDbService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + + +/** + * controller + * + * @author Administrator + */ +@RestController +@Api(tags = "VehicleDbController", description = "车辆库管理") +@RequestMapping("/vehicleDb") +@CrossOrigin +public class VehicleDbController { + + @Autowired + private VehicleDbService vehicleDbService; + @Autowired + private DeployService deployService; + + /** + * 返回全部列表 + * + * @return + */ + @ApiOperation("分页返回全部车库") + @RequestMapping(value = "/findPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findPage(@RequestParam int currentpage, @RequestParam int pagevolume) { + PageResult page = vehicleDbService.findPage(currentpage, pagevolume); + if (page.gettotal() == 0) { + return CommonResult.failed("无符合条件的数据"); + } + return CommonResult.success(page); + } + + /** + * 增加 + * + * @param vehicel + * @return + */ + @ApiOperation("添加车库") + @RequestMapping(value = "/add", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult add(@RequestBody SyVehicleDb vehicel) { + + int count = vehicleDbService.add(vehicel); + if (count > 0) { + return CommonResult.success(count); + } + return CommonResult.failed(); + } + + /** + * @param feature + * @return + */ + @ApiOperation("更新车库") + @RequestMapping(value = "/update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult update(@RequestBody SyVehicleDb feature) { + + int count = vehicleDbService.update(feature); + if (count > 0) { + return CommonResult.success(count); + } + return CommonResult.failed(); + } + + /** + * 获取实体 + * + * @param + * @return + */ + @ApiOperation("查找车库") + @RequestMapping(value = "/findOne", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findOne(@RequestBody Map map) { + Integer id = map.get("id"); + SyVehicleDb feature = vehicleDbService.findOne(id); + if (feature != null) { + return CommonResult.success(feature); + } + return CommonResult.success("", "id无效"); + } + + /** + * 批量删除 + * + * @param + * @return + */ + @ApiOperation("删除车库") + @RequestMapping(value = "/delete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult delete(@RequestBody Map map) { + try { + int[] ids = map.get("ids"); + vehicleDbService.delete(ids); + return CommonResult.success(""); + } catch (Exception e) { + e.printStackTrace(); + return CommonResult.failed(e.getMessage()); + } + } + + /** + * 判断车辆库是否被使用 + * + * @param map 请求参数 + * @return 操作状态 + */ + @ApiOperation("判断车辆库是否被使用") + @RequestMapping(value = "/checkDelete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult checkDeleteByLibIdDeployType(@RequestBody Map map) { + List deploys = deployService.getDeployListByLibAndDeployType(map.get("id"), 1); + if (deploys != null && deploys.size() > 0) { + return CommonResult.success(201, "存在布控任务使用该车辆库", ""); + } else { + return CommonResult.success(200, "不存在布控任务使用该车辆库", ""); + } + } + + /** + * 人像库下拉框 + * + * @return + */ + @ApiOperation("车库下拉框") + @RequestMapping(value = "/findAllName", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult findAllName() { + List> all = vehicleDbService.findAllName(); + if (all != null) { + return CommonResult.success(all); + } + return CommonResult.success("", "车库为空"); + } + +} diff --git b/src/main/java/com/objecteye/controller/VehicleFileController.java a/src/main/java/com/objecteye/controller/VehicleFileController.java new file mode 100644 index 0000000..3eaa58e --- /dev/null +++ a/src/main/java/com/objecteye/controller/VehicleFileController.java @@ -0,0 +1,67 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.*; +import com.objecteye.service.IVehicleFileService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; + +/** + * 一车一档 controller + */ +@RestController +@Api(tags = "VehicleFileController", description = "一车一档") +@RequestMapping("/vehicleFiles") +@CrossOrigin +public class VehicleFileController { + @Autowired + private IVehicleFileService iVehicleFileService; + + @ApiOperation("档案浏览查询(分页)") + @RequestMapping(value = "fileQueryByPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult fileQueryByPage(@RequestBody VehicleFileParam vehicleFileParam) { + PageResult pageResult = iVehicleFileService.fileQueryByPage(vehicleFileParam); + return pageResult.getRow().size() > 0 ? CommonResult.success(pageResult) : CommonResult.success(201, "没有符合要求的值", new PageResult<>()); + } + + @ApiOperation("档案浏览查询(不分页)") + @RequestMapping(value = "fileQuery", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult fileQuery(@RequestBody VehicleFileParam vehicleFileParam) { + List resultList = iVehicleFileService.fileQuery(vehicleFileParam); + return resultList.size() > 0 ? CommonResult.success(resultList) : CommonResult.success(201, "没有符合要求的值", new ArrayList<>()); + } + + @ApiOperation("车牌搜档(分页)") + @RequestMapping(value = "plateNumberQueryByPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult plateNumberQueryByPage(@RequestBody VehicleFilePlateNumParam vehicleFilePlateNumParam) { + PageResult pageResult = iVehicleFileService.plateNumberQueryByPage(vehicleFilePlateNumParam); + return pageResult.getRow().size() > 0 ? CommonResult.success(pageResult) : CommonResult.success(201, "没有符合要求的值", new PageResult<>()); + } + + @ApiOperation("车牌搜档(不分页)") + @RequestMapping(value = "plateNumberQuery", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult plateNumberQuery(@RequestBody VehicleFilePlateNumParam vehicleFilePlateNumParam) { + List resultList = iVehicleFileService.plateNumberQuery(vehicleFilePlateNumParam); + return resultList.size() > 0 ? CommonResult.success(resultList) : CommonResult.success(201, "没有符合要求的值", new ArrayList<>()); + } + + @ApiOperation("以图搜档") + @RequestMapping(value = "picQuery", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult picQuery(int gcxh, MultipartFile multipartFile) { + VvehicleFilePicQueryResult picQueryResult = iVehicleFileService.picQuery(gcxh, multipartFile); + return null == picQueryResult ? CommonResult.success(201, "没有符合要求的值", new VvehicleFilePicQueryResult()) : CommonResult.success(picQueryResult); + } + + @ApiOperation("司机信息") + @RequestMapping(value = "driverFiles", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult driverFiles(@RequestBody VehicleFilePlateNumParam vehicleFilePlateNumParam) { + PageResult pageResult = iVehicleFileService.driverFiles(vehicleFilePlateNumParam); + return pageResult.getRow().size() > 0 ? CommonResult.success(pageResult) : CommonResult.success(201, "驾驶人信息努力获取中", new PageResult<>()); + } +} diff --git b/src/main/java/com/objecteye/controller/VehicleViolationsController.java a/src/main/java/com/objecteye/controller/VehicleViolationsController.java new file mode 100644 index 0000000..86286fc --- /dev/null +++ a/src/main/java/com/objecteye/controller/VehicleViolationsController.java @@ -0,0 +1,121 @@ +package com.objecteye.controller; + +import com.objecteye.common.CommonResult; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyVehicleForbidenTask; +import com.objecteye.entity.VehicleViolationsForbidenTaskQueryParams; +import com.objecteye.service.IVehicleViolationsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +@CrossOrigin +@RestController +@RequestMapping("vehicleViolation") +@Api(value = "/vehicleViolation", description = "车辆违规接口") +public class VehicleViolationsController { + + @Autowired + private IVehicleViolationsService vehicleViolationsService; + + /** + * 禁行任务查询接口 + * + * @param pagevolume 页面容量 + * @param currentpage 页码 + * @param name 名称(非必填) + * @return 结果集 + */ + @ApiOperation("禁行任务查询接口") + @RequestMapping(value = "forbiddenTaskQueryByPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult forbiddenTaskQueryByPage(@RequestParam("pagevolume") int pagevolume, + @RequestParam("currentpage") int currentpage, + @RequestParam(value = "name", required = false) String name) { + PageResult pageResult = vehicleViolationsService.forbiddenTaskQueryByPage(currentpage, pagevolume, name); + return pageResult.getRow().size() > 0 ? CommonResult.success(pageResult) : CommonResult.success(201, "没有符合要求的值", new PageResult<>()); + } + + /** + * 禁行任务查询明细 + * + * @param params 请求参数 + * @return 结果集 + */ + @ApiOperation("禁行任务查询明细") + @RequestMapping(value = "forbiddenTaskDetail", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult forbiddenTaskDetail(@RequestBody Map params) { + SyVehicleForbidenTask forbiddenTask = vehicleViolationsService.forbiddenTaskDetail(params.get("id")); + return null != forbiddenTask ? CommonResult.success(forbiddenTask) : CommonResult.success(201, "未找到对应数据", null); + } + + /** + * 禁行任务维护- 新增接口 + * + * @param queryParams 请求参数 + * @return 结果集 + */ + @ApiOperation("禁行任务维护- 新增接口") + @RequestMapping(value = "forbiddenTaskAdd", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult forbiddenTaskAdd(@RequestBody SyVehicleForbidenTask queryParams) { + int resultStatus = vehicleViolationsService.forbiddenTaskAdd(queryParams); + return resultStatus > 0 ? CommonResult.success("success") : CommonResult.success(201, "操作失败", 0); + } + + /** + * 禁行任务维护- 修改接口 + * + * @param queryParams 请求参数 + * @return 结果集 + */ + @ApiOperation("禁行任务维护- 修改接口") + @RequestMapping(value = "forbiddenTaskUpdate", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult forbiddenTaskUpdate(@RequestBody SyVehicleForbidenTask queryParams) { + int resultStatus = vehicleViolationsService.forbiddenTaskUpdate(queryParams); + return resultStatus > 0 ? CommonResult.success("success") : CommonResult.success(201, "操作失败", 0); + } + + /** + * 禁行任务维护- 删除接口 + * + * @param queryParams 请求参数 + * @return 结果集 + */ + @ApiOperation("禁行任务维护- 删除接口") + @RequestMapping(value = "forbiddenTaskDelete", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult forbiddenTaskDelete(@RequestBody Map queryParams) { + String[] ids = queryParams.get("ids"); + int resultStatus = vehicleViolationsService.forbiddenTaskDelete(ids); + return resultStatus > 0 ? CommonResult.success("success") : CommonResult.success(201, "操作失败", 0); + } + + /** + * 车辆违规查询- 涉牌违规 违规驾驶 + * + * @param queryParams 请求参数 + * @return 结果集 + */ + @ApiOperation("车辆违规查询- 涉牌违规 违规驾驶") + @RequestMapping(value = "vehicleViolationQueryByPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult vehicleViolationQueryByPage(@RequestBody VehicleViolationsForbidenTaskQueryParams queryParams) { + PageResult pageResult = vehicleViolationsService.vehicleViolationQueryByPage(queryParams, false); + return pageResult.getRow().size() > 0 ? CommonResult.success(pageResult) : CommonResult.success(201, "没有符合要求的值", 0); + } + + /** + * 车辆违规查询- 车辆禁行 + * + * @param queryParams 请求参数 + * @return 结果集 + */ + @ApiOperation("车辆违规查询- 车辆禁行") + @RequestMapping(value = "vehicleViolationTaskQueryByPage", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public CommonResult vehicleViolationTaskQueryByPage(@RequestBody VehicleViolationsForbidenTaskQueryParams queryParams) { + PageResult pageResult = vehicleViolationsService.vehicleViolationQueryByPage(queryParams, true); + return pageResult.getRow().size() > 0 ? CommonResult.success(pageResult) : CommonResult.success(201, "没有符合要求的值", 0); + } + + +} diff --git b/src/main/java/com/objecteye/dao/MongoTemplates.java a/src/main/java/com/objecteye/dao/MongoTemplates.java new file mode 100644 index 0000000..0ed430d --- /dev/null +++ a/src/main/java/com/objecteye/dao/MongoTemplates.java @@ -0,0 +1,342 @@ +package com.objecteye.dao; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.pojo.FaceInfoParam; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.pojo.VehicleCondition; +import com.objecteye.service.AreaEquipmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Component; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.regex.Pattern; + +@Component +public class MongoTemplates { + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private AreaEquipmentService areaEquipmentService; + + //mongodb插入车辆数据 + public RabbitMQVehicle insertData(RabbitMQVehicle rabbitMQVehicle) { + return mongoTemplate.insert(rabbitMQVehicle); + + } + + //mongodb插入司机数据 + public void insertData(FaceInfoParam faceInfoParam) { + FaceInfoParam save = mongoTemplate.insert(faceInfoParam); + System.out.println(save.getId()); + } + + //mongodb查询根据id + public T findById(Class entityClass, String id) { + return mongoTemplate.findById(id, entityClass); + } + + //mongodb查询所有的数据信息 + public List findAll(Class entityClass) { + return mongoTemplate.findAll(entityClass); + } + + //mongodb查询根据多条件 + public JSONObject findBy(VehicleCondition vehicleCondition, Integer vehicle_special_type_number) { + JSONObject jsonObject = new JSONObject(); + + List vehicleTable = null; + try { + Query query = new Query(); + //必须条件 + Criteria c = new Criteria(); + //范围条件 + //模糊查询号牌 + int currentpage = vehicleCondition.getCurrentpage(); + int pagevolume = vehicleCondition.getPagevolume(); + String hphm = vehicleCondition.getHphm(); + Long starttime = vehicleCondition.getStarttime(); + Long endtime = vehicleCondition.getEndtime(); + int[] condition = vehicleCondition.getCondition(); + int[] customspass = vehicleCondition.getCustomspass(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + //特殊品类检索 + if (vehicle_special_type_number != null) { + c.and("vehicle_special_type").is(vehicle_special_type_number); + } + + //模糊号牌检索 + if (hphm != null && hphm.length() > 0) { + hphm = hphm.replaceAll("\\?", ".?").replaceAll("\\*", ".*"); + Pattern pattern = Pattern.compile("^.*" + hphm + ".*$", Pattern.CASE_INSENSITIVE); + c.and("vehicle_plate_hphm").regex(pattern); + } + + //时间段范围内 + if (starttime != 0l && endtime != 0l) { + c.and("pictime").gte(starttime).lte(endtime); + } + + /*无号牌(nullhphm):1 污损号牌(stained):2 主驾驶安全带(driverbelt):3 副驾驶安全带(copilotbelt):4 + 主驾驶打电话(drivercall):5 主驾驶吸烟(driversmoke):6 是否苫盖(cover):7*/ + //条件查询 + if (condition != null && condition.length > 0) { + for (int i : condition) { + switch (i) { + case 1: + //无号牌 + c.and("vehicle_plate_numScore").is(0); + break; + case 2: + //污损号牌(stained) + c.and("vehicleplatedetectscore").is(-1); //当识别度为负数时认为是污损号牌 + //因目前sdk不支持污损号牌检测,所以此处略 + break; + case 3: + //主驾驶未系安全带(driverbelt): + c.and("vehicle_illegal_driver_person_status").is(1004); + c.and("vehicle_illegal_driver_belt_status").is(1000); + break; + case 4: + //副驾驶未系安全带(copilotbelt):4 + c.and("vehicle_illegal_copilot_person_status").is(1004); + c.and("vehicle_illegal_copilot_belt_status").is(1000); + break; + case 5: + //主驾驶打电话(drivercall): + c.and("vehicle_illegal_driver_person_status").is(1004); + c.and("vehicle_illegal_driver_phone_status").is(1000); + break; + case 6: + //主驾驶吸烟(driversmoke): + c.and("vehicle_illegal_driver_person_status").is(1004); + c.and("vehicle_illegal_driver_smoke_status").is(1000); + break; + case 7: + //是否苫盖(cover): + //因目前sdk不支持苫盖,所以此处略 + c.and("vehicleplatedetectscore").is(-1); //因为检测分数永远都不可能为负数 + break; + } + + } + } + + + //卡口范围 + if (customspass != null && customspass.length > 0) { + Set alleqids = new HashSet<>(); + for (int i = 0; i < customspass.length; i++) { + List epids = areaEquipmentService.findCaptureById(customspass[i]); + System.out.println("设备:" + epids); + for (int j = 0; j < epids.size(); j++) { + alleqids.add(epids.get(j)); + } + } + + //获取当前设备id + c.and("deviceid").in(alleqids); + } + + query.addCriteria(c); + long totalNumber = mongoTemplate.count(query, JSONObject.class, "rabbitMQVehicle"); + + //按时间进行排序 + query.with(new Sort(Sort.Direction.DESC, "pictime")); + +// 分页 + query.skip((currentpage - 1) * pagevolume).limit(pagevolume); + + vehicleTable = mongoTemplate.find(query, JSONObject.class, "rabbitMQVehicle"); + + JSONObject data = new JSONObject(); + JSONArray array = new JSONArray(); + int size = vehicleTable.size(); + for (int i = 0; i < size; i++) { + JSONObject json = vehicleTable.get(i); + String id = json.containsKey("_id") ? json.getString("_id") : null; + String hphm_new = json.containsKey("vehicle_plate_hphm") ? json.getString("vehicle_plate_hphm") : null; + String equipmentName = json.containsKey("equipmentName") ? json.getString("equipmentName") : null; + String pictime = json.containsKey("pictime") ? new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(json.getLong("pictime"))) : null; + String recordid = json.containsKey("recordid") ? json.getString("recordid") : null; + + json.put("site", equipmentName); + json.put("id", id); + json.put("hphm", hphm_new); + json.put("phototime", pictime); + json.put("recordid", recordid); + + //修改原有的picurl的值 + String picurl = json.getString("picurl"); +// JSONArray vehicle_detect_syRectParam = json.getJSONArray("vehicle_detect_syRectParam"); +// String base64 =vehicleDetailsUtils.picToSnapshot(picurl, vehicle_detect_syRectParam.getInteger(1), vehicle_detect_syRectParam.getInteger(2), vehicle_detect_syRectParam.getInteger(3), vehicle_detect_syRectParam.getInteger(0)); +// json.put("picurl",base64); //此处添加的是全景图的base64 +// json.put("picurl",picurl); //此处添加的是全景图的url + + //添加snapshoturl的值 + String snapshoturl = json.getString("snapshoturl"); +// json.put("snapshoturl",snapshoturl); + json.put("picurl", snapshoturl); //此处将原来的全景图url换成了快照图绝对路径 + + array.add(json); + } + + //根据总条数获取到总页数 + int totalPage = (int) Math.ceil(((double) totalNumber) / pagevolume); + + data.put("total", totalPage); + data.put("row", array); + if (totalNumber > 0 && array != null && array.size() > 0) { + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + jsonObject.put("data", data); + } else { + jsonObject.put("code", 201); + jsonObject.put("message", "没有查询到符合要求的结果"); + jsonObject.put("data", data); + } + + + } catch (Exception e) { + e.printStackTrace(); + jsonObject.put("code", 202); + jsonObject.put("message", "请检查数据是否正确"); + jsonObject.put("data", null); + } + return jsonObject; + + } + + + /** + * 根据车辆条件查询符合条件的车辆列表 + * + * @param vehicleCondition + * @return + */ + public List getVehcieListBy(VehicleCondition vehicleCondition) { + List rabbitMqVehicles = null; + try { + Query query = new Query(); + //必须条件 + Criteria c = new Criteria(); + //范围条件 + //模糊查询号牌 + int currentpage = vehicleCondition.getCurrentpage(); + int pagevolume = vehicleCondition.getPagevolume(); + String hphm = vehicleCondition.getHphm(); + Long starttime = vehicleCondition.getStarttime(); + Long endtime = vehicleCondition.getEndtime(); + int[] condition = vehicleCondition.getCondition(); + int[] customspass = vehicleCondition.getCustomspass(); + + //模糊号牌检索 + if (hphm != null && hphm.length() > 0) { + hphm = hphm.replaceAll("\\?", "\\\\S").replaceAll("\\*", ".*"); + Pattern pattern = Pattern.compile(hphm, Pattern.CASE_INSENSITIVE); + c.and("vehicle_plate_hphm").regex(pattern); + } + + //时间段范围内 + if (starttime != 0L && endtime != 0L) { + c.and("pictime").gte(starttime).lte(endtime); + } + + if (vehicleCondition.getVehicleSpecialType() != null) { + c.and("vehicle_special_type").is(vehicleCondition.getVehicleSpecialType()); + } + + if (vehicleCondition.getVehicleColorIndex() != null) { + c.and("vehicle_color_index").is(vehicleCondition.getVehicleColorIndex()); + } + if (vehicleCondition.getVehicleRecgIssueYear() != null) { + c.and("vehicle_recg_issue_year").is(vehicleCondition.getVehicleRecgIssueYear()); + } + if (vehicleCondition.getVehicleRecgBrand() != null) { + c.and("vehicle_recg_brand").is(vehicleCondition.getVehicleRecgBrand()); + } + if (vehicleCondition.getVehicleRecgType() != null) { + c.and("vehicle_recg_type").is(vehicleCondition.getVehicleRecgType()); + } + if (vehicleCondition.getVehicleRecgSubbrand() != null) { + c.and("vehicle_recg_subbrand").is(vehicleCondition.getVehicleRecgSubbrand()); + } + + /*无号牌(nullhphm):1 污损号牌(stained):2 主驾驶安全带(driverbelt):3 副驾驶安全带(copilotbelt):4 + 主驾驶打电话(drivercall):5 主驾驶吸烟(driversmoke):6 是否苫盖(cover):7*/ + //条件查询 + if (condition != null && condition.length > 0) { + for (int i : condition) { + switch (i) { + case 1: + //无号牌 + c.and("vehicleplatedetectscore").lte(0.5); + break; + case 2: + //污损号牌(stained) + //因目前sdk不支持污损号牌检测,所以此处略 + break; + case 3: + //主驾驶安全带(driverbelt): + c.and("vehicle_illegal_driver_belt_status").is(1000); + break; + case 4: + //副驾驶安全带(copilotbelt):4 + c.and("vehicle_illegal_copilot_belt_status").is(1000); + break; + case 5: + //主驾驶打电话(drivercall): + c.and("vehicle_illegal_driver_phone_status").is(1000); + break; + case 6: + //主驾驶吸烟(driversmoke): + c.and("vehicle_illegal_driver_smoke_status").is(1000); + break; + case 7: + //是否苫盖(cover): + //因目前sdk不支持苫盖,所以此处略 + break; + default: + break; + } + } + } + + //卡口范围 + if (customspass != null && customspass.length > 0) { + Set alleqids = new HashSet<>(); + for (int value : customspass) { + List epids = areaEquipmentService.findCaptureById(value); + alleqids.addAll(epids); + } + //获取当前设备id + c.and("deviceid").in(alleqids); + } + query.addCriteria(c); + + // 分页 + query.skip((currentpage - 1) * pagevolume).limit(pagevolume); + query.fields().include("id"); + query.fields().include("vehicle_plate_hphm"); + query.fields().include("picurl"); + query.fields().include("snapshoturl"); + query.fields().include("recordid"); + query.fields().include("equipmentName"); + query.fields().include("pictime"); + return mongoTemplate.find(query, RabbitMQVehicle.class); + + } catch (Exception e) { + e.printStackTrace(); + } + return rabbitMqVehicles; + } +} diff --git b/src/main/java/com/objecteye/dao/MongoTemplates.java.old a/src/main/java/com/objecteye/dao/MongoTemplates.java.old new file mode 100644 index 0000000..b59da57 --- /dev/null +++ a/src/main/java/com/objecteye/dao/MongoTemplates.java.old @@ -0,0 +1,109 @@ +package com.objecteye.dao; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.geo.GeoJson; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class MongoTemplates { + @Autowired + private MongoTemplate mongoTemplate; + + public void save(Polygon polygon){ + mongoTemplate.save(polygon); + } + + public void saveRegions(List gisRegionList){ + mongoTemplate.insert(gisRegionList,GisRegion.class); + } + + public T findById(Class entityClass, String id) { + return mongoTemplate.findById(id, entityClass); + } + + public List findAll(Class entityClass) { + return mongoTemplate.findAll(entityClass); + } + + public void remove(T entity) { + mongoTemplate.remove(entity); + } + + public void add(T entity) { + mongoTemplate.insert(entity); + } + + public void addAll(List entity) { + mongoTemplate.insertAll(entity); + } + + public void saveOrUpdate(T entity) { + mongoTemplate.save(entity); + } + + public T findOne(Class entityClass) { + return mongoTemplate.findOne(new Query(), entityClass); + } + + public List findIntersective(GeoJson geoJson){ + Query query=new Query(Criteria.where("geometry").intersects(geoJson)); + List list=mongoTemplate.find(query,Polygon.class); + return list; + } + + public boolean isExistIntersective(GeoJson geoJson){ + Query query=new Query(Criteria.where("geometry").intersects(geoJson).and("_id").is(100000)); + boolean res=mongoTemplate.exists(query,GisRegion.class); + return res; + } + + /*public T findBy(Class entityClass, String id) { + + Criteria cri = new Criteria(); + // 设置条件(注意:设置查询的值类型必须和mongodb中类型一致) + cri.and("status").is("0"); // 类型为String,类似sql中 status = '0' + cri.and("boolRelation").is(0D); // 类型为Double,类似sql中 boolRelation = 0 + cri.and("enforType").regex("01.*"); // 正则表达匹配,类似右模糊查询,sql中 like '01%' + + // lt gt lte gte + + return null; + }*/ + + //mongodb查询根据指定条件对象 + /* public T findQuery(Class entityClass, BasicDBObject basicDBObject) { + // 分、 排序、按时间查询 + + Query query = new Query(); + //必须条件 + // Criteria c = Criteria.where("VINID").is(Map.get(vin)); + Criteria c = new Criteria(); + //范围条件 + if (!StringUtils.isEmpty(start) && StringUtils.isEmpty(end)) { + c.and("TIME1").gte(GetTime1(start)); + } else if (StringUtils.isEmpty(start) && !StringUtils.isEmpty(end)) { + c.and("TIME1").lte(GetTime1(end)); + } else if (!StringUtils.isEmpty(start) && !StringUtils.isEmpty(end)) { + //对同一个属性加两次限制需这样操作 + c.andOperator( + c.where("TIME1").gte(GetTime1(start)), + c.where("TIME1").lte(GetTime1(end)) + ); + } + query.addCriteria(c); + //总数 + int num = (int) mongoTemplate.count(query, CarDataEx.class, "jmevTest"); + System.out.println("总数:" + num); + //分页 + query.skip((page - 1) * rows).limit(rows); + //排序 + query.with(new Sort(Sort.Direction.DESC, "TIME1","TIME2")); + //query.with(new Sort(properties)); + List jmevTest = (List) mongoTemplate.find(query, CarDataEx.class, "jmevTest"); + }*/ + +} diff --git b/src/main/java/com/objecteye/entity/AreaEquipmentShow.java a/src/main/java/com/objecteye/entity/AreaEquipmentShow.java new file mode 100644 index 0000000..fd83bd7 --- /dev/null +++ a/src/main/java/com/objecteye/entity/AreaEquipmentShow.java @@ -0,0 +1,81 @@ +package com.objecteye.entity; + + +import java.io.Serializable; +import java.util.List; + +public class AreaEquipmentShow implements Serializable { + + private Integer id; + private Integer parentId; + private String title; + private Integer typeId; + private Integer isEquipment; + private Integer equipmentNum; + private boolean disabled; + private List children; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Integer getTypeId() { + return typeId; + } + + public void setTypeId(Integer typeId) { + this.typeId = typeId; + } + + public Integer getIsEquipment() { + return isEquipment; + } + + public void setIsEquipment(Integer isEquipment) { + this.isEquipment = isEquipment; + } + + public Integer getEquipmentNum() { + return equipmentNum; + } + + public void setEquipmentNum(Integer equipmentNum) { + this.equipmentNum = equipmentNum; + } + + public boolean isDisabled() { + return disabled; + } + + public void setDisabled(boolean disabled) { + this.disabled = disabled; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git b/src/main/java/com/objecteye/entity/CaputureMsg.java a/src/main/java/com/objecteye/entity/CaputureMsg.java new file mode 100644 index 0000000..d9d8114 --- /dev/null +++ a/src/main/java/com/objecteye/entity/CaputureMsg.java @@ -0,0 +1,69 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +/** + * @Author: ljh + * @Date: 2019/9/18 11:53 + * @Version 1.0 + * @Message: + */ +public class CaputureMsg implements Serializable { + private int vehicleCount; + private int vehicleCountInHours; + private int violateCount; + private String imageUrl; + + public CaputureMsg() { + super(); + } + + public int getVehicleCount() { + return vehicleCount; + } + + public void setVehicleCount(int vehicleCount) { + this.vehicleCount = vehicleCount; + } + + public int getVehicleCountInHours() { + return vehicleCountInHours; + } + + public void setVehicleCountInHours(int vehicleCountInHours) { + this.vehicleCountInHours = vehicleCountInHours; + } + + public int getViolateCount() { + return violateCount; + } + + public void setViolateCount(int violateCount) { + this.violateCount = violateCount; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public CaputureMsg(int vehicleCount, int vehicleCountInHours, int violateCount, String imageUrl) { + this.vehicleCount = vehicleCount; + this.vehicleCountInHours = vehicleCountInHours; + this.violateCount = violateCount; + this.imageUrl = imageUrl; + } + + @Override + public String toString() { + return "CaputureMsg{" + + "vehicleCount=" + vehicleCount + + ", vehicleCountInHours=" + vehicleCountInHours + + ", violateCount=" + violateCount + + ", imageUrl='" + imageUrl + '\'' + + '}'; + } +} diff --git b/src/main/java/com/objecteye/entity/CountMsg.java a/src/main/java/com/objecteye/entity/CountMsg.java new file mode 100644 index 0000000..eb7e3ee --- /dev/null +++ a/src/main/java/com/objecteye/entity/CountMsg.java @@ -0,0 +1,49 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +/** + * @Author: ljh + * @Date: 2019/9/19 15:26 + * @Version 1.0 + * @Message: + */ +public class CountMsg implements Serializable { + private String vehicleCount; //卡口经过车辆数 + private String vehicleCountInHours; //一天的车流量 + private String violateCount; //违规车辆数 + + public CountMsg() { + super(); + } + + public String getVehicleCount() { + return vehicleCount; + } + + public void setVehicleCount(String vehicleCount) { + this.vehicleCount = vehicleCount; + } + + public String getVehicleCountInHours() { + return vehicleCountInHours; + } + + public void setVehicleCountInHours(String vehicleCountInHours) { + this.vehicleCountInHours = vehicleCountInHours; + } + + public String getViolateCount() { + return violateCount; + } + + public void setViolateCount(String violateCount) { + this.violateCount = violateCount; + } + + public CountMsg(String vehicleCount, String vehicleCountInHours, String violateCount) { + this.vehicleCount = vehicleCount; + this.vehicleCountInHours = vehicleCountInHours; + this.violateCount = violateCount; + } +} diff --git b/src/main/java/com/objecteye/entity/DeployAlarmMsg.java a/src/main/java/com/objecteye/entity/DeployAlarmMsg.java new file mode 100644 index 0000000..ae6b50d --- /dev/null +++ a/src/main/java/com/objecteye/entity/DeployAlarmMsg.java @@ -0,0 +1,54 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.io.Serializable; + +/** + * @Author: ljh + * @Date: 2019/9/18 12:00 + * @Version 1.0 + * @Message: + */ + +@Setter +@Getter +@AllArgsConstructor +@NoArgsConstructor +public class DeployAlarmMsg implements Serializable { + + private static final long serialVersionUID = 1210431441620400136L; + /** + * 报警时间 + */ + private String alarmTime; + + /** + * 报警地点 + */ + private String alarmPlace; + + /** + * 相似度 + */ + private double similarity; + + /** + * 过车图片url、抓拍人像图片url + */ + private String captureUrl; + + /** + * 布控车辆图片url、布控人像图片url、布控车牌号码 + */ + private String deployUrl; + + /** + * 布控类型 + */ + private int deployType; + +} diff --git b/src/main/java/com/objecteye/entity/DeployResultMsg.java a/src/main/java/com/objecteye/entity/DeployResultMsg.java new file mode 100644 index 0000000..3d25fb8 --- /dev/null +++ a/src/main/java/com/objecteye/entity/DeployResultMsg.java @@ -0,0 +1,53 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +public class DeployResultMsg implements Serializable { + + private int deployId; + private String deployName; + private int status; + private long alarmNum; + + public DeployResultMsg() { + } + + public DeployResultMsg(int deployId, String deployName, int status, long alarmNum) { + this.deployId = deployId; + this.deployName = deployName; + this.status = status; + this.alarmNum = alarmNum; + } + + public int getDeployId() { + return deployId; + } + + public void setDeployId(int deployId) { + this.deployId = deployId; + } + + public String getDeployName() { + return deployName; + } + + public void setDeployName(String deployName) { + this.deployName = deployName; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public long getAlarmNum() { + return alarmNum; + } + + public void setAlarmNum(long alarmNum) { + this.alarmNum = alarmNum; + } +} diff --git b/src/main/java/com/objecteye/entity/DetectParam.java a/src/main/java/com/objecteye/entity/DetectParam.java new file mode 100644 index 0000000..65c6547 --- /dev/null +++ a/src/main/java/com/objecteye/entity/DetectParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class DetectParam { + int process_min_l; + int process_max_l; + float threshold; + +} diff --git b/src/main/java/com/objecteye/entity/DetectResult.java a/src/main/java/com/objecteye/entity/DetectResult.java new file mode 100644 index 0000000..aa45d86 --- /dev/null +++ a/src/main/java/com/objecteye/entity/DetectResult.java @@ -0,0 +1,26 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +public class DetectResult implements Serializable { + + private int deviceId; + private String pictureName; + private String picUrl; + private long picTime; + private int flag; + private String personId; + private double[] vehicleFeaResFea; + private Integer[] vehiclePlateDetRecgRect; + private float vehiclePlateDetRecgRectScore; + private int vehiclePlateDetRecgRectType; + private String plateNum; + private float plateNumScore; + private VehiclePlateNumParam[] plateNumParams; + private int vehicleColorRes; + private float vehicleColorScore; + private float vehicleDetectScore; + private Integer[] syRectParam; + + +} diff --git b/src/main/java/com/objecteye/entity/FaceClusterParam.java a/src/main/java/com/objecteye/entity/FaceClusterParam.java new file mode 100644 index 0000000..a6f5b87 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceClusterParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceClusterParam { + private float threshold; // thresld of face similarity + private int fea_size; //length of feature + private int log_config; //if open log + private String index_db_path; +} diff --git b/src/main/java/com/objecteye/entity/FaceDetectInfoParam.java a/src/main/java/com/objecteye/entity/FaceDetectInfoParam.java new file mode 100644 index 0000000..558f830 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceDetectInfoParam.java @@ -0,0 +1,25 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceDetectInfoParam { + private SyRectParam face_position; //人脸位置 + private float face_pos_score; //人脸框置信度 + private SyPointParam[] syPointParams; //人脸关键点位置信息 + private int quality; //质量评价 + private int clarity; //清晰度 0 - 100 + private int brightness; //亮度 0 - 255 + private float roll; //姿态角 + private float yaw; //姿态角 + private float pitch; //姿态角 + private float score; //人脸置信度 +} diff --git b/src/main/java/com/objecteye/entity/FaceDetectParam.java a/src/main/java/com/objecteye/entity/FaceDetectParam.java new file mode 100644 index 0000000..37bc39f --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceDetectParam.java @@ -0,0 +1,23 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceDetectParam { + private int facial_fea_point_config; //是否启动关键点检测 + private int pose_config; //是否启动姿态角 + private int quality_config; //是否启动质量检测 + private int score_config; //是否启动人脸置信度 + private float threshold; //检测阈值 建议0.7 + private int process_w; //reshape宽 + private int process_h; //reshape高 + private int log; //日志 +} diff --git b/src/main/java/com/objecteye/entity/FaceDetectResultParam.java a/src/main/java/com/objecteye/entity/FaceDetectResultParam.java new file mode 100644 index 0000000..e5a0867 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceDetectResultParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceDetectResultParam { + private FaceDetectInfoParam[] faceDetectInfoParams; //内存由外部申请 + private int count; //人脸个数 +} diff --git b/src/main/java/com/objecteye/entity/FaceFeatureAnalysisParam.java a/src/main/java/com/objecteye/entity/FaceFeatureAnalysisParam.java new file mode 100644 index 0000000..bff501e --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceFeatureAnalysisParam.java @@ -0,0 +1,14 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceFeatureAnalysisParam { + FaceFeatureResultParam[] info; + int count; +} diff --git b/src/main/java/com/objecteye/entity/FaceFeatureParam.java a/src/main/java/com/objecteye/entity/FaceFeatureParam.java new file mode 100644 index 0000000..9b79d51 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceFeatureParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceFeatureParam { + private static final long serialVersionUID = -5848996632992784111L; + private int log; +} diff --git b/src/main/java/com/objecteye/entity/FaceFeatureResultParam.java a/src/main/java/com/objecteye/entity/FaceFeatureResultParam.java new file mode 100644 index 0000000..c4748ce --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceFeatureResultParam.java @@ -0,0 +1,14 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceFeatureResultParam { + private FaceDetectInfoParam faceDetectInfoParam; + private float[] feature; // 特征值 +} diff --git b/src/main/java/com/objecteye/entity/FaceInfoParam.java a/src/main/java/com/objecteye/entity/FaceInfoParam.java new file mode 100644 index 0000000..d19d7a6 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceInfoParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceInfoParam { + private FaceDetectInfoParam faceDetectInfoParam; //人脸检测值 + private String mattingData;//抠图人脸base64 + private float[] fea; //人脸特征值 + private String retrieveKey; //1vN检索key + private String label; //聚类label标签 +} diff --git b/src/main/java/com/objecteye/entity/FaceRetrieveInfoParam.java a/src/main/java/com/objecteye/entity/FaceRetrieveInfoParam.java new file mode 100644 index 0000000..437efc7 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceRetrieveInfoParam.java @@ -0,0 +1,13 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceRetrieveInfoParam { + private String retrieveKey; + private float[] feature; +} diff --git b/src/main/java/com/objecteye/entity/FaceRetrieveParam.java a/src/main/java/com/objecteye/entity/FaceRetrieveParam.java new file mode 100644 index 0000000..12d901f --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceRetrieveParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceRetrieveParam { + int log; + int fea_size; //feature长度 + String db_path; //db_path如果不存在 -> 新建一个本地数据库并同步加载到内存 若存在 则直接加载至内存 +} diff --git b/src/main/java/com/objecteye/entity/FaceRetrieveResultParam.java a/src/main/java/com/objecteye/entity/FaceRetrieveResultParam.java new file mode 100644 index 0000000..42cae76 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FaceRetrieveResultParam.java @@ -0,0 +1,14 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class FaceRetrieveResultParam { + private String retrieveKey; + float score; +} diff --git b/src/main/java/com/objecteye/entity/FeatureResultMsg.java a/src/main/java/com/objecteye/entity/FeatureResultMsg.java new file mode 100644 index 0000000..8139f65 --- /dev/null +++ a/src/main/java/com/objecteye/entity/FeatureResultMsg.java @@ -0,0 +1,64 @@ +package com.objecteye.entity; + +import java.io.Serializable; +import java.util.List; + +public class FeatureResultMsg implements Serializable { + + private Integer id; + private String name; + private String createDate; + private Integer count; + private List deplyNameList; + + public FeatureResultMsg() { + } + + public FeatureResultMsg(Integer id, String name, String createDate, Integer count, List deplyNameList) { + this.id = id; + this.name = name; + this.createDate = createDate; + this.count = count; + this.deplyNameList = deplyNameList; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public List getDeplyNameList() { + return deplyNameList; + } + + public void setDeplyNameList(List deplyNameList) { + this.deplyNameList = deplyNameList; + } +} diff --git b/src/main/java/com/objecteye/entity/LocusOrbitQueryParams.java a/src/main/java/com/objecteye/entity/LocusOrbitQueryParams.java new file mode 100644 index 0000000..3525b3e --- /dev/null +++ a/src/main/java/com/objecteye/entity/LocusOrbitQueryParams.java @@ -0,0 +1,39 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 轨迹分析 - 请求参数 + * + * @author liuhaoyu + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class LocusOrbitQueryParams implements Serializable { + private static final long serialVersionUID = -8007831938659574791L; + + /** + * 地区id, 设备id, 自行判断是地区的还是设备的 + */ + private Integer customsPass; + + /** + * 时间区间- 起始时间戳 + */ + private Long startTime; + + /** + * 时间区间- 结束时间戳 + */ + private Long endTime; + + /** + * 车牌号 + */ + private String plateNumber; +} diff --git b/src/main/java/com/objecteye/entity/LocusOrbitResultParams.java a/src/main/java/com/objecteye/entity/LocusOrbitResultParams.java new file mode 100644 index 0000000..a20d2a3 --- /dev/null +++ a/src/main/java/com/objecteye/entity/LocusOrbitResultParams.java @@ -0,0 +1,43 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 轨迹分析 返回结果数据模型 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class LocusOrbitResultParams implements Serializable { + + private static final long serialVersionUID = 6134866513785223161L; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("相似度") + private String threshold; + + @ApiModelProperty("经度") + private String longitude; + + @ApiModelProperty("纬度") + private String latitude; + + @ApiModelProperty("抓拍时间") + private String pictime; + + @ApiModelProperty("抓拍地点") + private String equipmentName; + + @ApiModelProperty("抓拍截图") + private String snapshotUrl; + + @ApiModelProperty("id") + private String id; +} diff --git b/src/main/java/com/objecteye/entity/MonitorMainTableQueryInfo.java a/src/main/java/com/objecteye/entity/MonitorMainTableQueryInfo.java new file mode 100644 index 0000000..7e11c2b --- /dev/null +++ a/src/main/java/com/objecteye/entity/MonitorMainTableQueryInfo.java @@ -0,0 +1,47 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 布控报警- 主列表查询请求参数 + */ +@AllArgsConstructor +@NoArgsConstructor +@ToString +@Data +public class MonitorMainTableQueryInfo implements Serializable { + private static final long serialVersionUID = 2387317754137036734L; + /** + * 开始时间 + */ + private Long startTime; + /** + * 结束时间 + */ + private Long endTime; + /** + * 布控类型0: 车牌布控; 1: 车辆布控; 2: 人像布控 + */ + private Integer deployType; + /** + * 页码 + */ + private Integer currentpage; + /** + * 页面容量 + */ + private Integer pagevolume; + /** + * 设备id + */ + private Integer customsPass; + /** + * 车牌号 + */ + private String plateNumber; +} diff --git b/src/main/java/com/objecteye/entity/MonitorMainTableResultInfo.java a/src/main/java/com/objecteye/entity/MonitorMainTableResultInfo.java new file mode 100644 index 0000000..7d0ea65 --- /dev/null +++ a/src/main/java/com/objecteye/entity/MonitorMainTableResultInfo.java @@ -0,0 +1,51 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 布控报警- 主列表查询返回结果集数据模型 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class MonitorMainTableResultInfo implements Serializable { + private static final long serialVersionUID = -7947600423993334962L; + /** + * 车牌号 + */ + private String plateNumber; + /** + * 抓拍时间 + */ + private String picTime; + /** + * 地点 + */ + private String address; + /** + * 相似度 + */ + private Double threshold; + /** + * 抓拍图片 + */ + private String snapshotUrl; + /** + * 布控图片 + */ + private String libUrl; + /** + * 主键 + */ + private String id; + /** + * 布控库主键 + */ + private String libId; +} diff --git b/src/main/java/com/objecteye/entity/MonitorTaskContentResultInfo.java a/src/main/java/com/objecteye/entity/MonitorTaskContentResultInfo.java new file mode 100644 index 0000000..f0db825 --- /dev/null +++ a/src/main/java/com/objecteye/entity/MonitorTaskContentResultInfo.java @@ -0,0 +1,54 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 布控报警 + * - 布控任务 + * - 布控任务内容 数据模型 + */ +@AllArgsConstructor +@NoArgsConstructor +@ToString +@Data +public class MonitorTaskContentResultInfo implements Serializable { + private static final long serialVersionUID = 4851770658456303503L; + /** + * 车牌号 + */ + private String plateNumber; + /** + * 布控开始时间 - 布控结束时间 + */ + private String deployTime; + /** + * 创建时间 + */ + private String createDate; + /** + * 状态值 + */ + private String status; + /** + * 布控库中的明细项id + */ + private String id; + /** + * 布控库id + */ + private String featureId; + + /** + * 图片地址 + */ + private String url; + /** + * 布控任务id + */ + private String deployId; +} diff --git b/src/main/java/com/objecteye/entity/MonitorTaskResultInfo.java a/src/main/java/com/objecteye/entity/MonitorTaskResultInfo.java new file mode 100644 index 0000000..d605577 --- /dev/null +++ a/src/main/java/com/objecteye/entity/MonitorTaskResultInfo.java @@ -0,0 +1,40 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 布控任务- 布控任务列表返回数据模型 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class MonitorTaskResultInfo implements Serializable { + private static final long serialVersionUID = -2303276515208972965L; + + /** + * 布控任务id + */ + private Integer id; + /** + * 布控任务名称 + */ + private String name; + /** + * 布控任务创建时间 + */ + private String createDate; + /** + * 布控任务状态 + */ + private Integer status; + /** + * 报警数 + */ + private Long warningNumber; +} diff --git b/src/main/java/com/objecteye/entity/PagePara.java a/src/main/java/com/objecteye/entity/PagePara.java new file mode 100644 index 0000000..484c646 --- /dev/null +++ a/src/main/java/com/objecteye/entity/PagePara.java @@ -0,0 +1,42 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +public class PagePara implements Serializable { + private int currentpage; + private int pagevolume; + private T data; + + public PagePara() { + } + + public PagePara(int currentpage, int pagevolume, T data) { + this.currentpage = currentpage; + this.pagevolume = pagevolume; + this.data = data; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + public int getCurrentpage() { + return currentpage; + } + + public void setCurrentpage(int currentpage) { + this.currentpage = currentpage; + } + + public int getPagevolume() { + return pagevolume; + } + + public void setPagevolume(int pagevolume) { + this.pagevolume = pagevolume; + } +} diff --git b/src/main/java/com/objecteye/entity/PageResult.java a/src/main/java/com/objecteye/entity/PageResult.java new file mode 100644 index 0000000..7b63ed0 --- /dev/null +++ a/src/main/java/com/objecteye/entity/PageResult.java @@ -0,0 +1,34 @@ +package com.objecteye.entity; + +import java.io.Serializable; +import java.util.List; + +public class PageResult implements Serializable { + + private long total; + private List row; + + public PageResult() { + } + + public PageResult(long total, List row) { + this.total = total; + this.row = row; + } + + public long gettotal() { + return total; + } + + public void settotal(int total) { + this.total = total; + } + + public List getRow() { + return row; + } + + public void setRow(List row) { + this.row = row; + } +} diff --git b/src/main/java/com/objecteye/entity/PersonIdAndScore.java a/src/main/java/com/objecteye/entity/PersonIdAndScore.java new file mode 100644 index 0000000..44ee4d2 --- /dev/null +++ a/src/main/java/com/objecteye/entity/PersonIdAndScore.java @@ -0,0 +1,14 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class PersonIdAndScore { + + private String retrieveKey; + private String score; +} diff --git b/src/main/java/com/objecteye/entity/PersonMsg.java a/src/main/java/com/objecteye/entity/PersonMsg.java new file mode 100644 index 0000000..d7de7a6 --- /dev/null +++ a/src/main/java/com/objecteye/entity/PersonMsg.java @@ -0,0 +1,35 @@ +package com.objecteye.entity; + + +import lombok.*; + +import java.io.Serializable; + +@Data +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class PersonMsg implements Serializable { + private String id; + + private int deviceId; + + private String imageUrl; + + private long captureTime; + + private String equipmentName; + + private String longitude; + + private String latitude; + + private String url; + + private String personId; + + private float[] fea; + + +} diff --git b/src/main/java/com/objecteye/entity/PersonnelResultMsg.java a/src/main/java/com/objecteye/entity/PersonnelResultMsg.java new file mode 100644 index 0000000..8cfe029 --- /dev/null +++ a/src/main/java/com/objecteye/entity/PersonnelResultMsg.java @@ -0,0 +1,94 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +public class PersonnelResultMsg implements Serializable { + + + private int personId; + private String personName; + private String createTime; + private String conreason; + private int personfileNum; + private String imageUrl; + private String indentity; + + public PersonnelResultMsg() { + } + + public PersonnelResultMsg(int personId, String personName, String createTime, String conreason, int personfileNum, String imageUrl) { + this.personId = personId; + this.personName = personName; + this.createTime = createTime; + this.conreason = conreason; + this.personfileNum = personfileNum; + this.imageUrl = imageUrl; + } + + + public int getPersonId() { + return personId; + } + + public void setPersonId(int personId) { + this.personId = personId; + } + + public PersonnelResultMsg(int personId, String personName, String createTime, String conreason, int personfileNum, String imageUrl, String indentity) { + this.personId = personId; + this.personName = personName; + this.createTime = createTime; + this.conreason = conreason; + this.personfileNum = personfileNum; + this.imageUrl = imageUrl; + this.indentity = indentity; + } + + public String getPersonName() { + return personName; + } + + public void setPersonName(String personName) { + this.personName = personName; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getConreason() { + return conreason; + } + + public void setConreason(String conreason) { + this.conreason = conreason; + } + + public int getPersonfileNum() { + return personfileNum; + } + + public void setPersonfileNum(int personfileNum) { + this.personfileNum = personfileNum; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public String getIndentity() { + return indentity; + } + + public void setIndentity(String indentity) { + this.indentity = indentity; + } +} diff --git b/src/main/java/com/objecteye/entity/PlateAlarmMsg.java a/src/main/java/com/objecteye/entity/PlateAlarmMsg.java new file mode 100644 index 0000000..da3b7ea --- /dev/null +++ a/src/main/java/com/objecteye/entity/PlateAlarmMsg.java @@ -0,0 +1,232 @@ +package com.objecteye.entity; + +import lombok.*; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Setter +@Getter +@ToString +public class PlateAlarmMsg implements Serializable { + + private static final long serialVersionUID = 46749833013421068L; + + private String id; + /** + * 原始数据id + */ + private String baseId; + /** + * 布控任务id + */ + private Integer deployId; + /** + * 设备id + */ + private int deviceId; + /** + * 设备名称 + */ + private String equipmentName; + /** + * 经度 + */ + private String longitude; + /** + * 纬度 + */ + private String latitude; + /** + * 布控图片 + */ + private String libUrl; + /** + * 布控图片id + */ + private String libId; + /** + * 抓拍时间 + */ + private Long picTime; + /** + * 报警时间 + */ + private String alarmTime; + /** + * 抓拍截图 + */ + private String snapshotUrl; + /** + * 车牌号 + */ + private String plateNum; + /** + * 报警类型 + */ + private Integer alarmType; + /** + * 相似度 + */ + private double similarity; + + private PlateAlarmMsg(Builder builder) { + this.id = builder.id; + this.baseId = builder.baseId; + this.deployId = builder.deployId; + this.deviceId = builder.deviceId; + this.equipmentName = builder.equipmentName; + this.longitude = builder.longitude; + this.latitude = builder.latitude; + this.libUrl = builder.libUrl; + this.libId = builder.libId; + this.picTime = builder.picTime; + this.alarmTime = builder.alarmTime; + this.snapshotUrl = builder.snapshotUrl; + this.plateNum = builder.plateNum; + this.alarmType = builder.alarmType; + this.similarity = builder.similarity; + } + + public static Builder builder() { + return new Builder(); + } + + public static class Builder { + private String id; + + private String baseId; + /** + * 布控任务id + */ + private Integer deployId; + /** + * 设备id + */ + private int deviceId; + /** + * 设备名称 + */ + private String equipmentName; + /** + * 经度 + */ + private String longitude; + /** + * 纬度 + */ + private String latitude; + /** + * 布控图片 + */ + private String libUrl; + /** + * 布控图片id + */ + private String libId; + /** + * 抓拍时间 + */ + private Long picTime; + /** + * 报警时间 + */ + private String alarmTime; + /** + * 抓拍截图 + */ + private String snapshotUrl; + /** + * 车牌号 + */ + private String plateNum; + /** + * 报警类型 + */ + private Integer alarmType; + /** + * 相似度 + */ + private double similarity; + + public Builder id(String id) { + this.id = id; + return this; + } + + public Builder baseId(String baseId) { + this.baseId = baseId; + return this; + } + + public Builder deployId(Integer deployId) { + this.deployId = deployId; + return this; + } + + public Builder deviceId(int deviceId) { + this.deviceId = deviceId; + return this; + } + + public Builder equipmentName(String equipmentName) { + this.equipmentName = equipmentName; + return this; + } + + public Builder longitude(String longitude) { + this.longitude = longitude; + return this; + } + + public Builder latitude(String latitude) { + this.latitude = latitude; + return this; + } + + public Builder libUrl(String libUrl) { + this.libUrl = libUrl; + return this; + } + + public Builder libId(String libId) { + this.libId = libId; + return this; + } + + public Builder picTime(Long picTime) { + this.picTime = picTime; + return this; + } + + public Builder alarmTime(String alarmTime) { + this.alarmTime = alarmTime; + return this; + } + + public Builder snapshotUrl(String snapshotUrl) { + this.snapshotUrl = snapshotUrl; + return this; + } + + public Builder plateNum(String plateNum) { + this.plateNum = plateNum; + return this; + } + + public Builder alarmType(Integer alarmType) { + this.alarmType = alarmType; + return this; + } + + public Builder similarity(double similarity) { + this.similarity = similarity; + return this; + } + + public PlateAlarmMsg build() { + return new PlateAlarmMsg(this); + } + } +} diff --git b/src/main/java/com/objecteye/entity/RelationMappingUtil.java a/src/main/java/com/objecteye/entity/RelationMappingUtil.java new file mode 100644 index 0000000..65a350d --- /dev/null +++ a/src/main/java/com/objecteye/entity/RelationMappingUtil.java @@ -0,0 +1,134 @@ +package com.objecteye.entity; + +import org.springframework.stereotype.Component; + +@Component +public class RelationMappingUtil { + + public static String getVehicleColor(int i) { + switch (i) { + case 0: + return "棕"; + case 1: + return "橙"; + case 2: + return "灰"; + case 3: + return "白"; + case 4: + return "粉"; + case 5: + return "紫"; + case 6: + return "红"; + case 7: + return "绿"; + case 8: + return "蓝"; + case 9: + return "金"; + case 10: + return "银"; + case 11: + return "青"; + case 12: + return "黄"; + case 13: + return "黑"; + default: + return "检测失败"; + } + } + + //号牌种类 + public static String getVehiclePlateType(int i) { + switch (i) { + case 0: + return "单排蓝色"; + case 1: + return "单排黄色"; + case 2: + return "单排白色"; + case 3: + return "单排黑色"; + case 4: + return "双排黄色"; + case 5: + return "双排白色"; + case 6: + return "新能源黄绿色"; + case 7: + return "新能源白绿色"; + default: + return "检测失败"; + } + } + + //获取车辆属性 + public String getVehiclePendantParam(int i) { + switch (i) { + case 0: + return "司机"; + case 1: + return "人脸"; + case 2: + return "安全带"; + case 3: + return "遮阳板"; + case 4: + return "年检标"; + case 5: + return "挂件"; + case 6: + return "纸巾盒"; + case 7: + return "转经筒"; + case 8: + return "手机"; + case 9: + return "天窗"; + case 10: + return "行李架"; + case 11: + return "烟"; + default: + return "检测失败"; + } + } + + //获取车辆违法数据 + public String getVehicleIllegalStatus(int i) { + switch (i) { + case 1000: + return "违规"; + case 1001: + return "合法"; + case 1002: + return "不确定"; + case 1003: + return "无人"; + case 1004: + return "有人"; + default: + return "检测失败"; + } + } + + //获取车辆类型 + public static String getVehicleSpecialType(int i) { + switch (i) { + case -1: + return "其他"; + case 0: + return "货车"; + case 1: + return "危化品车"; + case 2: + return "渣土车"; + default: + return "检测失败"; + } + } + + +} diff --git b/src/main/java/com/objecteye/entity/ResponseParam.java a/src/main/java/com/objecteye/entity/ResponseParam.java new file mode 100644 index 0000000..391cb0d --- /dev/null +++ a/src/main/java/com/objecteye/entity/ResponseParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class ResponseParam { + private String code; //状态码 + private String msg; //提示消息 + private T result; // 泛型类结果 +} diff --git b/src/main/java/com/objecteye/entity/RetrieveSearchDataParam.java a/src/main/java/com/objecteye/entity/RetrieveSearchDataParam.java new file mode 100644 index 0000000..20a142a --- /dev/null +++ a/src/main/java/com/objecteye/entity/RetrieveSearchDataParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class RetrieveSearchDataParam { + private int topN; + private float threshold; + private int threadNum; + private float[] feature; +} diff --git b/src/main/java/com/objecteye/entity/SyAreaEquipment.java a/src/main/java/com/objecteye/entity/SyAreaEquipment.java new file mode 100644 index 0000000..041493e --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyAreaEquipment.java @@ -0,0 +1,76 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyAreaEquipment implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + @ApiModelProperty(value = "父id") + private Integer parentId; + @ApiModelProperty(value = "设备(区域)名称") + private String name; + @ApiModelProperty(value = "设备(区域)外键") + private Integer typeId; + @ApiModelProperty(value = "0表示区域,1表示设备") + private Integer isEquipment; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getTypeId() { + return typeId; + } + + public void setTypeId(Integer typeId) { + this.typeId = typeId; + } + + public Integer getIsEquipment() { + return isEquipment; + } + + public void setIsEquipment(Integer isEquipment) { + this.isEquipment = isEquipment; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", parentId=").append(parentId); + sb.append(", name=").append(name); + sb.append(", typeId=").append(typeId); + sb.append(", isEquipment=").append(isEquipment); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyAreaEquipmentExample.java a/src/main/java/com/objecteye/entity/SyAreaEquipmentExample.java new file mode 100644 index 0000000..24751d8 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyAreaEquipmentExample.java @@ -0,0 +1,510 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyAreaEquipmentExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyAreaEquipmentExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andParentIdIsNull() { + addCriterion("parent_id is null"); + return (Criteria) this; + } + + public Criteria andParentIdIsNotNull() { + addCriterion("parent_id is not null"); + return (Criteria) this; + } + + public Criteria andParentIdEqualTo(Integer value) { + addCriterion("parent_id =", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotEqualTo(Integer value) { + addCriterion("parent_id <>", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThan(Integer value) { + addCriterion("parent_id >", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdGreaterThanOrEqualTo(Integer value) { + addCriterion("parent_id >=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThan(Integer value) { + addCriterion("parent_id <", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdLessThanOrEqualTo(Integer value) { + addCriterion("parent_id <=", value, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdIn(List values) { + addCriterion("parent_id in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotIn(List values) { + addCriterion("parent_id not in", values, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdBetween(Integer value1, Integer value2) { + addCriterion("parent_id between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andParentIdNotBetween(Integer value1, Integer value2) { + addCriterion("parent_id not between", value1, value2, "parentId"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andTypeIdIsNull() { + addCriterion("type_id is null"); + return (Criteria) this; + } + + public Criteria andTypeIdIsNotNull() { + addCriterion("type_id is not null"); + return (Criteria) this; + } + + public Criteria andTypeIdEqualTo(Integer value) { + addCriterion("type_id =", value, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdNotEqualTo(Integer value) { + addCriterion("type_id <>", value, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdGreaterThan(Integer value) { + addCriterion("type_id >", value, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdGreaterThanOrEqualTo(Integer value) { + addCriterion("type_id >=", value, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdLessThan(Integer value) { + addCriterion("type_id <", value, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdLessThanOrEqualTo(Integer value) { + addCriterion("type_id <=", value, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdIn(List values) { + addCriterion("type_id in", values, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdNotIn(List values) { + addCriterion("type_id not in", values, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdBetween(Integer value1, Integer value2) { + addCriterion("type_id between", value1, value2, "typeId"); + return (Criteria) this; + } + + public Criteria andTypeIdNotBetween(Integer value1, Integer value2) { + addCriterion("type_id not between", value1, value2, "typeId"); + return (Criteria) this; + } + + public Criteria andIsEquipmentIsNull() { + addCriterion("is_equipment is null"); + return (Criteria) this; + } + + public Criteria andIsEquipmentIsNotNull() { + addCriterion("is_equipment is not null"); + return (Criteria) this; + } + + public Criteria andIsEquipmentEqualTo(Integer value) { + addCriterion("is_equipment =", value, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentNotEqualTo(Integer value) { + addCriterion("is_equipment <>", value, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentGreaterThan(Integer value) { + addCriterion("is_equipment >", value, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentGreaterThanOrEqualTo(Integer value) { + addCriterion("is_equipment >=", value, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentLessThan(Integer value) { + addCriterion("is_equipment <", value, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentLessThanOrEqualTo(Integer value) { + addCriterion("is_equipment <=", value, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentIn(List values) { + addCriterion("is_equipment in", values, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentNotIn(List values) { + addCriterion("is_equipment not in", values, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentBetween(Integer value1, Integer value2) { + addCriterion("is_equipment between", value1, value2, "isEquipment"); + return (Criteria) this; + } + + public Criteria andIsEquipmentNotBetween(Integer value1, Integer value2) { + addCriterion("is_equipment not between", value1, value2, "isEquipment"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeploy.java a/src/main/java/com/objecteye/entity/SyDeploy.java new file mode 100644 index 0000000..aafda11 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeploy.java @@ -0,0 +1,198 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyDeploy implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + + @ApiModelProperty(value = "布控任务名称") + private String name; + + @ApiModelProperty(value = "布控开始时间") + private String startTime; + + @ApiModelProperty(value = "布控结束时间") + private String endTime; + + @ApiModelProperty(value = "报警阈值") + private Float thresld; + + private String description; + + @ApiModelProperty(value = "布控设备id以逗号分隔") + private String deployEquip; + + @ApiModelProperty(value = "布控库") + private String deployLib; + + @ApiModelProperty(value = "布控类型") + private Integer deployType; + + @ApiModelProperty(value = "创建时间") + private String createDate; + + @ApiModelProperty(value = "布控状态(0工作中/1已撤销)") + private Integer status; + + private Integer isDelete; + + @ApiModelProperty(value = "1表示单体布控,0表示不是") + private Integer singlemonitor; + + @ApiModelProperty(value = "人像/车辆id") + private String singleId; + /** + * 设备名称 + */ + private String areaName; + + private static final long serialVersionUID = 1L; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public Float getThresld() { + return thresld; + } + + public void setThresld(Float thresld) { + this.thresld = thresld; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getDeployEquip() { + return deployEquip; + } + + public void setDeployEquip(String deployEquip) { + this.deployEquip = deployEquip; + } + + public String getDeployLib() { + return deployLib; + } + + public void setDeployLib(String deployLib) { + this.deployLib = deployLib; + } + + public Integer getDeployType() { + return deployType; + } + + public void setDeployType(Integer deployType) { + this.deployType = deployType; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public Integer getSinglemonitor() { + return singlemonitor; + } + + public void setSinglemonitor(Integer singlemonitor) { + this.singlemonitor = singlemonitor; + } + + public String getSingleId() { + return singleId; + } + + public void setSingleId(String singleId) { + this.singleId = singleId; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", name=").append(name); + sb.append(", startTime=").append(startTime); + sb.append(", endTime=").append(endTime); + sb.append(", thresld=").append(thresld); + sb.append(", description=").append(description); + sb.append(", deployEquip=").append(deployEquip); + sb.append(", deployLib=").append(deployLib); + sb.append(", deployType=").append(deployType); + sb.append(", createDate=").append(createDate); + sb.append(", status=").append(status); + sb.append(", isDelete=").append(isDelete); + sb.append(", singlemonitor=").append(singlemonitor); + sb.append(", singleId=").append(singleId); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeployEquipment.java a/src/main/java/com/objecteye/entity/SyDeployEquipment.java new file mode 100644 index 0000000..efbf715 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeployEquipment.java @@ -0,0 +1,68 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyDeployEquipment implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + + @ApiModelProperty(value = "设备外键") + private Integer eid; + + @ApiModelProperty(value = "布控表外键") + private Integer did; + + @ApiModelProperty(value = "是否删除") + private Integer isDelete; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getEid() { + return eid; + } + + public void setEid(Integer eid) { + this.eid = eid; + } + + public Integer getDid() { + return did; + } + + public void setDid(Integer did) { + this.did = did; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", eid=").append(eid); + sb.append(", did=").append(did); + sb.append(", isDelete=").append(isDelete); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeployEquipmentExample.java a/src/main/java/com/objecteye/entity/SyDeployEquipmentExample.java new file mode 100644 index 0000000..f932c49 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeployEquipmentExample.java @@ -0,0 +1,440 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyDeployEquipmentExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyDeployEquipmentExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andEidIsNull() { + addCriterion("eid is null"); + return (Criteria) this; + } + + public Criteria andEidIsNotNull() { + addCriterion("eid is not null"); + return (Criteria) this; + } + + public Criteria andEidEqualTo(Integer value) { + addCriterion("eid =", value, "eid"); + return (Criteria) this; + } + + public Criteria andEidNotEqualTo(Integer value) { + addCriterion("eid <>", value, "eid"); + return (Criteria) this; + } + + public Criteria andEidGreaterThan(Integer value) { + addCriterion("eid >", value, "eid"); + return (Criteria) this; + } + + public Criteria andEidGreaterThanOrEqualTo(Integer value) { + addCriterion("eid >=", value, "eid"); + return (Criteria) this; + } + + public Criteria andEidLessThan(Integer value) { + addCriterion("eid <", value, "eid"); + return (Criteria) this; + } + + public Criteria andEidLessThanOrEqualTo(Integer value) { + addCriterion("eid <=", value, "eid"); + return (Criteria) this; + } + + public Criteria andEidIn(List values) { + addCriterion("eid in", values, "eid"); + return (Criteria) this; + } + + public Criteria andEidNotIn(List values) { + addCriterion("eid not in", values, "eid"); + return (Criteria) this; + } + + public Criteria andEidBetween(Integer value1, Integer value2) { + addCriterion("eid between", value1, value2, "eid"); + return (Criteria) this; + } + + public Criteria andEidNotBetween(Integer value1, Integer value2) { + addCriterion("eid not between", value1, value2, "eid"); + return (Criteria) this; + } + + public Criteria andDidIsNull() { + addCriterion("did is null"); + return (Criteria) this; + } + + public Criteria andDidIsNotNull() { + addCriterion("did is not null"); + return (Criteria) this; + } + + public Criteria andDidEqualTo(Integer value) { + addCriterion("did =", value, "did"); + return (Criteria) this; + } + + public Criteria andDidNotEqualTo(Integer value) { + addCriterion("did <>", value, "did"); + return (Criteria) this; + } + + public Criteria andDidGreaterThan(Integer value) { + addCriterion("did >", value, "did"); + return (Criteria) this; + } + + public Criteria andDidGreaterThanOrEqualTo(Integer value) { + addCriterion("did >=", value, "did"); + return (Criteria) this; + } + + public Criteria andDidLessThan(Integer value) { + addCriterion("did <", value, "did"); + return (Criteria) this; + } + + public Criteria andDidLessThanOrEqualTo(Integer value) { + addCriterion("did <=", value, "did"); + return (Criteria) this; + } + + public Criteria andDidIn(List values) { + addCriterion("did in", values, "did"); + return (Criteria) this; + } + + public Criteria andDidNotIn(List values) { + addCriterion("did not in", values, "did"); + return (Criteria) this; + } + + public Criteria andDidBetween(Integer value1, Integer value2) { + addCriterion("did between", value1, value2, "did"); + return (Criteria) this; + } + + public Criteria andDidNotBetween(Integer value1, Integer value2) { + addCriterion("did not between", value1, value2, "did"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeployExample.java a/src/main/java/com/objecteye/entity/SyDeployExample.java new file mode 100644 index 0000000..23adc05 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeployExample.java @@ -0,0 +1,1120 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyDeployExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyDeployExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andStartTimeIsNull() { + addCriterion("start_time is null"); + return (Criteria) this; + } + + public Criteria andStartTimeIsNotNull() { + addCriterion("start_time is not null"); + return (Criteria) this; + } + + public Criteria andStartTimeEqualTo(String value) { + addCriterion("start_time =", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeNotEqualTo(String value) { + addCriterion("start_time <>", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeGreaterThan(String value) { + addCriterion("start_time >", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeGreaterThanOrEqualTo(String value) { + addCriterion("start_time >=", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeLessThan(String value) { + addCriterion("start_time <", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeLessThanOrEqualTo(String value) { + addCriterion("start_time <=", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeLike(String value) { + addCriterion("start_time like", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeNotLike(String value) { + addCriterion("start_time not like", value, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeIn(List values) { + addCriterion("start_time in", values, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeNotIn(List values) { + addCriterion("start_time not in", values, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeBetween(String value1, String value2) { + addCriterion("start_time between", value1, value2, "startTime"); + return (Criteria) this; + } + + public Criteria andStartTimeNotBetween(String value1, String value2) { + addCriterion("start_time not between", value1, value2, "startTime"); + return (Criteria) this; + } + + public Criteria andEndTimeIsNull() { + addCriterion("end_time is null"); + return (Criteria) this; + } + + public Criteria andEndTimeIsNotNull() { + addCriterion("end_time is not null"); + return (Criteria) this; + } + + public Criteria andEndTimeEqualTo(String value) { + addCriterion("end_time =", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeNotEqualTo(String value) { + addCriterion("end_time <>", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeGreaterThan(String value) { + addCriterion("end_time >", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeGreaterThanOrEqualTo(String value) { + addCriterion("end_time >=", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeLessThan(String value) { + addCriterion("end_time <", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeLessThanOrEqualTo(String value) { + addCriterion("end_time <=", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeLike(String value) { + addCriterion("end_time like", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeNotLike(String value) { + addCriterion("end_time not like", value, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeIn(List values) { + addCriterion("end_time in", values, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeNotIn(List values) { + addCriterion("end_time not in", values, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeBetween(String value1, String value2) { + addCriterion("end_time between", value1, value2, "endTime"); + return (Criteria) this; + } + + public Criteria andEndTimeNotBetween(String value1, String value2) { + addCriterion("end_time not between", value1, value2, "endTime"); + return (Criteria) this; + } + + public Criteria andThresldIsNull() { + addCriterion("thresld is null"); + return (Criteria) this; + } + + public Criteria andThresldIsNotNull() { + addCriterion("thresld is not null"); + return (Criteria) this; + } + + public Criteria andThresldEqualTo(Float value) { + addCriterion("thresld =", value, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldNotEqualTo(Float value) { + addCriterion("thresld <>", value, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldGreaterThan(Float value) { + addCriterion("thresld >", value, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldGreaterThanOrEqualTo(Float value) { + addCriterion("thresld >=", value, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldLessThan(Float value) { + addCriterion("thresld <", value, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldLessThanOrEqualTo(Float value) { + addCriterion("thresld <=", value, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldIn(List values) { + addCriterion("thresld in", values, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldNotIn(List values) { + addCriterion("thresld not in", values, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldBetween(Float value1, Float value2) { + addCriterion("thresld between", value1, value2, "thresld"); + return (Criteria) this; + } + + public Criteria andThresldNotBetween(Float value1, Float value2) { + addCriterion("thresld not between", value1, value2, "thresld"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDeployEquipIsNull() { + addCriterion("deploy_equip is null"); + return (Criteria) this; + } + + public Criteria andDeployEquipIsNotNull() { + addCriterion("deploy_equip is not null"); + return (Criteria) this; + } + + public Criteria andDeployEquipEqualTo(String value) { + addCriterion("deploy_equip =", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipNotEqualTo(String value) { + addCriterion("deploy_equip <>", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipGreaterThan(String value) { + addCriterion("deploy_equip >", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipGreaterThanOrEqualTo(String value) { + addCriterion("deploy_equip >=", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipLessThan(String value) { + addCriterion("deploy_equip <", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipLessThanOrEqualTo(String value) { + addCriterion("deploy_equip <=", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipLike(String value) { + addCriterion("deploy_equip like", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipNotLike(String value) { + addCriterion("deploy_equip not like", value, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipIn(List values) { + addCriterion("deploy_equip in", values, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipNotIn(List values) { + addCriterion("deploy_equip not in", values, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipBetween(String value1, String value2) { + addCriterion("deploy_equip between", value1, value2, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployEquipNotBetween(String value1, String value2) { + addCriterion("deploy_equip not between", value1, value2, "deployEquip"); + return (Criteria) this; + } + + public Criteria andDeployLibIsNull() { + addCriterion("deploy_lib is null"); + return (Criteria) this; + } + + public Criteria andDeployLibIsNotNull() { + addCriterion("deploy_lib is not null"); + return (Criteria) this; + } + + public Criteria andDeployLibEqualTo(String value) { + addCriterion("deploy_lib =", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibNotEqualTo(String value) { + addCriterion("deploy_lib <>", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibGreaterThan(String value) { + addCriterion("deploy_lib >", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibGreaterThanOrEqualTo(String value) { + addCriterion("deploy_lib >=", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibLessThan(String value) { + addCriterion("deploy_lib <", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibLessThanOrEqualTo(String value) { + addCriterion("deploy_lib <=", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibLike(String value) { + addCriterion("deploy_lib like", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibNotLike(String value) { + addCriterion("deploy_lib not like", value, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibIn(List values) { + addCriterion("deploy_lib in", values, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibNotIn(List values) { + addCriterion("deploy_lib not in", values, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibBetween(String value1, String value2) { + addCriterion("deploy_lib between", value1, value2, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployLibNotBetween(String value1, String value2) { + addCriterion("deploy_lib not between", value1, value2, "deployLib"); + return (Criteria) this; + } + + public Criteria andDeployTypeIsNull() { + addCriterion("deploy_type is null"); + return (Criteria) this; + } + + public Criteria andDeployTypeIsNotNull() { + addCriterion("deploy_type is not null"); + return (Criteria) this; + } + + public Criteria andDeployTypeEqualTo(Integer value) { + addCriterion("deploy_type =", value, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeNotEqualTo(Integer value) { + addCriterion("deploy_type <>", value, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeGreaterThan(Integer value) { + addCriterion("deploy_type >", value, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("deploy_type >=", value, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeLessThan(Integer value) { + addCriterion("deploy_type <", value, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeLessThanOrEqualTo(Integer value) { + addCriterion("deploy_type <=", value, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeIn(List values) { + addCriterion("deploy_type in", values, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeNotIn(List values) { + addCriterion("deploy_type not in", values, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeBetween(Integer value1, Integer value2) { + addCriterion("deploy_type between", value1, value2, "deployType"); + return (Criteria) this; + } + + public Criteria andDeployTypeNotBetween(Integer value1, Integer value2) { + addCriterion("deploy_type not between", value1, value2, "deployType"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Integer value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Integer value1, Integer value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andSinglemonitorIsNull() { + addCriterion("singleMonitor is null"); + return (Criteria) this; + } + + public Criteria andSinglemonitorIsNotNull() { + addCriterion("singleMonitor is not null"); + return (Criteria) this; + } + + public Criteria andSinglemonitorEqualTo(Integer value) { + addCriterion("singleMonitor =", value, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorNotEqualTo(Integer value) { + addCriterion("singleMonitor <>", value, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorGreaterThan(Integer value) { + addCriterion("singleMonitor >", value, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorGreaterThanOrEqualTo(Integer value) { + addCriterion("singleMonitor >=", value, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorLessThan(Integer value) { + addCriterion("singleMonitor <", value, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorLessThanOrEqualTo(Integer value) { + addCriterion("singleMonitor <=", value, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorIn(List values) { + addCriterion("singleMonitor in", values, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorNotIn(List values) { + addCriterion("singleMonitor not in", values, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorBetween(Integer value1, Integer value2) { + addCriterion("singleMonitor between", value1, value2, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSinglemonitorNotBetween(Integer value1, Integer value2) { + addCriterion("singleMonitor not between", value1, value2, "singlemonitor"); + return (Criteria) this; + } + + public Criteria andSingleIdIsNull() { + addCriterion("single_id is null"); + return (Criteria) this; + } + + public Criteria andSingleIdIsNotNull() { + addCriterion("single_id is not null"); + return (Criteria) this; + } + + public Criteria andSingleIdEqualTo(String value) { + addCriterion("single_id =", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdNotEqualTo(String value) { + addCriterion("single_id <>", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdGreaterThan(String value) { + addCriterion("single_id >", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdGreaterThanOrEqualTo(String value) { + addCriterion("single_id >=", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdLessThan(String value) { + addCriterion("single_id <", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdLessThanOrEqualTo(String value) { + addCriterion("single_id <=", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdLike(String value) { + addCriterion("single_id like", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdNotLike(String value) { + addCriterion("single_id not like", value, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdIn(List values) { + addCriterion("single_id in", values, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdNotIn(List values) { + addCriterion("single_id not in", values, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdBetween(String value1, String value2) { + addCriterion("single_id between", value1, value2, "singleId"); + return (Criteria) this; + } + + public Criteria andSingleIdNotBetween(String value1, String value2) { + addCriterion("single_id not between", value1, value2, "singleId"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeployFeature.java a/src/main/java/com/objecteye/entity/SyDeployFeature.java new file mode 100644 index 0000000..f192ef8 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeployFeature.java @@ -0,0 +1,67 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyDeployFeature implements Serializable { + private Integer id; + + @ApiModelProperty(value = "布控外键") + private Integer did; + + @ApiModelProperty(value = "人像库外键") + private Integer fid; + + @ApiModelProperty(value = "是否删除") + private Integer isDelete; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getDid() { + return did; + } + + public void setDid(Integer did) { + this.did = did; + } + + public Integer getFid() { + return fid; + } + + public void setFid(Integer fid) { + this.fid = fid; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", did=").append(did); + sb.append(", fid=").append(fid); + sb.append(", isDelete=").append(isDelete); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeployFeatureExample.java a/src/main/java/com/objecteye/entity/SyDeployFeatureExample.java new file mode 100644 index 0000000..79dfc63 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeployFeatureExample.java @@ -0,0 +1,440 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyDeployFeatureExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyDeployFeatureExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andDidIsNull() { + addCriterion("did is null"); + return (Criteria) this; + } + + public Criteria andDidIsNotNull() { + addCriterion("did is not null"); + return (Criteria) this; + } + + public Criteria andDidEqualTo(Integer value) { + addCriterion("did =", value, "did"); + return (Criteria) this; + } + + public Criteria andDidNotEqualTo(Integer value) { + addCriterion("did <>", value, "did"); + return (Criteria) this; + } + + public Criteria andDidGreaterThan(Integer value) { + addCriterion("did >", value, "did"); + return (Criteria) this; + } + + public Criteria andDidGreaterThanOrEqualTo(Integer value) { + addCriterion("did >=", value, "did"); + return (Criteria) this; + } + + public Criteria andDidLessThan(Integer value) { + addCriterion("did <", value, "did"); + return (Criteria) this; + } + + public Criteria andDidLessThanOrEqualTo(Integer value) { + addCriterion("did <=", value, "did"); + return (Criteria) this; + } + + public Criteria andDidIn(List values) { + addCriterion("did in", values, "did"); + return (Criteria) this; + } + + public Criteria andDidNotIn(List values) { + addCriterion("did not in", values, "did"); + return (Criteria) this; + } + + public Criteria andDidBetween(Integer value1, Integer value2) { + addCriterion("did between", value1, value2, "did"); + return (Criteria) this; + } + + public Criteria andDidNotBetween(Integer value1, Integer value2) { + addCriterion("did not between", value1, value2, "did"); + return (Criteria) this; + } + + public Criteria andFidIsNull() { + addCriterion("fid is null"); + return (Criteria) this; + } + + public Criteria andFidIsNotNull() { + addCriterion("fid is not null"); + return (Criteria) this; + } + + public Criteria andFidEqualTo(Integer value) { + addCriterion("fid =", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidNotEqualTo(Integer value) { + addCriterion("fid <>", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidGreaterThan(Integer value) { + addCriterion("fid >", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidGreaterThanOrEqualTo(Integer value) { + addCriterion("fid >=", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidLessThan(Integer value) { + addCriterion("fid <", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidLessThanOrEqualTo(Integer value) { + addCriterion("fid <=", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidIn(List values) { + addCriterion("fid in", values, "fid"); + return (Criteria) this; + } + + public Criteria andFidNotIn(List values) { + addCriterion("fid not in", values, "fid"); + return (Criteria) this; + } + + public Criteria andFidBetween(Integer value1, Integer value2) { + addCriterion("fid between", value1, value2, "fid"); + return (Criteria) this; + } + + public Criteria andFidNotBetween(Integer value1, Integer value2) { + addCriterion("fid not between", value1, value2, "fid"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyDeployParam.java a/src/main/java/com/objecteye/entity/SyDeployParam.java new file mode 100644 index 0000000..507ccaf --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyDeployParam.java @@ -0,0 +1,23 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SyDeployParam implements Serializable { + + private String[] featureIds; + private int[] equipmentIds; + private String name; + private String startTime; + private String endTime; + private float detectThresld; + private String description; + private int deployType; + +} diff --git b/src/main/java/com/objecteye/entity/SyEquipment.java a/src/main/java/com/objecteye/entity/SyEquipment.java new file mode 100644 index 0000000..c2d94a6 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyEquipment.java @@ -0,0 +1,257 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyEquipment implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + + @ApiModelProperty(value = "设备名") + private String equipmentName; + + @ApiModelProperty(value = "设备ip") + private String equipmentIp; + + @ApiModelProperty(value = "rtsp流地址") + private String rtspUrl; + + @ApiModelProperty(value = "经度") + private String longitude; + + @ApiModelProperty(value = "纬度") + private String latitude; + + @ApiModelProperty(value = "朝向") + private String orientation; + + @ApiModelProperty(value = "用户名") + private String username; + + @ApiModelProperty(value = "用户密码") + private String password; + + @ApiModelProperty(value = "设备端口") + private String equipmentPort; + + @ApiModelProperty(value = "网络端口") + private String intentPort; + + @ApiModelProperty(value = "厂商") + private String vendor; + + @ApiModelProperty(value = "描述") + private String description; + + private String createDate; + + @ApiModelProperty(value = "更新时间") + private String updateDate; + + private Integer isDelete; + + private Integer equipmentType; + + @ApiModelProperty(value = "设备状态") + private Integer status; + + @ApiModelProperty(value = "区域外键") + private Integer aid; + + @ApiModelProperty(value = "场所") + private String place; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getEquipmentIp() { + return equipmentIp; + } + + public void setEquipmentIp(String equipmentIp) { + this.equipmentIp = equipmentIp; + } + + public String getRtspUrl() { + return rtspUrl; + } + + public void setRtspUrl(String rtspUrl) { + this.rtspUrl = rtspUrl; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getOrientation() { + return orientation; + } + + public void setOrientation(String orientation) { + this.orientation = orientation; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getEquipmentPort() { + return equipmentPort; + } + + public void setEquipmentPort(String equipmentPort) { + this.equipmentPort = equipmentPort; + } + + public String getIntentPort() { + return intentPort; + } + + public void setIntentPort(String intentPort) { + this.intentPort = intentPort; + } + + public String getVendor() { + return vendor; + } + + public void setVendor(String vendor) { + this.vendor = vendor; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public Integer getEquipmentType() { + return equipmentType; + } + + public void setEquipmentType(Integer equipmentType) { + this.equipmentType = equipmentType; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getAid() { + return aid; + } + + public void setAid(Integer aid) { + this.aid = aid; + } + + public String getPlace() { + return place; + } + + public void setPlace(String place) { + this.place = place; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", equipmentName=").append(equipmentName); + sb.append(", equipmentIp=").append(equipmentIp); + sb.append(", rtspUrl=").append(rtspUrl); + sb.append(", longitude=").append(longitude); + sb.append(", latitude=").append(latitude); + sb.append(", orientation=").append(orientation); + sb.append(", username=").append(username); + sb.append(", password=").append(password); + sb.append(", equipmentPort=").append(equipmentPort); + sb.append(", intentPort=").append(intentPort); + sb.append(", vendor=").append(vendor); + sb.append(", description=").append(description); + sb.append(", createDate=").append(createDate); + sb.append(", updateDate=").append(updateDate); + sb.append(", isDelete=").append(isDelete); + sb.append(", equipmentType=").append(equipmentType); + sb.append(", status=").append(status); + sb.append(", aid=").append(aid); + sb.append(", place=").append(place); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyEquipmentExample.java a/src/main/java/com/objecteye/entity/SyEquipmentExample.java new file mode 100644 index 0000000..4ef5854 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyEquipmentExample.java @@ -0,0 +1,1550 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyEquipmentExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyEquipmentExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andEquipmentNameIsNull() { + addCriterion("equipment_name is null"); + return (Criteria) this; + } + + public Criteria andEquipmentNameIsNotNull() { + addCriterion("equipment_name is not null"); + return (Criteria) this; + } + + public Criteria andEquipmentNameEqualTo(String value) { + addCriterion("equipment_name =", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameNotEqualTo(String value) { + addCriterion("equipment_name <>", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameGreaterThan(String value) { + addCriterion("equipment_name >", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameGreaterThanOrEqualTo(String value) { + addCriterion("equipment_name >=", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameLessThan(String value) { + addCriterion("equipment_name <", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameLessThanOrEqualTo(String value) { + addCriterion("equipment_name <=", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameLike(String value) { + addCriterion("equipment_name like", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameNotLike(String value) { + addCriterion("equipment_name not like", value, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameIn(List values) { + addCriterion("equipment_name in", values, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameNotIn(List values) { + addCriterion("equipment_name not in", values, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameBetween(String value1, String value2) { + addCriterion("equipment_name between", value1, value2, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentNameNotBetween(String value1, String value2) { + addCriterion("equipment_name not between", value1, value2, "equipmentName"); + return (Criteria) this; + } + + public Criteria andEquipmentIpIsNull() { + addCriterion("equipment_ip is null"); + return (Criteria) this; + } + + public Criteria andEquipmentIpIsNotNull() { + addCriterion("equipment_ip is not null"); + return (Criteria) this; + } + + public Criteria andEquipmentIpEqualTo(String value) { + addCriterion("equipment_ip =", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpNotEqualTo(String value) { + addCriterion("equipment_ip <>", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpGreaterThan(String value) { + addCriterion("equipment_ip >", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpGreaterThanOrEqualTo(String value) { + addCriterion("equipment_ip >=", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpLessThan(String value) { + addCriterion("equipment_ip <", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpLessThanOrEqualTo(String value) { + addCriterion("equipment_ip <=", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpLike(String value) { + addCriterion("equipment_ip like", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpNotLike(String value) { + addCriterion("equipment_ip not like", value, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpIn(List values) { + addCriterion("equipment_ip in", values, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpNotIn(List values) { + addCriterion("equipment_ip not in", values, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpBetween(String value1, String value2) { + addCriterion("equipment_ip between", value1, value2, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andEquipmentIpNotBetween(String value1, String value2) { + addCriterion("equipment_ip not between", value1, value2, "equipmentIp"); + return (Criteria) this; + } + + public Criteria andRtspUrlIsNull() { + addCriterion("rtsp_url is null"); + return (Criteria) this; + } + + public Criteria andRtspUrlIsNotNull() { + addCriterion("rtsp_url is not null"); + return (Criteria) this; + } + + public Criteria andRtspUrlEqualTo(String value) { + addCriterion("rtsp_url =", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlNotEqualTo(String value) { + addCriterion("rtsp_url <>", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlGreaterThan(String value) { + addCriterion("rtsp_url >", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlGreaterThanOrEqualTo(String value) { + addCriterion("rtsp_url >=", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlLessThan(String value) { + addCriterion("rtsp_url <", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlLessThanOrEqualTo(String value) { + addCriterion("rtsp_url <=", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlLike(String value) { + addCriterion("rtsp_url like", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlNotLike(String value) { + addCriterion("rtsp_url not like", value, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlIn(List values) { + addCriterion("rtsp_url in", values, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlNotIn(List values) { + addCriterion("rtsp_url not in", values, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlBetween(String value1, String value2) { + addCriterion("rtsp_url between", value1, value2, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andRtspUrlNotBetween(String value1, String value2) { + addCriterion("rtsp_url not between", value1, value2, "rtspUrl"); + return (Criteria) this; + } + + public Criteria andLongitudeIsNull() { + addCriterion("longitude is null"); + return (Criteria) this; + } + + public Criteria andLongitudeIsNotNull() { + addCriterion("longitude is not null"); + return (Criteria) this; + } + + public Criteria andLongitudeEqualTo(String value) { + addCriterion("longitude =", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeNotEqualTo(String value) { + addCriterion("longitude <>", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeGreaterThan(String value) { + addCriterion("longitude >", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeGreaterThanOrEqualTo(String value) { + addCriterion("longitude >=", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeLessThan(String value) { + addCriterion("longitude <", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeLessThanOrEqualTo(String value) { + addCriterion("longitude <=", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeLike(String value) { + addCriterion("longitude like", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeNotLike(String value) { + addCriterion("longitude not like", value, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeIn(List values) { + addCriterion("longitude in", values, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeNotIn(List values) { + addCriterion("longitude not in", values, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeBetween(String value1, String value2) { + addCriterion("longitude between", value1, value2, "longitude"); + return (Criteria) this; + } + + public Criteria andLongitudeNotBetween(String value1, String value2) { + addCriterion("longitude not between", value1, value2, "longitude"); + return (Criteria) this; + } + + public Criteria andLatitudeIsNull() { + addCriterion("latitude is null"); + return (Criteria) this; + } + + public Criteria andLatitudeIsNotNull() { + addCriterion("latitude is not null"); + return (Criteria) this; + } + + public Criteria andLatitudeEqualTo(String value) { + addCriterion("latitude =", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeNotEqualTo(String value) { + addCriterion("latitude <>", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeGreaterThan(String value) { + addCriterion("latitude >", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeGreaterThanOrEqualTo(String value) { + addCriterion("latitude >=", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeLessThan(String value) { + addCriterion("latitude <", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeLessThanOrEqualTo(String value) { + addCriterion("latitude <=", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeLike(String value) { + addCriterion("latitude like", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeNotLike(String value) { + addCriterion("latitude not like", value, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeIn(List values) { + addCriterion("latitude in", values, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeNotIn(List values) { + addCriterion("latitude not in", values, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeBetween(String value1, String value2) { + addCriterion("latitude between", value1, value2, "latitude"); + return (Criteria) this; + } + + public Criteria andLatitudeNotBetween(String value1, String value2) { + addCriterion("latitude not between", value1, value2, "latitude"); + return (Criteria) this; + } + + public Criteria andOrientationIsNull() { + addCriterion("orientation is null"); + return (Criteria) this; + } + + public Criteria andOrientationIsNotNull() { + addCriterion("orientation is not null"); + return (Criteria) this; + } + + public Criteria andOrientationEqualTo(String value) { + addCriterion("orientation =", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationNotEqualTo(String value) { + addCriterion("orientation <>", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationGreaterThan(String value) { + addCriterion("orientation >", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationGreaterThanOrEqualTo(String value) { + addCriterion("orientation >=", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationLessThan(String value) { + addCriterion("orientation <", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationLessThanOrEqualTo(String value) { + addCriterion("orientation <=", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationLike(String value) { + addCriterion("orientation like", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationNotLike(String value) { + addCriterion("orientation not like", value, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationIn(List values) { + addCriterion("orientation in", values, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationNotIn(List values) { + addCriterion("orientation not in", values, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationBetween(String value1, String value2) { + addCriterion("orientation between", value1, value2, "orientation"); + return (Criteria) this; + } + + public Criteria andOrientationNotBetween(String value1, String value2) { + addCriterion("orientation not between", value1, value2, "orientation"); + return (Criteria) this; + } + + public Criteria andUsernameIsNull() { + addCriterion("username is null"); + return (Criteria) this; + } + + public Criteria andUsernameIsNotNull() { + addCriterion("username is not null"); + return (Criteria) this; + } + + public Criteria andUsernameEqualTo(String value) { + addCriterion("username =", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotEqualTo(String value) { + addCriterion("username <>", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameGreaterThan(String value) { + addCriterion("username >", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameGreaterThanOrEqualTo(String value) { + addCriterion("username >=", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLessThan(String value) { + addCriterion("username <", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLessThanOrEqualTo(String value) { + addCriterion("username <=", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLike(String value) { + addCriterion("username like", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotLike(String value) { + addCriterion("username not like", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameIn(List values) { + addCriterion("username in", values, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotIn(List values) { + addCriterion("username not in", values, "username"); + return (Criteria) this; + } + + public Criteria andUsernameBetween(String value1, String value2) { + addCriterion("username between", value1, value2, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotBetween(String value1, String value2) { + addCriterion("username not between", value1, value2, "username"); + return (Criteria) this; + } + + public Criteria andPasswordIsNull() { + addCriterion("password is null"); + return (Criteria) this; + } + + public Criteria andPasswordIsNotNull() { + addCriterion("password is not null"); + return (Criteria) this; + } + + public Criteria andPasswordEqualTo(String value) { + addCriterion("password =", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotEqualTo(String value) { + addCriterion("password <>", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordGreaterThan(String value) { + addCriterion("password >", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordGreaterThanOrEqualTo(String value) { + addCriterion("password >=", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLessThan(String value) { + addCriterion("password <", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLessThanOrEqualTo(String value) { + addCriterion("password <=", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLike(String value) { + addCriterion("password like", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotLike(String value) { + addCriterion("password not like", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordIn(List values) { + addCriterion("password in", values, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotIn(List values) { + addCriterion("password not in", values, "password"); + return (Criteria) this; + } + + public Criteria andPasswordBetween(String value1, String value2) { + addCriterion("password between", value1, value2, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotBetween(String value1, String value2) { + addCriterion("password not between", value1, value2, "password"); + return (Criteria) this; + } + + public Criteria andEquipmentPortIsNull() { + addCriterion("equipment_port is null"); + return (Criteria) this; + } + + public Criteria andEquipmentPortIsNotNull() { + addCriterion("equipment_port is not null"); + return (Criteria) this; + } + + public Criteria andEquipmentPortEqualTo(String value) { + addCriterion("equipment_port =", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortNotEqualTo(String value) { + addCriterion("equipment_port <>", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortGreaterThan(String value) { + addCriterion("equipment_port >", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortGreaterThanOrEqualTo(String value) { + addCriterion("equipment_port >=", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortLessThan(String value) { + addCriterion("equipment_port <", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortLessThanOrEqualTo(String value) { + addCriterion("equipment_port <=", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortLike(String value) { + addCriterion("equipment_port like", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortNotLike(String value) { + addCriterion("equipment_port not like", value, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortIn(List values) { + addCriterion("equipment_port in", values, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortNotIn(List values) { + addCriterion("equipment_port not in", values, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortBetween(String value1, String value2) { + addCriterion("equipment_port between", value1, value2, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andEquipmentPortNotBetween(String value1, String value2) { + addCriterion("equipment_port not between", value1, value2, "equipmentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortIsNull() { + addCriterion("intent_port is null"); + return (Criteria) this; + } + + public Criteria andIntentPortIsNotNull() { + addCriterion("intent_port is not null"); + return (Criteria) this; + } + + public Criteria andIntentPortEqualTo(String value) { + addCriterion("intent_port =", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortNotEqualTo(String value) { + addCriterion("intent_port <>", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortGreaterThan(String value) { + addCriterion("intent_port >", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortGreaterThanOrEqualTo(String value) { + addCriterion("intent_port >=", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortLessThan(String value) { + addCriterion("intent_port <", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortLessThanOrEqualTo(String value) { + addCriterion("intent_port <=", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortLike(String value) { + addCriterion("intent_port like", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortNotLike(String value) { + addCriterion("intent_port not like", value, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortIn(List values) { + addCriterion("intent_port in", values, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortNotIn(List values) { + addCriterion("intent_port not in", values, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortBetween(String value1, String value2) { + addCriterion("intent_port between", value1, value2, "intentPort"); + return (Criteria) this; + } + + public Criteria andIntentPortNotBetween(String value1, String value2) { + addCriterion("intent_port not between", value1, value2, "intentPort"); + return (Criteria) this; + } + + public Criteria andVendorIsNull() { + addCriterion("vendor is null"); + return (Criteria) this; + } + + public Criteria andVendorIsNotNull() { + addCriterion("vendor is not null"); + return (Criteria) this; + } + + public Criteria andVendorEqualTo(String value) { + addCriterion("vendor =", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorNotEqualTo(String value) { + addCriterion("vendor <>", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorGreaterThan(String value) { + addCriterion("vendor >", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorGreaterThanOrEqualTo(String value) { + addCriterion("vendor >=", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorLessThan(String value) { + addCriterion("vendor <", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorLessThanOrEqualTo(String value) { + addCriterion("vendor <=", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorLike(String value) { + addCriterion("vendor like", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorNotLike(String value) { + addCriterion("vendor not like", value, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorIn(List values) { + addCriterion("vendor in", values, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorNotIn(List values) { + addCriterion("vendor not in", values, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorBetween(String value1, String value2) { + addCriterion("vendor between", value1, value2, "vendor"); + return (Criteria) this; + } + + public Criteria andVendorNotBetween(String value1, String value2) { + addCriterion("vendor not between", value1, value2, "vendor"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNull() { + addCriterion("update_date is null"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNotNull() { + addCriterion("update_date is not null"); + return (Criteria) this; + } + + public Criteria andUpdateDateEqualTo(String value) { + addCriterion("update_date =", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotEqualTo(String value) { + addCriterion("update_date <>", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThan(String value) { + addCriterion("update_date >", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThanOrEqualTo(String value) { + addCriterion("update_date >=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThan(String value) { + addCriterion("update_date <", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThanOrEqualTo(String value) { + addCriterion("update_date <=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLike(String value) { + addCriterion("update_date like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotLike(String value) { + addCriterion("update_date not like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIn(List values) { + addCriterion("update_date in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotIn(List values) { + addCriterion("update_date not in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateBetween(String value1, String value2) { + addCriterion("update_date between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotBetween(String value1, String value2) { + addCriterion("update_date not between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeIsNull() { + addCriterion("equipment_type is null"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeIsNotNull() { + addCriterion("equipment_type is not null"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeEqualTo(Integer value) { + addCriterion("equipment_type =", value, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeNotEqualTo(Integer value) { + addCriterion("equipment_type <>", value, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeGreaterThan(Integer value) { + addCriterion("equipment_type >", value, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeGreaterThanOrEqualTo(Integer value) { + addCriterion("equipment_type >=", value, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeLessThan(Integer value) { + addCriterion("equipment_type <", value, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeLessThanOrEqualTo(Integer value) { + addCriterion("equipment_type <=", value, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeIn(List values) { + addCriterion("equipment_type in", values, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeNotIn(List values) { + addCriterion("equipment_type not in", values, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeBetween(Integer value1, Integer value2) { + addCriterion("equipment_type between", value1, value2, "equipmentType"); + return (Criteria) this; + } + + public Criteria andEquipmentTypeNotBetween(Integer value1, Integer value2) { + addCriterion("equipment_type not between", value1, value2, "equipmentType"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Integer value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Integer value1, Integer value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andAidIsNull() { + addCriterion("aid is null"); + return (Criteria) this; + } + + public Criteria andAidIsNotNull() { + addCriterion("aid is not null"); + return (Criteria) this; + } + + public Criteria andAidEqualTo(Integer value) { + addCriterion("aid =", value, "aid"); + return (Criteria) this; + } + + public Criteria andAidNotEqualTo(Integer value) { + addCriterion("aid <>", value, "aid"); + return (Criteria) this; + } + + public Criteria andAidGreaterThan(Integer value) { + addCriterion("aid >", value, "aid"); + return (Criteria) this; + } + + public Criteria andAidGreaterThanOrEqualTo(Integer value) { + addCriterion("aid >=", value, "aid"); + return (Criteria) this; + } + + public Criteria andAidLessThan(Integer value) { + addCriterion("aid <", value, "aid"); + return (Criteria) this; + } + + public Criteria andAidLessThanOrEqualTo(Integer value) { + addCriterion("aid <=", value, "aid"); + return (Criteria) this; + } + + public Criteria andAidIn(List values) { + addCriterion("aid in", values, "aid"); + return (Criteria) this; + } + + public Criteria andAidNotIn(List values) { + addCriterion("aid not in", values, "aid"); + return (Criteria) this; + } + + public Criteria andAidBetween(Integer value1, Integer value2) { + addCriterion("aid between", value1, value2, "aid"); + return (Criteria) this; + } + + public Criteria andAidNotBetween(Integer value1, Integer value2) { + addCriterion("aid not between", value1, value2, "aid"); + return (Criteria) this; + } + + public Criteria andPlaceIsNull() { + addCriterion("place is null"); + return (Criteria) this; + } + + public Criteria andPlaceIsNotNull() { + addCriterion("place is not null"); + return (Criteria) this; + } + + public Criteria andPlaceEqualTo(String value) { + addCriterion("place =", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceNotEqualTo(String value) { + addCriterion("place <>", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceGreaterThan(String value) { + addCriterion("place >", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceGreaterThanOrEqualTo(String value) { + addCriterion("place >=", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceLessThan(String value) { + addCriterion("place <", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceLessThanOrEqualTo(String value) { + addCriterion("place <=", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceLike(String value) { + addCriterion("place like", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceNotLike(String value) { + addCriterion("place not like", value, "place"); + return (Criteria) this; + } + + public Criteria andPlaceIn(List values) { + addCriterion("place in", values, "place"); + return (Criteria) this; + } + + public Criteria andPlaceNotIn(List values) { + addCriterion("place not in", values, "place"); + return (Criteria) this; + } + + public Criteria andPlaceBetween(String value1, String value2) { + addCriterion("place between", value1, value2, "place"); + return (Criteria) this; + } + + public Criteria andPlaceNotBetween(String value1, String value2) { + addCriterion("place not between", value1, value2, "place"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyFeature.java a/src/main/java/com/objecteye/entity/SyFeature.java new file mode 100644 index 0000000..1291703 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyFeature.java @@ -0,0 +1,116 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyFeature implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + + @ApiModelProperty(value = "人像库名") + private String name; + + @ApiModelProperty(value = "人像库描述") + private String description; + + @ApiModelProperty(value = "人像的数量") + private Integer count; + + @ApiModelProperty(value = "逻辑删除(0存在1删除)") + private Integer isDelete; + + @ApiModelProperty(value = "创建时间") + private String createDate; + + @ApiModelProperty(value = "更新时间") + private String updateDate; + + @ApiModelProperty(value = "是否是单人布控") + private Integer isSingle; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public Integer getIsSingle() { + return isSingle; + } + + public void setIsSingle(Integer isSingle) { + this.isSingle = isSingle; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", name=").append(name); + sb.append(", description=").append(description); + sb.append(", count=").append(count); + sb.append(", isDelete=").append(isDelete); + sb.append(", createDate=").append(createDate); + sb.append(", updateDate=").append(updateDate); + sb.append(", isSingle=").append(isSingle); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyFeatureExample.java a/src/main/java/com/objecteye/entity/SyFeatureExample.java new file mode 100644 index 0000000..2519d3f --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyFeatureExample.java @@ -0,0 +1,720 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyFeatureExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyFeatureExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andCountIsNull() { + addCriterion("count is null"); + return (Criteria) this; + } + + public Criteria andCountIsNotNull() { + addCriterion("count is not null"); + return (Criteria) this; + } + + public Criteria andCountEqualTo(Integer value) { + addCriterion("count =", value, "count"); + return (Criteria) this; + } + + public Criteria andCountNotEqualTo(Integer value) { + addCriterion("count <>", value, "count"); + return (Criteria) this; + } + + public Criteria andCountGreaterThan(Integer value) { + addCriterion("count >", value, "count"); + return (Criteria) this; + } + + public Criteria andCountGreaterThanOrEqualTo(Integer value) { + addCriterion("count >=", value, "count"); + return (Criteria) this; + } + + public Criteria andCountLessThan(Integer value) { + addCriterion("count <", value, "count"); + return (Criteria) this; + } + + public Criteria andCountLessThanOrEqualTo(Integer value) { + addCriterion("count <=", value, "count"); + return (Criteria) this; + } + + public Criteria andCountIn(List values) { + addCriterion("count in", values, "count"); + return (Criteria) this; + } + + public Criteria andCountNotIn(List values) { + addCriterion("count not in", values, "count"); + return (Criteria) this; + } + + public Criteria andCountBetween(Integer value1, Integer value2) { + addCriterion("count between", value1, value2, "count"); + return (Criteria) this; + } + + public Criteria andCountNotBetween(Integer value1, Integer value2) { + addCriterion("count not between", value1, value2, "count"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNull() { + addCriterion("update_date is null"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNotNull() { + addCriterion("update_date is not null"); + return (Criteria) this; + } + + public Criteria andUpdateDateEqualTo(String value) { + addCriterion("update_date =", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotEqualTo(String value) { + addCriterion("update_date <>", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThan(String value) { + addCriterion("update_date >", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThanOrEqualTo(String value) { + addCriterion("update_date >=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThan(String value) { + addCriterion("update_date <", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThanOrEqualTo(String value) { + addCriterion("update_date <=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLike(String value) { + addCriterion("update_date like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotLike(String value) { + addCriterion("update_date not like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIn(List values) { + addCriterion("update_date in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotIn(List values) { + addCriterion("update_date not in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateBetween(String value1, String value2) { + addCriterion("update_date between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotBetween(String value1, String value2) { + addCriterion("update_date not between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andIsSingleIsNull() { + addCriterion("is_single is null"); + return (Criteria) this; + } + + public Criteria andIsSingleIsNotNull() { + addCriterion("is_single is not null"); + return (Criteria) this; + } + + public Criteria andIsSingleEqualTo(Integer value) { + addCriterion("is_single =", value, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleNotEqualTo(Integer value) { + addCriterion("is_single <>", value, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleGreaterThan(Integer value) { + addCriterion("is_single >", value, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleGreaterThanOrEqualTo(Integer value) { + addCriterion("is_single >=", value, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleLessThan(Integer value) { + addCriterion("is_single <", value, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleLessThanOrEqualTo(Integer value) { + addCriterion("is_single <=", value, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleIn(List values) { + addCriterion("is_single in", values, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleNotIn(List values) { + addCriterion("is_single not in", values, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleBetween(Integer value1, Integer value2) { + addCriterion("is_single between", value1, value2, "isSingle"); + return (Criteria) this; + } + + public Criteria andIsSingleNotBetween(Integer value1, Integer value2) { + addCriterion("is_single not between", value1, value2, "isSingle"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyImgParam.java a/src/main/java/com/objecteye/entity/SyImgParam.java new file mode 100644 index 0000000..df194c9 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyImgParam.java @@ -0,0 +1,19 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SyImgParam { + byte[] data; + int width; + int height; + int channel; +} diff --git b/src/main/java/com/objecteye/entity/SyPersonnel.java a/src/main/java/com/objecteye/entity/SyPersonnel.java new file mode 100644 index 0000000..575f551 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyPersonnel.java @@ -0,0 +1,128 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyPersonnel implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + + @ApiModelProperty(value = "姓名") + private String name; + + @ApiModelProperty(value = "身份证号") + private String indentity; + + @ApiModelProperty(value = "图片url") + private String imageUrl; + + @ApiModelProperty(value = "创建时间") + private String createDate; + + @ApiModelProperty(value = "更新时间") + private String updateDate; + + @ApiModelProperty(value = "逻辑删除(0存在1删除)") + private Integer status; + + @ApiModelProperty(value = "布控原因") + private String conreason; + + @ApiModelProperty(value = "人像库外键") + private Integer fid; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIndentity() { + return indentity; + } + + public void setIndentity(String indentity) { + this.indentity = indentity; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getConreason() { + return conreason; + } + + public void setConreason(String conreason) { + this.conreason = conreason; + } + + public Integer getFid() { + return fid; + } + + public void setFid(Integer fid) { + this.fid = fid; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", name=").append(name); + sb.append(", indentity=").append(indentity); + sb.append(", imageUrl=").append(imageUrl); + sb.append(", createDate=").append(createDate); + sb.append(", updateDate=").append(updateDate); + sb.append(", status=").append(status); + sb.append(", conreason=").append(conreason); + sb.append(", fid=").append(fid); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyPersonnelExample.java a/src/main/java/com/objecteye/entity/SyPersonnelExample.java new file mode 100644 index 0000000..1cdfc4b --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyPersonnelExample.java @@ -0,0 +1,800 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyPersonnelExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyPersonnelExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andIndentityIsNull() { + addCriterion("indentity is null"); + return (Criteria) this; + } + + public Criteria andIndentityIsNotNull() { + addCriterion("indentity is not null"); + return (Criteria) this; + } + + public Criteria andIndentityEqualTo(String value) { + addCriterion("indentity =", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityNotEqualTo(String value) { + addCriterion("indentity <>", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityGreaterThan(String value) { + addCriterion("indentity >", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityGreaterThanOrEqualTo(String value) { + addCriterion("indentity >=", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityLessThan(String value) { + addCriterion("indentity <", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityLessThanOrEqualTo(String value) { + addCriterion("indentity <=", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityLike(String value) { + addCriterion("indentity like", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityNotLike(String value) { + addCriterion("indentity not like", value, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityIn(List values) { + addCriterion("indentity in", values, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityNotIn(List values) { + addCriterion("indentity not in", values, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityBetween(String value1, String value2) { + addCriterion("indentity between", value1, value2, "indentity"); + return (Criteria) this; + } + + public Criteria andIndentityNotBetween(String value1, String value2) { + addCriterion("indentity not between", value1, value2, "indentity"); + return (Criteria) this; + } + + public Criteria andImageUrlIsNull() { + addCriterion("image_url is null"); + return (Criteria) this; + } + + public Criteria andImageUrlIsNotNull() { + addCriterion("image_url is not null"); + return (Criteria) this; + } + + public Criteria andImageUrlEqualTo(String value) { + addCriterion("image_url =", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlNotEqualTo(String value) { + addCriterion("image_url <>", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlGreaterThan(String value) { + addCriterion("image_url >", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlGreaterThanOrEqualTo(String value) { + addCriterion("image_url >=", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlLessThan(String value) { + addCriterion("image_url <", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlLessThanOrEqualTo(String value) { + addCriterion("image_url <=", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlLike(String value) { + addCriterion("image_url like", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlNotLike(String value) { + addCriterion("image_url not like", value, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlIn(List values) { + addCriterion("image_url in", values, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlNotIn(List values) { + addCriterion("image_url not in", values, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlBetween(String value1, String value2) { + addCriterion("image_url between", value1, value2, "imageUrl"); + return (Criteria) this; + } + + public Criteria andImageUrlNotBetween(String value1, String value2) { + addCriterion("image_url not between", value1, value2, "imageUrl"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNull() { + addCriterion("update_date is null"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNotNull() { + addCriterion("update_date is not null"); + return (Criteria) this; + } + + public Criteria andUpdateDateEqualTo(String value) { + addCriterion("update_date =", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotEqualTo(String value) { + addCriterion("update_date <>", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThan(String value) { + addCriterion("update_date >", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThanOrEqualTo(String value) { + addCriterion("update_date >=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThan(String value) { + addCriterion("update_date <", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThanOrEqualTo(String value) { + addCriterion("update_date <=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLike(String value) { + addCriterion("update_date like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotLike(String value) { + addCriterion("update_date not like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIn(List values) { + addCriterion("update_date in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotIn(List values) { + addCriterion("update_date not in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateBetween(String value1, String value2) { + addCriterion("update_date between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotBetween(String value1, String value2) { + addCriterion("update_date not between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Integer value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Integer value1, Integer value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andConreasonIsNull() { + addCriterion("conreason is null"); + return (Criteria) this; + } + + public Criteria andConreasonIsNotNull() { + addCriterion("conreason is not null"); + return (Criteria) this; + } + + public Criteria andConreasonEqualTo(String value) { + addCriterion("conreason =", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonNotEqualTo(String value) { + addCriterion("conreason <>", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonGreaterThan(String value) { + addCriterion("conreason >", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonGreaterThanOrEqualTo(String value) { + addCriterion("conreason >=", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonLessThan(String value) { + addCriterion("conreason <", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonLessThanOrEqualTo(String value) { + addCriterion("conreason <=", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonLike(String value) { + addCriterion("conreason like", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonNotLike(String value) { + addCriterion("conreason not like", value, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonIn(List values) { + addCriterion("conreason in", values, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonNotIn(List values) { + addCriterion("conreason not in", values, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonBetween(String value1, String value2) { + addCriterion("conreason between", value1, value2, "conreason"); + return (Criteria) this; + } + + public Criteria andConreasonNotBetween(String value1, String value2) { + addCriterion("conreason not between", value1, value2, "conreason"); + return (Criteria) this; + } + + public Criteria andFidIsNull() { + addCriterion("fid is null"); + return (Criteria) this; + } + + public Criteria andFidIsNotNull() { + addCriterion("fid is not null"); + return (Criteria) this; + } + + public Criteria andFidEqualTo(Integer value) { + addCriterion("fid =", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidNotEqualTo(Integer value) { + addCriterion("fid <>", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidGreaterThan(Integer value) { + addCriterion("fid >", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidGreaterThanOrEqualTo(Integer value) { + addCriterion("fid >=", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidLessThan(Integer value) { + addCriterion("fid <", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidLessThanOrEqualTo(Integer value) { + addCriterion("fid <=", value, "fid"); + return (Criteria) this; + } + + public Criteria andFidIn(List values) { + addCriterion("fid in", values, "fid"); + return (Criteria) this; + } + + public Criteria andFidNotIn(List values) { + addCriterion("fid not in", values, "fid"); + return (Criteria) this; + } + + public Criteria andFidBetween(Integer value1, Integer value2) { + addCriterion("fid between", value1, value2, "fid"); + return (Criteria) this; + } + + public Criteria andFidNotBetween(Integer value1, Integer value2) { + addCriterion("fid not between", value1, value2, "fid"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyPointParam.java a/src/main/java/com/objecteye/entity/SyPointParam.java new file mode 100644 index 0000000..f1571d5 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyPointParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SyPointParam { + private int x; + private int y; +} diff --git b/src/main/java/com/objecteye/entity/SyPrivilege.java a/src/main/java/com/objecteye/entity/SyPrivilege.java new file mode 100644 index 0000000..af7f4ca --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyPrivilege.java @@ -0,0 +1,68 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyPrivilege implements Serializable { + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "权限名称") + private String privilegeName; + + @ApiModelProperty(value = "是否删除") + private String isDelete; + + @ApiModelProperty(value = "创建时间") + private String createDate; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getPrivilegeName() { + return privilegeName; + } + + public void setPrivilegeName(String privilegeName) { + this.privilegeName = privilegeName; + } + + public String getIsDelete() { + return isDelete; + } + + public void setIsDelete(String isDelete) { + this.isDelete = isDelete; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", privilegeName=").append(privilegeName); + sb.append(", isDelete=").append(isDelete); + sb.append(", createDate=").append(createDate); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyPrivilegeExample.java a/src/main/java/com/objecteye/entity/SyPrivilegeExample.java new file mode 100644 index 0000000..f06f605 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyPrivilegeExample.java @@ -0,0 +1,470 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyPrivilegeExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyPrivilegeExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameIsNull() { + addCriterion("privilege_name is null"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameIsNotNull() { + addCriterion("privilege_name is not null"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameEqualTo(String value) { + addCriterion("privilege_name =", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameNotEqualTo(String value) { + addCriterion("privilege_name <>", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameGreaterThan(String value) { + addCriterion("privilege_name >", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameGreaterThanOrEqualTo(String value) { + addCriterion("privilege_name >=", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameLessThan(String value) { + addCriterion("privilege_name <", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameLessThanOrEqualTo(String value) { + addCriterion("privilege_name <=", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameLike(String value) { + addCriterion("privilege_name like", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameNotLike(String value) { + addCriterion("privilege_name not like", value, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameIn(List values) { + addCriterion("privilege_name in", values, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameNotIn(List values) { + addCriterion("privilege_name not in", values, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameBetween(String value1, String value2) { + addCriterion("privilege_name between", value1, value2, "privilegeName"); + return (Criteria) this; + } + + public Criteria andPrivilegeNameNotBetween(String value1, String value2) { + addCriterion("privilege_name not between", value1, value2, "privilegeName"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(String value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(String value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(String value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(String value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(String value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(String value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLike(String value) { + addCriterion("is_delete like", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotLike(String value) { + addCriterion("is_delete not like", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(String value1, String value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(String value1, String value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyRectParam.java a/src/main/java/com/objecteye/entity/SyRectParam.java new file mode 100644 index 0000000..5ea2380 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyRectParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class SyRectParam { + int left; + int top; + int width; + int height; +} diff --git b/src/main/java/com/objecteye/entity/SyRole.java a/src/main/java/com/objecteye/entity/SyRole.java new file mode 100644 index 0000000..9c1011e --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyRole.java @@ -0,0 +1,70 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +@Component +public class SyRole implements Serializable { + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "角色名称") + private String roleName; + + @ApiModelProperty(value = "是否删除") + private Integer isDelete; + + @ApiModelProperty(value = "创建日期") + private String createDate; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", roleName=").append(roleName); + sb.append(", isDelete=").append(isDelete); + sb.append(", createDate=").append(createDate); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyRoleExample.java a/src/main/java/com/objecteye/entity/SyRoleExample.java new file mode 100644 index 0000000..e83a7e3 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyRoleExample.java @@ -0,0 +1,463 @@ +package com.objecteye.entity; + +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class SyRoleExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyRoleExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andRoleNameIsNull() { + addCriterion("role_name is null"); + return (Criteria) this; + } + + public Criteria andRoleNameIsNotNull() { + addCriterion("role_name is not null"); + return (Criteria) this; + } + + public Criteria andRoleNameEqualTo(String value) { + addCriterion("role_name =", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameNotEqualTo(String value) { + addCriterion("role_name <>", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameGreaterThan(String value) { + addCriterion("role_name >", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameGreaterThanOrEqualTo(String value) { + addCriterion("role_name >=", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameLessThan(String value) { + addCriterion("role_name <", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameLessThanOrEqualTo(String value) { + addCriterion("role_name <=", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameLike(String value) { + addCriterion("role_name like", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameNotLike(String value) { + addCriterion("role_name not like", value, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameIn(List values) { + addCriterion("role_name in", values, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameNotIn(List values) { + addCriterion("role_name not in", values, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameBetween(String value1, String value2) { + addCriterion("role_name between", value1, value2, "roleName"); + return (Criteria) this; + } + + public Criteria andRoleNameNotBetween(String value1, String value2) { + addCriterion("role_name not between", value1, value2, "roleName"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyRolePrivilege.java a/src/main/java/com/objecteye/entity/SyRolePrivilege.java new file mode 100644 index 0000000..d93bc79 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyRolePrivilege.java @@ -0,0 +1,58 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +@Component +public class SyRolePrivilege implements Serializable { + @ApiModelProperty(value = "主键") + private Integer id; + + @ApiModelProperty(value = "权限id") + private Integer pid; + + @ApiModelProperty(value = "角色id") + private Integer rid; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getPid() { + return pid; + } + + public void setPid(Integer pid) { + this.pid = pid; + } + + public Integer getRid() { + return rid; + } + + public void setRid(Integer rid) { + this.rid = rid; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", pid=").append(pid); + sb.append(", rid=").append(rid); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyRolePrivilegeExample.java a/src/main/java/com/objecteye/entity/SyRolePrivilegeExample.java new file mode 100644 index 0000000..609c372 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyRolePrivilegeExample.java @@ -0,0 +1,383 @@ +package com.objecteye.entity; + +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class SyRolePrivilegeExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyRolePrivilegeExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPidIsNull() { + addCriterion("pid is null"); + return (Criteria) this; + } + + public Criteria andPidIsNotNull() { + addCriterion("pid is not null"); + return (Criteria) this; + } + + public Criteria andPidEqualTo(Integer value) { + addCriterion("pid =", value, "pid"); + return (Criteria) this; + } + + public Criteria andPidNotEqualTo(Integer value) { + addCriterion("pid <>", value, "pid"); + return (Criteria) this; + } + + public Criteria andPidGreaterThan(Integer value) { + addCriterion("pid >", value, "pid"); + return (Criteria) this; + } + + public Criteria andPidGreaterThanOrEqualTo(Integer value) { + addCriterion("pid >=", value, "pid"); + return (Criteria) this; + } + + public Criteria andPidLessThan(Integer value) { + addCriterion("pid <", value, "pid"); + return (Criteria) this; + } + + public Criteria andPidLessThanOrEqualTo(Integer value) { + addCriterion("pid <=", value, "pid"); + return (Criteria) this; + } + + public Criteria andPidIn(List values) { + addCriterion("pid in", values, "pid"); + return (Criteria) this; + } + + public Criteria andPidNotIn(List values) { + addCriterion("pid not in", values, "pid"); + return (Criteria) this; + } + + public Criteria andPidBetween(Integer value1, Integer value2) { + addCriterion("pid between", value1, value2, "pid"); + return (Criteria) this; + } + + public Criteria andPidNotBetween(Integer value1, Integer value2) { + addCriterion("pid not between", value1, value2, "pid"); + return (Criteria) this; + } + + public Criteria andRidIsNull() { + addCriterion("rid is null"); + return (Criteria) this; + } + + public Criteria andRidIsNotNull() { + addCriterion("rid is not null"); + return (Criteria) this; + } + + public Criteria andRidEqualTo(Integer value) { + addCriterion("rid =", value, "rid"); + return (Criteria) this; + } + + public Criteria andRidNotEqualTo(Integer value) { + addCriterion("rid <>", value, "rid"); + return (Criteria) this; + } + + public Criteria andRidGreaterThan(Integer value) { + addCriterion("rid >", value, "rid"); + return (Criteria) this; + } + + public Criteria andRidGreaterThanOrEqualTo(Integer value) { + addCriterion("rid >=", value, "rid"); + return (Criteria) this; + } + + public Criteria andRidLessThan(Integer value) { + addCriterion("rid <", value, "rid"); + return (Criteria) this; + } + + public Criteria andRidLessThanOrEqualTo(Integer value) { + addCriterion("rid <=", value, "rid"); + return (Criteria) this; + } + + public Criteria andRidIn(List values) { + addCriterion("rid in", values, "rid"); + return (Criteria) this; + } + + public Criteria andRidNotIn(List values) { + addCriterion("rid not in", values, "rid"); + return (Criteria) this; + } + + public Criteria andRidBetween(Integer value1, Integer value2) { + addCriterion("rid between", value1, value2, "rid"); + return (Criteria) this; + } + + public Criteria andRidNotBetween(Integer value1, Integer value2) { + addCriterion("rid not between", value1, value2, "rid"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SySingleDeployParam.java a/src/main/java/com/objecteye/entity/SySingleDeployParam.java new file mode 100644 index 0000000..da0d5a3 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SySingleDeployParam.java @@ -0,0 +1,79 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +public class SySingleDeployParam implements Serializable { + + private int featureId; + private int personnelId; + private int[] equipmentIds; + private String name; + private String startTime; + private String endTime; + private float detectThresld; + private String description; + + public int getFeatureId() { + return featureId; + } + + public void setFeatureId(int featureId) { + this.featureId = featureId; + } + + public int getPersonnelId() { + return personnelId; + } + + public void setPersonnelId(int personnelId) { + this.personnelId = personnelId; + } + + public int[] getEquipmentIds() { + return equipmentIds; + } + + public void setEquipmentIds(int[] equipmentIds) { + this.equipmentIds = equipmentIds; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStartTime() { + return startTime; + } + + public void setStartTime(String startTime) { + this.startTime = startTime; + } + + public String getEndTime() { + return endTime; + } + + public void setEndTime(String endTime) { + this.endTime = endTime; + } + + public float getDetectThresld() { + return detectThresld; + } + + public void setDetectThresld(float detectThresld) { + this.detectThresld = detectThresld; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git b/src/main/java/com/objecteye/entity/SyUser.java a/src/main/java/com/objecteye/entity/SyUser.java new file mode 100644 index 0000000..00c88e6 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyUser.java @@ -0,0 +1,100 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +@Component +public class SyUser implements Serializable { + @ApiModelProperty(value = "主键自增") + private Integer id; + + @ApiModelProperty(value = "用户名,唯一性") + private String username; + + @ApiModelProperty(value = "用户密码") + private String password; + + @ApiModelProperty(value = "用户角色") + private String userRole; + + @ApiModelProperty(value = "创建表") + private String createDate; + + public SyUser() { + } + + public SyUser(String username, String password, String userRole, String createDate) { + this.username = username; + this.password = password; + this.userRole = userRole; + this.createDate = createDate; + } + + public SyUser(Integer id, String username, String password, String userRole, String createDate) { + this.id = id; + this.username = username; + this.password = password; + this.userRole = userRole; + this.createDate = createDate; + } + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getUserRole() { + return userRole; + } + + public void setUserRole(String userRole) { + this.userRole = userRole; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", username=").append(username); + sb.append(", password=").append(password); + sb.append(", userRole=").append(userRole); + sb.append(", createDate=").append(createDate); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyUserExample.java a/src/main/java/com/objecteye/entity/SyUserExample.java new file mode 100644 index 0000000..9177f17 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyUserExample.java @@ -0,0 +1,543 @@ +package com.objecteye.entity; + +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class SyUserExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyUserExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andUsernameIsNull() { + addCriterion("username is null"); + return (Criteria) this; + } + + public Criteria andUsernameIsNotNull() { + addCriterion("username is not null"); + return (Criteria) this; + } + + public Criteria andUsernameEqualTo(String value) { + addCriterion("username =", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotEqualTo(String value) { + addCriterion("username <>", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameGreaterThan(String value) { + addCriterion("username >", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameGreaterThanOrEqualTo(String value) { + addCriterion("username >=", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLessThan(String value) { + addCriterion("username <", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLessThanOrEqualTo(String value) { + addCriterion("username <=", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameLike(String value) { + addCriterion("username like", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotLike(String value) { + addCriterion("username not like", value, "username"); + return (Criteria) this; + } + + public Criteria andUsernameIn(List values) { + addCriterion("username in", values, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotIn(List values) { + addCriterion("username not in", values, "username"); + return (Criteria) this; + } + + public Criteria andUsernameBetween(String value1, String value2) { + addCriterion("username between", value1, value2, "username"); + return (Criteria) this; + } + + public Criteria andUsernameNotBetween(String value1, String value2) { + addCriterion("username not between", value1, value2, "username"); + return (Criteria) this; + } + + public Criteria andPasswordIsNull() { + addCriterion("password is null"); + return (Criteria) this; + } + + public Criteria andPasswordIsNotNull() { + addCriterion("password is not null"); + return (Criteria) this; + } + + public Criteria andPasswordEqualTo(String value) { + addCriterion("password =", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotEqualTo(String value) { + addCriterion("password <>", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordGreaterThan(String value) { + addCriterion("password >", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordGreaterThanOrEqualTo(String value) { + addCriterion("password >=", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLessThan(String value) { + addCriterion("password <", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLessThanOrEqualTo(String value) { + addCriterion("password <=", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordLike(String value) { + addCriterion("password like", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotLike(String value) { + addCriterion("password not like", value, "password"); + return (Criteria) this; + } + + public Criteria andPasswordIn(List values) { + addCriterion("password in", values, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotIn(List values) { + addCriterion("password not in", values, "password"); + return (Criteria) this; + } + + public Criteria andPasswordBetween(String value1, String value2) { + addCriterion("password between", value1, value2, "password"); + return (Criteria) this; + } + + public Criteria andPasswordNotBetween(String value1, String value2) { + addCriterion("password not between", value1, value2, "password"); + return (Criteria) this; + } + + public Criteria andUserRoleIsNull() { + addCriterion("user_role is null"); + return (Criteria) this; + } + + public Criteria andUserRoleIsNotNull() { + addCriterion("user_role is not null"); + return (Criteria) this; + } + + public Criteria andUserRoleEqualTo(String value) { + addCriterion("user_role =", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleNotEqualTo(String value) { + addCriterion("user_role <>", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleGreaterThan(String value) { + addCriterion("user_role >", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleGreaterThanOrEqualTo(String value) { + addCriterion("user_role >=", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleLessThan(String value) { + addCriterion("user_role <", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleLessThanOrEqualTo(String value) { + addCriterion("user_role <=", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleLike(String value) { + addCriterion("user_role like", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleNotLike(String value) { + addCriterion("user_role not like", value, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleIn(List values) { + addCriterion("user_role in", values, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleNotIn(List values) { + addCriterion("user_role not in", values, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleBetween(String value1, String value2) { + addCriterion("user_role between", value1, value2, "userRole"); + return (Criteria) this; + } + + public Criteria andUserRoleNotBetween(String value1, String value2) { + addCriterion("user_role not between", value1, value2, "userRole"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyVehicleDb.java a/src/main/java/com/objecteye/entity/SyVehicleDb.java new file mode 100644 index 0000000..8956d75 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleDb.java @@ -0,0 +1,104 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyVehicleDb implements Serializable { + @ApiModelProperty(value = "自增主键") + private Integer id; + + @ApiModelProperty(value = "车辆库名称") + private String vehicleName; + + @ApiModelProperty(value = "创建时间") + private String createDate; + + @ApiModelProperty(value = "更新时间") + private String updateDate; + + @ApiModelProperty(value = "描述") + private String description; + + @ApiModelProperty(value = "是否删除") + private Integer isDelete; + + @ApiModelProperty(value = "数量") + private Integer count; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getVehicleName() { + return vehicleName; + } + + public void setVehicleName(String vehicleName) { + this.vehicleName = vehicleName; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", vehicleName=").append(vehicleName); + sb.append(", createDate=").append(createDate); + sb.append(", updateDate=").append(updateDate); + sb.append(", description=").append(description); + sb.append(", isDelete=").append(isDelete); + sb.append(", count=").append(count); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyVehicleDbExample.java a/src/main/java/com/objecteye/entity/SyVehicleDbExample.java new file mode 100644 index 0000000..f654dbc --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleDbExample.java @@ -0,0 +1,660 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyVehicleDbExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyVehicleDbExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andVehicleNameIsNull() { + addCriterion("vehicle_name is null"); + return (Criteria) this; + } + + public Criteria andVehicleNameIsNotNull() { + addCriterion("vehicle_name is not null"); + return (Criteria) this; + } + + public Criteria andVehicleNameEqualTo(String value) { + addCriterion("vehicle_name =", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameNotEqualTo(String value) { + addCriterion("vehicle_name <>", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameGreaterThan(String value) { + addCriterion("vehicle_name >", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameGreaterThanOrEqualTo(String value) { + addCriterion("vehicle_name >=", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameLessThan(String value) { + addCriterion("vehicle_name <", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameLessThanOrEqualTo(String value) { + addCriterion("vehicle_name <=", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameLike(String value) { + addCriterion("vehicle_name like", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameNotLike(String value) { + addCriterion("vehicle_name not like", value, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameIn(List values) { + addCriterion("vehicle_name in", values, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameNotIn(List values) { + addCriterion("vehicle_name not in", values, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameBetween(String value1, String value2) { + addCriterion("vehicle_name between", value1, value2, "vehicleName"); + return (Criteria) this; + } + + public Criteria andVehicleNameNotBetween(String value1, String value2) { + addCriterion("vehicle_name not between", value1, value2, "vehicleName"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNull() { + addCriterion("create_date is null"); + return (Criteria) this; + } + + public Criteria andCreateDateIsNotNull() { + addCriterion("create_date is not null"); + return (Criteria) this; + } + + public Criteria andCreateDateEqualTo(String value) { + addCriterion("create_date =", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotEqualTo(String value) { + addCriterion("create_date <>", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThan(String value) { + addCriterion("create_date >", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateGreaterThanOrEqualTo(String value) { + addCriterion("create_date >=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThan(String value) { + addCriterion("create_date <", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLessThanOrEqualTo(String value) { + addCriterion("create_date <=", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateLike(String value) { + addCriterion("create_date like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotLike(String value) { + addCriterion("create_date not like", value, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateIn(List values) { + addCriterion("create_date in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotIn(List values) { + addCriterion("create_date not in", values, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateBetween(String value1, String value2) { + addCriterion("create_date between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andCreateDateNotBetween(String value1, String value2) { + addCriterion("create_date not between", value1, value2, "createDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNull() { + addCriterion("update_date is null"); + return (Criteria) this; + } + + public Criteria andUpdateDateIsNotNull() { + addCriterion("update_date is not null"); + return (Criteria) this; + } + + public Criteria andUpdateDateEqualTo(String value) { + addCriterion("update_date =", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotEqualTo(String value) { + addCriterion("update_date <>", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThan(String value) { + addCriterion("update_date >", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateGreaterThanOrEqualTo(String value) { + addCriterion("update_date >=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThan(String value) { + addCriterion("update_date <", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLessThanOrEqualTo(String value) { + addCriterion("update_date <=", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateLike(String value) { + addCriterion("update_date like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotLike(String value) { + addCriterion("update_date not like", value, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateIn(List values) { + addCriterion("update_date in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotIn(List values) { + addCriterion("update_date not in", values, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateBetween(String value1, String value2) { + addCriterion("update_date between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andUpdateDateNotBetween(String value1, String value2) { + addCriterion("update_date not between", value1, value2, "updateDate"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNull() { + addCriterion("is_delete is null"); + return (Criteria) this; + } + + public Criteria andIsDeleteIsNotNull() { + addCriterion("is_delete is not null"); + return (Criteria) this; + } + + public Criteria andIsDeleteEqualTo(Integer value) { + addCriterion("is_delete =", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotEqualTo(Integer value) { + addCriterion("is_delete <>", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThan(Integer value) { + addCriterion("is_delete >", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) { + addCriterion("is_delete >=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThan(Integer value) { + addCriterion("is_delete <", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteLessThanOrEqualTo(Integer value) { + addCriterion("is_delete <=", value, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteIn(List values) { + addCriterion("is_delete in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotIn(List values) { + addCriterion("is_delete not in", values, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteBetween(Integer value1, Integer value2) { + addCriterion("is_delete between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) { + addCriterion("is_delete not between", value1, value2, "isDelete"); + return (Criteria) this; + } + + public Criteria andCountIsNull() { + addCriterion("count is null"); + return (Criteria) this; + } + + public Criteria andCountIsNotNull() { + addCriterion("count is not null"); + return (Criteria) this; + } + + public Criteria andCountEqualTo(Integer value) { + addCriterion("count =", value, "count"); + return (Criteria) this; + } + + public Criteria andCountNotEqualTo(Integer value) { + addCriterion("count <>", value, "count"); + return (Criteria) this; + } + + public Criteria andCountGreaterThan(Integer value) { + addCriterion("count >", value, "count"); + return (Criteria) this; + } + + public Criteria andCountGreaterThanOrEqualTo(Integer value) { + addCriterion("count >=", value, "count"); + return (Criteria) this; + } + + public Criteria andCountLessThan(Integer value) { + addCriterion("count <", value, "count"); + return (Criteria) this; + } + + public Criteria andCountLessThanOrEqualTo(Integer value) { + addCriterion("count <=", value, "count"); + return (Criteria) this; + } + + public Criteria andCountIn(List values) { + addCriterion("count in", values, "count"); + return (Criteria) this; + } + + public Criteria andCountNotIn(List values) { + addCriterion("count not in", values, "count"); + return (Criteria) this; + } + + public Criteria andCountBetween(Integer value1, Integer value2) { + addCriterion("count between", value1, value2, "count"); + return (Criteria) this; + } + + public Criteria andCountNotBetween(Integer value1, Integer value2) { + addCriterion("count not between", value1, value2, "count"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyVehicleForbiddenTaskOutput.java a/src/main/java/com/objecteye/entity/SyVehicleForbiddenTaskOutput.java new file mode 100644 index 0000000..127d823 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleForbiddenTaskOutput.java @@ -0,0 +1,34 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +@NoArgsConstructor +@AllArgsConstructor +@Data +@ToString +public class SyVehicleForbiddenTaskOutput implements Serializable { + private static final long serialVersionUID = 4358376042063003668L; + + private String id; + + private String name; + + private String description; + + private String effectStartTime; + + private String forbiddenDetailTime; + + private String equipment; + + private String status; + + private String warningNumber; + + private String vehicleType; +} diff --git b/src/main/java/com/objecteye/entity/SyVehicleForbidenTask.java a/src/main/java/com/objecteye/entity/SyVehicleForbidenTask.java new file mode 100644 index 0000000..05914ec --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleForbidenTask.java @@ -0,0 +1,150 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyVehicleForbidenTask implements Serializable { + @ApiModelProperty(value = "任务id, 自增主键") + private Integer id; + + @ApiModelProperty(value = "任务名称") + private String name; + + @ApiModelProperty(value = "任务描述") + private String description; + + @ApiModelProperty(value = "生效区域id") + private String areaId; + + @ApiModelProperty(value = "区域id对应的设备id") + private String deviceId; + + @ApiModelProperty(value = "禁行车辆种类") + private String vehicleType; + + @ApiModelProperty(value = "禁行时间范围明细") + private String forbiddenDetailTime; + + @ApiModelProperty(value = "生效开始时间") + private Long effectStartTime; + + @ApiModelProperty(value = "生效结束时间") + private Long effectEndTime; + + @ApiModelProperty(value = "状态 1:生效;0:未生效") + private Integer status; + /** + * 区域id对应名称 (非数据库字段) + */ + private String areaName; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getVehicleType() { + return vehicleType; + } + + public void setVehicleType(String vehicleType) { + this.vehicleType = vehicleType; + } + + public String getForbiddenDetailTime() { + return forbiddenDetailTime; + } + + public void setForbiddenDetailTime(String forbiddenDetailTime) { + this.forbiddenDetailTime = forbiddenDetailTime; + } + + public Long getEffectStartTime() { + return effectStartTime; + } + + public void setEffectStartTime(Long effectStartTime) { + this.effectStartTime = effectStartTime; + } + + public Long getEffectEndTime() { + return effectEndTime; + } + + public void setEffectEndTime(Long effectEndTime) { + this.effectEndTime = effectEndTime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", areaId=").append(areaId); + sb.append(", deviceId=").append(deviceId); + sb.append(", vehicleType=").append(vehicleType); + sb.append(", forbiddenDetailTime=").append(forbiddenDetailTime); + sb.append(", effectStartTime=").append(effectStartTime); + sb.append(", effectEndTime=").append(effectEndTime); + sb.append(", status=").append(status); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyVehicleForbidenTaskExample.java a/src/main/java/com/objecteye/entity/SyVehicleForbidenTaskExample.java new file mode 100644 index 0000000..088faef --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleForbidenTaskExample.java @@ -0,0 +1,860 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyVehicleForbidenTaskExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyVehicleForbidenTaskExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andAreaIdIsNull() { + addCriterion("area_id is null"); + return (Criteria) this; + } + + public Criteria andAreaIdIsNotNull() { + addCriterion("area_id is not null"); + return (Criteria) this; + } + + public Criteria andAreaIdEqualTo(String value) { + addCriterion("area_id =", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdNotEqualTo(String value) { + addCriterion("area_id <>", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdGreaterThan(String value) { + addCriterion("area_id >", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdGreaterThanOrEqualTo(String value) { + addCriterion("area_id >=", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdLessThan(String value) { + addCriterion("area_id <", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdLessThanOrEqualTo(String value) { + addCriterion("area_id <=", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdLike(String value) { + addCriterion("area_id like", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdNotLike(String value) { + addCriterion("area_id not like", value, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdIn(List values) { + addCriterion("area_id in", values, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdNotIn(List values) { + addCriterion("area_id not in", values, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdBetween(String value1, String value2) { + addCriterion("area_id between", value1, value2, "areaId"); + return (Criteria) this; + } + + public Criteria andAreaIdNotBetween(String value1, String value2) { + addCriterion("area_id not between", value1, value2, "areaId"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNull() { + addCriterion("description is null"); + return (Criteria) this; + } + + public Criteria andDescriptionIsNotNull() { + addCriterion("description is not null"); + return (Criteria) this; + } + + public Criteria andDescriptionEqualTo(String value) { + addCriterion("description =", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotEqualTo(String value) { + addCriterion("description <>", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThan(String value) { + addCriterion("description >", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("description >=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThan(String value) { + addCriterion("description <", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLessThanOrEqualTo(String value) { + addCriterion("description <=", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionLike(String value) { + addCriterion("description like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotLike(String value) { + addCriterion("description not like", value, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionIn(List values) { + addCriterion("description in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotIn(List values) { + addCriterion("description not in", values, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionBetween(String value1, String value2) { + addCriterion("description between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDescriptionNotBetween(String value1, String value2) { + addCriterion("description not between", value1, value2, "description"); + return (Criteria) this; + } + + public Criteria andDeviceIdIsNull() { + addCriterion("device_id is null"); + return (Criteria) this; + } + + public Criteria andDeviceIdIsNotNull() { + addCriterion("device_id is not null"); + return (Criteria) this; + } + + public Criteria andDeviceIdEqualTo(String value) { + addCriterion("device_id =", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdNotEqualTo(String value) { + addCriterion("device_id <>", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdGreaterThan(String value) { + addCriterion("device_id >", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdGreaterThanOrEqualTo(String value) { + addCriterion("device_id >=", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdLessThan(String value) { + addCriterion("device_id <", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdLessThanOrEqualTo(String value) { + addCriterion("device_id <=", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdLike(String value) { + addCriterion("device_id like", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdNotLike(String value) { + addCriterion("device_id not like", value, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdIn(List values) { + addCriterion("device_id in", values, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdNotIn(List values) { + addCriterion("device_id not in", values, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdBetween(String value1, String value2) { + addCriterion("device_id between", value1, value2, "deviceId"); + return (Criteria) this; + } + + public Criteria andDeviceIdNotBetween(String value1, String value2) { + addCriterion("device_id not between", value1, value2, "deviceId"); + return (Criteria) this; + } + + public Criteria andVehicleTypeIsNull() { + addCriterion("vehicle_type is null"); + return (Criteria) this; + } + + public Criteria andVehicleTypeIsNotNull() { + addCriterion("vehicle_type is not null"); + return (Criteria) this; + } + + public Criteria andVehicleTypeEqualTo(String value) { + addCriterion("vehicle_type =", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeNotEqualTo(String value) { + addCriterion("vehicle_type <>", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeGreaterThan(String value) { + addCriterion("vehicle_type >", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeGreaterThanOrEqualTo(String value) { + addCriterion("vehicle_type >=", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeLessThan(String value) { + addCriterion("vehicle_type <", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeLessThanOrEqualTo(String value) { + addCriterion("vehicle_type <=", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeLike(String value) { + addCriterion("vehicle_type like", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeNotLike(String value) { + addCriterion("vehicle_type not like", value, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeIn(List values) { + addCriterion("vehicle_type in", values, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeNotIn(List values) { + addCriterion("vehicle_type not in", values, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeBetween(String value1, String value2) { + addCriterion("vehicle_type between", value1, value2, "vehicleType"); + return (Criteria) this; + } + + public Criteria andVehicleTypeNotBetween(String value1, String value2) { + addCriterion("vehicle_type not between", value1, value2, "vehicleType"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeIsNull() { + addCriterion("forbidden_detail_time is null"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeIsNotNull() { + addCriterion("forbidden_detail_time is not null"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeEqualTo(String value) { + addCriterion("forbidden_detail_time =", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeNotEqualTo(String value) { + addCriterion("forbidden_detail_time <>", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeGreaterThan(String value) { + addCriterion("forbidden_detail_time >", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeGreaterThanOrEqualTo(String value) { + addCriterion("forbidden_detail_time >=", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeLessThan(String value) { + addCriterion("forbidden_detail_time <", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeLessThanOrEqualTo(String value) { + addCriterion("forbidden_detail_time <=", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeLike(String value) { + addCriterion("forbidden_detail_time like", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeNotLike(String value) { + addCriterion("forbidden_detail_time not like", value, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeIn(List values) { + addCriterion("forbidden_detail_time in", values, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeNotIn(List values) { + addCriterion("forbidden_detail_time not in", values, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeBetween(String value1, String value2) { + addCriterion("forbidden_detail_time between", value1, value2, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andForbiddenDetailTimeNotBetween(String value1, String value2) { + addCriterion("forbidden_detail_time not between", value1, value2, "forbiddenDetailTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeIsNull() { + addCriterion("effect_start_time is null"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeIsNotNull() { + addCriterion("effect_start_time is not null"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeEqualTo(Long value) { + addCriterion("effect_start_time =", value, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeNotEqualTo(Long value) { + addCriterion("effect_start_time <>", value, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeGreaterThan(Long value) { + addCriterion("effect_start_time >", value, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeGreaterThanOrEqualTo(Long value) { + addCriterion("effect_start_time >=", value, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeLessThan(Long value) { + addCriterion("effect_start_time <", value, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeLessThanOrEqualTo(Long value) { + addCriterion("effect_start_time <=", value, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeIn(List values) { + addCriterion("effect_start_time in", values, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeNotIn(List values) { + addCriterion("effect_start_time not in", values, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeBetween(Long value1, Long value2) { + addCriterion("effect_start_time between", value1, value2, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectStartTimeNotBetween(Long value1, Long value2) { + addCriterion("effect_start_time not between", value1, value2, "effectStartTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeIsNull() { + addCriterion("effect_end_time is null"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeIsNotNull() { + addCriterion("effect_end_time is not null"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeEqualTo(Long value) { + addCriterion("effect_end_time =", value, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeNotEqualTo(Long value) { + addCriterion("effect_end_time <>", value, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeGreaterThan(Long value) { + addCriterion("effect_end_time >", value, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeGreaterThanOrEqualTo(Long value) { + addCriterion("effect_end_time >=", value, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeLessThan(Long value) { + addCriterion("effect_end_time <", value, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeLessThanOrEqualTo(Long value) { + addCriterion("effect_end_time <=", value, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeIn(List values) { + addCriterion("effect_end_time in", values, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeNotIn(List values) { + addCriterion("effect_end_time not in", values, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeBetween(Long value1, Long value2) { + addCriterion("effect_end_time between", value1, value2, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andEffectEndTimeNotBetween(Long value1, Long value2) { + addCriterion("effect_end_time not between", value1, value2, "effectEndTime"); + return (Criteria) this; + } + + public Criteria andStatusIsNull() { + addCriterion("status is null"); + return (Criteria) this; + } + + public Criteria andStatusIsNotNull() { + addCriterion("status is not null"); + return (Criteria) this; + } + + public Criteria andStatusEqualTo(Integer value) { + addCriterion("status =", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotEqualTo(Integer value) { + addCriterion("status <>", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThan(Integer value) { + addCriterion("status >", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusGreaterThanOrEqualTo(Integer value) { + addCriterion("status >=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThan(Integer value) { + addCriterion("status <", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusLessThanOrEqualTo(Integer value) { + addCriterion("status <=", value, "status"); + return (Criteria) this; + } + + public Criteria andStatusIn(List values) { + addCriterion("status in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotIn(List values) { + addCriterion("status not in", values, "status"); + return (Criteria) this; + } + + public Criteria andStatusBetween(Integer value1, Integer value2) { + addCriterion("status between", value1, value2, "status"); + return (Criteria) this; + } + + public Criteria andStatusNotBetween(Integer value1, Integer value2) { + addCriterion("status not between", value1, value2, "status"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyVehicleModel.java a/src/main/java/com/objecteye/entity/SyVehicleModel.java new file mode 100644 index 0000000..caa5158 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleModel.java @@ -0,0 +1,80 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +public class SyVehicleModel implements Serializable { + @ApiModelProperty(value = "车辆id") + private Integer id; + + @ApiModelProperty(value = "车辆名称首字母") + private String initials; + + @ApiModelProperty(value = "车辆品牌") + private String brand; + + @ApiModelProperty(value = "车辆子品牌") + private String subbrand; + + @ApiModelProperty(value = "车辆年款") + private String birthday; + + private static final long serialVersionUID = 1L; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getInitials() { + return initials; + } + + public void setInitials(String initials) { + this.initials = initials; + } + + public String getBrand() { + return brand; + } + + public void setBrand(String brand) { + this.brand = brand; + } + + public String getSubbrand() { + return subbrand; + } + + public void setSubbrand(String subbrand) { + this.subbrand = subbrand; + } + + public String getBirthday() { + return birthday; + } + + public void setBirthday(String birthday) { + this.birthday = birthday; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", initials=").append(initials); + sb.append(", brand=").append(brand); + sb.append(", subbrand=").append(subbrand); + sb.append(", birthday=").append(birthday); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SyVehicleModelExample.java a/src/main/java/com/objecteye/entity/SyVehicleModelExample.java new file mode 100644 index 0000000..1b993db --- /dev/null +++ a/src/main/java/com/objecteye/entity/SyVehicleModelExample.java @@ -0,0 +1,540 @@ +package com.objecteye.entity; + +import java.util.ArrayList; +import java.util.List; + +public class SyVehicleModelExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public SyVehicleModelExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Integer value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Integer value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Integer value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Integer value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Integer value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Integer value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Integer value1, Integer value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Integer value1, Integer value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andInitialsIsNull() { + addCriterion("initials is null"); + return (Criteria) this; + } + + public Criteria andInitialsIsNotNull() { + addCriterion("initials is not null"); + return (Criteria) this; + } + + public Criteria andInitialsEqualTo(String value) { + addCriterion("initials =", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsNotEqualTo(String value) { + addCriterion("initials <>", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsGreaterThan(String value) { + addCriterion("initials >", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsGreaterThanOrEqualTo(String value) { + addCriterion("initials >=", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsLessThan(String value) { + addCriterion("initials <", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsLessThanOrEqualTo(String value) { + addCriterion("initials <=", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsLike(String value) { + addCriterion("initials like", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsNotLike(String value) { + addCriterion("initials not like", value, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsIn(List values) { + addCriterion("initials in", values, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsNotIn(List values) { + addCriterion("initials not in", values, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsBetween(String value1, String value2) { + addCriterion("initials between", value1, value2, "initials"); + return (Criteria) this; + } + + public Criteria andInitialsNotBetween(String value1, String value2) { + addCriterion("initials not between", value1, value2, "initials"); + return (Criteria) this; + } + + public Criteria andBrandIsNull() { + addCriterion("brand is null"); + return (Criteria) this; + } + + public Criteria andBrandIsNotNull() { + addCriterion("brand is not null"); + return (Criteria) this; + } + + public Criteria andBrandEqualTo(String value) { + addCriterion("brand =", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotEqualTo(String value) { + addCriterion("brand <>", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandGreaterThan(String value) { + addCriterion("brand >", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandGreaterThanOrEqualTo(String value) { + addCriterion("brand >=", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandLessThan(String value) { + addCriterion("brand <", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandLessThanOrEqualTo(String value) { + addCriterion("brand <=", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandLike(String value) { + addCriterion("brand like", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotLike(String value) { + addCriterion("brand not like", value, "brand"); + return (Criteria) this; + } + + public Criteria andBrandIn(List values) { + addCriterion("brand in", values, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotIn(List values) { + addCriterion("brand not in", values, "brand"); + return (Criteria) this; + } + + public Criteria andBrandBetween(String value1, String value2) { + addCriterion("brand between", value1, value2, "brand"); + return (Criteria) this; + } + + public Criteria andBrandNotBetween(String value1, String value2) { + addCriterion("brand not between", value1, value2, "brand"); + return (Criteria) this; + } + + public Criteria andSubbrandIsNull() { + addCriterion("subbrand is null"); + return (Criteria) this; + } + + public Criteria andSubbrandIsNotNull() { + addCriterion("subbrand is not null"); + return (Criteria) this; + } + + public Criteria andSubbrandEqualTo(String value) { + addCriterion("subbrand =", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandNotEqualTo(String value) { + addCriterion("subbrand <>", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandGreaterThan(String value) { + addCriterion("subbrand >", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandGreaterThanOrEqualTo(String value) { + addCriterion("subbrand >=", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandLessThan(String value) { + addCriterion("subbrand <", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandLessThanOrEqualTo(String value) { + addCriterion("subbrand <=", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandLike(String value) { + addCriterion("subbrand like", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandNotLike(String value) { + addCriterion("subbrand not like", value, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandIn(List values) { + addCriterion("subbrand in", values, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandNotIn(List values) { + addCriterion("subbrand not in", values, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandBetween(String value1, String value2) { + addCriterion("subbrand between", value1, value2, "subbrand"); + return (Criteria) this; + } + + public Criteria andSubbrandNotBetween(String value1, String value2) { + addCriterion("subbrand not between", value1, value2, "subbrand"); + return (Criteria) this; + } + + public Criteria andBirthdayIsNull() { + addCriterion("birthday is null"); + return (Criteria) this; + } + + public Criteria andBirthdayIsNotNull() { + addCriterion("birthday is not null"); + return (Criteria) this; + } + + public Criteria andBirthdayEqualTo(String value) { + addCriterion("birthday =", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayNotEqualTo(String value) { + addCriterion("birthday <>", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayGreaterThan(String value) { + addCriterion("birthday >", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayGreaterThanOrEqualTo(String value) { + addCriterion("birthday >=", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayLessThan(String value) { + addCriterion("birthday <", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayLessThanOrEqualTo(String value) { + addCriterion("birthday <=", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayLike(String value) { + addCriterion("birthday like", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayNotLike(String value) { + addCriterion("birthday not like", value, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayIn(List values) { + addCriterion("birthday in", values, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayNotIn(List values) { + addCriterion("birthday not in", values, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayBetween(String value1, String value2) { + addCriterion("birthday between", value1, value2, "birthday"); + return (Criteria) this; + } + + public Criteria andBirthdayNotBetween(String value1, String value2) { + addCriterion("birthday not between", value1, value2, "birthday"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/SystemStartTime.java a/src/main/java/com/objecteye/entity/SystemStartTime.java new file mode 100644 index 0000000..e3e9b64 --- /dev/null +++ a/src/main/java/com/objecteye/entity/SystemStartTime.java @@ -0,0 +1,39 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +/** + * @Author: ljh + * @Date: 2019/10/10 17:26 + * @Version 1.0 + * @Message: + */ +public class SystemStartTime implements Serializable { + private String id; + private long startTime; + + public SystemStartTime() { + super(); + } + + public SystemStartTime(String id, long startTime) { + this.id = id; + this.startTime = startTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public long getStartTime() { + return startTime; + } + + public void setStartTime(long startTime) { + this.startTime = startTime; + } +} diff --git b/src/main/java/com/objecteye/entity/UploadVehicleDbResult.java a/src/main/java/com/objecteye/entity/UploadVehicleDbResult.java new file mode 100644 index 0000000..bb655e7 --- /dev/null +++ a/src/main/java/com/objecteye/entity/UploadVehicleDbResult.java @@ -0,0 +1,29 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Author: lr + * @Date: 2019/9/16 13:16 + * @Version 1.0 + * @Message: + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class UploadVehicleDbResult implements Serializable { + + private String id; + private VehicleInfoParam vehicleInfoParam; + private String picName; + private int count; + private int vehicleId; + private String imageUrl; + private String plateNum; + private float plateScore; + +} diff --git b/src/main/java/com/objecteye/entity/UploadVehicleResult.java a/src/main/java/com/objecteye/entity/UploadVehicleResult.java new file mode 100644 index 0000000..c4035fc --- /dev/null +++ a/src/main/java/com/objecteye/entity/UploadVehicleResult.java @@ -0,0 +1,51 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * @Author: lr + * @Date: 2019/9/16 13:16 + * @Version 1.0 + * @Message: + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class UploadVehicleResult implements Serializable { + + private String id; + //单车辆全部分析结果 + private VpInfoParam[] info; + + private String picName; + //数量 + private int count; + + private int deviceId; + + private String imageUrl; + + private long captureTime; + + private String equipmentName; + + private String longitude; + + private String latitude; + + public void set(VpInfoParam[] info, String picName, int count, int deviceId, String imageUrl, long captureTime, String equipmentName, String longitude, String latitude) { + this.info = info; + this.picName = picName; + this.count = count; + this.deviceId = deviceId; + this.imageUrl = imageUrl; + this.captureTime = captureTime; + this.equipmentName = equipmentName; + this.longitude = longitude; + this.latitude = latitude; + } +} diff --git b/src/main/java/com/objecteye/entity/VehicleAnalysisParam.java a/src/main/java/com/objecteye/entity/VehicleAnalysisParam.java new file mode 100644 index 0000000..5bf74f7 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleAnalysisParam.java @@ -0,0 +1,28 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleAnalysisParam { + int vehicle_car_win_detect_config; //是否启动车车窗检测 + int vehicle_recg_config; //是否启动车型识别 + int vehicle_plate_det_recg_config; //是否启动车牌检测识别 + int vehicle_color_config; //是否启动车辆颜色识别 + int vehicle_pendant_det_config; //是否启动车辆属性识别 + int vehicle_illegal_config; //是否启动车违规行为检测 + int vehicle_feature_config; //是否启动车辆特征提取 + int vehicle_special_config; //是否启动特殊品类车型识别 + int mode; //运行模式(DEVICE_GPU / DEVICE_CPU) + int gpuid; //指定显卡id + DetectParam vehicle_car_win_det_param; //车头车窗检测参数 + int vhd_output_max_num; //车头检测输出的车头个数限制 + DetectParam vehicle_plate_det_param; //车牌检测参数 + DetectParam vehicle_attribute_det_param; //车属性检测参数 + String dbpath; //车型识别车型数据路路径 <当前仅支持英文路径> + int log; //日志 0:关闭 1:开启 +} diff --git b/src/main/java/com/objecteye/entity/VehicleAnalysisResultParam.java a/src/main/java/com/objecteye/entity/VehicleAnalysisResultParam.java new file mode 100644 index 0000000..66b9467 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleAnalysisResultParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleAnalysisResultParam { + VehicleInfoParam[] info; //单车辆全部分析结果 + int count; //车辆数量 + +} diff --git b/src/main/java/com/objecteye/entity/VehicleColorResultParam.java a/src/main/java/com/objecteye/entity/VehicleColorResultParam.java new file mode 100644 index 0000000..390ba56 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleColorResultParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleColorResultParam { + private static final long serialVersionUID = -8045446387456070041L; + float score; + int index; + +} diff --git b/src/main/java/com/objecteye/entity/VehicleDetailMsg.java a/src/main/java/com/objecteye/entity/VehicleDetailMsg.java new file mode 100644 index 0000000..5a662ea --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleDetailMsg.java @@ -0,0 +1,56 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleDetailMsg { + + private String id; + private int deviceId; //设备号码 + private long captureTime; //抓拍时间 + private String picUrl; //网址 + private String driverId; //司机 + private String picId;//图片id + private int[] vehiclePlateArea; //车牌区域 + private float vehiclePlateScore; //车牌分数 + private int vehiclePlateType; //车牌类型 + private String vehiclePlateNum; //车牌号码 + private int vehicleColorIndex; //车颜色 + private float vehicleColorScore; //车颜色分数 + private int[] vehicleHeadstockArea; //车头区域 + private float vehicleHeadstockScore; //车头分数 + private int[] vehicleWindowArea; //车窗区域 + private float vehicleWindowScore; //车窗分数 + private int vehicleSpecialType; //特殊车类型 + private float vehicleSpecialScore; //特殊车分数 + //主驾驶 + private int vehicleIllegalSmokeStatus; //是否吸烟 + private float vehicleIllegalSmokeScore; //置信度 + private int vehicleIllegalBeltStatus; //是否系安全带 + private float vehicleIllegalBeltScore; //置信度 + private int vehicleIllegalPhoneStatus; //是否系打电话 + private float vehicleIllegalPhoneScore; //置信度 + private int vehicleIllegalPersonStatus; //是否有人 + private float vehicleIllegalPersonScore; //置信度 + + //副驾驶 + private int vehicleIllegalSmokeStatusCo; //是否吸烟 + private float vehicleIllegalSmokeScoreCo; //置信度 + private int vehicleIllegalBeltStatusCo; //是否系安全带 + private float vehicleIllegalBeltScoreCo; //置信度 + private int vehicleIllegalPhoneStatusCo; //是否系打电话 + private float vehicleIllegalPhoneScoreCo; //置信度 + private int vehicleIllegalPersonStatusCo; //是否有人 + private float vehicleIllegalPersonScoreCo; //置信度 + + private String vehicleIssueYear; //车款年份 + private String vehicleBrand; //汽车品牌 + private String vehicleType; //汽车类型 + private String vehicleSubbrand; //车辆子品牌 + private String freightTon; //吨位 + private float nameScore; //检测分数 +} diff --git b/src/main/java/com/objecteye/entity/VehicleDetectResultParam.java a/src/main/java/com/objecteye/entity/VehicleDetectResultParam.java new file mode 100644 index 0000000..1baae6d --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleDetectResultParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleDetectResultParam { + private static final long serialVersionUID = 6070622047126585440L; + SyRectParam syRectParam; + float score; +} diff --git b/src/main/java/com/objecteye/entity/VehicleFeatureResultParam.java a/src/main/java/com/objecteye/entity/VehicleFeatureResultParam.java new file mode 100644 index 0000000..57705f6 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleFeatureResultParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleFeatureResultParam { + private static final long serialVersionUID = -733179196353398042L; + float[] feature; +} diff --git b/src/main/java/com/objecteye/entity/VehicleFileParam.java a/src/main/java/com/objecteye/entity/VehicleFileParam.java new file mode 100644 index 0000000..e88cdf4 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleFileParam.java @@ -0,0 +1,50 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@NoArgsConstructor +@AllArgsConstructor +@Data +public class VehicleFileParam implements Serializable { + + private static final long serialVersionUID = -8952595841642723693L; + + /** + * 时间段-开始时间 + */ + private Long startTime; + + /** + * 时间段-结束时间 + */ + private Long endTime; + + /** + * 最小归档数量 + */ + private int fileMinNumber; + + /** + * 是否是最后出现时间过滤 + */ + private int lastAppear = 0; + + /** + * 车牌号 + */ + private String plateNumber; + + /** + * 页码 + */ + private Integer currentpage; + + /** + * 页面容量 + */ + private Integer pagevolume; +} diff --git b/src/main/java/com/objecteye/entity/VehicleFilePicParam.java a/src/main/java/com/objecteye/entity/VehicleFilePicParam.java new file mode 100644 index 0000000..f19447a --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleFilePicParam.java @@ -0,0 +1,26 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.web.multipart.MultipartFile; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleFilePicParam implements Serializable { + + private static final long serialVersionUID = -210896331356224822L; + + @ApiModelProperty("相似度") + private Double feature; + + @ApiModelProperty("上传文件") + private MultipartFile multipartFile; + + @ApiModelProperty("阈值") + private float threshold; +} diff --git b/src/main/java/com/objecteye/entity/VehicleFilePlateNumParam.java a/src/main/java/com/objecteye/entity/VehicleFilePlateNumParam.java new file mode 100644 index 0000000..89f5252 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleFilePlateNumParam.java @@ -0,0 +1,25 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleFilePlateNumParam implements Serializable { + + private static final long serialVersionUID = -5648606112307691521L; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("页码") + private int currentpage; + + @ApiModelProperty("页面容量") + private int pagevolume; +} diff --git b/src/main/java/com/objecteye/entity/VehicleIllegalDetectDetailsParam.java a/src/main/java/com/objecteye/entity/VehicleIllegalDetectDetailsParam.java new file mode 100644 index 0000000..1629b6d --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleIllegalDetectDetailsParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleIllegalDetectDetailsParam { + int status; //是否违规 ILLEGAL:违规(抽烟 未系安全带 打电话) lEGAL:未违规(未抽烟 系安全带 未打电话) UNCERTAINTY:不确定 + float confidence; //置信度 +} diff --git b/src/main/java/com/objecteye/entity/VehicleIllegalDetectInfoParam.java a/src/main/java/com/objecteye/entity/VehicleIllegalDetectInfoParam.java new file mode 100644 index 0000000..d552b9e --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleIllegalDetectInfoParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleIllegalDetectInfoParam { + VehicleIllegalDetectDetailsParam belt; //是否系安全带 ILLEGAL:未系安全带 LEGAL:系安全带 + VehicleIllegalDetectDetailsParam smoke; //是否抽烟 ILLEGAL:抽烟 LEGAL:未抽烟 + VehicleIllegalDetectDetailsParam phone; //是否打电话 ILLEGAL:打电话 LEGAL:未打电话 + VehicleIllegalDetectDetailsParam person; //是否有人 NOBODY:无人 SOMEBODY:有人 +} diff --git b/src/main/java/com/objecteye/entity/VehicleIllegalDetectResultParam.java a/src/main/java/com/objecteye/entity/VehicleIllegalDetectResultParam.java new file mode 100644 index 0000000..b629d35 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleIllegalDetectResultParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleIllegalDetectResultParam { + private static final long serialVersionUID = 2540440122761249998L; + VehicleIllegalDetectInfoParam driver; //主驾驶 + VehicleIllegalDetectInfoParam copilot; //副驾驶 + +} diff --git b/src/main/java/com/objecteye/entity/VehicleInfoParam.java a/src/main/java/com/objecteye/entity/VehicleInfoParam.java new file mode 100644 index 0000000..13ac373 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleInfoParam.java @@ -0,0 +1,22 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleInfoParam { + VehicleDetectResultParam vehicle_detect_res; //车头检测结果 + VehicleDetectResultParam vehicle_win_detect_res; //车窗检测结果 + VehicleColorResultParam vehicle_color_res; //车颜色 + VehicleRecognizeResultParam vehicle_recg_res; //车型识别 + VehiclePlateResultParam vehicle_plate_det_recg_res; //车牌检测识别结果 + VehiclePendantDetectResultParam vehicle_pendant_det_res; //车属性 + VehicleIllegalDetectResultParam vehicle_illegal_det_res; //车违规 + VehicleFeatureResultParam vehicle_fea_res; //以车搜车 + VehicleSpecialResultParam vehicle_special_res; //特殊品类车型 +} diff --git b/src/main/java/com/objecteye/entity/VehiclePendantDetectInfoParam.java a/src/main/java/com/objecteye/entity/VehiclePendantDetectInfoParam.java new file mode 100644 index 0000000..5570842 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehiclePendantDetectInfoParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehiclePendantDetectInfoParam { + private static final long serialVersionUID = 2882736879748827058L; + SyRectParam syRectParam; + int index; //类型 + float confidence; //置信度 +} diff --git b/src/main/java/com/objecteye/entity/VehiclePendantDetectResultParam.java a/src/main/java/com/objecteye/entity/VehiclePendantDetectResultParam.java new file mode 100644 index 0000000..53b1769 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehiclePendantDetectResultParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehiclePendantDetectResultParam { + private static final long serialVersionUID = 8868263681803769170L; + VehiclePendantDetectInfoParam[] vehiclePendantDetectInfoParams; + int count; +} diff --git b/src/main/java/com/objecteye/entity/VehiclePlateNumParam.java a/src/main/java/com/objecteye/entity/VehiclePlateNumParam.java new file mode 100644 index 0000000..e658986 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehiclePlateNumParam.java @@ -0,0 +1,17 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehiclePlateNumParam { + private static final long serialVersionUID = 4501502646994970300L; + String character; + float maxprob; + +} diff --git b/src/main/java/com/objecteye/entity/VehiclePlateResultParam.java a/src/main/java/com/objecteye/entity/VehiclePlateResultParam.java new file mode 100644 index 0000000..5bd488b --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehiclePlateResultParam.java @@ -0,0 +1,21 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehiclePlateResultParam { + private static final long serialVersionUID = -953025955461815154L; + SyRectParam rect; + float detectScore; + VehiclePlateNumParam[] plateNumParams; + float numScore; + int type; //车牌类型 + + +} diff --git b/src/main/java/com/objecteye/entity/VehicleRecognizeResultParam.java a/src/main/java/com/objecteye/entity/VehicleRecognizeResultParam.java new file mode 100644 index 0000000..b556219 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleRecognizeResultParam.java @@ -0,0 +1,21 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleRecognizeResultParam { + private static final long serialVersionUID = 8835423462345211175L; + String vehicle_brand; //车辆品牌 + String vehicle_subbrand; //车辆子品牌 + String vehicle_issue_year; //车辆年款 + String vehicle_type; //车辆类型 + String freight_ton; //货车吨级 + float name_score; //识别置信度 + +} diff --git b/src/main/java/com/objecteye/entity/VehicleSimpleResult.java a/src/main/java/com/objecteye/entity/VehicleSimpleResult.java new file mode 100644 index 0000000..45f88ac --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleSimpleResult.java @@ -0,0 +1,46 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 车辆简略信息数据模型 + * + * @author liuhaoyu + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class VehicleSimpleResult implements Serializable { + private static final long serialVersionUID = -2033239669605011215L; + + /** + * 抓拍时间 + */ + private String pictime; + /** + * 数据库id + */ + private String id; + /** + * 车牌号 + */ + private String plateNumber; + /** + * 图片地址 + */ + private String picurl; + /** + * 人像地址 + */ + private String personUrl; + /** + * 设备名称 + */ + private String equipmentName; +} diff --git b/src/main/java/com/objecteye/entity/VehicleSpecialResultParam.java a/src/main/java/com/objecteye/entity/VehicleSpecialResultParam.java new file mode 100644 index 0000000..f9d6720 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleSpecialResultParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleSpecialResultParam { + private static final long serialVersionUID = -5958691029454127790L; + float score; //识别置信度 + int type; //VECHICLE_HAZARDOUS_CHEMICALS 或者 TRUCK 或者 VECHICLE_SEDIMENT +} diff --git b/src/main/java/com/objecteye/entity/VehicleViolationsForbidenTaskQueryParams.java a/src/main/java/com/objecteye/entity/VehicleViolationsForbidenTaskQueryParams.java new file mode 100644 index 0000000..3a66359 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VehicleViolationsForbidenTaskQueryParams.java @@ -0,0 +1,73 @@ +package com.objecteye.entity; + + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 车辆违规模块- 禁行任务查询请求参数 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VehicleViolationsForbidenTaskQueryParams implements Serializable { + private static final long serialVersionUID = -1022725661174789715L; + + @ApiModelProperty("任务名称") + private String name; + + @ApiModelProperty("过滤任务开始时间") + private Long startTime; + + @ApiModelProperty("过滤任务结束时间") + private Long endTime; + + @ApiModelProperty("区域id") + private String customsPass; + + @ApiModelProperty("车类") + private String type; + + @ApiModelProperty("状态") + private Integer status; + + @ApiModelProperty("过滤任务禁行开始时间") + private String forbidenStartTime; + + @ApiModelProperty("过滤任务禁行结束时间") + private String forbidenEndTime; + + @ApiModelProperty("页码") + private Integer currentpage; + + @ApiModelProperty("页面容量") + private Integer pagevolume; + + @ApiModelProperty("是否无牌") + private Integer ifNoPlate; + + @ApiModelProperty("是否污损车牌") + private Integer ifStainedPlate; + + @ApiModelProperty("是否未系安全带") + private Integer ifDriverNoBelt; + + @ApiModelProperty("副驾驶是否未系安全带") + private Integer ifCopilotNoBelt; + + @ApiModelProperty("是否打电话") + private Integer ifPhone; + + @ApiModelProperty("是否抽烟") + private Integer ifSmoke; + + @ApiModelProperty("是否渣土车") + private Integer ifMuckCar; + + @ApiModelProperty("是否危化品车") + private Integer ifDangerousChemicals; +} diff --git b/src/main/java/com/objecteye/entity/ViolateAlarmMsg.java a/src/main/java/com/objecteye/entity/ViolateAlarmMsg.java new file mode 100644 index 0000000..a598cd9 --- /dev/null +++ a/src/main/java/com/objecteye/entity/ViolateAlarmMsg.java @@ -0,0 +1,18 @@ +package com.objecteye.entity; + +import java.io.Serializable; + +/** + * @Author: lr + * @Date: 2019/9/19 15:56 + * @Version 1.0 + * @Message: + */ +public class ViolateAlarmMsg implements Serializable { + + private String alarmTime; //报警时间 + private String alarmPlace; //报警地点 + private String violateCarUrl; //违规车辆照片 + private String carPlate; //车牌 + private String violateType; //违规类型 +} diff --git b/src/main/java/com/objecteye/entity/VisualStatisticsMsg.java a/src/main/java/com/objecteye/entity/VisualStatisticsMsg.java new file mode 100644 index 0000000..cd21b13 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VisualStatisticsMsg.java @@ -0,0 +1,210 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; + +import java.util.List; +import java.util.Map; + +/** + * @Author: ljh + * @Date: 2019/10/10 9:38 + * @Version 1.0 + * @Message: + */ +@AllArgsConstructor +public class VisualStatisticsMsg { + private String vehicleCount; //处理过车总量 + private String monitorTotalDays; //监控总天数 + private int deviceCount; //卡口数 + private String deployCount; //布控总量 + private String alarmCount; //报警总数 + private String vehicleCountInMonth; //本月过车总数 + private String vehicleCountInWeek; //本周过车总数 + /*private List> violationTypeRanking;//违规类型排行 + private long muckCarCount; //本日渣土车数量 + private long dangerousChemicalsVehicleCount; //本日危化品车 + private long vehicleCountInDay; //本日过车总数 + private long violateCount; //本日违规总数 + private long alarmCountInDay; //本日报警总数 + private long plateAlarmCount;//车牌报警数 + private long vehicleAlarmCount; //车辆报警数 + private long personAlarmCount; //人员报警数*/ + + private Map areaEquipmentCount; //点位区域分布 + private List oneWeekVehicleCount; //七日过车总量 + private List oneWeekSpecialtyVehicleCount; //七日特殊品类车辆走势 + private List> vehicleCountByArea;//地图形式的车辆统计 + + private Map todayData; //今日相关数据 + + public VisualStatisticsMsg() { + super(); + } + + public String getVehicleCount() { + return vehicleCount; + } + + public void setVehicleCount(String vehicleCount) { + this.vehicleCount = vehicleCount; + } + + public String getMonitorTotalDays() { + return monitorTotalDays; + } + + public void setMonitorTotalDays(String monitorTotalDays) { + this.monitorTotalDays = monitorTotalDays; + } + + public int getDeviceCount() { + return deviceCount; + } + + public void setDeviceCount(int deviceCount) { + this.deviceCount = deviceCount; + } + + public String getDeployCount() { + return deployCount; + } + + public void setDeployCount(String deployCount) { + this.deployCount = deployCount; + } + + public String getAlarmCount() { + return alarmCount; + } + + public void setAlarmCount(String alarmCount) { + this.alarmCount = alarmCount; + } + + public String getVehicleCountInMonth() { + return vehicleCountInMonth; + } + + public void setVehicleCountInMonth(String vehicleCountInMonth) { + this.vehicleCountInMonth = vehicleCountInMonth; + } + + public String getVehicleCountInWeek() { + return vehicleCountInWeek; + } + + public void setVehicleCountInWeek(String vehicleCountInWeek) { + this.vehicleCountInWeek = vehicleCountInWeek; + } + /*public long getMuckCarCount() { + return muckCarCount; + } + + public void setMuckCarCount(long muckCarCount) { + this.muckCarCount = muckCarCount; + } + + public long getDangerousChemicalsVehicleCount() { + return dangerousChemicalsVehicleCount; + } + + public void setDangerousChemicalsVehicleCount(long dangerousChemicalsVehicleCount) { + this.dangerousChemicalsVehicleCount = dangerousChemicalsVehicleCount; + } + + public long getVehicleCountInDay() { + return vehicleCountInDay; + } + + public void setVehicleCountInDay(long vehicleCountInDay) { + this.vehicleCountInDay = vehicleCountInDay; + } + + public long getViolateCount() { + return violateCount; + } + + public void setViolateCount(long violateCount) { + this.violateCount = violateCount; + } + + public long getAlarmCountInDay() { + return alarmCountInDay; + } + + public void setAlarmCountInDay(long alarmCountInDay) { + this.alarmCountInDay = alarmCountInDay; + } + + public long getPlateAlarmCount() { + return plateAlarmCount; + } + + public void setPlateAlarmCount(long plateAlarmCount) { + this.plateAlarmCount = plateAlarmCount; + } + + public long getVehicleAlarmCount() { + return vehicleAlarmCount; + } + + public void setVehicleAlarmCount(long vehicleAlarmCount) { + this.vehicleAlarmCount = vehicleAlarmCount; + } + + public long getPersonAlarmCount() { + return personAlarmCount; + } + + public void setPersonAlarmCount(long personAlarmCount) { + this.personAlarmCount = personAlarmCount; + }*/ + + public Map getAreaEquipmentCount() { + return areaEquipmentCount; + } + + public void setAreaEquipmentCount(Map areaEquipmentCount) { + this.areaEquipmentCount = areaEquipmentCount; + } + + public List getOneWeekVehicleCount() { + return oneWeekVehicleCount; + } + + public void setOneWeekVehicleCount(List oneWeekVehicleCount) { + this.oneWeekVehicleCount = oneWeekVehicleCount; + } + + public List getOneWeekSpecialtyVehicleCount() { + return oneWeekSpecialtyVehicleCount; + } + + public void setOneWeekSpecialtyVehicleCount(List oneWeekSpecialtyVehicleCount) { + this.oneWeekSpecialtyVehicleCount = oneWeekSpecialtyVehicleCount; + } + + public List> getVehicleCountByArea() { + return vehicleCountByArea; + } + + public void setVehicleCountByArea(List> vehicleCountByArea) { + this.vehicleCountByArea = vehicleCountByArea; + } + + /*public List> getViolationTypeRanking() { + return violationTypeRanking; + } + + public void setViolationTypeRanking(List> violationTypeRanking) { + this.violationTypeRanking = violationTypeRanking; + }*/ + + public Map getTodayData() { + return todayData; + } + + public void setTodayData(Map todayData) { + this.todayData = todayData; + } +} diff --git b/src/main/java/com/objecteye/entity/VpAnalysisParam.java a/src/main/java/com/objecteye/entity/VpAnalysisParam.java new file mode 100644 index 0000000..0c82a61 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VpAnalysisParam.java @@ -0,0 +1,16 @@ +package com.objecteye.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VpAnalysisParam { + VpInfoParam[] info; //单个人车车全部分析结果 + int count; //数量 +} diff --git b/src/main/java/com/objecteye/entity/VpInfoParam.java a/src/main/java/com/objecteye/entity/VpInfoParam.java new file mode 100644 index 0000000..cdc9f5c --- /dev/null +++ a/src/main/java/com/objecteye/entity/VpInfoParam.java @@ -0,0 +1,15 @@ +package com.objecteye.entity; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VpInfoParam { + private VehicleInfoParam vehicleInfoParam; //车型属性 + private FaceInfoParam faceInfoParam; // 人脸属性值 +} diff --git b/src/main/java/com/objecteye/entity/VvehicleFileDriverResult.java a/src/main/java/com/objecteye/entity/VvehicleFileDriverResult.java new file mode 100644 index 0000000..dd260d6 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VvehicleFileDriverResult.java @@ -0,0 +1,41 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 驾驶员信息返回信息 + * + * @author liuhaoyu + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VvehicleFileDriverResult implements Serializable { + private static final long serialVersionUID = 6982100273368794418L; + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("人脸图片") + private String picurl; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("经度") + private String longitude; + + @ApiModelProperty("纬度") + private String latitude; + + @ApiModelProperty("设备名称") + private String equipmentName; + + @ApiModelProperty("抓拍时间") + private String pictime; +} diff --git b/src/main/java/com/objecteye/entity/VvehicleFilePicQueryResult.java a/src/main/java/com/objecteye/entity/VvehicleFilePicQueryResult.java new file mode 100644 index 0000000..2cfd769 --- /dev/null +++ a/src/main/java/com/objecteye/entity/VvehicleFilePicQueryResult.java @@ -0,0 +1,28 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VvehicleFilePicQueryResult implements Serializable { + + private static final long serialVersionUID = 3736417067462313732L; + + @ApiModelProperty("图片地址") + private String url; + + @ApiModelProperty("相似度") + private String feature; + + @ApiModelProperty("抓拍时间") + private Long pictime; + + @ApiModelProperty("车牌号") + private String plateNumber; +} diff --git b/src/main/java/com/objecteye/entity/VvehicleFilePlateNumberQueryResult.java a/src/main/java/com/objecteye/entity/VvehicleFilePlateNumberQueryResult.java new file mode 100644 index 0000000..3493d9d --- /dev/null +++ a/src/main/java/com/objecteye/entity/VvehicleFilePlateNumberQueryResult.java @@ -0,0 +1,57 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 一车一档实现类- 车牌搜档返回视图数据模型 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VvehicleFilePlateNumberQueryResult implements Serializable { + private static final long serialVersionUID = -4976703303856658754L; + + @ApiModelProperty("id") + private String id; + + @ApiModelProperty("车辆抓拍图") + private String picurl; + + @ApiModelProperty("车牌号") + private String plateNumber; + + @ApiModelProperty("车品牌") + private String brand; + + @ApiModelProperty("车款") + private String style; + + /*@ApiModelProperty("车年份") + private String particularYear;*/ + + @ApiModelProperty("车辆颜色") + private String color; + + @ApiModelProperty("车辆类型") + private String type; + +/* @ApiModelProperty("车主信息") + private String masterMsg;*/ + + @ApiModelProperty("经度") + private String longitude; + + @ApiModelProperty("纬度") + private String latitude; + + @ApiModelProperty("设备名称") + private String equipmentName; + + @ApiModelProperty("抓拍时间") + private String pictime; +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/entity/VvehicleFileQueryResult.java a/src/main/java/com/objecteye/entity/VvehicleFileQueryResult.java new file mode 100644 index 0000000..5b5b1cc --- /dev/null +++ a/src/main/java/com/objecteye/entity/VvehicleFileQueryResult.java @@ -0,0 +1,30 @@ +package com.objecteye.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +/** + * 一车一档实现类- 档案浏览查询返回视图数据模型 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +public class VvehicleFileQueryResult implements Serializable { + private static final long serialVersionUID = -3942635445087431499L; + + @ApiModelProperty("档案出现次数") + private Long appearNum; + + @ApiModelProperty("最后出现时间") + private String pictime; + + @ApiModelProperty("车牌号") + private String id; + + @ApiModelProperty("车辆url") + private String picurl; +} diff --git b/src/main/java/com/objecteye/exception/CustomXException.java a/src/main/java/com/objecteye/exception/CustomXException.java new file mode 100644 index 0000000..ef0f8c1 --- /dev/null +++ a/src/main/java/com/objecteye/exception/CustomXException.java @@ -0,0 +1,36 @@ +package com.objecteye.exception; + +import java.util.Map; + +/** + * custom exception which handles custom request error. + */ +public class CustomXException extends RuntimeException { + private String msg; + private String code; + private Map params = null; + + public CustomXException(String msg, String code, Map params) { + this.code = code; + this.msg = msg; + this.params = params; + } + + public CustomXException(String msg, String code) { + this.code = code; + this.msg = msg; + } + + + public String getCode() { + return code; + } + + public String getMsg() { + return msg; + } + + public Map getParams() { + return params; + } +} diff --git b/src/main/java/com/objecteye/handle/Ftp2Mongo.java a/src/main/java/com/objecteye/handle/Ftp2Mongo.java new file mode 100644 index 0000000..4c0f8ed --- /dev/null +++ a/src/main/java/com/objecteye/handle/Ftp2Mongo.java @@ -0,0 +1,138 @@ +package com.objecteye.handle; + +import com.alibaba.fastjson.JSON; +import com.objecteye.config.RabbitmqConfig; +import com.objecteye.entity.ResponseParam; +import com.objecteye.entity.SyEquipment; +import com.objecteye.entity.UploadVehicleResult; +import com.objecteye.entity.VpAnalysisParam; +import com.objecteye.service.EquipmentService; +import com.objecteye.utils.FtpUtil; +import com.objecteye.utils.GlobalUtil; +import com.objecteye.utils.TimeUtil; +import org.apache.commons.net.ftp.FTPClient; +import org.apache.commons.net.ftp.FTPFile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Map; + +@Component +public class Ftp2Mongo { + private Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private FtpUtil ftpUtil; + @Autowired + private RabbitTemplate rabbitTemplate; + @Autowired + private EquipmentService equipmentService; + + @Value("${picture.storePath}") + private String path2; + @Value("${picture.http}") + private String http; + @Value("${requestFile}") + private String url; + + + public void downloadFile() { + while (true) { + Map equipmentIpAndId = redisTemplate.opsForHash().entries("equipmentIpAndId"); + OutputStream os = null; + FTPClient ftp = ftpUtil.connect(); + if (ftp != null) { + String localpath = path2; + try { + Thread.sleep(500); + FTPFile[] ftpFiles = ftp.listDirectories(); + if (null == ftpFiles || ftpFiles.length == 0) { + Thread.sleep(1000); + } else { + for (FTPFile ftpFile : ftpFiles) { + String name = ftpFile.getName(); + if (equipmentIpAndId.containsKey(name)) { + FTPFile[] fs = ftp.listFiles(name); + for (FTPFile f : fs) { + String fileName = f.getName(); + File localFile = new File(localpath + "/" + fileName); + + if (localFile.exists()) { + ftp.deleteFile(name + "/" + fileName); + } + String picName = localpath + fileName; + os = new FileOutputStream(picName); + boolean b = ftp.retrieveFile(name + "/" + fileName, os); + int i = 0; + while (i <= 1000) { + if (b) { + long timeStamp = TimeUtil.getTimeStamp(fileName); + System.out.println(timeStamp); + String picFile = TimeUtil.getPicFile(fileName); + String picUrl = http + fileName; + Integer deviceId = equipmentIpAndId.get(picFile); + SyEquipment equipment = equipmentService.findOne(deviceId); + String latitude = equipment.getLatitude(); + String longitude = equipment.getLongitude(); + String equipmentName = equipment.getEquipmentName(); + + File file = new File(picName); + String body = GlobalUtil.httpExecute(url, file); + + ResponseParam responseParam = JSON.parseObject(body, ResponseParam.class); + String code = responseParam.getCode(); + if ("0".equals(code)) { + String s1 = JSON.toJSONString(responseParam.getResult()); + VpAnalysisParam vpAnalysisParam = JSON.parseObject(s1, VpAnalysisParam.class); + UploadVehicleResult uploadVehicleResult = new UploadVehicleResult(); + uploadVehicleResult.setCount(vpAnalysisParam.getCount()); + uploadVehicleResult.setInfo(vpAnalysisParam.getInfo()); + uploadVehicleResult.setPicName(fileName); + uploadVehicleResult.setDeviceId(deviceId); + uploadVehicleResult.setImageUrl(picUrl); + uploadVehicleResult.setEquipmentName(equipmentName); + uploadVehicleResult.setLatitude(latitude); + uploadVehicleResult.setLongitude(longitude); + + uploadVehicleResult.setCaptureTime(timeStamp); + String s = JSON.toJSONString(uploadVehicleResult); + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.store", s); + } + ftp.deleteFile(name + "/" + fileName); + break; + } else { + Thread.sleep(100); + i += 100; + } + } + os.close(); + } + } + } + } + ftp.logout(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (ftp.isConnected()) + try { + ftp.disconnect(); + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + } + } + } +} diff --git b/src/main/java/com/objecteye/handle/PictureHandle.java a/src/main/java/com/objecteye/handle/PictureHandle.java new file mode 100644 index 0000000..075db77 --- /dev/null +++ a/src/main/java/com/objecteye/handle/PictureHandle.java @@ -0,0 +1,80 @@ +package com.objecteye.handle; + +import com.alibaba.fastjson.JSON; +import com.objecteye.entity.ResponseParam; +import com.objecteye.entity.SyEquipment; +import com.objecteye.entity.UploadVehicleResult; +import com.objecteye.entity.VpAnalysisParam; +import com.objecteye.service.EquipmentService; +import com.objecteye.utils.GlobalUtil; +import com.objecteye.utils.TimeUtil; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.util.Map; + +/** + * @author yumiu + */ +@Component +public class PictureHandle { + + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private RabbitTemplate rabbitTemplate; + @Autowired + private EquipmentService equipmentService; + + @Value("${picture.storePath}") + private String path2; + @Value("${picture.http}") + private String http; + @Value("${requestFile}") + private String url; + + @Async("taskExecutor") + public void handlePic() { + String picPath = (String) redisTemplate.opsForList().rightPop("picPath"); + Map equipmentIpAndId = redisTemplate.opsForHash().entries("equipmentIpAndId"); + if (picPath != null) { + long timeStamp = TimeUtil.getTimeStamp(picPath); + String picFile = TimeUtil.getPicFile(picPath); + String picUrl = http + picPath; + Integer deviceId = equipmentIpAndId.get(picFile); + SyEquipment equipment = equipmentService.findOne(deviceId); + String latitude = equipment.getLatitude(); + String longitude = equipment.getLongitude(); + String equipmentName = equipment.getEquipmentName(); + String path = path2 + picPath; + File file = new File(path); + + String body = GlobalUtil.httpExecute(url, file); + + ResponseParam responseParam = JSON.parseObject(body, ResponseParam.class); + String code = responseParam.getCode(); + if ("0".equals(code)) { + String s1 = JSON.toJSONString(responseParam.getResult()); + VpAnalysisParam vpAnalysisParam = JSON.parseObject(s1, VpAnalysisParam.class); + UploadVehicleResult uploadVehicleResult = new UploadVehicleResult(); + uploadVehicleResult.setCount(vpAnalysisParam.getCount()); + uploadVehicleResult.setInfo(vpAnalysisParam.getInfo()); + uploadVehicleResult.setPicName(path); + uploadVehicleResult.setDeviceId(deviceId); + uploadVehicleResult.setImageUrl(picUrl); + uploadVehicleResult.setEquipmentName(equipmentName); + uploadVehicleResult.setLatitude(latitude); + uploadVehicleResult.setLongitude(longitude); + uploadVehicleResult.setCaptureTime(timeStamp); + String s = JSON.toJSONString(uploadVehicleResult); + System.out.println(s); + //rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.store.alarm", s); + } + } + } +} diff --git b/src/main/java/com/objecteye/mapper/SyAreaEquipmentMapper.java a/src/main/java/com/objecteye/mapper/SyAreaEquipmentMapper.java new file mode 100644 index 0000000..2376633 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyAreaEquipmentMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyAreaEquipment; +import com.objecteye.entity.SyAreaEquipmentExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyAreaEquipmentMapper { + int countByExample(SyAreaEquipmentExample example); + + int deleteByExample(SyAreaEquipmentExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyAreaEquipment record); + + int insertSelective(SyAreaEquipment record); + + List selectByExample(SyAreaEquipmentExample example); + + SyAreaEquipment selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyAreaEquipment record, @Param("example") SyAreaEquipmentExample example); + + int updateByExample(@Param("record") SyAreaEquipment record, @Param("example") SyAreaEquipmentExample example); + + int updateByPrimaryKeySelective(SyAreaEquipment record); + + int updateByPrimaryKey(SyAreaEquipment record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyDeployEquipmentMapper.java a/src/main/java/com/objecteye/mapper/SyDeployEquipmentMapper.java new file mode 100644 index 0000000..04c9d64 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyDeployEquipmentMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyDeployEquipment; +import com.objecteye.entity.SyDeployEquipmentExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyDeployEquipmentMapper { + int countByExample(SyDeployEquipmentExample example); + + int deleteByExample(SyDeployEquipmentExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyDeployEquipment record); + + int insertSelective(SyDeployEquipment record); + + List selectByExample(SyDeployEquipmentExample example); + + SyDeployEquipment selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyDeployEquipment record, @Param("example") SyDeployEquipmentExample example); + + int updateByExample(@Param("record") SyDeployEquipment record, @Param("example") SyDeployEquipmentExample example); + + int updateByPrimaryKeySelective(SyDeployEquipment record); + + int updateByPrimaryKey(SyDeployEquipment record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyDeployFeatureMapper.java a/src/main/java/com/objecteye/mapper/SyDeployFeatureMapper.java new file mode 100644 index 0000000..b475967 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyDeployFeatureMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyDeployFeature; +import com.objecteye.entity.SyDeployFeatureExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyDeployFeatureMapper { + int countByExample(SyDeployFeatureExample example); + + int deleteByExample(SyDeployFeatureExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyDeployFeature record); + + int insertSelective(SyDeployFeature record); + + List selectByExample(SyDeployFeatureExample example); + + SyDeployFeature selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyDeployFeature record, @Param("example") SyDeployFeatureExample example); + + int updateByExample(@Param("record") SyDeployFeature record, @Param("example") SyDeployFeatureExample example); + + int updateByPrimaryKeySelective(SyDeployFeature record); + + int updateByPrimaryKey(SyDeployFeature record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyDeployMapper.java a/src/main/java/com/objecteye/mapper/SyDeployMapper.java new file mode 100644 index 0000000..54ffc71 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyDeployMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyDeploy; +import com.objecteye.entity.SyDeployExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyDeployMapper { + int countByExample(SyDeployExample example); + + int deleteByExample(SyDeployExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyDeploy record); + + int insertSelective(SyDeploy record); + + List selectByExample(SyDeployExample example); + + SyDeploy selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyDeploy record, @Param("example") SyDeployExample example); + + int updateByExample(@Param("record") SyDeploy record, @Param("example") SyDeployExample example); + + int updateByPrimaryKeySelective(SyDeploy record); + + int updateByPrimaryKey(SyDeploy record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyEquipmentMapper.java a/src/main/java/com/objecteye/mapper/SyEquipmentMapper.java new file mode 100644 index 0000000..6c2bfd1 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyEquipmentMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyEquipment; +import com.objecteye.entity.SyEquipmentExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyEquipmentMapper { + int countByExample(SyEquipmentExample example); + + int deleteByExample(SyEquipmentExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyEquipment record); + + int insertSelective(SyEquipment record); + + List selectByExample(SyEquipmentExample example); + + SyEquipment selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyEquipment record, @Param("example") SyEquipmentExample example); + + int updateByExample(@Param("record") SyEquipment record, @Param("example") SyEquipmentExample example); + + int updateByPrimaryKeySelective(SyEquipment record); + + int updateByPrimaryKey(SyEquipment record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyFeatureMapper.java a/src/main/java/com/objecteye/mapper/SyFeatureMapper.java new file mode 100644 index 0000000..f95ee7a --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyFeatureMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyFeature; +import com.objecteye.entity.SyFeatureExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyFeatureMapper { + int countByExample(SyFeatureExample example); + + int deleteByExample(SyFeatureExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyFeature record); + + int insertSelective(SyFeature record); + + List selectByExample(SyFeatureExample example); + + SyFeature selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyFeature record, @Param("example") SyFeatureExample example); + + int updateByExample(@Param("record") SyFeature record, @Param("example") SyFeatureExample example); + + int updateByPrimaryKeySelective(SyFeature record); + + int updateByPrimaryKey(SyFeature record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyPersonnelMapper.java a/src/main/java/com/objecteye/mapper/SyPersonnelMapper.java new file mode 100644 index 0000000..1a73b09 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyPersonnelMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyPersonnel; +import com.objecteye.entity.SyPersonnelExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyPersonnelMapper { + int countByExample(SyPersonnelExample example); + + int deleteByExample(SyPersonnelExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyPersonnel record); + + int insertSelective(SyPersonnel record); + + List selectByExample(SyPersonnelExample example); + + SyPersonnel selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyPersonnel record, @Param("example") SyPersonnelExample example); + + int updateByExample(@Param("record") SyPersonnel record, @Param("example") SyPersonnelExample example); + + int updateByPrimaryKeySelective(SyPersonnel record); + + int updateByPrimaryKey(SyPersonnel record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyPrivilegeMapper.java a/src/main/java/com/objecteye/mapper/SyPrivilegeMapper.java new file mode 100644 index 0000000..7d00fc8 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyPrivilegeMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyPrivilege; +import com.objecteye.entity.SyPrivilegeExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyPrivilegeMapper { + int countByExample(SyPrivilegeExample example); + + int deleteByExample(SyPrivilegeExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyPrivilege record); + + int insertSelective(SyPrivilege record); + + List selectByExample(SyPrivilegeExample example); + + SyPrivilege selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyPrivilege record, @Param("example") SyPrivilegeExample example); + + int updateByExample(@Param("record") SyPrivilege record, @Param("example") SyPrivilegeExample example); + + int updateByPrimaryKeySelective(SyPrivilege record); + + int updateByPrimaryKey(SyPrivilege record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyRoleMapper.java a/src/main/java/com/objecteye/mapper/SyRoleMapper.java new file mode 100644 index 0000000..f7397ad --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyRoleMapper.java @@ -0,0 +1,33 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyRole; +import com.objecteye.entity.SyRoleExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyRoleMapper { + int countByExample(SyRoleExample example); + + int deleteByExample(SyRoleExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyRole record); + + int insertSelective(SyRole record); + + List selectByExample(SyRoleExample example); + + SyRole selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyRole record, @Param("example") SyRoleExample example); + + int updateByExample(@Param("record") SyRole record, @Param("example") SyRoleExample example); + + int updateByPrimaryKeySelective(SyRole record); + + int updateByPrimaryKey(SyRole record); + + List selectRolePage(@Param("currentPage") int currentPage, @Param("pageVolum") int pageVolum); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyRolePrivilegeMapper.java a/src/main/java/com/objecteye/mapper/SyRolePrivilegeMapper.java new file mode 100644 index 0000000..ab4d460 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyRolePrivilegeMapper.java @@ -0,0 +1,33 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyRolePrivilege; +import com.objecteye.entity.SyRolePrivilegeExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyRolePrivilegeMapper { + int countByExample(SyRolePrivilegeExample example); + + int deleteByExample(SyRolePrivilegeExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyRolePrivilege record); + + int insertSelective(SyRolePrivilege record); + + List selectByExample(SyRolePrivilegeExample example); + + List selectByRid(Integer rid); + + SyRolePrivilege selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyRolePrivilege record, @Param("example") SyRolePrivilegeExample example); + + int updateByExample(@Param("record") SyRolePrivilege record, @Param("example") SyRolePrivilegeExample example); + + int updateByPrimaryKeySelective(SyRolePrivilege record); + + int updateByPrimaryKey(SyRolePrivilege record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyUserMapper.java a/src/main/java/com/objecteye/mapper/SyUserMapper.java new file mode 100644 index 0000000..3e6dff8 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyUserMapper.java @@ -0,0 +1,36 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyUser; +import com.objecteye.entity.SyUserExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyUserMapper { + int countByExample(SyUserExample example); + + int deleteByExample(SyUserExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyUser record); + + int insertSelective(SyUser record); + + List selectByExample(SyUserExample example); + + SyUser selectByPrimaryKey(Integer id); + + List selectUserPage(@Param("currentPage") int currentPage, @Param("pageVolum") int pageVolum); + + int updateByExampleSelective(@Param("record") SyUser record, @Param("example") SyUserExample example); + + int updateByExample(@Param("record") SyUser record, @Param("example") SyUserExample example); + + int updateByPrimaryKeySelective(SyUser record); + + int updateByPrimaryKey(SyUser record); + + /* 通过账户和密码进行搜索*/ + SyUser selectByUP(@Param("username") String username, @Param("password") String password); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyVehicleDbMapper.java a/src/main/java/com/objecteye/mapper/SyVehicleDbMapper.java new file mode 100644 index 0000000..2a32868 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyVehicleDbMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyVehicleDb; +import com.objecteye.entity.SyVehicleDbExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyVehicleDbMapper { + int countByExample(SyVehicleDbExample example); + + int deleteByExample(SyVehicleDbExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyVehicleDb record); + + int insertSelective(SyVehicleDb record); + + List selectByExample(SyVehicleDbExample example); + + SyVehicleDb selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyVehicleDb record, @Param("example") SyVehicleDbExample example); + + int updateByExample(@Param("record") SyVehicleDb record, @Param("example") SyVehicleDbExample example); + + int updateByPrimaryKeySelective(SyVehicleDb record); + + int updateByPrimaryKey(SyVehicleDb record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyVehicleForbidenTaskMapper.java a/src/main/java/com/objecteye/mapper/SyVehicleForbidenTaskMapper.java new file mode 100644 index 0000000..e85274a --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyVehicleForbidenTaskMapper.java @@ -0,0 +1,31 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyVehicleForbidenTask; +import com.objecteye.entity.SyVehicleForbidenTaskExample; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyVehicleForbidenTaskMapper { + int countByExample(SyVehicleForbidenTaskExample example); + + int deleteByExample(SyVehicleForbidenTaskExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyVehicleForbidenTask record); + + int insertSelective(SyVehicleForbidenTask record); + + List selectByExample(SyVehicleForbidenTaskExample example); + + SyVehicleForbidenTask selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyVehicleForbidenTask record, @Param("example") SyVehicleForbidenTaskExample example); + + int updateByExample(@Param("record") SyVehicleForbidenTask record, @Param("example") SyVehicleForbidenTaskExample example); + + int updateByPrimaryKeySelective(SyVehicleForbidenTask record); + + int updateByPrimaryKey(SyVehicleForbidenTask record); +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/mapper/SyVehicleModelMapper.java a/src/main/java/com/objecteye/mapper/SyVehicleModelMapper.java new file mode 100644 index 0000000..16b6804 --- /dev/null +++ a/src/main/java/com/objecteye/mapper/SyVehicleModelMapper.java @@ -0,0 +1,49 @@ +package com.objecteye.mapper; + +import com.objecteye.entity.SyVehicleModel; +import com.objecteye.entity.SyVehicleModelExample; +import com.objecteye.pojo.NameValue; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface SyVehicleModelMapper { + int countByExample(SyVehicleModelExample example); + + int deleteByExample(SyVehicleModelExample example); + + int deleteByPrimaryKey(Integer id); + + int insert(SyVehicleModel record); + + int insertSelective(SyVehicleModel record); + + List selectByExample(SyVehicleModelExample example); + + SyVehicleModel selectByPrimaryKey(Integer id); + + int updateByExampleSelective(@Param("record") SyVehicleModel record, @Param("example") SyVehicleModelExample example); + + int updateByExample(@Param("record") SyVehicleModel record, @Param("example") SyVehicleModelExample example); + + int updateByPrimaryKeySelective(SyVehicleModel record); + + int updateByPrimaryKey(SyVehicleModel record); + + List selectDisplayForInitials(); + + List selectDisplayForBrand(@Param("initals") String initals); + + List selectDisplayForSubbrand(@Param("brand") String brand); + + List selectDisplayForBirthday(@Param("subbrand") String subbrand); + + List displayVehicleTypeList(); + + List displayVehicleColorList(); + + List displayVehiclePlateTypeList(); + + List displayVehicleNjbNumberList(); + +} \ No newline at end of file diff --git b/src/main/java/com/objecteye/pojo/FaceInfoParam.java a/src/main/java/com/objecteye/pojo/FaceInfoParam.java new file mode 100644 index 0000000..7ebb5e9 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/FaceInfoParam.java @@ -0,0 +1,31 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * 人像特征类 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class FaceInfoParam { + private String id; //人像id + private String mattingData; //抠图的base64 + private FacePosition facePosition; //脸部位置 + private float facePosScore; //人脸框置信度 + private Integer quality; //质量评价 + private Integer clarity; //清晰度 0 - 100 + private Integer brightness; //亮度 0 - 255 + private float roll; //姿态角--float + private float yaw; //姿态角--float + private float pitch; //姿态角--float + private float score; //人脸置信度-float + private float[] fea; //人脸特征值 256位 + private String retrieveKey; //1vN检索key值 + private Integer label; //聚类下标 + +} diff --git b/src/main/java/com/objecteye/pojo/FacePosition.java a/src/main/java/com/objecteye/pojo/FacePosition.java new file mode 100644 index 0000000..018eef2 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/FacePosition.java @@ -0,0 +1,20 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +/** + * 创建人脸位置类 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class FacePosition { + private Integer left; + private Integer top; + private Integer width; + private Integer heigth; +} diff --git b/src/main/java/com/objecteye/pojo/NameValue.java a/src/main/java/com/objecteye/pojo/NameValue.java new file mode 100644 index 0000000..2e8f331 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/NameValue.java @@ -0,0 +1,17 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class NameValue implements Serializable { + private String name; + private Integer value; +} diff --git b/src/main/java/com/objecteye/pojo/PendantParams.java a/src/main/java/com/objecteye/pojo/PendantParams.java new file mode 100644 index 0000000..5c90901 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/PendantParams.java @@ -0,0 +1,52 @@ +package com.objecteye.pojo; + +import java.util.Arrays; + +//车辆装饰拼 +public class PendantParams { + private int index; + private int[] syrectparam; + private double confidence; + + public PendantParams() { + } + + public PendantParams(int index, int[] syrectparam, double confidence) { + this.index = index; + this.syrectparam = syrectparam; + this.confidence = confidence; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + public int[] getSyrectparam() { + return syrectparam; + } + + public void setSyrectparam(int[] syrectparam) { + this.syrectparam = syrectparam; + } + + public double getConfidence() { + return confidence; + } + + public void setConfidence(double confidence) { + this.confidence = confidence; + } + + @Override + public String toString() { + return "PendantParams{" + + "index=" + index + + ", syrectparam=" + Arrays.toString(syrectparam) + + ", confidence=" + confidence + + '}'; + } +} diff --git b/src/main/java/com/objecteye/pojo/PicVehicleCompare.java a/src/main/java/com/objecteye/pojo/PicVehicleCompare.java new file mode 100644 index 0000000..92a0b8a --- /dev/null +++ a/src/main/java/com/objecteye/pojo/PicVehicleCompare.java @@ -0,0 +1,18 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +@Component +@Data +@AllArgsConstructor +@NoArgsConstructor +public class PicVehicleCompare implements Serializable { + + private RabbitMQVehicle rabbitMQVehicle; + private double similar; +} diff --git b/src/main/java/com/objecteye/pojo/PicVehicleDataResult.java a/src/main/java/com/objecteye/pojo/PicVehicleDataResult.java new file mode 100644 index 0000000..6993dbc --- /dev/null +++ a/src/main/java/com/objecteye/pojo/PicVehicleDataResult.java @@ -0,0 +1,18 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; +import java.util.List; + +@Data +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class PicVehicleDataResult implements Serializable { + private Integer total; + private List row; +} diff --git b/src/main/java/com/objecteye/pojo/PicVehicleRow.java a/src/main/java/com/objecteye/pojo/PicVehicleRow.java new file mode 100644 index 0000000..19e44a0 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/PicVehicleRow.java @@ -0,0 +1,24 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString +public class PicVehicleRow implements Serializable { + + private String id; + private int recordid; + private String hphm; + private String picurl; + private String snapshoturl; + private String similar; + private String site; + private String phototime; +} diff --git b/src/main/java/com/objecteye/pojo/PlatePlateNumParams.java a/src/main/java/com/objecteye/pojo/PlatePlateNumParams.java new file mode 100644 index 0000000..2223621 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/PlatePlateNumParams.java @@ -0,0 +1,40 @@ +package com.objecteye.pojo; + +//每位号牌可信度 +public class PlatePlateNumParams { + + private double maxprob; + private String character; + + public PlatePlateNumParams() { + } + + public PlatePlateNumParams(double maxprob, String character) { + this.maxprob = maxprob; + this.character = character; + } + + public double getMaxprob() { + return maxprob; + } + + public void setMaxprob(double maxprob) { + this.maxprob = maxprob; + } + + public String getCharacter() { + return character; + } + + public void setCharacter(String character) { + this.character = character; + } + + @Override + public String toString() { + return "PlatePlateNumParams{" + + "maxprob=" + maxprob + + ", character='" + character + '\'' + + '}'; + } +} diff --git b/src/main/java/com/objecteye/pojo/RabbitMQInfo.java a/src/main/java/com/objecteye/pojo/RabbitMQInfo.java new file mode 100644 index 0000000..58b78c8 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/RabbitMQInfo.java @@ -0,0 +1,57 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString +public class RabbitMQInfo { + private String id; //车辆id + private String equipmentName; //设备名称 + private String longitude; //经度 + private String latitude; //纬度 + private String picurl; //图片的路径 + private Integer recordid; //车辆档案id + private String pictime; //抓拍时间 + private String flag; //是否报警 + private String tag; //是否确认 + private String personid; //人像id + private String vehicleplatetype; //车牌类型 + private Float vehicle_plate_numScore; //号牌可信度 + private String vehicle_color_index; //车辆颜色; + private String vehicle_special_type; //特殊品类车类型 + private String vehicle_illegal_driver_smoke_status; //主驾驶吸烟 + private String vehicle_illegal_driver_belt_status; //主驾驶安全带 + private String vehicle_illegal_driver_phone_status; //主驾驶打电话 + private String vehicle_illegal_driver_person_status; //主驾驶是否有人 + private String vehicle_illegal_copilot_smoke_status; //副驾驶吸烟 + private String vehicle_illegal_copilot_belt_status; //副驾驶安全带 + private String vehicle_illegal_copilot_phone_status; //副驾驶打电话 + private String vehicle_illegal_copilot_person_status; //副驾驶有人 + private String vehicle_recg_type; //车辆类型 + private String vehicle_recg_freight_ton; //吨数 + private Float vehicle_recg_name_score; //品牌可信度 + private String vehicle_plate_hphm; //车辆号牌 + private Integer vehicle_pendant_detect_njbnumber; //年检标数量 + private String vehicle_pendant_detect_gjexis; //是否存在挂件 0表示不存在 1表示存在 + //1.主驾驶遮阳板 + private String vehicle_pendant_driver_zyb; + //2.副驾遮阳板 + private String vehicle_pendant_copilot_zyb; + //3.是否有纸巾盒 + private String vehicle_pendant_detect_zjh; + //4.是否有转经筒 + private String vehicle_pendant_detect_zjt; + //车牌状态 + private String vehicle_plate_status; + //车辆型号 + private String clxh; + //增加该车辆的抓拍图(为避免IO,此处使用base64) + private String snapshot; + + +} diff --git b/src/main/java/com/objecteye/pojo/RabbitMQVehicle.java a/src/main/java/com/objecteye/pojo/RabbitMQVehicle.java new file mode 100644 index 0000000..eff6dfb --- /dev/null +++ a/src/main/java/com/objecteye/pojo/RabbitMQVehicle.java @@ -0,0 +1,147 @@ +package com.objecteye.pojo; + +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +@Document(collection = "rabbitMQVehicle") +@Data +@ToString +@NoArgsConstructor +public class RabbitMQVehicle { + + @Id + private String id; //车辆id + private int count;//在档案中的位置 + private int deviceid; //设备id + private String equipmentName; + private String longitude; + private String latitude; + private String picurl; //图片的路径 + private int recordid; //车辆档案id + private Long pictime; //抓拍时间 + private int flag; //是否报警 + private int tag; //是否确认 + private String personid; //人像id + private int[] vehicleplaterect; //车牌位置 + private double vehicleplatedetectscore; //车牌检测分数 + private int vehicleplatetype; //车牌类型 + private double vehicle_plate_numScore; + private double vehicle_color_score; + private int vehicle_color_index; + private double vehicle_detect_score; + private int[] vehicle_detect_syRectParam; + private double vehicle_win_score; + private int[] vehicle_win_syRectParam; + private int vehicle_special_type; + private double vehicle_special_score; + private double vehicle_illegal_driver_smoke_confidence; + private int vehicle_illegal_driver_smoke_status; + private double vehicle_illegal_driver_belt_confidence; + private int vehicle_illegal_driver_belt_status; + private double vehicle_illegal_driver_phone_confidence; + private int vehicle_illegal_driver_phone_status; + private double vehicle_illegal_driver_person_confidence; + private int vehicle_illegal_driver_person_status; + private double vehicle_illegal_copilot_smoke_confidence; + private int vehicle_illegal_copilot_smoke_status; + private double vehicle_illegal_copilot_belt_confidence; + private int vehicle_illegal_copilot_belt_status; + private double vehicle_illegal_copilot_phone_confidence; + private int vehicle_illegal_copilot_phone_status; + private double vehicle_illegal_copilot_person_confidence; + private int vehicle_illegal_copilot_person_status; + private String vehicle_recg_issue_year; + private String vehicle_recg_brand; + private String vehicle_recg_type; + private String vehicle_recg_subbrand; + private String vehicle_recg_freight_ton; //吨数 + private double vehicle_recg_name_score; + private int vehicle_pendant_count; + private double[] vehicle_fea_feature; + private PendantParams[] vehicle_pendant_Params; + private PlatePlateNumParams[] vehicle_plate_plateNumParams; + private String vehicle_plate_hphm; + private Integer vehicle_pendant_detect_njbnumber; //年检标数量 + private Integer vehicle_pendant_detect_gjexis; //是否存在挂件 0表示不存在 1表示存在 + private Integer vehicle_pendant_detect_zybexis; //是否存在遮阳板 0表示不存在 1表示存在 + private String personUrl; + //额外添加的snapshotUrl + private String snapshoturl; //快照图的路径 + + public RabbitMQVehicle(int count, int deviceid, String equipmentName, String longitude, String latitude, String picurl, int recordid, + Long pictime, int flag, int tag, String personid, int[] vehicleplaterect, double vehicleplatedetectscore, int vehicleplatetype, + double vehicle_plate_numScore, double vehicle_color_score, int vehicle_color_index, double vehicle_detect_score, + int[] vehicle_detect_syRectParam, double vehicle_win_score, int[] vehicle_win_syRectParam, int vehicle_special_type, + double vehicle_special_score, double vehicle_illegal_driver_smoke_confidence, int vehicle_illegal_driver_smoke_status, + double vehicle_illegal_driver_belt_confidence, int vehicle_illegal_driver_belt_status, + double vehicle_illegal_driver_phone_confidence, int vehicle_illegal_driver_phone_status, + double vehicle_illegal_driver_person_confidence, int vehicle_illegal_driver_person_status, + double vehicle_illegal_copilot_smoke_confidence, int vehicle_illegal_copilot_smoke_status, + double vehicle_illegal_copilot_belt_confidence, int vehicle_illegal_copilot_belt_status, + double vehicle_illegal_copilot_phone_confidence, int vehicle_illegal_copilot_phone_status, + double vehicle_illegal_copilot_person_confidence, int vehicle_illegal_copilot_person_status, + String vehicle_recg_issue_year, String vehicle_recg_brand, String vehicle_recg_type, String vehicle_recg_subbrand, + String vehicle_recg_freight_ton, double vehicle_recg_name_score, int vehicle_pendant_count, double[] vehicle_fea_feature, + PendantParams[] vehicle_pendant_Params, PlatePlateNumParams[] vehicle_plate_plateNumParams, String vehicle_plate_hphm, + Integer vehicle_pendant_detect_njbnumber, Integer vehicle_pendant_detect_gjexis, Integer vehicle_pendant_detect_zybexis, String personUrl, String snapshoturl) { + this.count = count; + this.deviceid = deviceid; + this.equipmentName = equipmentName; + this.longitude = longitude; + this.latitude = latitude; + this.picurl = picurl; + this.recordid = recordid; + this.pictime = pictime; + this.flag = flag; + this.tag = tag; + this.personid = personid; + this.vehicleplaterect = vehicleplaterect; + this.vehicleplatedetectscore = vehicleplatedetectscore; + this.vehicleplatetype = vehicleplatetype; + this.vehicle_plate_numScore = vehicle_plate_numScore; + this.vehicle_color_score = vehicle_color_score; + this.vehicle_color_index = vehicle_color_index; + this.vehicle_detect_score = vehicle_detect_score; + this.vehicle_detect_syRectParam = vehicle_detect_syRectParam; + this.vehicle_win_score = vehicle_win_score; + this.vehicle_win_syRectParam = vehicle_win_syRectParam; + this.vehicle_special_type = vehicle_special_type; + this.vehicle_special_score = vehicle_special_score; + this.vehicle_illegal_driver_smoke_confidence = vehicle_illegal_driver_smoke_confidence; + this.vehicle_illegal_driver_smoke_status = vehicle_illegal_driver_smoke_status; + this.vehicle_illegal_driver_belt_confidence = vehicle_illegal_driver_belt_confidence; + this.vehicle_illegal_driver_belt_status = vehicle_illegal_driver_belt_status; + this.vehicle_illegal_driver_phone_confidence = vehicle_illegal_driver_phone_confidence; + this.vehicle_illegal_driver_phone_status = vehicle_illegal_driver_phone_status; + this.vehicle_illegal_driver_person_confidence = vehicle_illegal_driver_person_confidence; + this.vehicle_illegal_driver_person_status = vehicle_illegal_driver_person_status; + this.vehicle_illegal_copilot_smoke_confidence = vehicle_illegal_copilot_smoke_confidence; + this.vehicle_illegal_copilot_smoke_status = vehicle_illegal_copilot_smoke_status; + this.vehicle_illegal_copilot_belt_confidence = vehicle_illegal_copilot_belt_confidence; + this.vehicle_illegal_copilot_belt_status = vehicle_illegal_copilot_belt_status; + this.vehicle_illegal_copilot_phone_confidence = vehicle_illegal_copilot_phone_confidence; + this.vehicle_illegal_copilot_phone_status = vehicle_illegal_copilot_phone_status; + this.vehicle_illegal_copilot_person_confidence = vehicle_illegal_copilot_person_confidence; + this.vehicle_illegal_copilot_person_status = vehicle_illegal_copilot_person_status; + this.vehicle_recg_issue_year = vehicle_recg_issue_year; + this.vehicle_recg_brand = vehicle_recg_brand; + this.vehicle_recg_type = vehicle_recg_type; + this.vehicle_recg_subbrand = vehicle_recg_subbrand; + this.vehicle_recg_freight_ton = vehicle_recg_freight_ton; + this.vehicle_recg_name_score = vehicle_recg_name_score; + this.vehicle_pendant_count = vehicle_pendant_count; + this.vehicle_fea_feature = vehicle_fea_feature; + this.vehicle_pendant_Params = vehicle_pendant_Params; + this.vehicle_plate_plateNumParams = vehicle_plate_plateNumParams; + this.vehicle_plate_hphm = vehicle_plate_hphm; + this.vehicle_pendant_detect_njbnumber = vehicle_pendant_detect_njbnumber; + this.vehicle_pendant_detect_gjexis = vehicle_pendant_detect_gjexis; + this.vehicle_pendant_detect_zybexis = vehicle_pendant_detect_zybexis; + this.personUrl = personUrl; + this.snapshoturl = snapshoturl; + } + +} diff --git b/src/main/java/com/objecteye/pojo/RabbitMQVehicle.java.bak a/src/main/java/com/objecteye/pojo/RabbitMQVehicle.java.bak new file mode 100644 index 0000000..97d487e --- /dev/null +++ a/src/main/java/com/objecteye/pojo/RabbitMQVehicle.java.bak @@ -0,0 +1,522 @@ +package com.objecteye.pojo; + +import org.springframework.stereotype.Component; + +@Component +public class RabbitMQVehicle1 { + private String id; //车辆id + private int count;//在档案中的位置 + private int deviceid; //设备id + private String equipmentName; + private String longitude; + private String latitude; + private String picurl; //图片的路径 + private int recordid; //车辆档案id + private Long pictime; //抓拍时间 + private int flag; //是否报警 + private int tag; //是否确认 + private String personid; //人像id + private int[] vehicleplaterect; //车牌位置 + private double vehicleplatedetectscore; //车牌检测分数 + private int vehicleplatetype; //车牌类型 + private double vehicle_plate_numScore; + private double vehicle_color_score; + private int vehicle_color_index; + private double vehicle_detect_score; + private int[] vehicle_detect_syRectParam; + private double vehicle_win_score; + private int[] vehicle_win_syRectParam; + private int vehicle_special_type; + private double vehicle_special_score; + private double vehicle_illegal_driver_smoke_confidence; + private int vehicle_illegal_driver_smoke_status; + private double vehicle_illegal_driver_belt_confidence; + private int vehicle_illegal_driver_belt_status; + private double vehicle_illegal_driver_phone_confidence; + private int vehicle_illegal_driver_phone_status; + private double vehicle_illegal_driver_person_confidence; + private int vehicle_illegal_driver_person_status; + private double vehicle_illegal_copilot_smoke_confidence; + private int vehicle_illegal_copilot_smoke_status; + private double vehicle_illegal_copilot_belt_confidence; + private int vehicle_illegal_copilot_belt_status; + private double vehicle_illegal_copilot_phone_confidence; + private int vehicle_illegal_copilot_phone_status; + private double vehicle_illegal_copilot_person_confidence; + private int vehicle_illegal_copilot_person_status; + private String vehicle_recg_issue_year; + private String vehicle_recg_brand; + private String vehicle_recg_type; + private String vehicle_recg_subbrand; + private String vehicle_recg_freight_ton; //吨数 + private double vehicle_recg_name_score; + private int vehicle_pendant_count; + private double[] vehicle_fea_feature; + private PendantParams[] vehicle_pendant_Params; + private PlatePlateNumParams[] vehicle_plate_plateNumParams; + private String vehicle_plate_hphm; + + public RabbitMQVehicle1() {} + + public RabbitMQVehicle1(String id, int count, int deviceid, String equipmentName, String longitude, String latitude, String picurl, int recordid, Long pictime, int flag, int tag, String personid, int[] vehicleplaterect, double vehicleplatedetectscore, int vehicleplatetype, double vehicle_plate_numScore, double vehicle_color_score, int vehicle_color_index, double vehicle_detect_score, int[] vehicle_detect_syRectParam, double vehicle_win_score, int[] vehicle_win_syRectParam, int vehicle_special_type, double vehicle_special_score, double vehicle_illegal_driver_smoke_confidence, int vehicle_illegal_driver_smoke_status, double vehicle_illegal_driver_belt_confidence, int vehicle_illegal_driver_belt_status, double vehicle_illegal_driver_phone_confidence, int vehicle_illegal_driver_phone_status, double vehicle_illegal_driver_person_confidence, int vehicle_illegal_driver_person_status, double vehicle_illegal_copilot_smoke_confidence, int vehicle_illegal_copilot_smoke_status, double vehicle_illegal_copilot_belt_confidence, int vehicle_illegal_copilot_belt_status, double vehicle_illegal_copilot_phone_confidence, int vehicle_illegal_copilot_phone_status, double vehicle_illegal_copilot_person_confidence, int vehicle_illegal_copilot_person_status, String vehicle_recg_issue_year, String vehicle_recg_brand, String vehicle_recg_type, String vehicle_recg_subbrand, String vehicle_recg_freight_ton, double vehicle_recg_name_score, int vehicle_pendant_count, double[] vehicle_fea_feature, PendantParams[] vehicle_pendant_Params, PlatePlateNumParams[] vehicle_plate_plateNumParams, String vehicle_plate_hphm) { + this.id = id; + this.count = count; + this.deviceid = deviceid; + this.equipmentName = equipmentName; + this.longitude = longitude; + this.latitude = latitude; + this.picurl = picurl; + this.recordid = recordid; + this.pictime = pictime; + this.flag = flag; + this.tag = tag; + this.personid = personid; + this.vehicleplaterect = vehicleplaterect; + this.vehicleplatedetectscore = vehicleplatedetectscore; + this.vehicleplatetype = vehicleplatetype; + this.vehicle_plate_numScore = vehicle_plate_numScore; + this.vehicle_color_score = vehicle_color_score; + this.vehicle_color_index = vehicle_color_index; + this.vehicle_detect_score = vehicle_detect_score; + this.vehicle_detect_syRectParam = vehicle_detect_syRectParam; + this.vehicle_win_score = vehicle_win_score; + this.vehicle_win_syRectParam = vehicle_win_syRectParam; + this.vehicle_special_type = vehicle_special_type; + this.vehicle_special_score = vehicle_special_score; + this.vehicle_illegal_driver_smoke_confidence = vehicle_illegal_driver_smoke_confidence; + this.vehicle_illegal_driver_smoke_status = vehicle_illegal_driver_smoke_status; + this.vehicle_illegal_driver_belt_confidence = vehicle_illegal_driver_belt_confidence; + this.vehicle_illegal_driver_belt_status = vehicle_illegal_driver_belt_status; + this.vehicle_illegal_driver_phone_confidence = vehicle_illegal_driver_phone_confidence; + this.vehicle_illegal_driver_phone_status = vehicle_illegal_driver_phone_status; + this.vehicle_illegal_driver_person_confidence = vehicle_illegal_driver_person_confidence; + this.vehicle_illegal_driver_person_status = vehicle_illegal_driver_person_status; + this.vehicle_illegal_copilot_smoke_confidence = vehicle_illegal_copilot_smoke_confidence; + this.vehicle_illegal_copilot_smoke_status = vehicle_illegal_copilot_smoke_status; + this.vehicle_illegal_copilot_belt_confidence = vehicle_illegal_copilot_belt_confidence; + this.vehicle_illegal_copilot_belt_status = vehicle_illegal_copilot_belt_status; + this.vehicle_illegal_copilot_phone_confidence = vehicle_illegal_copilot_phone_confidence; + this.vehicle_illegal_copilot_phone_status = vehicle_illegal_copilot_phone_status; + this.vehicle_illegal_copilot_person_confidence = vehicle_illegal_copilot_person_confidence; + this.vehicle_illegal_copilot_person_status = vehicle_illegal_copilot_person_status; + this.vehicle_recg_issue_year = vehicle_recg_issue_year; + this.vehicle_recg_brand = vehicle_recg_brand; + this.vehicle_recg_type = vehicle_recg_type; + this.vehicle_recg_subbrand = vehicle_recg_subbrand; + this.vehicle_recg_freight_ton = vehicle_recg_freight_ton; + this.vehicle_recg_name_score = vehicle_recg_name_score; + this.vehicle_pendant_count = vehicle_pendant_count; + this.vehicle_fea_feature = vehicle_fea_feature; + this.vehicle_pendant_Params = vehicle_pendant_Params; + this.vehicle_plate_plateNumParams = vehicle_plate_plateNumParams; + this.vehicle_plate_hphm = vehicle_plate_hphm; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public int getDeviceid() { + return deviceid; + } + + public void setDeviceid(int deviceid) { + this.deviceid = deviceid; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getPicurl() { + return picurl; + } + + public void setPicurl(String picurl) { + this.picurl = picurl; + } + + public int getRecordid() { + return recordid; + } + + public void setRecordid(int recordid) { + this.recordid = recordid; + } + + public Long getPictime() { + return pictime; + } + + public void setPictime(Long pictime) { + this.pictime = pictime; + } + + public int getFlag() { + return flag; + } + + public void setFlag(int flag) { + this.flag = flag; + } + + public int getTag() { + return tag; + } + + public void setTag(int tag) { + this.tag = tag; + } + + public String getPersonid() { + return personid; + } + + public void setPersonid(String personid) { + this.personid = personid; + } + + public int[] getVehicleplaterect() { + return vehicleplaterect; + } + + public void setVehicleplaterect(int[] vehicleplaterect) { + this.vehicleplaterect = vehicleplaterect; + } + + public double getVehicleplatedetectscore() { + return vehicleplatedetectscore; + } + + public void setVehicleplatedetectscore(double vehicleplatedetectscore) { + this.vehicleplatedetectscore = vehicleplatedetectscore; + } + + public int getVehicleplatetype() { + return vehicleplatetype; + } + + public void setVehicleplatetype(int vehicleplatetype) { + this.vehicleplatetype = vehicleplatetype; + } + + public double getVehicle_plate_numScore() { + return vehicle_plate_numScore; + } + + public void setVehicle_plate_numScore(double vehicle_plate_numScore) { + this.vehicle_plate_numScore = vehicle_plate_numScore; + } + + public double getVehicle_color_score() { + return vehicle_color_score; + } + + public void setVehicle_color_score(double vehicle_color_score) { + this.vehicle_color_score = vehicle_color_score; + } + + public int getVehicle_color_index() { + return vehicle_color_index; + } + + public void setVehicle_color_index(int vehicle_color_index) { + this.vehicle_color_index = vehicle_color_index; + } + + public double getVehicle_detect_score() { + return vehicle_detect_score; + } + + public void setVehicle_detect_score(double vehicle_detect_score) { + this.vehicle_detect_score = vehicle_detect_score; + } + + public int[] getVehicle_detect_syRectParam() { + return vehicle_detect_syRectParam; + } + + public void setVehicle_detect_syRectParam(int[] vehicle_detect_syRectParam) { + this.vehicle_detect_syRectParam = vehicle_detect_syRectParam; + } + + public double getVehicle_win_score() { + return vehicle_win_score; + } + + public void setVehicle_win_score(double vehicle_win_score) { + this.vehicle_win_score = vehicle_win_score; + } + + public int[] getVehicle_win_syRectParam() { + return vehicle_win_syRectParam; + } + + public void setVehicle_win_syRectParam(int[] vehicle_win_syRectParam) { + this.vehicle_win_syRectParam = vehicle_win_syRectParam; + } + + public int getVehicle_special_type() { + return vehicle_special_type; + } + + public void setVehicle_special_type(int vehicle_special_type) { + this.vehicle_special_type = vehicle_special_type; + } + + public double getVehicle_special_score() { + return vehicle_special_score; + } + + public void setVehicle_special_score(double vehicle_special_score) { + this.vehicle_special_score = vehicle_special_score; + } + + public double getVehicle_illegal_driver_smoke_confidence() { + return vehicle_illegal_driver_smoke_confidence; + } + + public void setVehicle_illegal_driver_smoke_confidence(double vehicle_illegal_driver_smoke_confidence) { + this.vehicle_illegal_driver_smoke_confidence = vehicle_illegal_driver_smoke_confidence; + } + + public int getVehicle_illegal_driver_smoke_status() { + return vehicle_illegal_driver_smoke_status; + } + + public void setVehicle_illegal_driver_smoke_status(int vehicle_illegal_driver_smoke_status) { + this.vehicle_illegal_driver_smoke_status = vehicle_illegal_driver_smoke_status; + } + + public double getVehicle_illegal_driver_belt_confidence() { + return vehicle_illegal_driver_belt_confidence; + } + + public void setVehicle_illegal_driver_belt_confidence(double vehicle_illegal_driver_belt_confidence) { + this.vehicle_illegal_driver_belt_confidence = vehicle_illegal_driver_belt_confidence; + } + + public int getVehicle_illegal_driver_belt_status() { + return vehicle_illegal_driver_belt_status; + } + + public void setVehicle_illegal_driver_belt_status(int vehicle_illegal_driver_belt_status) { + this.vehicle_illegal_driver_belt_status = vehicle_illegal_driver_belt_status; + } + + public double getVehicle_illegal_driver_phone_confidence() { + return vehicle_illegal_driver_phone_confidence; + } + + public void setVehicle_illegal_driver_phone_confidence(double vehicle_illegal_driver_phone_confidence) { + this.vehicle_illegal_driver_phone_confidence = vehicle_illegal_driver_phone_confidence; + } + + public int getVehicle_illegal_driver_phone_status() { + return vehicle_illegal_driver_phone_status; + } + + public void setVehicle_illegal_driver_phone_status(int vehicle_illegal_driver_phone_status) { + this.vehicle_illegal_driver_phone_status = vehicle_illegal_driver_phone_status; + } + + public double getVehicle_illegal_driver_person_confidence() { + return vehicle_illegal_driver_person_confidence; + } + + public void setVehicle_illegal_driver_person_confidence(double vehicle_illegal_driver_person_confidence) { + this.vehicle_illegal_driver_person_confidence = vehicle_illegal_driver_person_confidence; + } + + public int getVehicle_illegal_driver_person_status() { + return vehicle_illegal_driver_person_status; + } + + public void setVehicle_illegal_driver_person_status(int vehicle_illegal_driver_person_status) { + this.vehicle_illegal_driver_person_status = vehicle_illegal_driver_person_status; + } + + public double getVehicle_illegal_copilot_smoke_confidence() { + return vehicle_illegal_copilot_smoke_confidence; + } + + public void setVehicle_illegal_copilot_smoke_confidence(double vehicle_illegal_copilot_smoke_confidence) { + this.vehicle_illegal_copilot_smoke_confidence = vehicle_illegal_copilot_smoke_confidence; + } + + public int getVehicle_illegal_copilot_smoke_status() { + return vehicle_illegal_copilot_smoke_status; + } + + public void setVehicle_illegal_copilot_smoke_status(int vehicle_illegal_copilot_smoke_status) { + this.vehicle_illegal_copilot_smoke_status = vehicle_illegal_copilot_smoke_status; + } + + public double getVehicle_illegal_copilot_belt_confidence() { + return vehicle_illegal_copilot_belt_confidence; + } + + public void setVehicle_illegal_copilot_belt_confidence(double vehicle_illegal_copilot_belt_confidence) { + this.vehicle_illegal_copilot_belt_confidence = vehicle_illegal_copilot_belt_confidence; + } + + public int getVehicle_illegal_copilot_belt_status() { + return vehicle_illegal_copilot_belt_status; + } + + public void setVehicle_illegal_copilot_belt_status(int vehicle_illegal_copilot_belt_status) { + this.vehicle_illegal_copilot_belt_status = vehicle_illegal_copilot_belt_status; + } + + public double getVehicle_illegal_copilot_phone_confidence() { + return vehicle_illegal_copilot_phone_confidence; + } + + public void setVehicle_illegal_copilot_phone_confidence(double vehicle_illegal_copilot_phone_confidence) { + this.vehicle_illegal_copilot_phone_confidence = vehicle_illegal_copilot_phone_confidence; + } + + public int getVehicle_illegal_copilot_phone_status() { + return vehicle_illegal_copilot_phone_status; + } + + public void setVehicle_illegal_copilot_phone_status(int vehicle_illegal_copilot_phone_status) { + this.vehicle_illegal_copilot_phone_status = vehicle_illegal_copilot_phone_status; + } + + public double getVehicle_illegal_copilot_person_confidence() { + return vehicle_illegal_copilot_person_confidence; + } + + public void setVehicle_illegal_copilot_person_confidence(double vehicle_illegal_copilot_person_confidence) { + this.vehicle_illegal_copilot_person_confidence = vehicle_illegal_copilot_person_confidence; + } + + public int getVehicle_illegal_copilot_person_status() { + return vehicle_illegal_copilot_person_status; + } + + public void setVehicle_illegal_copilot_person_status(int vehicle_illegal_copilot_person_status) { + this.vehicle_illegal_copilot_person_status = vehicle_illegal_copilot_person_status; + } + + public String getVehicle_recg_issue_year() { + return vehicle_recg_issue_year; + } + + public void setVehicle_recg_issue_year(String vehicle_recg_issue_year) { + this.vehicle_recg_issue_year = vehicle_recg_issue_year; + } + + public String getVehicle_recg_brand() { + return vehicle_recg_brand; + } + + public void setVehicle_recg_brand(String vehicle_recg_brand) { + this.vehicle_recg_brand = vehicle_recg_brand; + } + + public String getVehicle_recg_type() { + return vehicle_recg_type; + } + + public void setVehicle_recg_type(String vehicle_recg_type) { + this.vehicle_recg_type = vehicle_recg_type; + } + + public String getVehicle_recg_subbrand() { + return vehicle_recg_subbrand; + } + + public void setVehicle_recg_subbrand(String vehicle_recg_subbrand) { + this.vehicle_recg_subbrand = vehicle_recg_subbrand; + } + + public String getVehicle_recg_freight_ton() { + return vehicle_recg_freight_ton; + } + + public void setVehicle_recg_freight_ton(String vehicle_recg_freight_ton) { + this.vehicle_recg_freight_ton = vehicle_recg_freight_ton; + } + + public double getVehicle_recg_name_score() { + return vehicle_recg_name_score; + } + + public void setVehicle_recg_name_score(double vehicle_recg_name_score) { + this.vehicle_recg_name_score = vehicle_recg_name_score; + } + + public int getVehicle_pendant_count() { + return vehicle_pendant_count; + } + + public void setVehicle_pendant_count(int vehicle_pendant_count) { + this.vehicle_pendant_count = vehicle_pendant_count; + } + + public double[] getVehicle_fea_feature() { + return vehicle_fea_feature; + } + + public void setVehicle_fea_feature(double[] vehicle_fea_feature) { + this.vehicle_fea_feature = vehicle_fea_feature; + } + + public PendantParams[] getVehicle_pendant_Params() { + return vehicle_pendant_Params; + } + + public void setVehicle_pendant_Params(PendantParams[] vehicle_pendant_Params) { + this.vehicle_pendant_Params = vehicle_pendant_Params; + } + + public PlatePlateNumParams[] getVehicle_plate_plateNumParams() { + return vehicle_plate_plateNumParams; + } + + public void setVehicle_plate_plateNumParams(PlatePlateNumParams[] vehicle_plate_plateNumParams) { + this.vehicle_plate_plateNumParams = vehicle_plate_plateNumParams; + } + + public String getVehicle_plate_hphm() { + return vehicle_plate_hphm; + } + + public void setVehicle_plate_hphm(String vehicle_plate_hphm) { + this.vehicle_plate_hphm = vehicle_plate_hphm; + } +} diff --git b/src/main/java/com/objecteye/pojo/RabbitMqVehicleViolation.java a/src/main/java/com/objecteye/pojo/RabbitMqVehicleViolation.java new file mode 100644 index 0000000..2599514 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/RabbitMqVehicleViolation.java @@ -0,0 +1,54 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.data.annotation.Id; + +import java.io.Serializable; + +/** + * 车辆违规 MongoDB数据模型 + * + * @author liuhaoyu + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class RabbitMqVehicleViolation implements Serializable { + + private static final long serialVersionUID = 4861186612800576967L; + + @Id + private String id; + /** + * 车辆id + */ + private String baseId; + /** + * 设备id + */ + private int deviceid; + /** + * 抓拍时间 + */ + private Long pictime; + private int vehicle_special_type; + private double vehicle_special_score; + private String vehicle_plate_hphm; + private String personUrl; + /** + * 额外添加的snapshotUrl + */ + private String snapshoturl; + /** + * 是否违规 + */ + private Integer taskId; + /** + * 设备名称 + */ + private String equipmentName; +} diff --git b/src/main/java/com/objecteye/pojo/ResponseParamPerson.java a/src/main/java/com/objecteye/pojo/ResponseParamPerson.java new file mode 100644 index 0000000..c05df70 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/ResponseParamPerson.java @@ -0,0 +1,19 @@ +package com.objecteye.pojo; + +import com.objecteye.entity.PersonIdAndScore; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + + +@AllArgsConstructor +@NoArgsConstructor +@Data +public class ResponseParamPerson { + private String code; //状态码 + private String msg; //提示消息 + private String count; + private List result; // 泛型类结果 +} diff --git b/src/main/java/com/objecteye/pojo/ResultMsg.java a/src/main/java/com/objecteye/pojo/ResultMsg.java new file mode 100644 index 0000000..cdf03af --- /dev/null +++ a/src/main/java/com/objecteye/pojo/ResultMsg.java @@ -0,0 +1,10 @@ +package com.objecteye.pojo; + +import lombok.Data; + +@Data +public class ResultMsg { + + private String vehicle_color; + private String vehicle_brand; +} diff --git b/src/main/java/com/objecteye/pojo/SearchDataFromRetrieveDb.java a/src/main/java/com/objecteye/pojo/SearchDataFromRetrieveDb.java new file mode 100644 index 0000000..10df3bd --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchDataFromRetrieveDb.java @@ -0,0 +1,21 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.util.List; + +@Component +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class SearchDataFromRetrieveDb implements Serializable { + private String code; + private String msg; + private List result; +} diff --git b/src/main/java/com/objecteye/pojo/SearchDataFromRetrieveDbResult.java a/src/main/java/com/objecteye/pojo/SearchDataFromRetrieveDbResult.java new file mode 100644 index 0000000..5408405 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchDataFromRetrieveDbResult.java @@ -0,0 +1,17 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class SearchDataFromRetrieveDbResult implements Serializable { + private String retrieveKey; + private double score; +} diff --git b/src/main/java/com/objecteye/pojo/SearchPeopleOfHphmInfo.java a/src/main/java/com/objecteye/pojo/SearchPeopleOfHphmInfo.java new file mode 100644 index 0000000..aafbe2e --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchPeopleOfHphmInfo.java @@ -0,0 +1,18 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@AllArgsConstructor +@NoArgsConstructor +@ToString +@Data +public class SearchPeopleOfHphmInfo { + private String id; + private String picTime; + private String equipmentName; + private String hphm; + private String personUrl; +} diff --git b/src/main/java/com/objecteye/pojo/SearchPeopleOfHphmRequest.java a/src/main/java/com/objecteye/pojo/SearchPeopleOfHphmRequest.java new file mode 100644 index 0000000..e423449 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchPeopleOfHphmRequest.java @@ -0,0 +1,23 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +@AllArgsConstructor +@NoArgsConstructor +@ToString +@Data +public class SearchPeopleOfHphmRequest implements Serializable { + + private Integer currentpage; + private Integer pagevolume; + private Long starttime; + private Long endtime; + private int[] customspass; + private String hphm; + +} diff --git b/src/main/java/com/objecteye/pojo/SearchPeopleOfhphmResult.java a/src/main/java/com/objecteye/pojo/SearchPeopleOfhphmResult.java new file mode 100644 index 0000000..cbda3d7 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchPeopleOfhphmResult.java @@ -0,0 +1,18 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@ToString +@Data +public class SearchPeopleOfhphmResult { + private Integer total; + private List row; + +} diff --git b/src/main/java/com/objecteye/pojo/SearchVehicleFromPeopleInfo.java a/src/main/java/com/objecteye/pojo/SearchVehicleFromPeopleInfo.java new file mode 100644 index 0000000..1fc9596 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchVehicleFromPeopleInfo.java @@ -0,0 +1,20 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class SearchVehicleFromPeopleInfo { + private String id; + private String picTime; + private String equipmentName; + private String hphm; + private double driverSimilar; + private String picUrl; + private String snapshotUrl; +} diff --git b/src/main/java/com/objecteye/pojo/SearchVehicleFromPeopleResult.java a/src/main/java/com/objecteye/pojo/SearchVehicleFromPeopleResult.java new file mode 100644 index 0000000..0afc6d2 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SearchVehicleFromPeopleResult.java @@ -0,0 +1,17 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.util.List; + +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class SearchVehicleFromPeopleResult { + private int total; + private List row; +} diff --git b/src/main/java/com/objecteye/pojo/SpecialAuthenticationUrlConfig.java a/src/main/java/com/objecteye/pojo/SpecialAuthenticationUrlConfig.java new file mode 100644 index 0000000..90ac0ab --- /dev/null +++ a/src/main/java/com/objecteye/pojo/SpecialAuthenticationUrlConfig.java @@ -0,0 +1,26 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 特殊url权限维护表 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class SpecialAuthenticationUrlConfig implements Serializable { + + private static final long serialVersionUID = 1869833569531127927L; + + private String id; + + private Integer level; + + private String url; +} diff --git b/src/main/java/com/objecteye/pojo/TokenUser.java a/src/main/java/com/objecteye/pojo/TokenUser.java new file mode 100644 index 0000000..c566ff5 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/TokenUser.java @@ -0,0 +1,77 @@ +package com.objecteye.pojo; + +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +public class TokenUser implements UserDetails { + + private static final long serialVersionUID = 5100150731616161022L; + + private String userName; + + private String password; + + private List simpleGrantedAuthorities; + + public TokenUser(String userName, String password, String... roles) { + this.userName = userName; + this.password = password; + this.simpleGrantedAuthorities = Arrays.stream(roles).map(SimpleGrantedAuthority::new).collect(Collectors.toList()); + } + + public TokenUser() { + } + + @Override + public Collection getAuthorities() { + return this.simpleGrantedAuthorities; + } + + @Override + public String getPassword() { + return this.password; + } + + @Override + public String getUsername() { + return this.userName; + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public void setPassword(String password) { + this.password = password; + } + + public void setSimpleGrantedAuthorities(List simpleGrantedAuthorities) { + this.simpleGrantedAuthorities = simpleGrantedAuthorities; + } +} diff --git b/src/main/java/com/objecteye/pojo/UserDetailsMsg.java a/src/main/java/com/objecteye/pojo/UserDetailsMsg.java new file mode 100644 index 0000000..c1175c2 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/UserDetailsMsg.java @@ -0,0 +1,34 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 用户表 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@ToString +public class UserDetailsMsg implements Serializable { + + private static final long serialVersionUID = 6381369769538126824L; + + private String id; + + private String username; + + private String password; + + private String group; + /** + * 如果属于某个权限组则权限取最大或并集 + */ + private String userRole; + + private String createDate; +} diff --git b/src/main/java/com/objecteye/pojo/UserGroup.java a/src/main/java/com/objecteye/pojo/UserGroup.java new file mode 100644 index 0000000..ddcf16c --- /dev/null +++ a/src/main/java/com/objecteye/pojo/UserGroup.java @@ -0,0 +1,36 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 用户权限组表 + */ +@AllArgsConstructor +@NoArgsConstructor +@Data +@ToString +public class UserGroup implements Serializable { + + private static final long serialVersionUID = 61272638807414900L; + + private String id; + + private String groupName; + + private String groupLevel; + + /** + * 父级组织id(根为-1, 备用) + */ + private String parentCode; + + /** + * 组织结构树id + */ + private String groupCode; +} diff --git b/src/main/java/com/objecteye/pojo/VehicleCondition.java a/src/main/java/com/objecteye/pojo/VehicleCondition.java new file mode 100644 index 0000000..1d28bba --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleCondition.java @@ -0,0 +1,61 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; + +import java.io.Serializable; + +/** + * 车型多条件查询 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString +public class VehicleCondition implements Serializable { + private static final long serialVersionUID = 4732738580001501783L; + /** + * 当前页 + */ + private int currentpage; + /** + * 每页的数量 + */ + private int pagevolume; + /** + * 号牌号码 + */ + private String hphm; + + private int[] condition; + + private Long starttime; + + private Long endtime; + + private int[] customspass; + + private Integer vehicleSpecialType; + /** + * 车颜色 + */ + private Integer vehicleColorIndex; + /** + * 车辆年款 + */ + private String vehicleRecgIssueYear; + /** + * 车辆品牌 + */ + private String vehicleRecgBrand; + /** + * 车辆类型 + */ + private String vehicleRecgType; + /** + * 车辆子品牌 + */ + private String vehicleRecgSubbrand; +} diff --git b/src/main/java/com/objecteye/pojo/VehicleCurrencyReques.java a/src/main/java/com/objecteye/pojo/VehicleCurrencyReques.java new file mode 100644 index 0000000..7a0838b --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleCurrencyReques.java @@ -0,0 +1,33 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +@Component +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString +public class VehicleCurrencyReques implements Serializable { + private String hphm; + private String cllx; + private Integer csys; + private String brand; //车辆品牌 + private String subbrand; //车辆子品牌 + private String birthday; //车辆生产日期 + private Integer hplx; + private Integer njbgs; + private int[] condition; //复选框条件 + private int currentpage; //当前页 + private int pagevolume; //每页的数量 + private Long startTime; + private Long endTime; + private int[] customspass; + + +} diff --git b/src/main/java/com/objecteye/pojo/VehicleCurrencyResult.java a/src/main/java/com/objecteye/pojo/VehicleCurrencyResult.java new file mode 100644 index 0000000..859e78a --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleCurrencyResult.java @@ -0,0 +1,39 @@ +package com.objecteye.pojo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.ToString; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.data.mongodb.core.mapping.Field; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@ToString +@Document(collection = "rabbitMQVehicle") +public class VehicleCurrencyResult implements Serializable { + + @Id + private String id; + @Field("vehicle_plate_hphm") + private String hphm; + @Field("equipmentName") + private String site; + @Field("pictime") + private String phototime; + @Field("recordid") + private String recordid; + @Field("picurl") + private String picurl; + @Field("snapshoturl") + private String snapshoturl; + @Field("vehicle_detect_syRectParam") + private int[] vehicle_detect_syRectParam; + private String snapshot; + + +} diff --git b/src/main/java/com/objecteye/pojo/VehicleData.java a/src/main/java/com/objecteye/pojo/VehicleData.java new file mode 100644 index 0000000..b07af2c --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleData.java @@ -0,0 +1,39 @@ +package com.objecteye.pojo; + +public class VehicleData { + + private Integer total; + private VehiclePhotoInfo data; + + public VehicleData() { + } + + public VehicleData(Integer total, VehiclePhotoInfo data) { + this.total = total; + this.data = data; + } + + public Integer getTotal() { + return total; + } + + public void setTotal(Integer total) { + this.total = total; + } + + public VehiclePhotoInfo getData() { + return data; + } + + public void setData(VehiclePhotoInfo data) { + this.data = data; + } + + @Override + public String toString() { + return "VehicleData{" + + "total=" + total + + ", data=" + data + + '}'; + } +} diff --git b/src/main/java/com/objecteye/pojo/VehicleDetails.java a/src/main/java/com/objecteye/pojo/VehicleDetails.java new file mode 100644 index 0000000..20d589c --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleDetails.java @@ -0,0 +1,295 @@ +package com.objecteye.pojo; + +import java.io.Serializable; +import java.util.Arrays; + +public class VehicleDetails implements Serializable { + + private String id; //图片id + private String picurl; //图片路径 + private String vehicle_recg_type; //车辆类型 + private String vehicle_color; //车颜色 + private String vehicle_recg_brand; //车辆品牌型号(检测得到的车品牌、车子品牌、年份拼接而成) + private String vehicle_plate_type; //车牌类型 + private float vehicle_recg_name_score; //品牌可信度 + private float vehicle_plate_detectScore; //车牌可信度 + private String pictime; //抓拍时间(2019-09-24 15:46:12) + private String equipmentName;//设备名称 + private String longitude; //经度 + private String latitude; //纬度 + private String vehicle_plate_hphm; //车牌号码 + private String vehicle_illegal_driver_status; //主驾驶状态 + private String vehicle_illegal_copilot_status; //副驾驶状态 + private String specialty_vehicle_type; //特殊品类车辆类型 + private Double[] vehicle_fea_res_feature; //特征值 + + //车头信息 + private String vehicle_plate_status; //车牌状态 + private String vehicle_driver_sunvisor; //主驾遮阳板 + private String vehicle_copilot_sunvisor; //副驾遮阳板 + private String vehicle_annualInspectionStandard; //年检标 + private String vehicle_pendant; //挂件 + private String vehicle_tissuebox; //纸巾盒 + private String vehicle_prayerwheel;//转经筒 + //增加该车辆的抓拍图(为避免IO,此处使用base64) + private String snapshot; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Double[] getVehicle_fea_res_feature() { + return vehicle_fea_res_feature; + } + + public void setVehicle_fea_res_feature(Double[] vehicle_fea_res_feature) { + this.vehicle_fea_res_feature = vehicle_fea_res_feature; + } + + public String getSpecialty_vehicle_type() { + return specialty_vehicle_type; + } + + public void setSpecialty_vehicle_type(String specialty_vehicle_type) { + this.specialty_vehicle_type = specialty_vehicle_type; + } + + public String getPicurl() { + return picurl; + } + + public void setPicurl(String picurl) { + this.picurl = picurl; + } + + public String getVehicle_recg_type() { + return vehicle_recg_type; + } + + public void setVehicle_recg_type(String vehicle_recg_type) { + this.vehicle_recg_type = vehicle_recg_type; + } + + public String getVehicle_color() { + return vehicle_color; + } + + public void setVehicle_color(String vehicle_color) { + this.vehicle_color = vehicle_color; + } + + public String getVehicle_recg_brand() { + return vehicle_recg_brand; + } + + public void setVehicle_recg_brand(String vehicle_recg_brand) { + this.vehicle_recg_brand = vehicle_recg_brand; + } + + public String getVehicle_plate_type() { + return vehicle_plate_type; + } + + public void setVehicle_plate_type(String vehicle_plate_type) { + this.vehicle_plate_type = vehicle_plate_type; + } + + public float getVehicle_recg_name_score() { + return vehicle_recg_name_score; + } + + public void setVehicle_recg_name_score(float vehicle_recg_name_score) { + this.vehicle_recg_name_score = vehicle_recg_name_score; + } + + public float getVehicle_plate_detectScore() { + return vehicle_plate_detectScore; + } + + public void setVehicle_plate_detectScore(float vehicle_plate_detectScore) { + this.vehicle_plate_detectScore = vehicle_plate_detectScore; + } + + public String getPictime() { + return pictime; + } + + public void setPictime(String pictime) { + this.pictime = pictime; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public String getLongitude() { + return longitude; + } + + public void setLongitude(String longitude) { + this.longitude = longitude; + } + + public String getLatitude() { + return latitude; + } + + public void setLatitude(String latitude) { + this.latitude = latitude; + } + + public String getVehicle_plate_hphm() { + return vehicle_plate_hphm; + } + + public void setVehicle_plate_hphm(String vehicle_plate_hphm) { + this.vehicle_plate_hphm = vehicle_plate_hphm; + } + + public String getVehicle_illegal_driver_status() { + return vehicle_illegal_driver_status; + } + + public void setVehicle_illegal_driver_status(String vehicle_illegal_driver_status) { + this.vehicle_illegal_driver_status = vehicle_illegal_driver_status; + } + + public String getVehicle_illegal_copilot_status() { + return vehicle_illegal_copilot_status; + } + + public void setVehicle_illegal_copilot_status(String vehicle_illegal_copilot_status) { + this.vehicle_illegal_copilot_status = vehicle_illegal_copilot_status; + } + + public String getVehicle_plate_status() { + return vehicle_plate_status; + } + + public void setVehicle_plate_status(String vehicle_plate_status) { + this.vehicle_plate_status = vehicle_plate_status; + } + + public String getVehicle_driver_sunvisor() { + return vehicle_driver_sunvisor; + } + + public void setVehicle_driver_sunvisor(String vehicle_driver_sunvisor) { + this.vehicle_driver_sunvisor = vehicle_driver_sunvisor; + } + + public String getVehicle_copilot_sunvisor() { + return vehicle_copilot_sunvisor; + } + + public void setVehicle_copilot_sunvisor(String vehicle_copilot_sunvisor) { + this.vehicle_copilot_sunvisor = vehicle_copilot_sunvisor; + } + + public String getVehicle_annualInspectionStandard() { + return vehicle_annualInspectionStandard; + } + + public void setVehicle_annualInspectionStandard(String vehicle_annualInspectionStandard) { + this.vehicle_annualInspectionStandard = vehicle_annualInspectionStandard; + } + + public String getVehicle_pendant() { + return vehicle_pendant; + } + + public void setVehicle_pendant(String vehicle_pendant) { + this.vehicle_pendant = vehicle_pendant; + } + + public String getVehicle_tissuebox() { + return vehicle_tissuebox; + } + + public void setVehicle_tissuebox(String vehicle_tissuebox) { + this.vehicle_tissuebox = vehicle_tissuebox; + } + + public String getVehicle_prayerwheel() { + return vehicle_prayerwheel; + } + + public void setVehicle_prayerwheel(String vehicle_prayerwheel) { + this.vehicle_prayerwheel = vehicle_prayerwheel; + } + + public VehicleDetails() { + } + + public String getSnapshot() { + return snapshot; + } + + public void setSnapshot(String snapshot) { + this.snapshot = snapshot; + } + + public VehicleDetails(Double[] vehicle_fea_res_feature, String picurl, String specialty_vehicle_type, String vehicle_recg_type, String vehicle_color, String vehicle_recg_brand, String vehicle_plate_type, float vehicle_recg_name_score, float vehicle_plate_detectScore, String pictime, String equipmentName, String longitude, String latitude, String vehicle_plate_hphm, String vehicle_illegal_driver_status, String vehicle_illegal_copilot_status, String vehicle_plate_status, String vehicle_driver_sunvisor, String vehicle_copilot_sunvisor, String vehicle_annualInspectionStandard, String vehicle_pendant, String vehicle_tissuebox, String vehicle_prayerwheel) { + this.vehicle_fea_res_feature = vehicle_fea_res_feature; + this.picurl = picurl; + this.specialty_vehicle_type = specialty_vehicle_type; + this.vehicle_recg_type = vehicle_recg_type; + this.vehicle_color = vehicle_color; + this.vehicle_recg_brand = vehicle_recg_brand; + this.vehicle_plate_type = vehicle_plate_type; + this.vehicle_recg_name_score = vehicle_recg_name_score; + this.vehicle_plate_detectScore = vehicle_plate_detectScore; + this.pictime = pictime; + this.equipmentName = equipmentName; + this.longitude = longitude; + this.latitude = latitude; + this.vehicle_plate_hphm = vehicle_plate_hphm; + this.vehicle_illegal_driver_status = vehicle_illegal_driver_status; + this.vehicle_illegal_copilot_status = vehicle_illegal_copilot_status; + this.vehicle_plate_status = vehicle_plate_status; + this.vehicle_driver_sunvisor = vehicle_driver_sunvisor; + this.vehicle_copilot_sunvisor = vehicle_copilot_sunvisor; + this.vehicle_annualInspectionStandard = vehicle_annualInspectionStandard; + this.vehicle_pendant = vehicle_pendant; + this.vehicle_tissuebox = vehicle_tissuebox; + this.vehicle_prayerwheel = vehicle_prayerwheel; + } + + + @Override + public String toString() { + return "VehicleDetails{" + + "picurl='" + picurl + '\'' + + ", vehicle_recg_type='" + vehicle_recg_type + '\'' + + ", vehicle_color='" + vehicle_color + '\'' + + ", vehicle_recg_brand='" + vehicle_recg_brand + '\'' + + ", vehicle_plate_type='" + vehicle_plate_type + '\'' + + ", vehicle_recg_name_score=" + vehicle_recg_name_score + + ", vehicle_plate_detectScore=" + vehicle_plate_detectScore + + ", pictime='" + pictime + '\'' + + ", equipmentName='" + equipmentName + '\'' + + ", longitude='" + longitude + '\'' + + ", latitude='" + latitude + '\'' + + ", vehicle_plate_hphm='" + vehicle_plate_hphm + '\'' + + ", vehicle_illegal_driver_status='" + vehicle_illegal_driver_status + '\'' + + ", vehicle_illegal_copilot_status='" + vehicle_illegal_copilot_status + '\'' + + ", specialty_vehicle_type='" + specialty_vehicle_type + '\'' + + ", vehicle_fea_res_feature=" + Arrays.toString(vehicle_fea_res_feature) + + ", vehicle_plate_status='" + vehicle_plate_status + '\'' + + ", vehicle_driver_sunvisor='" + vehicle_driver_sunvisor + '\'' + + ", vehicle_copilot_sunvisor='" + vehicle_copilot_sunvisor + '\'' + + ", vehicle_annualInspectionStandard='" + vehicle_annualInspectionStandard + '\'' + + ", vehicle_pendant='" + vehicle_pendant + '\'' + + ", vehicle_tissuebox='" + vehicle_tissuebox + '\'' + + ", vehicle_prayerwheel='" + vehicle_prayerwheel + '\'' + + '}'; + } +} diff --git b/src/main/java/com/objecteye/pojo/VehicleInfoRes.java a/src/main/java/com/objecteye/pojo/VehicleInfoRes.java new file mode 100644 index 0000000..b9578e5 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleInfoRes.java @@ -0,0 +1,54 @@ +package com.objecteye.pojo; + +import org.springframework.stereotype.Component; + +/*@Document("test")*/ +@Component +public class VehicleInfoRes { + + private Integer code; + private String message; + private VehicleData data; + + public VehicleInfoRes() { + } + + public VehicleInfoRes(Integer code, String message, VehicleData data) { + this.code = code; + this.message = message; + this.data = data; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public VehicleData getData() { + return data; + } + + public void setData(VehicleData data) { + this.data = data; + } + + @Override + public String toString() { + return "VehicleInfoRes{" + + "code=" + code + + ", message='" + message + '\'' + + ", data=" + data + + '}'; + } +} diff --git b/src/main/java/com/objecteye/pojo/VehicleMongo.java a/src/main/java/com/objecteye/pojo/VehicleMongo.java new file mode 100644 index 0000000..5a90e87 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehicleMongo.java @@ -0,0 +1,16 @@ +package com.objecteye.pojo; + +import org.springframework.data.mongodb.core.mapping.Document; +import org.springframework.stereotype.Component; + +@Component +@Document("vehicleInfo") +public class VehicleMongo { + private String vehicleid; + private Integer deviceid; + private String picurl; + private Integer vehiclerecordfieid; + private double[] characvalue; + private String pictime; + +} diff --git b/src/main/java/com/objecteye/pojo/VehiclePhotoInfo.java a/src/main/java/com/objecteye/pojo/VehiclePhotoInfo.java new file mode 100644 index 0000000..486d305 --- /dev/null +++ a/src/main/java/com/objecteye/pojo/VehiclePhotoInfo.java @@ -0,0 +1,71 @@ +package com.objecteye.pojo; + +public class VehiclePhotoInfo { + private String id; + private String hphm; + private String site; + private Long phototime; + private String recordid; + + public VehiclePhotoInfo() { + } + + public VehiclePhotoInfo(String id, String hphm, String site, Long phototime, String recordid) { + this.id = id; + this.hphm = hphm; + this.site = site; + this.phototime = phototime; + this.recordid = recordid; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getHphm() { + return hphm; + } + + public void setHphm(String hphm) { + this.hphm = hphm; + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public Long getPhototime() { + return phototime; + } + + public void setPhototime(Long phototime) { + this.phototime = phototime; + } + + public String getRecordid() { + return recordid; + } + + public void setRecordid(String recordid) { + this.recordid = recordid; + } + + @Override + public String toString() { + return "VehiclePhotoInfo{" + + "id='" + id + '\'' + + ", hphm='" + hphm + '\'' + + ", site='" + site + '\'' + + ", phototime='" + phototime + '\'' + + ", recordid='" + recordid + '\'' + + '}'; + } +} diff --git b/src/main/java/com/objecteye/service/AreaEquipmentService.java a/src/main/java/com/objecteye/service/AreaEquipmentService.java new file mode 100644 index 0000000..776c3b5 --- /dev/null +++ a/src/main/java/com/objecteye/service/AreaEquipmentService.java @@ -0,0 +1,111 @@ +package com.objecteye.service; + +import com.objecteye.entity.AreaEquipmentShow; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyAreaEquipment; +import org.apache.ibatis.annotations.Mapper; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * 服务层接口 + * + * @author Administrator + */ +@Mapper +public interface AreaEquipmentService { + + /** + * 返回全部列表 + * + * @return + */ + public ArrayList findAll(); + + + /** + * 返回全部列表设备可操作性 + * + * @return + */ + public ArrayList findAllEquip(); + + /** + * 返回全部列表设备可操作性 + * + * @return + */ + public ArrayList findAllEquipAndArea(); + + /** + * 返回分页列表 + * + * @return + */ + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + public int add(SyAreaEquipment areaEquipment); + + + /** + * 修改 + */ + public int update(SyAreaEquipment areaEquipment); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + public SyAreaEquipment findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + public void delete(int[] ids); + + /** + * 批量删除 + * + * @param typeId + */ + public int delete(int typeId); + + /** + * 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @return + */ + public PageResult findPage(SyAreaEquipment areaEquipment, int pageNum, int pageSize); + + /** + * 根据id查找所有的设备id + * + * @param id + * @return + */ + List findCaptureById(int id); + + /** + * 根据id查找所有的设备信息 + * + * @param id + * @return + */ + List> findCaptureMsgById(int id); + + +} diff --git b/src/main/java/com/objecteye/service/DeployEquipmentService.java a/src/main/java/com/objecteye/service/DeployEquipmentService.java new file mode 100644 index 0000000..ba64e72 --- /dev/null +++ a/src/main/java/com/objecteye/service/DeployEquipmentService.java @@ -0,0 +1,80 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyDeployEquipment; + +import java.util.List; + +/** + * 服务层接口 + * + * @author Administrator + */ +public interface DeployEquipmentService { + + /** + * 返回全部列表 + * + * @return + */ + public List findAll(); + + + /** + * 返回分页列表 + * + * @return + */ + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + public void add(SyDeployEquipment deployEquipment); + + + /** + * 修改 + */ + public void update(SyDeployEquipment deployEquipment); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + public SyDeployEquipment findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + public void delete(int[] ids); + + /** + * 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @return + */ + public PageResult findPage(SyDeployEquipment deployEquipment, int pageNum, int pageSize); + + /** + * 根据布控id删除 + * + * @param id + */ + public void deleteByDeployId(int id); + + /** + * 根据布控id查找所有的设备 + */ + public List slectByDeployId(int deployId); + +} diff --git b/src/main/java/com/objecteye/service/DeployFeatureService.java a/src/main/java/com/objecteye/service/DeployFeatureService.java new file mode 100644 index 0000000..ebf4e56 --- /dev/null +++ a/src/main/java/com/objecteye/service/DeployFeatureService.java @@ -0,0 +1,82 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyDeployFeature; + +import java.util.List; + +/** + * 服务层接口 + * + * @author Administrator + */ +public interface DeployFeatureService { + + /** + * 返回全部列表 + * + * @return + */ + public List findAll(); + + + /** + * 返回分页列表 + * + * @return + */ + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + public void add(SyDeployFeature deployFeature); + + + /** + * 修改 + */ + public void update(SyDeployFeature deployFeature); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + public SyDeployFeature findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + public void delete(int[] ids); + + /** + * 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @return + */ + public PageResult findPage(SyDeployFeature deployFeature, int pageNum, int pageSize); + + /** + * 根据布控id删除 + * + * @param id + */ + public void deleteByDeployId(int id); + + + public List selectByFeatureId(int fid); + + + public List selectByDid(int did); + + +} diff --git b/src/main/java/com/objecteye/service/DeployService.java a/src/main/java/com/objecteye/service/DeployService.java new file mode 100644 index 0000000..d13fd63 --- /dev/null +++ a/src/main/java/com/objecteye/service/DeployService.java @@ -0,0 +1,157 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.MonitorMainTableQueryInfo; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.PersonMsg; +import com.objecteye.entity.SyDeploy; +import com.objecteye.pojo.RabbitMQVehicle; + +import java.util.List; + +/** + * 服务层接口 + * + * @author Administrator + */ +public interface DeployService { + + /** + * 返回全部列表 + * + * @return + */ + List findAll(); + + /** + * 撤销- 人像布控 + * + * @param deployId 布控id + * @param featureId 布控库id + * @param id 人像id + * @return 操作状态 + */ + Integer cancelOrReNewTaskByPersonId(int deployId, int featureId, int id); + + /** + * 撤销- 车辆布控 + * + * @param deployId 布控id + * @param featureId 布控库id + * @param id 车辆id + * @return 操作状态 + */ + Integer cancelOrReNewTaskByVehicleId(int deployId, int featureId, String id); + + /** + * 撤销- 车牌布控 + * + * @param deployId 布控id + * @param plate 车牌号 + * @return 操作状态 + */ + Integer cancelOrReNewTaskByPlate(int deployId, String plate); + + /** + * 撤销- 布控任务撤销 + * + * @param deployId 布控id + * @return + */ + Integer cancelOrReNewDeployTask(int deployId); + + /** + * 返回分页列表 + * + * @return + */ + PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + void add(SyDeploy deploy); + + + /** + * 修改 + */ + void update(SyDeploy deploy); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + SyDeploy findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + void delete(int[] ids); + + /** + * 布控任务查询列表- 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @param deploy 布控任务类型 + * @return 结果集 + */ + PageResult findPage(SyDeploy deploy, int pageNum, int pageSize); + + /** + * 布控任务-任务内容 查询列表 + * + * @param deployId 任务id + * @param currentpage 页码 + * @param pagevolume 页码容量 + * @return 结果集 + */ + PageResult findMonitorTaskDetail(Integer deployId, int currentpage, int pagevolume); + + /** + * 布控任务- 主列表查询 + * + * @param monitorMainTableQueryInfo 请求参数 + * @return 分页结果集 + */ + PageResult monitorMainTableByPage(MonitorMainTableQueryInfo monitorMainTableQueryInfo); + + /** + * 布控监听器 + * + * @param rabbitMqVehicle 消息体 + */ + void rabbitMqMsgListener(RabbitMQVehicle rabbitMqVehicle); + + /** + * 布控监听器 + * + * @param personMsg 消息体 + */ + void rabbitMqMsgListener(PersonMsg personMsg); + + /** + * 根据布控库和布控类型查找所有布控id + * + * @param libId 布控库id + * @param deployType 布控类型 + * @return 对应布控id + */ + List getDeployListByLibAndDeployType(int libId, int deployType); + + /** + * 获取底库的相关信息 + * + * @param id 底库数据id + * @return 底库数据 + */ + JSONObject getLibMsgById(String id); +} diff --git b/src/main/java/com/objecteye/service/EquipmentService.java a/src/main/java/com/objecteye/service/EquipmentService.java new file mode 100644 index 0000000..fcee12f --- /dev/null +++ a/src/main/java/com/objecteye/service/EquipmentService.java @@ -0,0 +1,92 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyEquipment; + +import java.util.List; + +/** + * 服务层接口 + * + * @author Administrator + */ +public interface EquipmentService { + + /** + * 返回全部列表 + * + * @return + */ + public List findAll(); + + + /** + * 返回分页列表 + * + * @return + */ + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + public int add(SyEquipment equipment); + + + /** + * 修改 + */ + public int update(SyEquipment equipment); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + public SyEquipment findOne(int id); + + /** + * 根据ip获取实体 + * + * @param ip + * @return + */ + public SyEquipment findByIp(String ip); + + + public SyEquipment findByName(String name); + + public SyEquipment findByPort(String port); + + /** + * 批量删除 + * + * @param ids + */ + public void delete(int[] ids); + + /** + * 分页 + * + * @param pageNum 当前页码 + * @param pageSize 每页记录数 + * @return + */ + public PageResult findPage(SyEquipment equipment, int pageNum, int pageSize); + + /** + * 设备开关 + * + * @param id + * @return + */ + public int updateStatusById(int id); + + /** + * @return + */ + public List findAllId(); +} diff --git b/src/main/java/com/objecteye/service/FeatureService.java a/src/main/java/com/objecteye/service/FeatureService.java new file mode 100644 index 0000000..64bf7f5 --- /dev/null +++ a/src/main/java/com/objecteye/service/FeatureService.java @@ -0,0 +1,83 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyFeature; + +import java.util.List; +import java.util.Map; + +/** + * 服务层接口 + * + * @author Administrator + */ +public interface FeatureService { + + /** + * 返回全部列表 + * + * @return + */ + public List findAll(); + + + /** + * 返回分页列表 + * + * @return + */ + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + public int add(SyFeature feature); + + /** + * 增加 + */ + public int addSingle(SyFeature feature); + + + /** + * 修改 + */ + public int update(SyFeature feature); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + public SyFeature findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + public void delete(int[] ids); + + /** + * 分页 + * + * @param pageNum 当前页码 + * @param pageSize 每页记录数 + * @return + */ + public PageResult findPage(SyFeature feature, int pageNum, int pageSize); + + + public int updateCountById(SyFeature feature); + + public List> findAllName(); + + + //public List findAllName(); + + +} diff --git b/src/main/java/com/objecteye/service/HumanVehicleAssociationService.java a/src/main/java/com/objecteye/service/HumanVehicleAssociationService.java new file mode 100644 index 0000000..add84a6 --- /dev/null +++ a/src/main/java/com/objecteye/service/HumanVehicleAssociationService.java @@ -0,0 +1,56 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.pojo.FaceInfoParam; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.pojo.SearchPeopleOfhphmResult; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@Service +public interface HumanVehicleAssociationService { + /** + * 通过人像分页查询到关联的车辆 + * + * @return + */ + PageResult searchVehicleFromHuman(Long starttime, Long endtime, Float thresholds, int[] customspass, int currentpage, int pagevolume, MultipartFile picfile); + + /** + * 在mongodb中通过retrieveKey获取车辆信息 + * + * @return + */ + RabbitMQVehicle findVehicleByRetrieveKey(String retrieveKey); + + /** + * 以精确车牌查询人 + * + * @param currentpage + * @param pagevolume + * @param hphm + * @return + */ + SearchPeopleOfhphmResult searchPeopleFromHphm(Long starttime, Long endtime, int[] customspass, Integer currentpage, Integer pagevolume, String hphm); + + /** + * 通过车辆号牌获取到车辆信息 + * + * @return + */ + List findByHphm(Long starttime, Long endtime, int[] customspass, String hphm, int currentPage, int pageSize); + + /** + * 通过retrieveKey获取到人信息 + * + * @return + */ + FaceInfoParam findPeopleByRetrieveKey(String retrieveKey, int currentPage, int pageSize); + + /** + * 通过车辆图片分页查询到关联的人 + */ + List searchPeopleOfVehiclePic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile); +} diff --git b/src/main/java/com/objecteye/service/ILocalTestService.java a/src/main/java/com/objecteye/service/ILocalTestService.java new file mode 100644 index 0000000..d53abe8 --- /dev/null +++ a/src/main/java/com/objecteye/service/ILocalTestService.java @@ -0,0 +1,19 @@ +package com.objecteye.service; + +/** + * 本次测试 + * + * @author officer + */ +public interface ILocalTestService { + + /** + * 创造数据到redis + */ + void mongoToRedisVehicleFeature(); + + /** + * 删除多余数据 + */ + void deleteOldDataNotInRabbitMqVehicleButViolation(); +} diff --git b/src/main/java/com/objecteye/service/ILocusOrbitService.java a/src/main/java/com/objecteye/service/ILocusOrbitService.java new file mode 100644 index 0000000..d1c0ca7 --- /dev/null +++ a/src/main/java/com/objecteye/service/ILocusOrbitService.java @@ -0,0 +1,44 @@ +package com.objecteye.service; + +import com.objecteye.entity.LocusOrbitQueryParams; +import com.objecteye.entity.LocusOrbitResultParams; +import com.objecteye.entity.PageResult; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 汽车轨迹接口 + * + * @author liuhaoyu + */ +public interface ILocusOrbitService { + + /** + * 轨迹分析接口 + * + * @param locusOrbitQueryParams 请求参数模型 + * @return 结果集 key: 车牌号, value: 车牌号对应的轨迹信息 + */ + List locusOrbitByPlateNumber(LocusOrbitQueryParams locusOrbitQueryParams); + + /** + * 轨迹分析接口(图片搜索) + * + * @param gcxh 车辆序号 + * @param locusOrbitQueryParams 请求参数模型 + * @param multipartFile 文件信息 + * @return 车牌号对应的轨迹信息 + */ + List locusOrbitByPlateNumber(int gcxh, LocusOrbitQueryParams locusOrbitQueryParams, MultipartFile multipartFile); + + /** + * 轨迹分析页面列表 + * + * @param locusOrbitQueryParams 请求参数模型 + * @param currentpage 页码 + * @param pagevolume 页面容量 + * @return 结果集 + */ + PageResult locusOrbitTableByPlateNumber(LocusOrbitQueryParams locusOrbitQueryParams, Integer currentpage, Integer pagevolume); +} diff --git b/src/main/java/com/objecteye/service/ISpecialAuthenticationService.java a/src/main/java/com/objecteye/service/ISpecialAuthenticationService.java new file mode 100644 index 0000000..62c2fbe --- /dev/null +++ a/src/main/java/com/objecteye/service/ISpecialAuthenticationService.java @@ -0,0 +1,52 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; + +import java.util.Map; + +/** + * 需要权限才可以访问的url + */ +public interface ISpecialAuthenticationService { + + /** + * 分页查询 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + PageResult findByPage(Map requestMap); + + /** + * 添加特殊地址权限要求 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject addConfig(Map requestMap); + + /** + * 更新配置信息 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject updateConfig(Map requestMap); + + /** + * 删除配置信息 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject deleteConfig(Map requestMap); + + /** + * 校验相同配置信息是否存在 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject checkConfig(Map requestMap); +} diff --git b/src/main/java/com/objecteye/service/IUserGroupService.java a/src/main/java/com/objecteye/service/IUserGroupService.java new file mode 100644 index 0000000..dc281cb --- /dev/null +++ a/src/main/java/com/objecteye/service/IUserGroupService.java @@ -0,0 +1,51 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; + +import java.util.Map; + +/** + * 用户组功能 + */ +public interface IUserGroupService { + /** + * 分页查询 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + PageResult findByPage(Map requestMap); + + /** + * 检查用户组是否存在 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject checkGroup(Map requestMap); + + /** + * 添加用户组 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject addGroup(Map requestMap); + + /** + * 更新用户组 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject updateGroup(Map requestMap); + + /** + * 删除用户组 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject deleteGroup(Map requestMap); +} diff --git b/src/main/java/com/objecteye/service/IVehicleFileService.java a/src/main/java/com/objecteye/service/IVehicleFileService.java new file mode 100644 index 0000000..dffec8c --- /dev/null +++ a/src/main/java/com/objecteye/service/IVehicleFileService.java @@ -0,0 +1,80 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 一车一档接口类 + */ +public interface IVehicleFileService { + + /** + * 档案浏览查询(分页) + * + * @param vehicleFileParam 请求参数 + * @return 结果集 + */ + PageResult fileQueryByPage(VehicleFileParam vehicleFileParam); + + /** + * 档案浏览查询(不分页) + * + * @param vehicleFileParam 请求参数 + * @return 结果集 + */ + List fileQuery(VehicleFileParam vehicleFileParam); + + /** + * 车牌搜档(分页) + * + * @param filePlateNumParam 页面容量 + * @return 结果集 + */ + PageResult plateNumberQueryByPage(VehicleFilePlateNumParam filePlateNumParam); + + /** + * 车牌搜档(不分页) + * + * @param filePlateNumParam 车牌号 + * @return 结果集 + */ + List plateNumberQuery(VehicleFilePlateNumParam filePlateNumParam); + + /** + * 以图搜档 + * + * @param gcxh 车辆序号 + * @param multipartFile 请求参数 + * @return 结果集 + */ + VvehicleFilePicQueryResult picQuery(int gcxh, MultipartFile multipartFile); + + /** + * 通过过车序号查询车辆的信息(转base64解析图片) + * + * @param gcxh 车辆序号 + * @param picfile 图片文件 + * @return 结果集 + */ + JSONObject findByGcxh(int gcxh, MultipartFile picfile); + + /** + * 获取最相似的车辆信息 + * + * @param gcxh 车辆序号 + * @param response 图片文件 + * @return 车辆对应数据 + */ + JSONObject getMostSimilarOne(int gcxh, String response); + + /** + * 司机信息 + * + * @param params 请求参数 + * @return 结果集 + */ + PageResult driverFiles(VehicleFilePlateNumParam params); +} diff --git b/src/main/java/com/objecteye/service/IVehicleViolationsService.java a/src/main/java/com/objecteye/service/IVehicleViolationsService.java new file mode 100644 index 0000000..aa25d52 --- /dev/null +++ a/src/main/java/com/objecteye/service/IVehicleViolationsService.java @@ -0,0 +1,73 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyVehicleForbidenTask; +import com.objecteye.entity.VehicleViolationsForbidenTaskQueryParams; +import com.objecteye.pojo.RabbitMQVehicle; + +/** + * 车辆违规模块 + * + * @author liuhaoyu + */ +public interface IVehicleViolationsService { + + /** + * 禁行任务查询接口 + * + * @param currentpage 页码 + * @param pagevolume 页码容量 + * @param name 名称(非必填) + * @return 结果集 + */ + PageResult forbiddenTaskQueryByPage(Integer currentpage, Integer pagevolume, String name); + + /** + * 禁行任务查询明细 + * + * @param id 主键 + * @return 结果 + */ + SyVehicleForbidenTask forbiddenTaskDetail(String id); + + /** + * 禁行任务维护- 新增接口 + * + * @param syVehicleForbidenTask 请求参数 + * @return 结果集 + */ + int forbiddenTaskAdd(SyVehicleForbidenTask syVehicleForbidenTask); + + /** + * 禁行任务维护- 修改接口 + * + * @param syVehicleForbidenTask 请求参数 + * @return 结果集 + */ + int forbiddenTaskUpdate(SyVehicleForbidenTask syVehicleForbidenTask); + + /** + * 禁行任务维护- 删除接口 + * + * @param ids 请求参数 + * @return 结果集 + */ + int forbiddenTaskDelete(String[] ids); + + /** + * 布控任务监控 + * + * @param rabbitMqVehicle mq消息 + */ + void taskListener(RabbitMQVehicle rabbitMqVehicle); + + /** + * 车辆违规查询 + * + * @param params 请求参数 + * @param useViolationTable 是否是查询禁行违规 + * @return 结果集 + */ + PageResult vehicleViolationQueryByPage(VehicleViolationsForbidenTaskQueryParams params, boolean useViolationTable); + +} diff --git b/src/main/java/com/objecteye/service/PersonnelService.java a/src/main/java/com/objecteye/service/PersonnelService.java new file mode 100644 index 0000000..a6db36b --- /dev/null +++ a/src/main/java/com/objecteye/service/PersonnelService.java @@ -0,0 +1,132 @@ + +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyPersonnel; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +import java.util.Map; + +/** + * 服务层接口 + * + * @author Administrator + */ + +public interface PersonnelService { + + + /** + * 返回全部列表 + * + * @return + */ + + public List findAll(); + + + /** + * 返回分页列表 + * + * @return + */ + + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + + public int add(SyPersonnel personnel); + + + /** + * 修改 + */ + + public void update(SyPersonnel personnel); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + + public SyPersonnel findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + + public void delete(int[] ids); + + + /** + * 分页 + * + * @param pageNum 当前页码 + * @param pageSize 每页记录数 + * @return + */ + + public PageResult findPage(int fid, String name, int pageNum, int pageSize); + + /** + * 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @return + */ + + public PageResult findPageByNameOCard(SyPersonnel personnel, int pageNum, int pageSize); + + + /** + * @param similar + * @param file + * @param personId + * @return + */ + + public List> findByImage(float similar, MultipartFile file, int personId); + + + /** + * @param fid + * @return + */ + public Integer findPersonCountByFid(int fid); + + /** + * + * @param id + * @return + */ + //public AlarmMsgShow findAlarListByPersonId(int id); + + + /** + * @param fid + * @return + */ + public List findPersonIdByFid(int fid); + + + /** + * 上传人像到人像库 + * + * @param multipartFile + * @param featureId + * @return + */ + String uploadFiles(MultipartFile[] multipartFile, int featureId); +} + diff --git b/src/main/java/com/objecteye/service/PreviewService.java a/src/main/java/com/objecteye/service/PreviewService.java new file mode 100644 index 0000000..8db9c36 --- /dev/null +++ a/src/main/java/com/objecteye/service/PreviewService.java @@ -0,0 +1,8 @@ +package com.objecteye.service; + +import java.io.IOException; + +public interface PreviewService { + + String getRtmp(String userName, Integer deviceId) throws IOException; +} diff --git b/src/main/java/com/objecteye/service/RoleServices.java a/src/main/java/com/objecteye/service/RoleServices.java new file mode 100644 index 0000000..bda5185 --- /dev/null +++ a/src/main/java/com/objecteye/service/RoleServices.java @@ -0,0 +1,29 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; + +public interface RoleServices { + + /** + * 查询角色的总页数 + * + * @return + */ + int totalNum(); + + /** + * 角色列表分页展示 + * + * @param currentpage + * @param pagevolume + * @return + */ + JSONObject rolePage(int currentpage, int pagevolume); + + /** + * 角色下拉展示 + * + * @return + */ + JSONObject roleDis(); +} diff --git b/src/main/java/com/objecteye/service/SpecialtyServices.java a/src/main/java/com/objecteye/service/SpecialtyServices.java new file mode 100644 index 0000000..0bd0e43 --- /dev/null +++ a/src/main/java/com/objecteye/service/SpecialtyServices.java @@ -0,0 +1,87 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.pojo.VehicleCondition; +import com.objecteye.pojo.VehicleInfoRes; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Map; + +@Service +public interface SpecialtyServices { + + /** + * 通过车牌(支持模糊)、多条件查询车辆信息(平铺) + * + * @param vehicleCondition + * @return + */ + VehicleInfoRes findByCondition(VehicleCondition vehicleCondition); + + + /** + * 通过车辆特征码、时间、地点范围进行搜索 + * + * @return + */ + JSONObject findByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile, Long starttime, Long endtime, int[] customspass, Integer vehicle_special_type_number) throws InterruptedException; + + + /** + * 危化品车 + * 通过车牌(支持模糊)、多条件查询车辆信息(平铺) + * + * @return + */ + VehicleInfoRes chemistryFindByCondition(VehicleCondition vehicleCondition); + + /** + * 危化品车 + * 通通过车辆特征码、时间、地点范围进行搜索 + * + * @return + */ + @RequestMapping("/chemistryCar/findByPic") + VehicleInfoRes chemistryFindByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile, String starttime, String endtime, int[] customspass); + + /** + * 通过图片返回每辆车的坐标 + * + * @param picfile + * @return + */ + JSONObject findCoordinateByPic(MultipartFile picfile, Integer vehicle_special_type_number); + + + /** + * 通过车辆id查询车辆信息 + * + * @param id + * @return + */ + JSONObject findById(String id); + + + /** + * 通过过车序号查询车辆信息 + * + * @param gcxh + * @param picfile + * @return + */ + JSONObject findByGcxh(int gcxh, MultipartFile picfile); + + /** + * 通过过车序号查询车辆信息 + * + * @param gcxh + * @param picfile + * @return + */ + JSONObject findByGcxh1(int gcxh, MultipartFile picfile); + + + Map getColorAndBrand(Map map); +} diff --git b/src/main/java/com/objecteye/service/UserServices.java a/src/main/java/com/objecteye/service/UserServices.java new file mode 100644 index 0000000..17bd0e9 --- /dev/null +++ a/src/main/java/com/objecteye/service/UserServices.java @@ -0,0 +1,53 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; + +import java.util.Map; + +public interface UserServices { + /** + * 检查用户是否已经存在 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + JSONObject checkUser(Map requestMap); + + /** + * 用户新增 + * + * @param requestMap@return + */ + JSONObject addUser(Map requestMap); + + /** + * 用户列表分页展示 + * + * @param requestMap @return + * @return + */ + PageResult userPage(Map requestMap); + + /** + * 用户更新数据 + * + * @param requestMap@return + */ + JSONObject updateUser(Map requestMap); + + /** + * 用户移除 + * + * @param requestMap@return + */ + JSONObject deleteUser(Map requestMap); + + /** + * 根据用户id查询用户 + * + * @param requestMap@return + */ + JSONObject findUserById(Map requestMap); + +} diff --git b/src/main/java/com/objecteye/service/VehicleCurrencyService.java a/src/main/java/com/objecteye/service/VehicleCurrencyService.java new file mode 100644 index 0000000..7be12db --- /dev/null +++ a/src/main/java/com/objecteye/service/VehicleCurrencyService.java @@ -0,0 +1,92 @@ +package com.objecteye.service; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.common.CommonResult; +import com.objecteye.pojo.NameValue; +import com.objecteye.pojo.PicVehicleDataResult; +import com.objecteye.pojo.VehicleCurrencyReques; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@Service +public interface VehicleCurrencyService { + + /** + * 返回符合要求的所有车辆列表 + * + * @return + */ + JSONObject findByCondition(VehicleCurrencyReques vehicleCurrencyReques); + + /** + * 通过车辆特征码、时间、地点范围进行搜索 + * + * @return + */ + CommonResult findVehicleByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile, Long starttime, Long endtime, int[] customspass) throws InterruptedException; + + + /** + * 返回所有车辆类型的首字母 + * List selectDisplayForInitials(); + * + * @return + */ + CommonResult> selectDisplayForInitials(); + + + /** + * 根据首字母返回符合要求的车辆品牌 + * List selectDisplayForBrand(); + * + * @return + */ + CommonResult> selectDisplayForBrand(String initials); + + + /** + * 根据车辆品牌返回符合要求的车辆子品牌 + * List selectDisplayForSubbrand(); + * + * @return + */ + CommonResult> selectDisplayForSubbrand(String brand); + + /** + * 返回符合要求的所有车辆列表 + * List selectDisplayForBirthday(); + * + * @return + */ + CommonResult> selectDisplayForBirthday(String subbrand); + + /** + * 返回所有车辆类型列表 + * + * @return + */ + CommonResult> displayVehicleTypeList(); + + /** + * 返回所有车辆车身颜色列表 + * + * @return + */ + CommonResult> displayVehicleColorList(); + + /** + * 返回所有车辆号牌类型列表 + * + * @return + */ + CommonResult> displayVehiclePlateTypeList(); + + /** + * 返回所有车辆年检标个数列表 + * + * @return + */ + CommonResult> displayVehicleNjbNumberList(); +} diff --git b/src/main/java/com/objecteye/service/VehicleDbService.java a/src/main/java/com/objecteye/service/VehicleDbService.java new file mode 100644 index 0000000..7b76355 --- /dev/null +++ a/src/main/java/com/objecteye/service/VehicleDbService.java @@ -0,0 +1,77 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyVehicleDb; + +import java.util.List; +import java.util.Map; + +/** + * 服务层接口 + * + * @author Administrator + */ +public interface VehicleDbService { + + /** + * 返回全部列表 + * + * @return + */ + public List findAll(); + + + /** + * 返回分页列表 + * + * @return + */ + public PageResult findPage(int pageNum, int pageSize); + + + /** + * 增加 + */ + public Integer add(SyVehicleDb vehicleDb); + + + /** + * 修改 + */ + public Integer update(SyVehicleDb vehicleDb); + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + public SyVehicleDb findOne(int id); + + + /** + * 批量删除 + * + * @param ids + */ + public void delete(int[] ids); + + /** + * 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @return + */ + public PageResult findPage(SyVehicleDb vehicleDb, int pageNum, int pageSize); + + + /** + * @param feature + * @return + */ + public int updateCountById(SyVehicleDb feature); + + public List> findAllName(); +} diff --git b/src/main/java/com/objecteye/service/VehicleService.java a/src/main/java/com/objecteye/service/VehicleService.java new file mode 100644 index 0000000..2d08739 --- /dev/null +++ a/src/main/java/com/objecteye/service/VehicleService.java @@ -0,0 +1,30 @@ +package com.objecteye.service; + +import com.objecteye.entity.PageResult; +import com.objecteye.entity.UploadVehicleDbResult; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * @Author: lr + * @Date: 2019/9/16 14:53 + * @Version 1.0 + * @Message: + */ +public interface VehicleService { + /** + * 返回分页列表 + * + * @return + */ + PageResult findPage(int vehicleId, String picName, int pageNum, int pageSize); + + void delete(String[] ids); + + void update(UploadVehicleDbResult uploadVehicleDbResult); + + List findByPicName(UploadVehicleDbResult uploadVehicleResult); + + String uploadFiles(MultipartFile[] multipartFile, int vehicleId); +} diff --git b/src/main/java/com/objecteye/service/impl/AreaEquipmentServiceImpl.java a/src/main/java/com/objecteye/service/impl/AreaEquipmentServiceImpl.java new file mode 100644 index 0000000..89a5c76 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/AreaEquipmentServiceImpl.java @@ -0,0 +1,362 @@ +package com.objecteye.service.impl; + +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyAreaEquipmentMapper; +import com.objecteye.mapper.SyEquipmentMapper; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.EquipmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class AreaEquipmentServiceImpl implements AreaEquipmentService { + + @Autowired + private SyAreaEquipmentMapper areaEquipmentMapper; + @Autowired + private SyEquipmentMapper equipmentMapper; + + private ArrayList captureList = new ArrayList<>(); + + @Autowired + private EquipmentService equipmentService; + + /** + * 查询全部 + */ + @Override + public ArrayList findAll() { + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andParentIdEqualTo(0); + return getAll(0); + } + + @Override + public ArrayList findAllEquip() { + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andParentIdEqualTo(0); + return getAllHandleEquip(0); + } + + @Override + public ArrayList findAllEquipAndArea() { + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andParentIdEqualTo(0); + return getAllHandleEquipAndArea(0); + } + + + /** + * 查询全部设备id + */ + @Override + public List findCaptureById(int id) { + captureList = new ArrayList<>(); + return getAllCapture(id); + } + + /** + * 查询全部设备id + */ + @Override + public List> findCaptureMsgById(int id) { + + List captureById = findCaptureById(id); + List> list = new ArrayList<>(); + if (captureById != null && captureById.size() > 0) { + + int size = captureById.size(); + for (int i = 0; i < size; i++) { + HashMap map = new HashMap<>(16); + Integer id1 = captureById.get(i); + SyEquipment equipment = equipmentService.findOne(id1); + map.put("id", id1); + map.put("name", equipment.getEquipmentName()); + map.put("status", equipment.getStatus()); + list.add(map); + } + return list; + } + return null; + } + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + Page page = (Page) areaEquipmentMapper.selectByExample(null); + return new PageResult(page.getPages(), page.getResult()); + } + + /** + * 增加 + */ + @Override + public int add(SyAreaEquipment areaEquipment) { + int insert = areaEquipmentMapper.insertSelective(areaEquipment); + return insert; + } + + /** + * 修改 + */ + @Override + public int update(SyAreaEquipment areaEquipment) { + return areaEquipmentMapper.updateByPrimaryKey(areaEquipment); + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyAreaEquipment findOne(int id) { + return areaEquipmentMapper.selectByPrimaryKey(id); + } + + /** + * 批量删除 + */ + @Override + public void delete(int[] ids) { + + for (int id : ids) { + SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(id); + if (syAreaEquipment.getParentId() == 0) { + throw new RuntimeException("不予许删除根目录"); + } + //得到所有子节点 + List list = getList(id); + //System.out.println(list); + int size = list.size(); + if (list != null || size > 0) { + for (int i = 0; i < size; i++) { + //删除设备树中设备 + SyAreaEquipment syAreaEquipment1 = list.get(i); + areaEquipmentMapper.deleteByPrimaryKey(syAreaEquipment1.getId()); + //删除设备表中设备 + Integer typeId = syAreaEquipment1.getTypeId(); + equipmentMapper.deleteByPrimaryKey(typeId); + } + } + //删除区域 + areaEquipmentMapper.deleteByPrimaryKey(id); + } + } + + @Override + public int delete(int typeId) { + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andTypeIdEqualTo(typeId); + return areaEquipmentMapper.deleteByExample(example); + } + + + @Override + public PageResult findPage(SyAreaEquipment areaEquipment, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + + if (areaEquipment != null) { + if (areaEquipment.getName() != null && areaEquipment.getName().length() > 0) { + criteria.andNameLike("%" + areaEquipment.getName() + "%"); + } + } + Page page = (Page) areaEquipmentMapper.selectByExample(example); + return new PageResult(page.getPages(), page.getResult()); + } + + private List getList(int parentId) { + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andParentIdEqualTo(parentId); + return areaEquipmentMapper.selectByExample(example); + } + + private ArrayList getAllHandleEquip(int parentId) { + List list = getList(parentId); + int size = list.size(); + + ArrayList areaEquipmentShows = new ArrayList<>(); + if (size == 0) { + + SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); + AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); + areaEquipmentShow.setId(syAreaEquipment.getId()); + + areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); + areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); + if (syAreaEquipment.getIsEquipment() == 0) { + areaEquipmentShow.setDisabled(true); + } else { + areaEquipmentShow.setDisabled(false); + } + areaEquipmentShow.setEquipmentNum(1); + areaEquipmentShow.setTitle(syAreaEquipment.getName()); + areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); + + areaEquipmentShow.setChildren(null); + return null; + } + for (int i = 0; i < size; i++) { + captureList = new ArrayList<>(); + SyAreaEquipment syAreaEquipment = list.get(i); + AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); + areaEquipmentShow.setId(syAreaEquipment.getId()); + + areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); + areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); + if (syAreaEquipment.getIsEquipment() == 0) { + areaEquipmentShow.setDisabled(true); + } else { + areaEquipmentShow.setDisabled(false); + + } + List captureById = findCaptureById(syAreaEquipment.getId()); + if (captureById != null) { + areaEquipmentShow.setEquipmentNum(captureById.size()); + } + areaEquipmentShow.setTitle(syAreaEquipment.getName()); + areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); + areaEquipmentShow.setChildren(getAllHandleEquip(syAreaEquipment.getId())); + areaEquipmentShows.add(areaEquipmentShow); + } + return areaEquipmentShows; + } + + private ArrayList getAllHandleEquipAndArea(int parentId) { + List list = getList(parentId); + int size = list.size(); + + ArrayList areaEquipmentShows = new ArrayList<>(); + if (size == 0) { + + SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); + AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); + areaEquipmentShow.setId(syAreaEquipment.getId()); + + areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); + areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); + areaEquipmentShow.setEquipmentNum(1); + areaEquipmentShow.setTitle(syAreaEquipment.getName()); + areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); + + areaEquipmentShow.setChildren(null); + return null; + } + for (int i = 0; i < size; i++) { + captureList = new ArrayList<>(); + SyAreaEquipment syAreaEquipment = list.get(i); + AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); + areaEquipmentShow.setId(syAreaEquipment.getId()); + + areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); + areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); + + List captureById = findCaptureById(syAreaEquipment.getId()); + if (captureById != null) { + areaEquipmentShow.setEquipmentNum(captureById.size()); + } + areaEquipmentShow.setTitle(syAreaEquipment.getName()); + areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); + areaEquipmentShow.setChildren(getAllHandleEquipAndArea(syAreaEquipment.getId())); + areaEquipmentShows.add(areaEquipmentShow); + } + return areaEquipmentShows; + } + + private ArrayList getAll(int parentId) { + List list = getList(parentId); + int size = list.size(); + + ArrayList areaEquipmentShows = new ArrayList<>(); + if (size == 0) { + + SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); + AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); + areaEquipmentShow.setId(syAreaEquipment.getId()); + + areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); + areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); + if (syAreaEquipment.getIsEquipment() == 0) { + areaEquipmentShow.setDisabled(false); + } else { + areaEquipmentShow.setDisabled(true); + } + areaEquipmentShow.setEquipmentNum(1); + areaEquipmentShow.setTitle(syAreaEquipment.getName()); + areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); + + areaEquipmentShow.setChildren(null); + return null; + } + for (int i = 0; i < size; i++) { + captureList = new ArrayList<>(); + SyAreaEquipment syAreaEquipment = list.get(i); + AreaEquipmentShow areaEquipmentShow = new AreaEquipmentShow(); + areaEquipmentShow.setId(syAreaEquipment.getId()); + + areaEquipmentShow.setIsEquipment(syAreaEquipment.getIsEquipment()); + areaEquipmentShow.setParentId(syAreaEquipment.getParentId()); + if (syAreaEquipment.getIsEquipment() == 0) { + areaEquipmentShow.setDisabled(false); + } else { + areaEquipmentShow.setDisabled(true); + + } + List captureById = findCaptureById(syAreaEquipment.getId()); + if (captureById != null) { + areaEquipmentShow.setEquipmentNum(captureById.size()); + } + areaEquipmentShow.setTitle(syAreaEquipment.getName()); + areaEquipmentShow.setTypeId(syAreaEquipment.getTypeId()); + areaEquipmentShow.setChildren(getAll(syAreaEquipment.getId())); + areaEquipmentShows.add(areaEquipmentShow); + } + return areaEquipmentShows; + } + + private List getAllCapture(int parentId) { + List list = getList(parentId); + int size = list.size(); + if (size == 0) { + SyAreaEquipment syAreaEquipment = areaEquipmentMapper.selectByPrimaryKey(parentId); + if (syAreaEquipment != null) { + Integer isEquipment = syAreaEquipment.getIsEquipment(); + if (isEquipment == 1) { + captureList.add(syAreaEquipment.getTypeId()); + } + return captureList; + } + return null; + } + for (int i = 0; i < size; i++) { + SyAreaEquipment syAreaEquipment = list.get(i); + + getAllCapture(syAreaEquipment.getId()); + } + return captureList; + } +} diff --git b/src/main/java/com/objecteye/service/impl/DeployEquipmentServiceImpl.java a/src/main/java/com/objecteye/service/impl/DeployEquipmentServiceImpl.java new file mode 100644 index 0000000..a05859e --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/DeployEquipmentServiceImpl.java @@ -0,0 +1,127 @@ +package com.objecteye.service.impl; + +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyDeployEquipment; +import com.objecteye.entity.SyDeployEquipmentExample; +import com.objecteye.mapper.SyDeployEquipmentMapper; +import com.objecteye.service.DeployEquipmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class DeployEquipmentServiceImpl implements DeployEquipmentService { + + @Autowired + private SyDeployEquipmentMapper deployEquipmentMapper; + + /** + * 查询全部 + */ + @Override + public List findAll() { + return deployEquipmentMapper.selectByExample(null); + } + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + Page page = (Page) deployEquipmentMapper.selectByExample(null); + return new PageResult(page.getTotal(), page.getResult()); + } + + /** + * 增加 + */ + @Override + public void add(SyDeployEquipment deployEquipment) { + deployEquipment.setIsDelete(0); + deployEquipmentMapper.insert(deployEquipment); + } + + + /** + * 修改 + */ + @Override + public void update(SyDeployEquipment deployEquipment) { + deployEquipmentMapper.updateByPrimaryKey(deployEquipment); + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyDeployEquipment findOne(int id) { + return deployEquipmentMapper.selectByPrimaryKey(id); + } + + /** + * 批量删除 + */ + @Override + public void delete(int[] ids) { + for (int id : ids) { + deployEquipmentMapper.deleteByPrimaryKey(id); + } + } + + @Override + public void deleteByDeployId(int id) { + SyDeployEquipmentExample syDeployEquipmentExample = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = syDeployEquipmentExample.createCriteria(); + criteria.andDidEqualTo(id); + deployEquipmentMapper.deleteByExample(syDeployEquipmentExample); + } + + @Override + public List slectByDeployId(int deployId) { + SyDeployEquipmentExample syDeployEquipmentExample = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = syDeployEquipmentExample.createCriteria(); + criteria.andEidEqualTo(deployId); + List integers = new ArrayList<>(); + List syDeployEquipments = deployEquipmentMapper.selectByExample(syDeployEquipmentExample); + if (syDeployEquipments != null && syDeployEquipments.size() > 0) { + int size = syDeployEquipments.size(); + for (int i = 0; i < size; i++) { + SyDeployEquipment syDeployEquipment = syDeployEquipments.get(i); + Integer eid = syDeployEquipment.getEid(); + integers.add(eid); + } + } + return integers; + } + + + @Override + public PageResult findPage(SyDeployEquipment deployEquipment, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyDeployEquipmentExample example = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = example.createCriteria(); + + if (deployEquipment != null) { + + } + + Page page = (Page) deployEquipmentMapper.selectByExample(example); + return new PageResult(page.getTotal(), page.getResult()); + } + +} diff --git b/src/main/java/com/objecteye/service/impl/DeployFeatureServiceImpl.java a/src/main/java/com/objecteye/service/impl/DeployFeatureServiceImpl.java new file mode 100644 index 0000000..0e1a6a0 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/DeployFeatureServiceImpl.java @@ -0,0 +1,142 @@ +package com.objecteye.service.impl; + +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyDeployFeature; +import com.objecteye.entity.SyDeployFeatureExample; +import com.objecteye.mapper.SyDeployFeatureMapper; +import com.objecteye.service.DeployFeatureService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class DeployFeatureServiceImpl implements DeployFeatureService { + + @Autowired + private SyDeployFeatureMapper deployFeatureMapper; + @Autowired + private RedisTemplate redisTemplate; + + /** + * 查询全部 + */ + @Override + public List findAll() { + return deployFeatureMapper.selectByExample(null); + } + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + Page page = (Page) deployFeatureMapper.selectByExample(null); + return new PageResult(page.getTotal(), page.getResult()); + } + + /** + * 增加 + */ + @Override + public void add(SyDeployFeature deployFeature) { + deployFeature.setIsDelete(0); + deployFeatureMapper.insert(deployFeature); + } + + + /** + * 修改 + */ + @Override + public void update(SyDeployFeature deployFeature) { + deployFeatureMapper.updateByPrimaryKey(deployFeature); + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyDeployFeature findOne(int id) { + return deployFeatureMapper.selectByPrimaryKey(id); + } + + /** + * 批量删除 + */ + @Override + public void delete(int[] ids) { + for (int id : ids) { + deployFeatureMapper.deleteByPrimaryKey(id); + } + } + + @Override + public void deleteByDeployId(int id) { + SyDeployFeatureExample syDeployFeatureExample = new SyDeployFeatureExample(); + SyDeployFeatureExample.Criteria criteria1 = syDeployFeatureExample.createCriteria(); + criteria1.andDidEqualTo(id); + List syDeployFeatures = deployFeatureMapper.selectByExample(syDeployFeatureExample); + if (syDeployFeatures != null) { + int size = syDeployFeatures.size(); + for (int i = 0; i < size; i++) { + Integer fid = syDeployFeatures.get(i).getFid(); + String key = id + "|" + fid; + redisTemplate.delete(key); + } + } + deployFeatureMapper.deleteByExample(syDeployFeatureExample); + } + + @Override + public List selectByFeatureId(int fid) { + SyDeployFeatureExample syDeployFeatureExample = new SyDeployFeatureExample(); + SyDeployFeatureExample.Criteria criteria = syDeployFeatureExample.createCriteria(); + criteria.andFidEqualTo(fid); + ArrayList strings = new ArrayList<>(); + List syDeployFeatures = deployFeatureMapper.selectByExample(syDeployFeatureExample); + if (syDeployFeatures != null && syDeployFeatures.size() > 0) { + int size = syDeployFeatures.size(); + for (int i = 0; i < size; i++) { + SyDeployFeature syDeployFeature = syDeployFeatures.get(i); + strings.add(syDeployFeature.getDid()); + } + return strings; + } + return null; + } + + @Override + public List selectByDid(int did) { + SyDeployFeatureExample syDeployFeatureExample = new SyDeployFeatureExample(); + SyDeployFeatureExample.Criteria criteria = syDeployFeatureExample.createCriteria(); + criteria.andDidEqualTo(did); + return deployFeatureMapper.selectByExample(syDeployFeatureExample); + + } + + @Override + public PageResult findPage(SyDeployFeature deployFeature, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyDeployFeatureExample example = new SyDeployFeatureExample(); + SyDeployFeatureExample.Criteria criteria = example.createCriteria(); + + Page page = (Page) deployFeatureMapper.selectByExample(example); + return new PageResult(page.getTotal(), page.getResult()); + } + +} diff --git b/src/main/java/com/objecteye/service/impl/DeployServiceImpl.java a/src/main/java/com/objecteye/service/impl/DeployServiceImpl.java new file mode 100644 index 0000000..bab9aa5 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/DeployServiceImpl.java @@ -0,0 +1,1335 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyAreaEquipmentMapper; +import com.objecteye.mapper.SyDeployEquipmentMapper; +import com.objecteye.mapper.SyDeployMapper; +import com.objecteye.pojo.RabbitMQInfo; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.pojo.ResponseParamPerson; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.DeployEquipmentService; +import com.objecteye.service.DeployService; +import com.objecteye.service.PersonnelService; +import com.objecteye.utils.CompareDistance; +import com.objecteye.utils.GlobalUtil; +import com.objecteye.utils.VehicleDetailsUtils; +import com.objecteye.utils.VehicleEngine; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class DeployServiceImpl implements DeployService { + + private static Logger logger = LoggerFactory.getLogger(DeployServiceImpl.class); + + @Autowired + private SyDeployMapper deployMapper; + @Autowired + private SyDeployEquipmentMapper syDeployEquipmentMapper; + @Autowired + private SyDeployMapper syDeployMapper; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private DeployEquipmentService deployEquipmentService; + @Autowired + private AreaEquipmentService areaEquipmentService; + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private PersonnelService personnelService; + @Autowired + private CompareDistance compareDistance; + @Autowired + private VehicleEngine vehicleEngine; + @Autowired + private SyAreaEquipmentMapper syAreaEquipmentMapper; + + /** + * 查询全部 + */ + @Override + public List findAll() { + SyDeployExample example = new SyDeployExample(); + SyDeployExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + + return deployMapper.selectByExample(example); + } + + @Override + public Integer cancelOrReNewDeployTask(int deployId) { + SyDeploy syDeploy = deployMapper.selectByPrimaryKey(deployId); + Integer status = syDeploy.getStatus(); + if (status == 0) { + syDeploy.setStatus(1); + deployMapper.updateByPrimaryKeySelective(syDeploy); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYID_STATRTIME, syDeploy.getId()); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYIDANDENDTIME, syDeploy.getId()); + removeDeploysByDeploy(deployId); + changeAllTaskDetailStatus(syDeploy, 1); + } else if (status == 1) { + String endTime = syDeploy.getEndTime(); + DateTime parse = DateUtil.parse(endTime); + long time = parse.getTime(); + long nowTime = System.currentTimeMillis(); + if (nowTime > time) { + throw new RuntimeException("布控结束时间过期"); + } + syDeploy.setStatus(0); + deployMapper.updateByPrimaryKeySelective(syDeploy); + addDeploysByDeploy(syDeploy.getId()); + changeAllTaskDetailStatus(syDeploy, 0); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYIDANDENDTIME, syDeploy.getId(), syDeploy.getEndTime()); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYID_STATRTIME, syDeploy.getId(), syDeploy.getStartTime()); + } + return syDeploy.getStatus(); + } + + /** + * 修改任务下所有布控项明细的状态值 + * + * @param syDeploy 布控任务 + * @param status 修改之后的状态 + */ + private void changeAllTaskDetailStatus(SyDeploy syDeploy, int status) { + String deployId = String.valueOf(syDeploy.getId()); + for (String deployLid : syDeploy.getDeployLib().split(",")) { + String hashKey; + if (syDeploy.getDeployType() == 0) { + hashKey = deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM; + } else { + hashKey = deployId + "|" + deployLid; + } + if (syDeploy.getDeployType() == 2) { + Set detailIntIds = redisTemplate.opsForHash().keys(hashKey); + for (Integer detailId : detailIntIds) { + redisTemplate.opsForHash().put(hashKey, detailId, status); + } + } else { + Set detailIds = redisTemplate.opsForHash().keys(hashKey); + for (String detailId : detailIds) { + redisTemplate.opsForHash().put(hashKey, detailId, status); + } + } + + } + } + + @Override + public Integer cancelOrReNewTaskByPersonId(int deployId, int featureId, int personId) { + String key = deployId + "|" + featureId; + Object o = redisTemplate.opsForHash().get(key, personId); + if (o != null) { + String s = o.toString(); + int status = Integer.parseInt(s); + if (status == 1) { + redisTemplate.opsForHash().put(key, personId, 0); + } else { + redisTemplate.opsForHash().put(key, personId, 1); + } + } else { + redisTemplate.opsForHash().put(key, personId, 1); + } + return (Integer) redisTemplate.opsForHash().get(key, personId); + } + + @Override + public Integer cancelOrReNewTaskByVehicleId(int deployId, int featureId, String id) { + String key = deployId + "|" + featureId; + Object o = redisTemplate.opsForHash().get(key, id); + if (o != null) { + String s = o.toString(); + int status = Integer.parseInt(s); + if (status == 1) { + redisTemplate.opsForHash().put(key, id, 0); + } else { + redisTemplate.opsForHash().put(key, id, 1); + } + } else { + redisTemplate.opsForHash().put(key, id, 1); + } + return (Integer) redisTemplate.opsForHash().get(key, id); + } + + @Override + public Integer cancelOrReNewTaskByPlate(int deployId, String plate) { + String key = deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM; + Object o = redisTemplate.opsForHash().get(key, plate); + if (o != null) { + String s = o.toString(); + int status = Integer.parseInt(s); + if (status == 1) { + redisTemplate.opsForHash().put(key, plate, 0); + } else { + redisTemplate.opsForHash().put(key, plate, 1); + } + } else { + redisTemplate.opsForHash().put(key, plate, 1); + } + + return (Integer) redisTemplate.opsForHash().get(key, plate); + } + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + SyDeployExample example = new SyDeployExample(); + SyDeployExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + + Page page = (Page) deployMapper.selectByExample(example); + List result = page.getResult(); + List deployResultMsgs = new ArrayList<>(); + if (result != null && result.size() > 0) { + for (SyDeploy deploy : result) { + DeployResultMsg deployResultMsg = new DeployResultMsg(); + deployResultMsg.setDeployName(deploy.getName()); + deployResultMsg.setDeployId(deploy.getId()); + deployResultMsg.setStatus(deploy.getStatus()); + deployResultMsgs.add(deployResultMsg); + } + } + return new PageResult<>(page.getPages(), deployResultMsgs); + } + + /** + * 增加 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void add(SyDeploy deploy) { + // 处理前端传递的时间戳 + makeTimeLongToTimeStr(deploy); + String now = DateUtil.now(); + if (DateUtil.parse(deploy.getStartTime()).getTime() <= System.currentTimeMillis()) { + deploy.setStartTime(now); + deploy.setStatus(0); + } else { + deploy.setStatus(1); + } + String endTimeStr = deploy.getEndTime(); + deploy.setIsDelete(0); + deploy.setCreateDate(now); + deploy.setSinglemonitor(0); + int deployType = deploy.getDeployType(); + + deploy.setDeployType(deployType); + String featureIds = deploy.getDeployLib(); + String[] split = featureIds.split(","); + + deploy.setDeployLib(featureIds); + Set equipmens = getEquipmens(deploy); + + String equipIds = equipmens.stream().map(String::valueOf).collect(Collectors.joining(",")); + deploy.setSingleId(deploy.getDeployEquip()); + deploy.setDeployEquip(equipIds); + deployMapper.insert(deploy); + Integer deployId = deploy.getId(); + // 布控库中每一条数据都放到redis中 + makeLibRedisDetail(split, deployId, deployType); + + for (Integer alleqid : equipmens) { + insertDeployEquip(deploy.getId(), alleqid); + findDeploysByEquipmentId(alleqid); + } + + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYID_STATRTIME, deployId, deploy.getStartTime()); + if (deploy.getThresld() != null) { + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYTHRESLD, deployId, deploy.getThresld()); + } + redisTemplate.opsForHash().put(GlobalUtil.DEPLOY_LIB, deployId, featureIds); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOY_TYPE, deployId, deployType); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYIDANDENDTIME, deployId, endTimeStr); + } + + /** + * 重置时间参数 + * + * @param syDeploy 原始数据 + */ + private void makeTimeLongToTimeStr(SyDeploy syDeploy) { + syDeploy.setStartTime(DateUtil.format(new Date(Long.parseLong(syDeploy.getStartTime())), "yyyy-MM-dd HH:mm:ss")); + syDeploy.setEndTime(DateUtil.format(new Date(Long.parseLong(syDeploy.getEndTime())), "yyyy-MM-dd HH:mm:ss")); + } + + /** + * 布控库中每一条数据都放到redis中 + * + * @param split 所有的布控库id + * @param deployId 布控任务id + * @param deployType 布控任务类型 + */ + private void makeLibRedisDetail(String[] split, int deployId, int deployType) { + for (String s : split) { + s = s.trim(); + if (deployType == 0) { + redisTemplate.opsForHash().put(deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM, s, 0); + } else if (deployType == 1) { + Integer integer = Integer.valueOf(s); + List vehicleId = mongoTemplate.find(Query.query(new Criteria("vehicleId").is(integer)), UploadVehicleDbResult.class); + String key = deployId + "|" + integer; + for (UploadVehicleDbResult uploadVehicleDbResult : vehicleId) { + String id = uploadVehicleDbResult.getId(); + redisTemplate.opsForHash().put(key, id, 0); + } + } else if (deployType == 2) { + int integer = Integer.parseInt(s); + List personIdByFid = personnelService.findPersonIdByFid(integer); + String key = deployId + "|" + integer; + for (SyPersonnel syPersonnel : personIdByFid) { + Integer id = syPersonnel.getId(); + redisTemplate.opsForHash().put(key, id, 0); + } + } + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(SyDeploy deploy) { + // 处理前端传递的时间戳 + makeTimeLongToTimeStr(deploy); + long l = System.currentTimeMillis(); + String endTime = deploy.getEndTime(); + long time = DateUtil.parse(endTime).getTime(); + Integer deployId = deploy.getId(); + if (l > time) { + deploy.setStatus(1); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYID_STATRTIME, deployId); + } else if (l < DateUtil.parse(deploy.getStartTime()).getTime()) { + deploy.setStatus(1); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYID_STATRTIME, deployId, deploy.getStartTime()); + } + String deployLib = deploy.getDeployLib(); + Integer deployType = deploy.getDeployType(); + Set equipments = getEquipmens(deploy); + + String equipIds = equipments.stream().map(String::valueOf).collect(Collectors.joining(",")); + deploy.setDeployEquip(equipIds); + + // 删除历史 + deleteRedisWhenUpdateDeploy(deployId); + // 布控库中每一条数据都放到redis中 + if (deployLib != null && !"".equals(deployLib)) { + makeLibRedisDetail(deployLib.split(","), deployId, deployType); + } + + deployEquipmentService.deleteByDeployId(deployId); + for (Integer alleqid : equipments) { + insertDeployEquip(deploy.getId(), alleqid); + findDeploysByEquipmentId(alleqid); + } + + redisTemplate.opsForHash().put(GlobalUtil.DEPLOY_LIB, deployId, deployLib); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOY_TYPE, deployId, deployType); + redisTemplate.opsForHash().put(GlobalUtil.DEPLOYIDANDENDTIME, deployId, endTime); + + deployMapper.updateByPrimaryKeySelective(deploy); + } + + /** + * 删除历史的所有对应布控任务布控库redis数据 + * + * @param deployId 布控任务id + */ + private void deleteRedisWhenUpdateDeploy(int deployId) { + SyDeploy oldSyDeploy = deployMapper.selectByPrimaryKey(deployId); + if (oldSyDeploy.getDeployType() == 0) { + redisTemplate.delete(deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM); + } else { + String oldDeployLib = oldSyDeploy.getDeployLib(); + // 删除历史 + List deleteIds = new ArrayList<>(); + for (String libId : oldDeployLib.split(",")) { + deleteIds.add(deployId + "|" + libId); + } + redisTemplate.delete(deleteIds); + } + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyDeploy findOne(int id) { + SyDeploy syDeploy = deployMapper.selectByPrimaryKey(id); + if (syDeploy != null) { + syDeploy.setStartTime(String.valueOf(DateUtil.parse(syDeploy.getStartTime()).getTime())); + syDeploy.setEndTime(String.valueOf(DateUtil.parse(syDeploy.getEndTime()).getTime())); + syDeploy.setDeployEquip(syDeploy.getSingleId()); + String areaIds = syDeploy.getSingleId(); + if (areaIds != null && !"".equals(areaIds)) { + List areaIdList = Arrays.stream(areaIds.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + SyAreaEquipmentExample syAreaEquipmentExample = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = syAreaEquipmentExample.createCriteria(); + criteria.andIdIn(areaIdList); + List syAreaEquipments = syAreaEquipmentMapper.selectByExample(syAreaEquipmentExample); + String areaNames = syAreaEquipments.stream().map(SyAreaEquipment::getName).collect(Collectors.joining(",")); + syDeploy.setAreaName(areaNames); + } + } + return syDeploy; + } + + + /** + * 批量删除 + */ + @Override + public void delete(int[] ids) { + for (int id : ids) { + SyDeploy syDeploy = deployMapper.selectByPrimaryKey(id); + syDeploy.setIsDelete(1); + deleteRedisWhenUpdateDeploy(id); + deployMapper.updateByPrimaryKeySelective(syDeploy); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOY_LIB, id); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOY_TYPE, id); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYIDANDENDTIME, id); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYID_STATRTIME, id); + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYTHRESLD, id); + + SyDeployEquipmentExample syDeployEquipmentExample = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = syDeployEquipmentExample.createCriteria(); + criteria.andDidEqualTo(id); + + List syDeployEquipments = syDeployEquipmentMapper.selectByExample(syDeployEquipmentExample); + for (SyDeployEquipment syDeployEquipment : syDeployEquipments) { + Integer id1 = syDeployEquipment.getId(); + syDeployEquipmentMapper.deleteByPrimaryKey(id1); + + findDeploysByEquipmentId(id); + } + } + } + + + /** + * 布控任务查询列表- 分页 + * + * @param pageNum 当前页 码 + * @param pageSize 每页记录数 + * @param deploy 布控任务类型 + * @return 结果集 + */ + @Override + public PageResult findPage(SyDeploy deploy, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyDeployExample example = new SyDeployExample(); + SyDeployExample.Criteria criteria = example.createCriteria(); + Integer deployType = deploy.getDeployType(); + criteria.andDeployTypeEqualTo(deployType); + criteria.andIsDeleteEqualTo(0); + Page page = (Page) deployMapper.selectByExample(example); + List tempDeployList = page.getResult(); + List resultInfos = new ArrayList<>(); + + // 查询出指定任务类型的所有任务报警次数 + Map deployIdWarningNumberMap = getDeployIdWarningNumberMap(deployType); + for (SyDeploy syDeploy : tempDeployList) { + long warningNumber = deployIdWarningNumberMap.getOrDefault(syDeploy.getId(), 0L); + MonitorTaskResultInfo monitorTaskResultInfo = new MonitorTaskResultInfo(); + monitorTaskResultInfo.setId(syDeploy.getId()); + monitorTaskResultInfo.setStatus(syDeploy.getStatus()); + monitorTaskResultInfo.setName(syDeploy.getName()); + monitorTaskResultInfo.setCreateDate(syDeploy.getCreateDate()); + monitorTaskResultInfo.setWarningNumber(warningNumber); + resultInfos.add(monitorTaskResultInfo); + } + + return new PageResult<>(page.getPages(), resultInfos); + } + + /** + * 获取指定任务类型id报警数量 + * + * @param deployType 报警类型 + * @return 结果集 + */ + private Map getDeployIdWarningNumberMap(Integer deployType) { + Aggregation aggregation = Aggregation.newAggregation( + Aggregation.match(Criteria.where("alarmType").is(deployType)), + Aggregation.group("deployId").count().as("count"), + Aggregation.project("deployId", "count") + ); + AggregationResults aggregationResults = mongoTemplate.aggregate(aggregation, "plateAlarmMsg", JSONObject.class); + List deviceIdsWarningNumberList = aggregationResults.getMappedResults(); + Map resultMap = new HashMap<>(16); + for (JSONObject jsonObject : deviceIdsWarningNumberList) { + if (jsonObject == null) { + continue; + } + resultMap.put(jsonObject.getIntValue("_id"), jsonObject.getLongValue("count")); + } + + return resultMap; + } + + /** + * 布控任务-任务内容 查询列表 + * + * @param deployId 任务id + * @param currentpage 页码 + * @param pagevolume 页码容量 + * @return 结果集 + */ + @Override + public PageResult findMonitorTaskDetail(Integer deployId, int currentpage, int pagevolume) { + SyDeploy syDeploy = syDeployMapper.selectByPrimaryKey(deployId); + Integer deployType = syDeploy.getDeployType(); + List resultInfos = new ArrayList<>(); + if (null != deployType) { + if (0 == deployType) { + Set plateNumberSet = redisTemplate.opsForHash().keys(deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM); + for (String plateNumber : plateNumberSet) { + MonitorTaskContentResultInfo monitorTaskContentResultInfo = new MonitorTaskContentResultInfo(); + monitorTaskContentResultInfo.setPlateNumber(plateNumber); + monitorTaskContentResultInfo.setCreateDate(syDeploy.getCreateDate()); + monitorTaskContentResultInfo.setDeployTime(syDeploy.getStartTime() + "-" + syDeploy.getEndTime()); + monitorTaskContentResultInfo.setDeployId(String.valueOf(deployId)); + Integer status = (Integer) redisTemplate.opsForHash().get(deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM, plateNumber); + monitorTaskContentResultInfo.setStatus(String.valueOf(status)); + resultInfos.add(monitorTaskContentResultInfo); + } + } else { + String[] deployLibArr = syDeploy.getDeployLib().split(","); + + for (String deployLib : deployLibArr) { + Map oneLibPicUrlStatusMap = redisTemplate.opsForHash().entries(deployId + "|" + deployLib); + for (Map.Entry entry : oneLibPicUrlStatusMap.entrySet()) { + MonitorTaskContentResultInfo monitorTaskContentResultInfo = new MonitorTaskContentResultInfo(); + monitorTaskContentResultInfo.setDeployTime(syDeploy.getStartTime() + "-" + syDeploy.getEndTime()); + monitorTaskContentResultInfo.setCreateDate(syDeploy.getCreateDate()); + monitorTaskContentResultInfo.setId(String.valueOf(entry.getKey())); + monitorTaskContentResultInfo.setFeatureId(deployLib); + monitorTaskContentResultInfo.setDeployId(String.valueOf(deployId)); + String urlKey = ""; + if (1 == deployType) { + urlKey = "vehicleUrl"; + } else if (2 == deployType) { + urlKey = "personUrl"; + } + monitorTaskContentResultInfo.setUrl((String) redisTemplate.opsForHash().get(urlKey, entry.getKey())); + Integer status = entry.getValue(); + monitorTaskContentResultInfo.setStatus(String.valueOf(status)); + resultInfos.add(monitorTaskContentResultInfo); + } + } + } + } + return makePageResultByBaseList(resultInfos, currentpage, pagevolume); + } + + + /** + * 统一手动分页 + * + * @param baseList 原始数据集合 + * @param currentpage 页码 + * @param pagevolume 页面容量 + * @return 结果集 + */ + private PageResult makePageResultByBaseList(List baseList, Integer currentpage, Integer pagevolume) { + // 总页数 + int pageTotal = (baseList.size() / pagevolume) + ((baseList.size() % pagevolume > 0) ? 1 : 0); + + int fromIndex = (currentpage - 1) * pagevolume; + int toIndex; + if (currentpage == pageTotal) { + toIndex = baseList.size(); + } else if (pageTotal == 0) { + return new PageResult<>(pageTotal, new ArrayList<>()); + } else { + toIndex = currentpage * pagevolume; + if (toIndex > baseList.size()) { + toIndex = baseList.size(); + } + if (fromIndex >= toIndex) { + return new PageResult<>(pageTotal, new ArrayList<>()); + } + } + + return new PageResult<>(pageTotal, baseList.subList(fromIndex, toIndex)); + } + + /** + * 每隔一分钟秒执行一次 + */ + @Scheduled(fixedRate = 60 * 1000) + public void monitorDeployState() { + Map map = redisTemplate.opsForHash().entries(GlobalUtil.DEPLOYID_STATRTIME); + Set integers = map.keySet(); + for (Integer integer : integers) { + String endTime = (String) redisTemplate.opsForHash().get(GlobalUtil.DEPLOYIDANDENDTIME, integer); + long currentTimeStamp = System.currentTimeMillis(); + long deployEndTimeStamp = Objects.requireNonNull(DateUtil.parse(endTime)).getTime(); + long deployStartTimeStamp = DateUtil.parse(map.get(integer)).getTime(); + // 没有到开始时间的不做处理 + if (currentTimeStamp >= deployStartTimeStamp && currentTimeStamp <= deployEndTimeStamp) { + SyDeploy syDeploy = deployMapper.selectByPrimaryKey(integer); + if (syDeploy == null) { + return; + } + if (1 == syDeploy.getStatus()) { + syDeploy.setStatus(0); + deployMapper.updateByPrimaryKeySelective(syDeploy); + } + String[] split = syDeploy.getDeployEquip().split(","); + deployEquipmentService.deleteByDeployId(integer); + for (String equipmentId : split) { + insertDeployEquip(integer, Integer.parseInt(equipmentId)); + findDeploysByEquipmentId(Integer.parseInt(equipmentId)); + } + } else if (currentTimeStamp > deployEndTimeStamp) { + SyDeploy syDeploy = deployMapper.selectByPrimaryKey(integer); + if (syDeploy == null) { + return; + } + syDeploy.setStatus(1); + deployMapper.updateByPrimaryKeySelective(syDeploy); + String[] split = syDeploy.getDeployEquip().split(","); + + deployEquipmentService.deleteByDeployId(integer); + for (String equipmentId : split) { + findDeploysByEquipmentId(Integer.parseInt(equipmentId)); + } + redisTemplate.opsForHash().delete(GlobalUtil.DEPLOYID_STATRTIME, integer); + } + } + } + + /** + * 修改布控任务id和设备id 的是否关闭的状态 + * + * @param deployId 任务id + * @param equipmentId 设备id + * @return 操作结果 + */ + private Integer insertDeployEquip(int deployId, int equipmentId) { + + SyDeployEquipment syDeployEquipment = new SyDeployEquipment(); + syDeployEquipment.setEid(equipmentId); + syDeployEquipment.setDid(deployId); + syDeployEquipment.setIsDelete(0); + return syDeployEquipmentMapper.insert(syDeployEquipment); + } + + /** + * 根据设备id把所有的状态是未删除的所有任务id放到redis中 + * + * @param equipmentId 设备id + */ + private void findDeploysByEquipmentId(int equipmentId) { + SyDeployEquipmentExample example = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andEidEqualTo(equipmentId); + criteria.andIsDeleteEqualTo(0); + List syDeployEquipments = syDeployEquipmentMapper.selectByExample(example); + if (syDeployEquipments != null && syDeployEquipments.size() > 0) { + List list = new ArrayList<>(); + for (SyDeployEquipment syDeployEquipment : syDeployEquipments) { + list.add(syDeployEquipment.getDid()); + } + redisTemplate.opsForHash().put(GlobalUtil.IPWITHDEPLOYLIST, equipmentId, list); + } else { + redisTemplate.opsForHash().delete(GlobalUtil.IPWITHDEPLOYLIST, equipmentId); + } + } + + /** + * 通过区域id获取所有的设备id + * + * @param deploy 布控任务 + * @return 设备id集合 + */ + private Set getEquipmens(SyDeploy deploy) { + String areaIds = deploy.getDeployEquip(); + String[] equipmentIds = StringUtils.split(areaIds, ","); + + Set alleqids = new HashSet<>(); + for (int i = 0; i < equipmentIds.length; i++) { + Integer integer = Integer.valueOf(equipmentIds[i]); + List epids = areaEquipmentService.findCaptureById(integer); + alleqids.addAll(epids); + } + return alleqids; + } + + /** + * 删除布控任务和布控设备之间的关系 + * + * @param deployId 布控任务id + */ + private void removeDeploysByDeploy(int deployId) { + SyDeployEquipmentExample syDeployEquipmentExample = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = syDeployEquipmentExample.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andDidEqualTo(deployId); + List syDeployEquipments = syDeployEquipmentMapper.selectByExample(syDeployEquipmentExample); + for (SyDeployEquipment syDeployEquipment : syDeployEquipments) { + syDeployEquipment.setIsDelete(1); + syDeployEquipmentMapper.updateByPrimaryKeySelective(syDeployEquipment); + findDeploysByEquipmentId(deployId); + } + } + + /** + * 添加布控任务和布控设备之间的关系 + * + * @param deployId 布控任务id + */ + private void addDeploysByDeploy(int deployId) { + SyDeployEquipmentExample syDeployEquipmentExample = new SyDeployEquipmentExample(); + SyDeployEquipmentExample.Criteria criteria = syDeployEquipmentExample.createCriteria(); + criteria.andDidEqualTo(deployId); + List syDeployEquipments = syDeployEquipmentMapper.selectByExample(syDeployEquipmentExample); + for (SyDeployEquipment syDeployEquipment : syDeployEquipments) { + syDeployEquipment.setIsDelete(0); + syDeployEquipmentMapper.updateByPrimaryKeySelective(syDeployEquipment); + List lists = (List) redisTemplate.opsForHash().get(GlobalUtil.IPWITHDEPLOYLIST, syDeployEquipment.getEid()); + lists.add(deployId); + redisTemplate.opsForHash().put(GlobalUtil.IPWITHDEPLOYLIST, syDeployEquipment.getEid(), lists); + } + } + + /** + * 布控任务- 主列表查询 + * + * @param monitorMainTableQueryInfo 请求参数 + * @return 分页结果集 + */ + @Override + public PageResult monitorMainTableByPage(MonitorMainTableQueryInfo monitorMainTableQueryInfo) { + Integer currentpage = monitorMainTableQueryInfo.getCurrentpage(); + Integer pagevolume = monitorMainTableQueryInfo.getPagevolume(); + Integer deployType = monitorMainTableQueryInfo.getDeployType(); + + Long startTime = monitorMainTableQueryInfo.getStartTime(); + Long endTime = monitorMainTableQueryInfo.getEndTime(); + Criteria criteria = new Criteria(); + if (null != startTime && null != endTime) { + criteria.and("picTime").gte(startTime).lte(endTime); + } else if (null != startTime) { + criteria.and("picTime").gte(startTime); + } else if (null != endTime) { + criteria.and("picTime").lte(endTime); + } + if (monitorMainTableQueryInfo.getCustomsPass() != null) { + List deviceIds = areaEquipmentService.findCaptureById(monitorMainTableQueryInfo.getCustomsPass()); + criteria.and("deviceId").in(deviceIds); + } + if (monitorMainTableQueryInfo.getPlateNumber() != null) { + String plateNumber = monitorMainTableQueryInfo.getPlateNumber().replaceAll("\\?", "\\\\S").replaceAll("\\*", ".*"); + Pattern pattern = Pattern.compile(plateNumber, Pattern.CASE_INSENSITIVE); + criteria.and("plateNum").regex(pattern); + } + criteria.and("alarmType").is(deployType); + Query query = Query.query(criteria); + query.fields().include("baseId"); + query.fields().include("alarmTime"); + query.fields().include("plateNum"); + query.fields().include("snapshotUrl"); + query.fields().include("equipmentName"); + if (0 != deployType) { + query.fields().include("similarity"); + query.fields().include("libUrl"); + query.fields().include("libId"); + } + + List plateAlarmMsgs = mongoTemplate.find(query.skip((currentpage - 1) * pagevolume).limit(pagevolume) + .with(Sort.by(Sort.Order.desc("picTime"))), PlateAlarmMsg.class); + long total = mongoTemplate.count(query, PlateAlarmMsg.class); + + List resultInfos = new ArrayList<>(); + + Map personIdRabbitMqVehicleIdMap = new HashMap<>(); + if (2 == deployType) { + List personIdList = plateAlarmMsgs.stream().map(PlateAlarmMsg::getBaseId).collect(Collectors.toList()); + Query findIdByPersonIdsQuery = new Query(Criteria.where("personid").in(personIdList)); + findIdByPersonIdsQuery.fields().include("id"); + findIdByPersonIdsQuery.fields().include("personid"); + List rabbitMqVehicles = mongoTemplate.find(findIdByPersonIdsQuery, RabbitMQVehicle.class); + personIdRabbitMqVehicleIdMap = rabbitMqVehicles.stream().collect(Collectors.toMap(RabbitMQVehicle::getPersonid, RabbitMQVehicle::getId)); + } + for (PlateAlarmMsg plateAlarmMsg : plateAlarmMsgs) { + MonitorMainTableResultInfo monitorMainTableResultInfo = new MonitorMainTableResultInfo(); + if (null != plateAlarmMsg) { + monitorMainTableResultInfo.setAddress(plateAlarmMsg.getEquipmentName()); + monitorMainTableResultInfo.setPlateNumber(plateAlarmMsg.getPlateNum()); + monitorMainTableResultInfo.setSnapshotUrl(plateAlarmMsg.getSnapshotUrl()); + monitorMainTableResultInfo.setPicTime(plateAlarmMsg.getAlarmTime()); + String id; + if (2 == deployType) { + id = personIdRabbitMqVehicleIdMap.get(plateAlarmMsg.getBaseId()); + } else { + id = plateAlarmMsg.getBaseId(); + } + monitorMainTableResultInfo.setId(id); + if (0 != deployType) { + monitorMainTableResultInfo.setLibId(plateAlarmMsg.getLibId()); + monitorMainTableResultInfo.setLibUrl(plateAlarmMsg.getLibUrl()); + monitorMainTableResultInfo.setThreshold(plateAlarmMsg.getSimilarity()); + } + } + resultInfos.add(monitorMainTableResultInfo); + } + + // 总页数 + long pageTotal = (total / pagevolume) + ((total % pagevolume > 0) ? 1 : 0); + + return new PageResult<>(pageTotal, resultInfos); + } + + /** + * 布控监听器 + * + * @param rabbitMqVehicle 消息体 + */ + @Override + public void rabbitMqMsgListener(RabbitMQVehicle rabbitMqVehicle) { + int deviceId = rabbitMqVehicle.getDeviceid(); + // 设备id - 布控任务 + List integers = (List) redisTemplate.opsForHash().get(GlobalUtil.IPWITHDEPLOYLIST, deviceId); + if (null != integers) { + for (Integer deployId : integers) { + // 获取布控类型 + Integer deployType = (Integer) redisTemplate.opsForHash().get(GlobalUtil.DEPLOY_TYPE, deployId); + if (null != deployType) { + // 车牌布控 + if (deployType == 0) { + rabbitMqMsgPlateNumberHandler(rabbitMqVehicle, deployId); + } else if (deployType == 1) { + // 车辆布控 + rabbitMqMsgVehicleHandler(rabbitMqVehicle, deployId); + } + } + } + } + } + + @Override + public void rabbitMqMsgListener(PersonMsg personMsg) { + int deviceId = personMsg.getDeviceId(); + + // 设备id - 布控任务 + List integers = (List) redisTemplate.opsForHash().get(GlobalUtil.IPWITHDEPLOYLIST, deviceId); + if (null != integers) { + for (Integer deployId : integers) { + // 获取布控类型 + Integer deployType = (Integer) redisTemplate.opsForHash().get(GlobalUtil.DEPLOY_TYPE, deployId); + if (null != deployType) { + if (deployType == 2) { + // 人像布控 + rabbitMqPersonHandler(personMsg, deployId); + } + } + } + } + } + + /** + * 根据布控库和布控类型查找所有布控id + * + * @param libId 布控库id + * @param deployType 布控类型 + * @return 对应布控id + */ + @Override + public List getDeployListByLibAndDeployType(int libId, int deployType) { + SyDeployExample example = new SyDeployExample(); + SyDeployExample.Criteria criteria = example.createCriteria(); + criteria.andDeployTypeEqualTo(deployType); + criteria.andIsDeleteEqualTo(0); + List deployList = syDeployMapper.selectByExample(example); + + List list = new ArrayList<>(); + if (deployList != null) { + list = deployList.stream().filter(syDeploy -> Arrays.asList(syDeploy.getDeployLib().split(",")).contains(String.valueOf(libId))) + .map(SyDeploy::getId).collect(Collectors.toList()); + } + return list; + } + + /** + * 车牌布控处理 + * + * @param rabbitMqVehicle 消息体 + * @param deployId 布控任务id + */ + private void rabbitMqMsgPlateNumberHandler(RabbitMQVehicle rabbitMqVehicle, Integer deployId) { + int deviceId = rabbitMqVehicle.getDeviceid(); + String equipmentName = rabbitMqVehicle.getEquipmentName(); + String latitude = rabbitMqVehicle.getLatitude(); + String longitude = rabbitMqVehicle.getLongitude(); + String snapshotUrl = rabbitMqVehicle.getSnapshoturl(); + Long pictime = rabbitMqVehicle.getPictime(); + String vehiclePlateHphm = rabbitMqVehicle.getVehicle_plate_hphm(); + + PlateAlarmMsg plateAlarmMsg = null; + String deployLib = (String) redisTemplate.opsForHash().get(GlobalUtil.DEPLOY_LIB, deployId); + if (null != vehiclePlateHphm) { + if (null != deployLib) { + if (deployLib.contains(vehiclePlateHphm)) { + Integer status = (Integer) redisTemplate.opsForHash().get(deployId + "|" + GlobalUtil.DEPLOY_PLATE_NUM, vehiclePlateHphm); + if (status != null && 0 == status) { + plateAlarmMsg = PlateAlarmMsg.builder().id(null).baseId(rabbitMqVehicle.getId()).deployId(deployId) + .deviceId(deviceId).equipmentName(equipmentName).longitude(longitude).latitude(latitude) + .picTime(pictime).alarmTime(DateUtil.now()).snapshotUrl(snapshotUrl) + .plateNum(vehiclePlateHphm).alarmType(0).build(); + } + } + } + } + plateAlarmMsgProducer(plateAlarmMsg); + } + + /** + * PlateAlarmMsg 消息发生器 + * + * @param plateAlarmMsg 消息体 + */ + private void plateAlarmMsgProducer(PlateAlarmMsg plateAlarmMsg) { + if (plateAlarmMsg != null) { + PlateAlarmMsg save = mongoTemplate.save(plateAlarmMsg); + String s = JSON.toJSONString(save); + redisTemplate.opsForList().leftPush("ALARM", s); + } + } + + /** + * 车辆布控处理 + * + * @param rabbitMqVehicle 消息体 + * @param deployId 布控任务id + */ + private void rabbitMqMsgVehicleHandler(RabbitMQVehicle rabbitMqVehicle, Integer deployId) { + int deviceId = rabbitMqVehicle.getDeviceid(); + String equipmentName = rabbitMqVehicle.getEquipmentName(); + String latitude = rabbitMqVehicle.getLatitude(); + String longitude = rabbitMqVehicle.getLongitude(); + String snapshotUrl = rabbitMqVehicle.getSnapshoturl(); + Long pictime = rabbitMqVehicle.getPictime(); + double[] vehicleFeaFeature = rabbitMqVehicle.getVehicle_fea_feature(); + double distance1 = compareDistance.getDistance(vehicleFeaFeature); + String vehiclePlateHphm = rabbitMqVehicle.getVehicle_plate_hphm(); + + String deployLib = (String) redisTemplate.opsForHash().get(GlobalUtil.DEPLOY_LIB, deployId); + PlateAlarmMsg plateAlarmMsg = null; + if (null != vehiclePlateHphm) { + String vehicleIdStr = (String) redisTemplate.opsForHash().get("vehiclePlate", vehiclePlateHphm); + if (vehicleIdStr != null) { + Integer status = (Integer) redisTemplate.opsForHash().get(deployId + "|" + deployLib, vehicleIdStr); + if (status == null || 0 == status) { + float[] vehicleIds = (float[]) redisTemplate.opsForHash().get("vehicleId", vehicleIdStr); + if (vehicleIds != null) { + double[] features = floatArrToDoubleArr(vehicleIds); + double distance = compareDistance.getDistance(features); + double v = compareDistance.simDistance(vehicleFeaFeature, distance1, features, distance); + v = v > 1 ? 1.00 : v; + String vehicleUrl = (String) redisTemplate.opsForHash().get("vehicleUrl", vehicleIdStr); + //将数据储存到mongo中 + plateAlarmMsg = PlateAlarmMsg.builder().id(null).baseId(rabbitMqVehicle.getId()).deployId(deployId) + .deviceId(deviceId).equipmentName(equipmentName).longitude(longitude).latitude(latitude) + .libUrl(vehicleUrl).picTime(pictime).alarmTime(DateUtil.now()).snapshotUrl(snapshotUrl) + .plateNum(vehiclePlateHphm).alarmType(1).similarity(v).libId(vehicleIdStr).build(); + } + + } + } + } + if (plateAlarmMsg == null) { + double max = 0; + String key = ""; + // 获取工作中的所有车辆信息 + Set openVehicleIds = new HashSet<>(); + if (deployLib != null) { + for (String detailDeployLib : deployLib.split(",")) { + Map vehicleIdStatusMap = redisTemplate.opsForHash().entries(deployId + "|" + detailDeployLib); + openVehicleIds.addAll(vehicleIdStatusMap.entrySet().stream().filter(entry -> 0 == entry.getValue()) + .map(Map.Entry::getKey).collect(Collectors.toList())); + } + } + // 判断是否需要报警 + for (String openVehicleId : openVehicleIds) { + float[] floats = (float[]) redisTemplate.opsForHash().get("vehicleId", openVehicleId); + if (floats == null) { + continue; + } + double[] featureArr = floatArrToDoubleArr(floats); + double distance = compareDistance.getDistance(featureArr); + double similar = compareDistance.simDistance(vehicleFeaFeature, distance1, featureArr, distance); + if (max < similar) { + max = similar; + key = openVehicleId; + if (max >= 1) { + max = 1.00; + break; + } + } + } + if (max >= (float) redisTemplate.opsForHash().get(GlobalUtil.DEPLOYTHRESLD, deployId)) { + String vehicleUrl = (String) redisTemplate.opsForHash().get("vehicleUrl", key); + plateAlarmMsg = PlateAlarmMsg.builder().id(null).baseId(rabbitMqVehicle.getId()).deployId(deployId) + .deviceId(deviceId).equipmentName(equipmentName).longitude(longitude).latitude(latitude) + .libUrl(vehicleUrl).picTime(pictime).alarmTime(DateUtil.now()).snapshotUrl(snapshotUrl) + .alarmType(1).similarity(max).build(); + } + } + plateAlarmMsgProducer(plateAlarmMsg); + } + + /** + * float数组转 double数组 + * + * @param floats float数组 + * @return double数组 + */ + private double[] floatArrToDoubleArr(float[] floats) { + double[] result = new double[floats.length]; + for (int i = 0; i < floats.length; i++) { + result[i] = floats[i]; + } + return result; + } + + /** + * 人像布控处理 + * + * @param personMsg 消息体 + * @param deployId 任务id + */ + public void rabbitMqPersonHandler(PersonMsg personMsg, Integer deployId) { + float[] fea = personMsg.getFea(); + int deviceId = personMsg.getDeviceId(); + String equipmentName = personMsg.getEquipmentName(); + String longitude = personMsg.getLongitude(); + String latitude = personMsg.getLatitude(); + String url = personMsg.getUrl(); + long captureTime = personMsg.getCaptureTime(); + String snapshotUrl = personMsg.getImageUrl(); + + HashMap map = new HashMap<>(16); + map.put("topN", 3); + map.put("threshold", 0); + map.put("threadNum", 2); + map.put("feature", fea); + String s = vehicleEngine.searchDataFromDeployDb(map); + logger.info("searchDataFromDeployDb: " + s); + ResponseParamPerson responseParamPerson = JSON.parseObject(s, ResponseParamPerson.class); + String code = responseParamPerson.getCode(); + if ("0".equals(code)) { + List result = responseParamPerson.getResult(); + + if (result != null && result.size() > 0) { + int size = result.size(); + for (int i = 0; i < size; i++) { + String retrieveKey = result.get(i).getRetrieveKey(); + logger.info("retrieveKey: " + retrieveKey); + String[] split = retrieveKey.split("&"); + String key = deployId + "|" + split[1]; + String deployLib = (String) redisTemplate.opsForHash().get(GlobalUtil.DEPLOY_LIB, deployId); + if (deployLib.contains(split[1])) { + Object staus = redisTemplate.opsForHash().get(key, Integer.parseInt(split[0])); + if (staus != null && Integer.parseInt(staus.toString()) == 0) { + float score = Float.parseFloat(result.get(i).getScore()); + PlateAlarmMsg plateAlarmMsg = PlateAlarmMsg.builder().id(null).baseId(personMsg.getPersonId()) + .deployId(deployId) + .deviceId(deviceId).equipmentName(equipmentName).longitude(longitude).latitude(latitude).libId(split[0]) + .libUrl(split[2]).picTime(captureTime).alarmTime(DateUtil.now()).snapshotUrl(url) + .plateNum(null).alarmType(2).similarity(score).build(); + logger.info("plateAlarmMsg: " + plateAlarmMsg.toString()); + plateAlarmMsgProducer(plateAlarmMsg); + break; + } else if (staus != null && Integer.parseInt(staus.toString()) == 1) { + continue; + } + } + } + } + } + } + + /** + * 获取底库的相关信息 + * + * @param id 底库数据id + * @return 底库数据 + */ + @Override + public JSONObject getLibMsgById(String id) { + JSONObject jsonObject = new JSONObject(); + try { + + List uploadVehicleDbResults = mongoTemplate.find(Query.query(Criteria.where("id").is(id)), UploadVehicleDbResult.class); + RabbitMQInfo rabbitMQInfo = null; + if (uploadVehicleDbResults.size() > 0) { + UploadVehicleDbResult uploadVehicleDbResult = uploadVehicleDbResults.get(0); + rabbitMQInfo = uploadVehicleDbResultToRabbitInfo(uploadVehicleDbResult); + } + + if (rabbitMQInfo != null) { + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + jsonObject.put("data", rabbitMQInfo); + } else { + jsonObject.put("code", 201); + jsonObject.put("message", "没有符合要求的数据"); + jsonObject.put("data", rabbitMQInfo); + } + } catch (Exception e) { + jsonObject.put("code", 202); + jsonObject.put("message", "请检查数据准确性"); + jsonObject.put("data", ""); + e.printStackTrace(); + } + return jsonObject; + } + + private RabbitMQInfo uploadVehicleDbResultToRabbitInfo(UploadVehicleDbResult uploadVehicleDbResult) { + final String nullStatus = " "; + RabbitMQInfo rabbitMQInfo = new RabbitMQInfo(); + VehicleInfoParam vehicleInfoParam = uploadVehicleDbResult.getVehicleInfoParam(); + + //封装数据信息 + //增加车头的检测坐标值 + SyRectParam syRectParam = vehicleInfoParam.getVehicle_detect_res().getSyRectParam(); + if (syRectParam != null && null != uploadVehicleDbResult.getImageUrl()) { + //获取抓拍图 + String snapshotBase64 = VehicleDetailsUtils.picToSnapshot(uploadVehicleDbResult.getImageUrl(), + syRectParam.getLeft(), syRectParam.getTop(), syRectParam.getWidth(), syRectParam.getHeight()); + rabbitMQInfo.setSnapshot(snapshotBase64); + } + + // id; //车辆id + rabbitMQInfo.setId(uploadVehicleDbResult.getId()); + // picurl; //图片的路径 + rabbitMQInfo.setPicurl(uploadVehicleDbResult.getImageUrl()); + + // vehicleplatetype; //车牌类型 + int vehicleplatetype = vehicleInfoParam.getVehicle_plate_det_recg_res().getType(); + String vehiclePlateTypeName = RelationMappingUtil.getVehiclePlateType(vehicleplatetype); + rabbitMQInfo.setVehicleplatetype(vehiclePlateTypeName); + + // vehicle_plate_numScore; //号牌可信度 + double vehicle_plate_numScore = vehicleInfoParam.getVehicle_plate_det_recg_res().getNumScore(); + BigDecimal bg = new BigDecimal(vehicle_plate_numScore).setScale(2, RoundingMode.UP); + float vehiclePlateNumScore = (float) bg.doubleValue(); + rabbitMQInfo.setVehicle_plate_numScore(vehiclePlateNumScore); + + // vehicle_color_index; //车辆颜色; + int vehicle_color_index = vehicleInfoParam.getVehicle_color_res().getIndex(); + String vehicleColor = RelationMappingUtil.getVehicleColor(vehicle_color_index); + rabbitMQInfo.setVehicle_color_index(vehicleColor); + // vehicle_special_type; //特殊品类车类型 + int vehicle_special_type = vehicleInfoParam.getVehicle_special_res().getType(); + String vehicleSpecialType = RelationMappingUtil.getVehicleSpecialType(vehicle_special_type); + rabbitMQInfo.setVehicle_special_type(vehicleSpecialType); + + + // vehicleIllegalDriverPersonStatus; + int vehicleIllegalDriverPersonStatus = vehicleInfoParam.getVehicle_illegal_det_res().getDriver().getPerson().getStatus(); + String vehicleIllegalStatus3; + if (vehicleIllegalDriverPersonStatus == 1003) { + vehicleIllegalStatus3 = "无人"; + } else if (vehicleIllegalDriverPersonStatus == 1004) { + vehicleIllegalStatus3 = "有人"; + } else { + vehicleIllegalStatus3 = "不确定有无人"; + } + rabbitMQInfo.setVehicle_illegal_driver_person_status(vehicleIllegalStatus3); + + if ("有人".equals(vehicleIllegalStatus3)) { + // vehicle_illegal_driver_smoke_status; + int vehicle_illegal_driver_smoke_status = vehicleInfoParam.getVehicle_illegal_det_res().getDriver().getSmoke().getStatus(); + String vehicleIllegalStatus; + if (vehicle_illegal_driver_smoke_status == 1000) { + vehicleIllegalStatus = "吸烟"; + } else if (vehicle_illegal_driver_smoke_status == 1001) { + vehicleIllegalStatus = "未吸烟"; + } else { + vehicleIllegalStatus = "不确定吸烟"; + } + rabbitMQInfo.setVehicle_illegal_driver_smoke_status(vehicleIllegalStatus); + + // vehicle_illegal_driver_belt_status; + int vehicle_illegal_driver_belt_status = vehicleInfoParam.getVehicle_illegal_det_res().getDriver().getBelt().getStatus(); + String vehicleIllegalStatus1; + if (vehicle_illegal_driver_belt_status == 1000) { + vehicleIllegalStatus1 = "未系安全带"; + } else if (vehicle_illegal_driver_belt_status == 1001) { + vehicleIllegalStatus1 = "系安全带"; + } else { + vehicleIllegalStatus1 = "不确定系安全带"; + } + rabbitMQInfo.setVehicle_illegal_driver_belt_status(vehicleIllegalStatus1); + + // vehicle_illegal_driver_phone_status; + int vehicle_illegal_driver_phone_status = vehicleInfoParam.getVehicle_illegal_det_res().getDriver().getPhone().getStatus(); + String vehicleIllegalStatus2; + if (vehicle_illegal_driver_phone_status == 1000) { + vehicleIllegalStatus2 = "打电话"; + } else if (vehicle_illegal_driver_phone_status == 1001) { + vehicleIllegalStatus2 = "未打电话"; + } else { + vehicleIllegalStatus2 = "不确定打电话"; + } + rabbitMQInfo.setVehicle_illegal_driver_phone_status(vehicleIllegalStatus2); + } else { + rabbitMQInfo.setVehicle_illegal_driver_smoke_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_driver_belt_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_driver_phone_status(nullStatus); + } + + + // vehicle_illegal_copilot_person_status; + int vehicle_illegal_copilot_person_status = vehicleInfoParam.getVehicle_illegal_det_res().getCopilot().getPerson().getStatus(); + String vehicleIllegalStatus7; + if (vehicle_illegal_copilot_person_status == 1003) { + vehicleIllegalStatus7 = "无人"; + } else if (vehicle_illegal_copilot_person_status == 1004) { + vehicleIllegalStatus7 = "有人"; + } else { + vehicleIllegalStatus7 = "不确定有无人"; + } + rabbitMQInfo.setVehicle_illegal_copilot_person_status(vehicleIllegalStatus7); + + if ("有人".equals(vehicleIllegalStatus7)) { + + // vehicle_illegal_copilot_smoke_status; + int vehicle_illegal_copilot_smoke_status = vehicleInfoParam.getVehicle_illegal_det_res().getCopilot().getSmoke().getStatus(); + String vehicleIllegalStatus4; + if (vehicle_illegal_copilot_smoke_status == 1000) { + vehicleIllegalStatus4 = "吸烟"; + } else if (vehicle_illegal_copilot_smoke_status == 1001) { + vehicleIllegalStatus4 = "未吸烟"; + } else { + vehicleIllegalStatus4 = "不确定吸烟"; + } + rabbitMQInfo.setVehicle_illegal_copilot_smoke_status(vehicleIllegalStatus4); + + // vehicle_illegal_copilot_belt_status; + int vehicle_illegal_copilot_belt_status = vehicleInfoParam.getVehicle_illegal_det_res().getCopilot().getBelt().getStatus(); + String vehicleIllegalStatus5; + if (vehicle_illegal_copilot_belt_status == 1000) { + vehicleIllegalStatus5 = "未系安全带"; + } else if (vehicle_illegal_copilot_belt_status == 1001) { + vehicleIllegalStatus5 = "系安全带"; + } else { + vehicleIllegalStatus5 = "不确定系安全带"; + } + rabbitMQInfo.setVehicle_illegal_copilot_belt_status(vehicleIllegalStatus5); + + // vehicle_illegal_copilot_phone_status; + int vehicle_illegal_copilot_phone_status = vehicleInfoParam.getVehicle_illegal_det_res().getCopilot().getPhone().getStatus(); + String vehicleIllegalStatus6; + if (vehicle_illegal_copilot_phone_status == 1000) { + vehicleIllegalStatus6 = "打电话"; + } else if (vehicle_illegal_copilot_phone_status == 1001) { + vehicleIllegalStatus6 = "未打电话"; + } else { + vehicleIllegalStatus6 = "不确定打电话"; + } + rabbitMQInfo.setVehicle_illegal_copilot_phone_status(vehicleIllegalStatus6); + } else { + rabbitMQInfo.setVehicle_illegal_copilot_smoke_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_copilot_belt_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_copilot_phone_status(nullStatus); + } + + + // vehicle_recg_type; //车辆类型 + rabbitMQInfo.setVehicle_recg_type(vehicleInfoParam.getVehicle_recg_res().getVehicle_type()); + + // vehicle_recg_freight_ton; //吨数 + rabbitMQInfo.setVehicle_recg_freight_ton(vehicleInfoParam.getVehicle_recg_res().getFreight_ton()); + + // vehicle_recg_name_score; //品牌可信度 + double vehicle_recg_name_score = vehicleInfoParam.getVehicle_recg_res().getName_score(); + BigDecimal bigDecimal = new BigDecimal(vehicle_recg_name_score).setScale(2, RoundingMode.UP); + float vehicleRecgNameScore = (float) bigDecimal.doubleValue(); + rabbitMQInfo.setVehicle_recg_name_score(vehicleRecgNameScore); + + // vehicle_plate_hphm; //车辆号牌 + rabbitMQInfo.setVehicle_plate_hphm(uploadVehicleDbResult.getPlateNum()); + + // vehicle_plate_status; + double vehicle_plate_numScore1 = vehicleInfoParam.getVehicle_plate_det_recg_res().getNumScore(); + String vehiclePlateStatus; + if (vehicle_plate_numScore1 == 0) { + //无号牌 + vehiclePlateStatus = "无号牌"; + } else { + VehiclePlateNumParam[] vehicle_plate_plateNumParams = vehicleInfoParam.getVehicle_plate_det_recg_res().getPlateNumParams(); + String chara = null; + for (int i = 0; i < 7; i++) { + VehiclePlateNumParam ppnp = vehicle_plate_plateNumParams[i]; + double maxprob = ppnp.getMaxprob(); + if (maxprob == 0) { + chara = "污损号牌"; + } + } + if (chara == null) { + //有号牌 + vehiclePlateStatus = "完整号牌"; + } else { + //污损号牌 + vehiclePlateStatus = "污损号牌"; + } + } + rabbitMQInfo.setVehicle_plate_status(vehiclePlateStatus); + + // clxh; + StringBuffer sb = new StringBuffer(); + String vehicle_recg_brand = vehicleInfoParam.getVehicle_recg_res().getVehicle_brand(); + sb.append(vehicle_recg_brand); + String vehicle_recg_subbrand = vehicleInfoParam.getVehicle_recg_res().getVehicle_subbrand(); + if (vehicle_recg_subbrand != null) { + sb.append("-").append(vehicle_recg_subbrand); + } + String vehicle_recg_issue_year = vehicleInfoParam.getVehicle_recg_res().getVehicle_issue_year(); + if (vehicle_recg_issue_year != null) { + sb.append("-").append(vehicle_recg_issue_year); + } + rabbitMQInfo.setClxh(sb.toString()); + + return rabbitMQInfo; + + } +} diff --git b/src/main/java/com/objecteye/service/impl/EquipmentServiceImpl.java a/src/main/java/com/objecteye/service/impl/EquipmentServiceImpl.java new file mode 100644 index 0000000..5226a00 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/EquipmentServiceImpl.java @@ -0,0 +1,324 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyAreaEquipmentMapper; +import com.objecteye.mapper.SyEquipmentMapper; +import com.objecteye.service.DeployService; +import com.objecteye.service.EquipmentService; +import com.objecteye.service.IVehicleViolationsService; +import com.objecteye.utils.GlobalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class EquipmentServiceImpl implements EquipmentService { + + @Autowired + private SyEquipmentMapper equipmentMapper; + @Autowired + private SyAreaEquipmentMapper syAreaEquipmentMapper; + @Autowired + private DeployService deployService; + @Autowired + private IVehicleViolationsService vehicleViolationsService; + + + @Autowired + private RedisTemplate redisTemplate; + + /** + * 查询全部 + */ + @Override + public List findAll() { + + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + List syEquipments = equipmentMapper.selectByExample(example); + + return syEquipments; + } + + /** + * 查询全部id + */ + @Override + public List findAllId() { + List all = findAll(); + ArrayList list = new ArrayList<>(); + if (all != null && all.size() > 0) { + int size = all.size(); + for (int i = 0; i < size; i++) { + Integer id = all.get(i).getId(); + list.add(id); + } + } + return list; + } + + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + Page page = (Page) equipmentMapper.selectByExample(example); + return new PageResult(page.getPages(), page.getResult()); + } + + /** + * 增加 + */ + @Override + public int add(SyEquipment equipment) { + String formatDate = DateUtil.now(); + equipment.setCreateDate(formatDate); + equipment.setUpdateDate(formatDate); + equipment.setIsDelete(0); + equipment.setStatus(0); + int insert = equipmentMapper.insertSelective(equipment); + if (insert != 0) { + SyAreaEquipment syAreaEquipment = new SyAreaEquipment(); + syAreaEquipment.setIsEquipment(1); + syAreaEquipment.setName(equipment.getEquipmentName()); + syAreaEquipment.setTypeId(equipment.getId()); + syAreaEquipment.setParentId(equipment.getAid()); + syAreaEquipmentMapper.insert(syAreaEquipment); + Integer id1 = equipment.getId(); + redisTemplate.opsForHash().put(GlobalUtil.EQUIPMENTIPANDID, equipment.getEquipmentIp(), id1); + } + return insert; + } + + /** + * 修改 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int update(SyEquipment equipment) { + + String now = DateUtil.now(); + equipment.setUpdateDate(now); + + SyEquipment equipment1 = findByName(equipment.getEquipmentName()); + SyEquipment equipment2 = findOne(equipment.getId()); + if (equipment1 != null) { + if (equipment.getEquipmentName().equals(equipment2.getEquipmentName())) { + return equipmentMapper.updateByPrimaryKeySelective(equipment); + } else { + return 0; + } + } else { + //同时更新区域设备树信息 + SyAreaEquipmentExample syAreaEquipmentExample = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = syAreaEquipmentExample.createCriteria(); + criteria.andTypeIdEqualTo(equipment.getId()); + SyAreaEquipment sy = new SyAreaEquipment(); + sy.setName(equipment.getEquipmentName()); + syAreaEquipmentMapper.updateByExampleSelective(sy, syAreaEquipmentExample); + return equipmentMapper.updateByPrimaryKeySelective(equipment); + + } + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyEquipment findOne(int id) { + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andIdEqualTo(id); + List syEquipments = equipmentMapper.selectByExample(example); + if (null == syEquipments || syEquipments.size() == 0) { + return null; + } + return syEquipments.get(0); + } + + @Override + public SyEquipment findByIp(String ip) { + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andEquipmentIpEqualTo(ip); + List syEquipments = equipmentMapper.selectByExample(example); + if (null == syEquipments || syEquipments.size() == 0) { + return null; + } + return syEquipments.get(0); + } + + @Override + public SyEquipment findByName(String name) { + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andEquipmentNameEqualTo(name); + List syEquipments = equipmentMapper.selectByExample(example); + if (null == syEquipments || syEquipments.size() == 0) { + return null; + } + return syEquipments.get(0); + } + + + @Override + public SyEquipment findByPort(String port) { + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andEquipmentPortEqualTo(port); + List syEquipments = equipmentMapper.selectByExample(example); + if (null == syEquipments || syEquipments.size() == 0) { + return null; + } + return syEquipments.get(0); + } + + + /** + * 批量删除 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(int[] ids) { + for (int id : ids) { + + SyEquipment syEquipment = equipmentMapper.selectByPrimaryKey(id); + syEquipment.setIsDelete(1); + equipmentMapper.deleteByPrimaryKey(id); + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andTypeIdEqualTo(id); + syAreaEquipmentMapper.deleteByExample(example); + // 布控预警删除 + if (redisTemplate.opsForHash().hasKey(GlobalUtil.IPWITHDEPLOYLIST, id)) { + List integers = (List) redisTemplate.opsForHash().get(GlobalUtil.IPWITHDEPLOYLIST, id); + int size = integers.size(); + for (int i = 0; i < size; i++) { + int[] deployId = {integers.get(i)}; + deployService.delete(deployId); + } + } + // 违规删除 + if (redisTemplate.opsForHash().hasKey(GlobalUtil.FORBIDDEN_TASK, id)) { + List syVehicleForbidenTasks = (List) redisTemplate.opsForHash().get(GlobalUtil.FORBIDDEN_TASK, id); + if (syVehicleForbidenTasks != null) { + vehicleViolationsService.forbiddenTaskDelete(syVehicleForbidenTasks.stream().map(syVehicleForbidenTask -> String.valueOf(syVehicleForbidenTask.getId())).toArray(String[]::new)); + } + } + redisTemplate.opsForHash().delete(GlobalUtil.EQUIPMENTIPANDID, syEquipment.getEquipmentIp()); + } + } + + /** + * 分页查询 + * + * @param equipment + * @param pageNum 当前页码 + * @param pageSize 每页记录数 + * @return + */ + + @Override + public PageResult findPage(SyEquipment equipment, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + + if (equipment != null) { + if (equipment.getEquipmentName() != null && equipment.getEquipmentName().length() > 0) { + criteria.andEquipmentNameLike("%" + equipment.getEquipmentName() + "%"); + } + if (equipment.getEquipmentIp() != null && equipment.getEquipmentIp().length() > 0) { + criteria.andEquipmentIpLike("%" + equipment.getEquipmentIp() + "%"); + } + if (equipment.getRtspUrl() != null && equipment.getRtspUrl().length() > 0) { + criteria.andRtspUrlLike("%" + equipment.getRtspUrl() + "%"); + } + if (equipment.getLongitude() != null && equipment.getLongitude().length() > 0) { + criteria.andLongitudeLike("%" + equipment.getLongitude() + "%"); + } + if (equipment.getLatitude() != null && equipment.getLatitude().length() > 0) { + criteria.andLatitudeLike("%" + equipment.getLatitude() + "%"); + } + if (equipment.getOrientation() != null && equipment.getOrientation().length() > 0) { + criteria.andOrientationLike("%" + equipment.getOrientation() + "%"); + } + if (equipment.getUsername() != null && equipment.getUsername().length() > 0) { + criteria.andUsernameLike("%" + equipment.getUsername() + "%"); + } + if (equipment.getPassword() != null && equipment.getPassword().length() > 0) { + criteria.andPasswordLike("%" + equipment.getPassword() + "%"); + } + if (equipment.getEquipmentPort() != null && equipment.getEquipmentPort().length() > 0) { + criteria.andEquipmentPortLike("%" + equipment.getEquipmentPort() + "%"); + } + if (equipment.getIntentPort() != null && equipment.getIntentPort().length() > 0) { + criteria.andIntentPortLike("%" + equipment.getIntentPort() + "%"); + } + if (equipment.getVendor() != null && equipment.getVendor().length() > 0) { + criteria.andVendorLike("%" + equipment.getVendor() + "%"); + } + if (equipment.getDescription() != null && equipment.getDescription().length() > 0) { + criteria.andDescriptionLike("%" + equipment.getDescription() + "%"); + } + if (equipment.getCreateDate() != null && equipment.getCreateDate().length() > 0) { + criteria.andCreateDateLike("%" + equipment.getCreateDate() + "%"); + } + if (equipment.getUpdateDate() != null && equipment.getUpdateDate().length() > 0) { + criteria.andUpdateDateLike("%" + equipment.getUpdateDate() + "%"); + } + if (equipment.getPlace() != null && equipment.getPlace().length() > 0) { + criteria.andPlaceLike("%" + equipment.getPlace() + "%"); + } + } + Page page = (Page) equipmentMapper.selectByExample(example); + return new PageResult(page.getTotal(), page.getResult()); + } + + @Override + public int updateStatusById(int id) { + SyEquipment equipment = equipmentMapper.selectByPrimaryKey(id); + if (equipment == null) { + return -1; + } else { + Integer status = equipment.getStatus(); + int i = 0; + if (status == 0) { + equipment.setStatus(1); + i = equipmentMapper.updateByPrimaryKeySelective(equipment); + } else { + equipment.setStatus(0); + i = equipmentMapper.updateByPrimaryKeySelective(equipment); + } + return i; + } + + } +} diff --git b/src/main/java/com/objecteye/service/impl/FeatureServiceImpl.java a/src/main/java/com/objecteye/service/impl/FeatureServiceImpl.java new file mode 100644 index 0000000..44c0f54 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/FeatureServiceImpl.java @@ -0,0 +1,247 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyFeatureMapper; +import com.objecteye.mapper.SyPersonnelMapper; +import com.objecteye.service.DeployService; +import com.objecteye.service.FeatureService; +import com.objecteye.service.PersonnelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class FeatureServiceImpl implements FeatureService { + + @Autowired + private SyFeatureMapper featureMapper; + @Autowired + private SyPersonnelMapper syPersonnelMapper; + @Autowired + private PersonnelService personnelService; + @Autowired + private DeployService deployService; + @Autowired + private RedisTemplate redisTemplate; + + @Override + public List findAll() { + SyFeatureExample example = new SyFeatureExample(); + SyFeatureExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andIsSingleEqualTo(0); + + return featureMapper.selectByExample(example); + } + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyFeatureExample example = new SyFeatureExample(); + SyFeatureExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + criteria.andIsSingleEqualTo(0); + + Page page = (Page) featureMapper.selectByExample(example); + List featureResultMsgs = new ArrayList<>(); + + List result = page.getResult(); + if (result != null && result.size() > 0) { + int size = result.size(); + for (int i = 0; i < size; i++) { + FeatureResultMsg featureResultMsg = new FeatureResultMsg(); + SyFeature syFeature = result.get(i); + featureResultMsg.setId(syFeature.getId()); + featureResultMsg.setName(syFeature.getName()); + featureResultMsg.setCount(syFeature.getCount()); + featureResultMsg.setCreateDate(syFeature.getCreateDate()); + /*List integers = deployFeatureService.selectByFeatureId(syFeature.getId()); + List deployName = new ArrayList<>(); + if(integers != null && integers.size() > 0){ + int size1 = integers.size(); + for (int j = 0; j < size1; j++) { + Integer integer = integers.get(j); + SyDeploy deploy = deployService.findOne(integer); + deployName.add(deploy.getName()); + } + } + featureResultMsg.setDeplyNameList(deployName); + */ + featureResultMsgs.add(featureResultMsg); + } + return new PageResult(page.getPages(), featureResultMsgs); + } + return null; + } + + /** + * 增加 + */ + @Override + public int add(SyFeature feature) { + //Jedis conn = JedisUtil.getConn(); + String strDate = DateUtil.now(); + feature.setCount(0); + feature.setCreateDate(strDate); + feature.setUpdateDate(strDate); + feature.setIsDelete(0); + feature.setIsSingle(0); + /*String porlib = conn.get("LIBRARY_DB_PORLIB"); + if (null == porlib) { + GlobalUtil.createFaceLib("PORLIB","PORLIB","存放人像库"); + conn.set("PORLIB","PORLIB"); + }*/ + int insert = featureMapper.insert(feature); + return insert; + } + + @Override + public int addSingle(SyFeature feature) { + /*Jedis conn = JedisUtil.getConn(); + String strDate = DateUtil.now(); + feature.setCount(1); + feature.setCreateDate(strDate); + feature.setUpdateDate(strDate); + feature.setIsDelete(0); + feature.setIsSingle(1); + String porlib = conn.get("LIBRARY_DB_PORLIB"); + if (null == porlib) { + GlobalUtil.createFaceLib("PORLIB","PORLIB","存放人像库"); + conn.set("PORLIB","PORLIB"); + } + featureMapper.insert(feature);*/ + + return 0; + } + + + /** + * 修改 + */ + @Override + public int update(SyFeature feature) { + String now = DateUtil.now(); + feature.setUpdateDate(now); + return featureMapper.updateByPrimaryKeySelective(feature); + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyFeature findOne(int id) { + return featureMapper.selectByPrimaryKey(id); + } + + /** + * 批量删除 + */ + @Override + public void delete(int[] ids) { + + for (int id : ids) { + List deployList = deployService.getDeployListByLibAndDeployType(id, 2); + SyFeature syFeature = featureMapper.selectByPrimaryKey(id); + syFeature.setIsDelete(1); + SyPersonnelExample example = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = example.createCriteria(); + criteria.andFidEqualTo(id); + List syPersonnels = syPersonnelMapper.selectByExample(example); + if (syPersonnels != null && syPersonnels.size() > 0) { + for (SyPersonnel syPersonnel : syPersonnels) { + syPersonnel.setStatus(1); + syPersonnelMapper.updateByPrimaryKey(syPersonnel); + redisTemplate.opsForHash().delete("personUrl", syPersonnel.getId()); + } + } + if (deployList != null && deployList.size() > 0) { + int size = deployList.size(); + for (int i = 0; i < size; i++) { + Integer deployId = deployList.get(i); + String key = deployId + "|" + id; + redisTemplate.opsForHash().delete(key); + int[] deploy = {deployId}; + deployService.delete(deploy); + } + } + featureMapper.updateByPrimaryKeySelective(syFeature); + } + } + + + @Override + public PageResult findPage(SyFeature feature, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyFeatureExample example = new SyFeatureExample(); + SyFeatureExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + + if (feature != null) { + if (feature.getName() != null && feature.getName().length() > 0) { + criteria.andNameLike("%" + feature.getName() + "%"); + } + if (feature.getCreateDate() != null && feature.getCreateDate().length() > 0) { + criteria.andCreateDateLike("%" + feature.getCreateDate() + "%"); + } + if (feature.getUpdateDate() != null && feature.getUpdateDate().length() > 0) { + criteria.andUpdateDateLike("%" + feature.getUpdateDate() + "%"); + } + if (feature.getDescription() != null && feature.getDescription().length() > 0) { + criteria.andDescriptionLike("%" + feature.getDescription() + "%"); + } + } + Page page = (Page) featureMapper.selectByExample(example); + return new PageResult(page.getTotal(), page.getResult()); + } + + /** + * @param feature + * @return + */ + @Override + public int updateCountById(SyFeature feature) { + + return featureMapper.updateByPrimaryKeySelective(feature); + } + + @Override + public List> findAllName() { + List> list = new ArrayList<>(); + List syFeatures = findAll(); + if (syFeatures != null) { + int size = syFeatures.size(); + for (int i = 0; i < size; i++) { + Map map = new HashMap<>(16); + SyFeature syFeature = syFeatures.get(i); + String name = syFeature.getName(); + int id = syFeature.getId(); + map.put("value", id + ""); + map.put("name", name); + list.add(map); + } + return list; + } + return null; + } +} diff --git b/src/main/java/com/objecteye/service/impl/HumanVehicleAssociationServiceImpl.java a/src/main/java/com/objecteye/service/impl/HumanVehicleAssociationServiceImpl.java new file mode 100644 index 0000000..2db8b25 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/HumanVehicleAssociationServiceImpl.java @@ -0,0 +1,434 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyEquipment; +import com.objecteye.mapper.SyEquipmentMapper; +import com.objecteye.pojo.*; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.HumanVehicleAssociationService; +import com.objecteye.utils.CompareDistance; +import com.objecteye.utils.HttpClientUtils; +import com.objecteye.utils.UserTools; +import com.objecteye.utils.VehicleEngine; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author yumiu + */ +@Service +@Slf4j +public class HumanVehicleAssociationServiceImpl implements HumanVehicleAssociationService { + + @Autowired + private SyEquipmentMapper syEquipmentMapper; + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private HttpClientUtils httpClientUtils; + @Autowired + private VehicleEngine vehicleEngine; + @Autowired + private CompareDistance compareDistance; + @Autowired + private AreaEquipmentService areaEquipmentService; + @Value("${topN}") + private int topN; + @Value("${threadNum}") + private int threadNum; + private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + /** + * 以人搜车 + * + * @param currentpage + * @param pagevolume + * @param picfile + * @return + */ + @Override + public PageResult searchVehicleFromHuman(Long starttime, Long endtime, Float thresholds, int[] customspass, int currentpage, int pagevolume, MultipartFile picfile) { + if (null == picfile || picfile.equals("undefined")) { + return null; + } + //创建返回的数据对象 + Vector searchVehicleFromPeopleInfos = new Vector<>(); + + String peopleFace = httpClientUtils.multiToPeople(picfile); + JSONObject peopleFaceJson = JSONObject.parseObject(peopleFace); + Integer code = peopleFaceJson.getInteger("code"); + if (code == 0) { + JSONObject result = peopleFaceJson.getJSONObject("result"); + if (result == null) { + return null; + } + Integer count = result.getInteger("count"); + if (count > 0) { + JSONArray info = result.getJSONArray("info"); + //创建treeMap,设置为降序排列 + TreeMap treeMap = new TreeMap<>((a, b) -> b - a); + for (int i = 0; i < info.size(); i++) { + int size = 0; + JSONObject peopleInfoSingle = info.getJSONObject(i); + JSONObject faceDetectInfoParam = peopleInfoSingle.getJSONObject("faceDetectInfoParam"); + JSONObject face_position = faceDetectInfoParam.containsKey("face_position") ? faceDetectInfoParam.getJSONObject("face_position") : null; + Integer width = 0; + Integer height = 0; + if (null != face_position) { + width = face_position.getInteger("width"); + height = face_position.getInteger("height"); + } + //获取到面积 + size = width * height; + JSONArray featureArray = peopleInfoSingle.containsKey("feature") ? peopleInfoSingle.getJSONArray("feature") : null; + treeMap.put(size, featureArray); + } + //获取到最大的人像 + JSONArray maxFeaArr = treeMap.get(treeMap.firstKey()); + + //将JSONArr转换为float[] + float[] feaFloats = new float[512]; + for (int i = 0; i < feaFloats.length; i++) { + feaFloats[i] = maxFeaArr.getFloat(i); + } + + //调用人脸检索接口获取相似的人像的RetrieveKey + int localTopN = 20000; + SearchDataFromRetrieveDb searchDataFromRetrieveDb = vehicleEngine.searchDataFromRetrieveDb(localTopN, thresholds, threadNum, feaFloats); + List list = searchDataFromRetrieveDb.getResult(); + Map retrieveKeyDbResultMap = list.stream() + .collect(Collectors.toMap(SearchDataFromRetrieveDbResult::getRetrieveKey, a -> a, (k1, k2) -> k1)); + + //将用户传来的节点转换为List + List listCustomspass = Arrays.stream(customspass).boxed().collect(Collectors.toList()); + //获取到所有的用户请求的卡口集合 + Set alleqids = new HashSet<>(); + + for (Integer in : listCustomspass) { + List epids = areaEquipmentService.findCaptureById(in); + alleqids.addAll(epids); + } + + Criteria criteria = new Criteria(); + if (alleqids.size() > 0) { + criteria.and("deviceid").in(alleqids); + } + if (starttime == null) { + if (endtime != null) { + criteria.and("pictime").lte(endtime); + } + } else { + if (endtime == null) { + criteria.and("pictime").gte(starttime); + } else { + criteria.and("pictime").gte(starttime).lte(endtime); + } + } + Query primaryStepQuery = Query.query(criteria).with(Sort.by(Sort.Order.desc("pictime"))); + primaryStepQuery.fields().include("id"); + primaryStepQuery.fields().include("personid"); + primaryStepQuery.fields().include("pictime"); + primaryStepQuery.fields().include("equipmentName"); + primaryStepQuery.fields().include("vehicle_plate_hphm"); + primaryStepQuery.fields().include("picurl"); + primaryStepQuery.fields().include("personUrl"); + primaryStepQuery.fields().include("deviceid"); + // 数据库过滤结果 + List rabbitMqVehicles = mongoTemplate.find(primaryStepQuery, RabbitMQVehicle.class); + + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + if (rabbitMqVehicle == null) { + continue; + } + if (retrieveKeyDbResultMap.containsKey(rabbitMqVehicle.getPersonid())) { + SearchDataFromRetrieveDbResult searchDataFromRetrieveDbResult = retrieveKeyDbResultMap.get(rabbitMqVehicle.getPersonid()); + SearchVehicleFromPeopleInfo searchVehicleFromPeopleSingle = new SearchVehicleFromPeopleInfo(rabbitMqVehicle.getId(), + simpleDateFormat.format(new Date(rabbitMqVehicle.getPictime())), rabbitMqVehicle.getEquipmentName(), + rabbitMqVehicle.getVehicle_plate_hphm(), searchDataFromRetrieveDbResult.getScore(), rabbitMqVehicle.getPicurl(), rabbitMqVehicle.getPersonUrl()); + searchVehicleFromPeopleInfos.add(searchVehicleFromPeopleSingle); + } + } + return UserTools.makePageResultByBaseList(searchVehicleFromPeopleInfos, currentpage, pagevolume); + } + } + return null; + } + + /** + * 根据精准车辆号牌查询人像 + * + * @param currentpage + * @param pagevolume + * @param hphm + * @return + */ + @Override + public SearchPeopleOfhphmResult searchPeopleFromHphm(Long starttime, Long endtime, int[] customspass, Integer currentpage, Integer pagevolume, String hphm) { + SearchPeopleOfhphmResult searchPeopleOfhphmResult = new SearchPeopleOfhphmResult(); + List list = null; + if (!"".equals(hphm)) { + list = new ArrayList(); + //首先根据车辆号牌查询到相关的车辆 + List byHphm = findByHphm(starttime, endtime, customspass, hphm, currentpage, pagevolume); + + //将用户传来的节点转换为List + List listCustomspass = Arrays.stream(customspass).boxed().collect(Collectors.toList()); + //获取到所有的用户请求的卡口集合 + Set alleqids = new HashSet<>(); + for (Integer in : listCustomspass) { + List epids = areaEquipmentService.findCaptureById(in); + for (int j = 0; j < epids.size(); j++) { + alleqids.add(epids.get(j)); + } + } + for (RabbitMQVehicle rmqv : byHphm) { + Long pictime = rmqv.getPictime(); + + //获取时间范围 + starttime = (starttime == null) ? 0 : starttime; + endtime = (endtime == null) ? 9999999999999L : endtime; + + if (pictime <= endtime && pictime >= starttime) { + SearchPeopleOfHphmInfo searchPeopleOfHphmInfo = new SearchPeopleOfHphmInfo(rmqv.getId(), + simpleDateFormat.format(new Date(rmqv.getPictime())), rmqv.getEquipmentName(), + rmqv.getVehicle_plate_hphm(), rmqv.getPersonUrl()); + int deviceid = rmqv.getDeviceid(); + //获取当前设备id + if (alleqids.contains(deviceid)) { + list.add(searchPeopleOfHphmInfo); + } + } + } + searchPeopleOfhphmResult.setTotal((int) Math.ceil((double) list.size() / pagevolume)); + searchPeopleOfhphmResult.setRow(list); + + } + return searchPeopleOfhphmResult; + } + + + /** + * 通过personid获取到车辆信息 + * + * @return + */ + @Override + public RabbitMQVehicle findVehicleByRetrieveKey(String personid) { + + Query query = new Query(); + Criteria criteria = Criteria.where("personid").is(personid); + query.addCriteria(criteria); + return mongoTemplate.findOne(query, RabbitMQVehicle.class); + } + + /** + * 通过车辆号牌获取到车辆信息 + * + * @return + */ + @Override + public List findByHphm(Long starttime, Long endtime, int[] customspass, String hphm, int currentPage, int pageSize) { + Query query = new Query(); + query.with(new Sort(new Sort.Order(Sort.Direction.DESC, "pictime"))); + int skip = (currentPage - 1) * pageSize; + + query.addCriteria(new Criteria().andOperator(Criteria.where("vehicle_plate_hphm").is(hphm), Criteria.where("personUrl").ne(null))); + + query.skip(skip); + query.limit(pageSize); + return mongoTemplate.find(query, RabbitMQVehicle.class); + } + + /** + * 通过retrieveKey获取到人信息 + * + * @return + */ + @Override + public FaceInfoParam findPeopleByRetrieveKey(String retrieveKey, int currentPage, int pageSize) { + Query query = new Query(); + int skip = (currentPage - 1) * pageSize; + + Criteria criteria = Criteria.where("retrieveKey").is(retrieveKey); + query.addCriteria(criteria); + + query.skip(skip);// 从那条记录开始 + query.limit(pageSize);// 取多少条记录 + return mongoTemplate.findOne(query, FaceInfoParam.class); + } + + /** + * 根据车辆图片查询关联的人 + * + * @param number + * @param threshold + * @param currentpage + * @param pagevolume + * @param picfile + * @return + */ + @Override + public List searchPeopleOfVehiclePic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile) { + List list = null; + + //根据MultipartFile,调用接口获取到该车辆的信息 + JSONObject byPic = findByPic(number, threshold, currentpage, pagevolume, picfile); + //根据查询到的车辆获取到每辆车的retrieveKey + if (byPic != null && byPic.getInteger("total") > 0) { + list = new ArrayList(); + JSONArray rowArr = byPic.getJSONArray("row"); + for (int i = 0; i < rowArr.size(); i++) { + String retrieveKey = rowArr.getJSONObject(i).getString("retrieveKey"); + //根据retrieveKey查询到相关人 + Query query = new Query(); + query.addCriteria(Criteria.where("retrieveKey").is(retrieveKey)); + + FaceInfoParam faceInfoParamSingle = mongoTemplate.findOne(query, FaceInfoParam.class); + list.add(faceInfoParamSingle); + } + } + return list; + } + + /** + * 通过过车序号和图片查询车辆集合 + * + * @param number + * @param threshold + * @param currentpage + * @param pagevolume + * @param picfile + * @return + */ + public JSONObject findByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile) { + JSONObject data = null; + //封装结果的对象 + if (picfile == null) { + return data; + } + + //查询到所有数据信息 + List allRabbitMQVehicleList = mongoTemplate.findAll(RabbitMQVehicle.class); + + String vehicleInfoByBase64 = httpClientUtils.multiToVehicle(picfile); + JSONArray infoArr = JSONObject.parseObject(vehicleInfoByBase64).getJSONObject("result").getJSONArray("info"); + + //获取到用户选中的车辆 + int size = infoArr.size(); + if (number < size) { + JSONObject vehicleSingleInfo = infoArr.getJSONObject(number); + + //获取该车辆的特征信息 + double[] currentFeature = new double[256]; + JSONArray featureArr = vehicleSingleInfo.getJSONObject("vehicle_fea_res").getJSONArray("feature"); + //将featureArr转换为double[]类型 + for (int i = 0; i < featureArr.size(); i++) { + currentFeature[i] = featureArr.getDouble(i); + } + + double currentFea = compareDistance.getDistance(currentFeature); + +// //遍历mongodb所有的车辆信息 + List pvc = new ArrayList(); + + int numberCount = 0; + for (int i = 0; i < allRabbitMQVehicleList.size(); i++) { + numberCount++; + RabbitMQVehicle rmqv = allRabbitMQVehicleList.get(i); + int vehicle_special_type = rmqv.getVehicle_special_type(); + + double[] dbFeature = rmqv.getVehicle_fea_feature(); + //进行比对 + double dbFea = compareDistance.getDistance(dbFeature); + double similar = compareDistance.simDistance(currentFeature, currentFea, dbFeature, dbFea); + if (threshold <= similar) { + similar = (double) Math.round(similar * 100) / 100; + similar = similar >= 1 ? 1 : similar; + + PicVehicleCompare picVehicleCompare = new PicVehicleCompare(); + picVehicleCompare.setSimilar(similar); + picVehicleCompare.setRabbitMQVehicle(rmqv); + pvc.add(picVehicleCompare); + } + + } + + //对row进行排序 + pvc.sort(new Comparator() { + @Override + public int compare(PicVehicleCompare o1, PicVehicleCompare o2) { + if (o2.getSimilar() == o1.getSimilar()) { + return 0; + } else { + return (o2.getSimilar() > o1.getSimilar()) ? 1 : -1; + } + } + }); + + //对row进行分页查询 + ArrayList picVehicleComparesNew = new ArrayList<>(); + int startNumber = (currentpage - 1) * pagevolume; + int endNumber = startNumber + pagevolume; + endNumber = pagevolume > (pvc.size() - startNumber) ? pvc.size() : endNumber; + for (int m = startNumber; m < endNumber; m++) { + PicVehicleCompare picVehicleCompare = pvc.get(m); + picVehicleComparesNew.add(picVehicleCompare); + } + + //获取total(总条数) + int total = pvc.size(); + //根据总条数获取总页数 + int totalPage = (int) Math.ceil(((double) total) / pagevolume); + + data = new JSONObject(); + + //获取row数据 + JSONArray row = new JSONArray(); + Iterator it = picVehicleComparesNew.iterator(); + while (it.hasNext()) { + PicVehicleCompare next = it.next(); + JSONObject rowData = new JSONObject(); + //获取id + RabbitMQVehicle rabbitMQVehicle1 = next.getRabbitMQVehicle(); + String id = rabbitMQVehicle1.getId(); + rowData.put("id", id); + rowData.put("hphm", rabbitMQVehicle1.getVehicle_plate_hphm()); + //获取设备id,然后通过设备id查询到设备的名称 + int deviceid = rabbitMQVehicle1.getDeviceid(); + SyEquipment syEquipment = syEquipmentMapper.selectByPrimaryKey(deviceid); + rowData.put("site", syEquipment.getEquipmentName()); + Long pictime = rabbitMQVehicle1.getPictime(); + rowData.put("phototime", simpleDateFormat.format(new Date(pictime))); + rowData.put("recordid", rabbitMQVehicle1.getRecordid()); + // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN + double similar = next.getSimilar(); + BigDecimal bg = new BigDecimal(similar).setScale(2, RoundingMode.UP); + rowData.put("similar", bg.doubleValue()); + rowData.put("retrieveKey", rabbitMQVehicle1.getPersonid()); + //添加图片路径 + rowData.put("picurl", rabbitMQVehicle1.getPicurl()); + row.add(rowData); + } + if (total > 0 && row != null && row.size() > 0) { + data.put("total", totalPage); + data.put("row", row); + } + } + return data; + } +} diff --git b/src/main/java/com/objecteye/service/impl/LocalTestServiceImpl.java a/src/main/java/com/objecteye/service/impl/LocalTestServiceImpl.java new file mode 100644 index 0000000..0a4c8c9 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/LocalTestServiceImpl.java @@ -0,0 +1,58 @@ +package com.objecteye.service.impl; + +import com.objecteye.entity.ViolateAlarmMsg; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.service.ILocalTestService; +import com.objecteye.utils.CompareDistance; +import com.objecteye.utils.GlobalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 本次测试 + * + * @author officer + */ +@Component +public class LocalTestServiceImpl implements ILocalTestService { + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private RedisTemplate redisTemplate; + + /** + * 创造数据到redis + */ + @Override + public void mongoToRedisVehicleFeature() { + Query query = new Query(); + query.fields().include("id"); + query.fields().include("vehicle_fea_feature"); + List rabbitMqVehicles = mongoTemplate.find(query, RabbitMQVehicle.class); + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + redisTemplate.opsForHash().put(GlobalUtil.VEHICLE_FEATURE, rabbitMqVehicle.getId(), rabbitMqVehicle.getVehicle_fea_feature()); + double dbFea = new CompareDistance().getDistance(rabbitMqVehicle.getVehicle_fea_feature()); + redisTemplate.opsForHash().put(GlobalUtil.VEHICLE_FEATURE_DISTANCE, rabbitMqVehicle.getId(), dbFea); + } + } + + /** + * 删除多余数据 + */ + @Override + public void deleteOldDataNotInRabbitMqVehicleButViolation() { + Query rabbitMqVehicleQuery = new Query(); + rabbitMqVehicleQuery.fields().include("id"); + List rabbitMqVehicles = mongoTemplate.find(rabbitMqVehicleQuery, RabbitMQVehicle.class); + List ids = rabbitMqVehicles.stream().map(RabbitMQVehicle::getId).collect(Collectors.toList()); + Query violationQuery = new Query(Criteria.where("baseId").nin(ids)); + mongoTemplate.remove(violationQuery, ViolateAlarmMsg.class); + } +} diff --git b/src/main/java/com/objecteye/service/impl/LocusOrbitServiceImpl.java a/src/main/java/com/objecteye/service/impl/LocusOrbitServiceImpl.java new file mode 100644 index 0000000..78647d2 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/LocusOrbitServiceImpl.java @@ -0,0 +1,262 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.LocusOrbitQueryParams; +import com.objecteye.entity.LocusOrbitResultParams; +import com.objecteye.entity.PageResult; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.ILocusOrbitService; +import com.objecteye.utils.GlobalUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 汽车轨迹接口 + * + * @author liuhaoyu + */ +@Service +public class LocusOrbitServiceImpl implements ILocusOrbitService { + + private final Logger logger = LoggerFactory.getLogger(LocusOrbitServiceImpl.class); + + private final String URL = "http://192.168.10.4:10002/vehicle/analysisFile"; + + /** + * 车牌置信度界限值 + */ + private final double NUM_SCORE_LIMIT = 0.9; + + /** + * 抓拍时间需要去重的时间间隔 + */ + private final Long DISTINCT_TIME_INTERVAL = 60000L; + + @Autowired + private AreaEquipmentService areaEquipmentService; + @Autowired + private MongoTemplate mongoTemplate; + + /** + * 轨迹分析接口 + * + * @param locusOrbitQueryParams 请求参数模型 + * @return 结果集 key: 车牌号, value: 车牌号对应的轨迹信息 + */ + @Override + public List locusOrbitByPlateNumber(LocusOrbitQueryParams locusOrbitQueryParams) { + // 所有符合条件的原始数据 + List rabbitMqVehicles = mongoTemplate.find(locusOrbitQueryConditionDbHandle(locusOrbitQueryParams), RabbitMQVehicle.class); + return simplePlateNumberHandle(rabbitMqVehicles); + } + + /** + * 轨迹分析接口(图片搜索) + * + * @param gcxh 车辆序号 + * @param locusOrbitQueryParams 请求参数模型 + * @param multipartFile 文件信息 + * @return 车牌号对应的轨迹信息 + */ + @Override + public List locusOrbitByPlateNumber(int gcxh, LocusOrbitQueryParams locusOrbitQueryParams, MultipartFile multipartFile) { + String fileName = multipartFile.getOriginalFilename(); + String picPath = GlobalUtil.dbPath1() + File.separator + "picture" + File.separator + fileName; + File newFile = new File(picPath); + try { + multipartFile.transferTo(newFile); + } catch (IOException e) { + e.printStackTrace(); + } + + String response = GlobalUtil.httpExecute(URL, newFile); + // 使用完成之后删除文件 + newFile.delete(); + if (null == response || "".equals(response)) { + return null; + } + + JSONObject responseObj = JSON.parseObject(response); + JSONArray infoArr = responseObj.getJSONObject("result").getJSONArray("info"); + if (null == infoArr || infoArr.size() == 0) { + return null; + } + List infoList = infoArr.toJavaList(JSONObject.class); + JSONObject infoObj = infoList.get(gcxh); + // 车牌置信度超过0.9 直接用车牌 + double numScore = infoObj.getJSONObject("vehicle_plate_det_recg_res").getDoubleValue("numScore"); + if (numScore > NUM_SCORE_LIMIT) { + JSONArray plateNumParamsArr = infoObj.getJSONObject("vehicle_plate_det_recg_res").getJSONArray("plateNumParams"); + StringBuilder plateNumberBuilder = new StringBuilder(); + for (int i = 0; i < plateNumParamsArr.size(); i++) { + JSONObject plateNumParamObj = plateNumParamsArr.getJSONObject(i); + if (null == plateNumParamObj) { + continue; + } + plateNumberBuilder.append(plateNumParamObj.getString("character")); + } + locusOrbitQueryParams.setPlateNumber(plateNumberBuilder.toString()); + } else { + return new ArrayList<>(); + } + + return locusOrbitByPlateNumber(locusOrbitQueryParams); + } + + /** + * 拼接查询条件 + * + * @param locusOrbitQueryParams 请求参数模型 + * @return mongo用query对象 + */ + private Query locusOrbitQueryConditionDbHandle(LocusOrbitQueryParams locusOrbitQueryParams) { + Criteria criteria = new Criteria(); + // 地区id + if (null != locusOrbitQueryParams.getCustomsPass()) { + List customsPass = areaEquipmentService.findCaptureById(locusOrbitQueryParams.getCustomsPass()); + criteria.and("deviceid").in(customsPass); + } + // 车牌 + criteria.and("vehicle_plate_hphm").is(locusOrbitQueryParams.getPlateNumber()); + // 开始时间 + // 结束时间 + Long startTime = locusOrbitQueryParams.getStartTime(); + Long endTime = locusOrbitQueryParams.getEndTime(); + + if (null == startTime) { + if (null != endTime) { + criteria.and("pictime").lte(endTime); + } + } else if (null == endTime) { + criteria.and("pictime").gte(startTime); + } else { + criteria.and("pictime").gte(startTime).lte(endTime); + } + + Query query = Query.query(criteria); + query.fields().include("id"); + query.fields().include("pictime"); + query.fields().include("longitude"); + query.fields().include("latitude"); + query.fields().include("equipmentName"); + query.fields().include("snapshoturl"); + query.fields().include("vehicle_plate_hphm"); + + return query; + } + + /** + * 单个车牌时间段去重(去重抓拍时间不超过1分钟的数据) + * + * @param rabbitMqVehicles 原始数据 + * @return 结果集 + */ + private List simplePlateNumberHandle(List rabbitMqVehicles) { + List resultList = new ArrayList<>(); + // 倒序排列 + rabbitMqVehicles.sort((o1, o2) -> (int) (o2.getPictime() - o1.getPictime())); + + // 时间游标 + Long lastPictime = Long.MAX_VALUE; + + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + if (null == rabbitMqVehicle || null == rabbitMqVehicle.getPictime()) { + continue; + } + Long currentPictime = rabbitMqVehicle.getPictime(); + // 更新时间游标 + if (lastPictime - currentPictime > DISTINCT_TIME_INTERVAL) { + lastPictime = currentPictime; + LocusOrbitResultParams locusOrbitResultParams = new LocusOrbitResultParams(); + locusOrbitResultParams.setId(rabbitMqVehicle.getId()); + locusOrbitResultParams.setPlateNumber(rabbitMqVehicle.getVehicle_plate_hphm()); + locusOrbitResultParams.setPictime(DateUtil.format(new Date(currentPictime), "yyyy-MM-dd HH:mm:ss")); + locusOrbitResultParams.setLongitude(rabbitMqVehicle.getLongitude()); + locusOrbitResultParams.setLatitude(rabbitMqVehicle.getLatitude()); + locusOrbitResultParams.setEquipmentName(rabbitMqVehicle.getEquipmentName()); + locusOrbitResultParams.setSnapshotUrl(rabbitMqVehicle.getSnapshoturl()); + resultList.add(locusOrbitResultParams); + } + } + // 重新排序 + resultList.sort((o1, o2) -> { + if (DateUtil.parse(o1.getPictime()).getTime() - DateUtil.parse(o2.getPictime()).getTime() > 0) { + return 1; + } else if (DateUtil.parse(o1.getPictime()).getTime() - DateUtil.parse(o2.getPictime()).getTime() < 0) { + return -1; + } else { + return 0; + } + }); + return resultList; + } + + /** + * 轨迹分析页面列表 + * + * @param locusOrbitQueryParams 请求参数模型 + * @param currentpage 页码 + * @param pagevolume 页面容量 + * @return 结果集 + */ + @Override + public PageResult locusOrbitTableByPlateNumber(LocusOrbitQueryParams locusOrbitQueryParams, Integer currentpage, Integer pagevolume) { + Criteria criteria = new Criteria(); + Long startTime = locusOrbitQueryParams.getStartTime(); + Long endTime = locusOrbitQueryParams.getEndTime(); + if (null != startTime && null != endTime) { + criteria.and("pictime").gte(startTime).lte(endTime); + } else if (null != startTime) { + criteria.and("pictime").gte(startTime); + } else if (null != endTime) { + criteria.and("pictime").lte(endTime); + } + criteria.and("vehicle_plate_hphm").is(locusOrbitQueryParams.getPlateNumber()); + + Query query = Query.query(criteria); + query.fields().include("id"); + query.fields().include("pictime"); + query.fields().include("equipmentName"); + query.fields().include("snapshoturl"); + query.fields().include("vehicle_plate_hphm"); + + List rabbitMqVehicles = mongoTemplate.find(query.skip((currentpage - 1) * pagevolume).limit(pagevolume) + .with(Sort.by(Sort.Order.asc("pictime"))), RabbitMQVehicle.class); + + List resultList = new ArrayList<>(); + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + LocusOrbitResultParams locusOrbitResultParams = new LocusOrbitResultParams(); + if (null != rabbitMqVehicle) { + locusOrbitResultParams.setId(rabbitMqVehicle.getId()); + locusOrbitResultParams.setSnapshotUrl(rabbitMqVehicle.getSnapshoturl()); + locusOrbitResultParams.setEquipmentName(rabbitMqVehicle.getEquipmentName()); + locusOrbitResultParams.setPlateNumber(rabbitMqVehicle.getVehicle_plate_hphm()); + locusOrbitResultParams.setPictime(DateUtil.format(new Date(rabbitMqVehicle.getPictime()), "yyyy-MM-dd HH:mm:ss")); + } + resultList.add(locusOrbitResultParams); + } + + long total = mongoTemplate.count(query, RabbitMQVehicle.class); + // 总页数 + int totalPage = (int) Math.ceil((double) total / pagevolume); + + return new PageResult<>(totalPage, resultList); + } +} diff --git b/src/main/java/com/objecteye/service/impl/PersonnelServiceImpl.java a/src/main/java/com/objecteye/service/impl/PersonnelServiceImpl.java new file mode 100644 index 0000000..9915936 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/PersonnelServiceImpl.java @@ -0,0 +1,333 @@ + +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyFeatureMapper; +import com.objecteye.mapper.SyPersonnelMapper; +import com.objecteye.service.DeployService; +import com.objecteye.service.FeatureService; +import com.objecteye.service.PersonnelService; +import com.objecteye.utils.GlobalUtil; +import com.objecteye.utils.VehicleEngine; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * 服务实现层 + * + * @author Administrator + */ + +@Service +public class PersonnelServiceImpl implements PersonnelService { + + @Autowired + private SyPersonnelMapper personnelMapper; + @Autowired + private SyFeatureMapper syFeatureMapper; + @Autowired + private FeatureService featureService; + @Autowired + private VehicleEngine vehicleEngine; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private DeployService deployService; + + @Value("${picture.url}") + private String picIpAndPort; + @Value("${addUrlToDeployDb}") + private String addUrlToDeployDb; + + + /** + * 查询全部 + */ + + @Override + public List findAll() { + SyPersonnelExample example = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = example.createCriteria(); + criteria.andStatusEqualTo(0); + return personnelMapper.selectByExample(example); + } + + /** + * 按分页查询 + */ + + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyPersonnelExample example = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = example.createCriteria(); + criteria.andStatusEqualTo(0); + Page page = (Page) personnelMapper.selectByExample(example); + return new PageResult(page.getPages(), page.getResult()); + } + + + /** + * 增加 + */ + + @Override + public int add(SyPersonnel personnel) { + String now = DateUtil.now(); + personnel.setCreateDate(now); + personnel.setUpdateDate(now); + personnel.setStatus(0); + personnel.setConreason(null); + return personnelMapper.insert(personnel); + } + + + /** + * 修改 + */ + + @Override + public void update(SyPersonnel personnel) { + String now = DateUtil.now(); + personnel.setStatus(0); + personnel.setUpdateDate(now); + personnelMapper.updateByPrimaryKey(personnel); + + } + + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + + @Override + public SyPersonnel findOne(int id) { + return personnelMapper.selectByPrimaryKey(id); + } + + + /** + * 批量删除 + */ + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(int[] ids) { + + for (int id : ids) { + SyPersonnel syPersonnel = personnelMapper.selectByPrimaryKey(id); + syPersonnel.setStatus(1); + personnelMapper.updateByPrimaryKey(syPersonnel); + Integer fid = syPersonnel.getFid(); + Integer personCountByFid = findPersonCountByFid(fid); + SyFeature syFeature = syFeatureMapper.selectByPrimaryKey(fid); + syFeature.setCount(personCountByFid); + syFeatureMapper.updateByPrimaryKeySelective(syFeature); + List deployListByLibAndDeployType = deployService.getDeployListByLibAndDeployType(fid, 2); + if (deployListByLibAndDeployType != null && deployListByLibAndDeployType.size() > 0) { + for (int i = 0; i < deployListByLibAndDeployType.size(); i++) { + String key = deployListByLibAndDeployType.get(i) + "|" + fid; + if (redisTemplate.opsForHash().hasKey(key, id)) { + redisTemplate.opsForHash().delete(key, id); + } + } + } + String imageUrl = syPersonnel.getImageUrl(); + String key = id + "&" + fid + "&" + imageUrl; + HashMap map = new HashMap<>(); + map.put("retrieveKey", key); + redisTemplate.opsForHash().delete("personUrl", id); + String s = vehicleEngine.deleteDataFromDeployDb(map); + System.out.println("删除"); + } + } + + + @Override + public PageResult findPage(int fid, String name, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + ArrayList list = new ArrayList<>(); + + SyPersonnelExample example = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = example.createCriteria(); + criteria.andStatusEqualTo(0); + criteria.andFidEqualTo(fid); + + /*if (name != null && name.length() > 0) { + criteria.andNameLike("%" + name + "%"); + }*/ + if (!name.equals("")) { + criteria.andNameLike("%" + name + "%"); + } + SyPersonnelExample.Criteria criteria1 = example.createCriteria(); + criteria1.andStatusEqualTo(0); + criteria1.andFidEqualTo(fid); + + /*if (name != null && name.length() > 0) { + criteria1.andCreateDateLike("%" + name + "%"); + }*/ + if (!name.equals("")) { + criteria1.andCreateDateLike("%" + name + "%"); + } + example.or(criteria1); + + Page page = (Page) personnelMapper.selectByExample(example); + List result = page.getResult(); + int size = result.size(); + if (size > 0) { + for (int i = 0; i < size; i++) { + SyPersonnel syPersonnel = result.get(i); + Integer personnelId = syPersonnel.getId(); + int alarmNum = 0; + PersonnelResultMsg personnelResultMsg = new PersonnelResultMsg(personnelId, syPersonnel.getName(), syPersonnel.getCreateDate(), syPersonnel.getConreason(), alarmNum, syPersonnel.getImageUrl(), syPersonnel.getIndentity()); + + list.add(personnelResultMsg); + } + } + return new PageResult(page.getPages(), list); + } + + + @Override + public PageResult findPageByNameOCard(SyPersonnel personnel, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + ArrayList list = new ArrayList<>(); + SyPersonnelExample example = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = example.createCriteria(); + criteria.andStatusEqualTo(0); + + String name = personnel.getName(); + if (name != null && name.length() > 0) { + criteria.andNameLike("%" + name + "%"); + } + String indentity = personnel.getIndentity(); + if (indentity != null && indentity.length() > 0) { + criteria.andIndentityLike("%" + indentity + "%"); + } + Page page = (Page) personnelMapper.selectByExample(example); + return new PageResult(page.getPages(), page.getResult()); + } + + @Override + public List> findByImage(float similarity, MultipartFile file, int featureId) { + return null; + } + + @Override + public Integer findPersonCountByFid(int fid) { + SyPersonnelExample syPersonnelExample = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = syPersonnelExample.createCriteria(); + criteria.andStatusEqualTo(0); + criteria.andFidEqualTo(fid); + int count = personnelMapper.countByExample(syPersonnelExample); + + return count; + } + + + @Override + public List findPersonIdByFid(int fid) { + SyPersonnelExample syPersonnelExample = new SyPersonnelExample(); + SyPersonnelExample.Criteria criteria = syPersonnelExample.createCriteria(); + criteria.andStatusEqualTo(0); + criteria.andFidEqualTo(fid); + + return personnelMapper.selectByExample(syPersonnelExample); + } + + /** + * 上传人像到人像库 + * + * @param uploadFiles + * @param featureId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public String uploadFiles(MultipartFile[] uploadFiles, int featureId) { + + int count = 0; + SyFeature one = featureService.findOne(featureId); + System.out.println(one.getCreateDate()); + List deployListByLibAndDeployType = deployService.getDeployListByLibAndDeployType(featureId, 2); + + if (uploadFiles.length > 0 && one != null) { + int len = uploadFiles.length; + for (int i = 0; i < len; i++) { + MultipartFile multipartFile = uploadFiles[i]; + String fileName = multipartFile.getOriginalFilename(); + System.out.println(fileName); + fileName = fileName.replaceAll("\\\\", "/"); + String personName = fileName.split("\\_")[0]; + if (personName.contains("/")) { + String[] personNameArray = personName.split("/"); + personName = personNameArray[personNameArray.length - 1]; + } + String personIndentity = fileName.split("\\_")[1].split("\\.")[0]; + String picPath = GlobalUtil.dbPath1() + File.separator + "picture" + File.separator + fileName; + String imageUrl = picIpAndPort + fileName; + File newFile = new File(picPath); + try { + multipartFile.transferTo(newFile); + } catch (IOException e) { + e.printStackTrace(); + } + SyPersonnel syPersonnel = new SyPersonnel(); + syPersonnel.setName(personName); + syPersonnel.setIndentity(personIndentity); + syPersonnel.setImageUrl(imageUrl); + syPersonnel.setFid(featureId); + int add = add(syPersonnel); + Integer personnelId = syPersonnel.getId(); + String key = personnelId + "&" + featureId + "&" + imageUrl; + Map map = new HashMap<>(16); + map.put("TPXX", imageUrl); + map.put("retrieveKey", key); + String s = vehicleEngine.addUrlToDeployDb(map); + if (deployListByLibAndDeployType.size() > 0) { + for (int j = 0; j < deployListByLibAndDeployType.size(); j++) { + Integer deployId = deployListByLibAndDeployType.get(j); + String key1 = deployId + "|" + featureId; + redisTemplate.opsForHash().put(key1, personnelId, 0); + } + } + redisTemplate.opsForHash().put("personUrl", personnelId, imageUrl); + System.out.println("请求返回:" + s); + String code = JSONObject.parseObject(s).getString("code"); + //ResponseParam responseParam = JSON.parseObject(s, ResponseParam.class); + //String code = responseParam.getCode(); + if ("0".equals(code)) { + if (add > 0) { + count++; + } + } + } + Integer count1 = one.getCount(); + one.setCount(count + count1); + featureService.updateCountById(one); + return "上传的文件共有" + len + ",成功上传的个数为: " + count; + } + return null; + } +} + diff --git b/src/main/java/com/objecteye/service/impl/PreviewServiceImpl.java a/src/main/java/com/objecteye/service/impl/PreviewServiceImpl.java new file mode 100644 index 0000000..9c3c13f --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/PreviewServiceImpl.java @@ -0,0 +1,72 @@ +package com.objecteye.service.impl; + +import com.objecteye.entity.SyEquipment; +import com.objecteye.service.EquipmentService; +import com.objecteye.service.PreviewService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.net.InetAddress; +import java.util.concurrent.ConcurrentHashMap; + +@Service +public class PreviewServiceImpl implements PreviewService { + + @Autowired + static String ffmpegTnstructions; + private EquipmentService equipmentService; + + private static ConcurrentHashMap rtmpAndprocessMaps = new ConcurrentHashMap<>(); + + private static ConcurrentHashMap userAndrtmpMaps = new ConcurrentHashMap<>(); + + @Override + public String getRtmp(String userName, Integer deviceId) throws IOException { + + SyEquipment equipment = equipmentService.findOne(deviceId); + + String equipmentName = equipment.getEquipmentName(); + String rtspUrl = equipment.getRtspUrl(); + boolean rtmpStrIsVaild = false; + String address = InetAddress.getLocalHost().toString().split("/")[1]; + String rtmpStr = "rtmp://" + address + ":1935/hls/" + equipmentName + deviceId; + + if (rtmpAndprocessMaps.containsKey(rtmpStr)) { + if (userAndrtmpMaps.containsKey(userName)) { + userAndrtmpMaps.remove(userName); + } + userAndrtmpMaps.put(userName, rtmpStr); + } else { + Process process = null; + if (rtspUrl.contains("rtsp")) { + ffmpegTnstructions = "ffmpeg -re -stream_loop -1 -rtsp_transport tcp -i" + rtspUrl + "-vcodec copy -acodec copy -f flv -r 15 -s 1280x720 -an -y " + rtmpStr; + } else { + ffmpegTnstructions = "ffmpeg -re -stream_loop -1 -rtsp_transport tcp -i rtsp://" + equipmentName + ":" + equipment.getPassword() + "@" + equipment.getEquipmentIp() + ":" + equipment.getEquipmentPort() + "/h264/ch1/main/av_stream -vcodec copy -acodec copy -f flv -r 15 -s 1280x720 -an -y rtmp://" + address + ":1935/hls/" + equipmentName + deviceId; + } + process = Runtime.getRuntime().exec(ffmpegTnstructions); + rtmpAndprocessMaps.put(rtmpStr, process); + userAndrtmpMaps.put(userName, rtmpStr); + rtmpStrIsVaild = process.isAlive(); + /*if (rtmpStrIsVaild) { + System.out.println("转流进程正在运行"); + }*/ + } + for (String rtmpString : rtmpAndprocessMaps.keySet()) { + if (!userAndrtmpMaps.containsValue(rtmpString)) { + //System.out.println("当前转流进程未使用,停止rtsp转rtmp"); + Process detroyPro = rtmpAndprocessMaps.get(rtmpString); + if (detroyPro.isAlive()) { + detroyPro.destroy(); + } + rtmpAndprocessMaps.remove(rtmpString); + } + } + if (rtmpStrIsVaild) { + return rtmpStr; + } + return null; + } +} + + diff --git b/src/main/java/com/objecteye/service/impl/RoleServicesImpl.java a/src/main/java/com/objecteye/service/impl/RoleServicesImpl.java new file mode 100644 index 0000000..603cd9a --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/RoleServicesImpl.java @@ -0,0 +1,100 @@ +package com.objecteye.service.impl; + + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.SyPrivilege; +import com.objecteye.entity.SyRole; +import com.objecteye.entity.SyRoleExample; +import com.objecteye.mapper.SyPrivilegeMapper; +import com.objecteye.mapper.SyRoleMapper; +import com.objecteye.mapper.SyRolePrivilegeMapper; +import com.objecteye.service.RoleServices; +import com.objecteye.utils.UserTools; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class RoleServicesImpl implements RoleServices { + + @Autowired + public SyRoleMapper syRoleMapper; + @Autowired + public SyRolePrivilegeMapper syRolePrivilegeMapper; + @Autowired + public SyPrivilegeMapper syPrivilegeMapper; + + @Override + public int totalNum() { + return syRoleMapper.countByExample(new SyRoleExample()); + } + + @Override + public JSONObject rolePage(int currentpage, int pagevolume) { + int startPage = (currentpage - 1) * pagevolume; + List syRoles = syRoleMapper.selectRolePage(startPage, pagevolume); + JSONObject jsonObject = new JSONObject(); + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + JSONArray rowOld = UserTools.getJSONArrayByList(syRoles); + JSONArray rowNew = new JSONArray(); + for (int i = 0; i < rowOld.size(); i++) { + JSONObject jsonRole = rowOld.getJSONObject(i); + Integer id = jsonRole.getInteger("id"); + /*通过id获取相应的权限*/ + List integers = syRolePrivilegeMapper.selectByRid(id); + StringBuilder sb = new StringBuilder(); + for (Integer in : integers) { + SyPrivilege syPrivilege = syPrivilegeMapper.selectByPrimaryKey(in); + sb.append(syPrivilege.getPrivilegeName()).append(","); + } + String substring = sb.toString().substring(0, sb.length() - 1); + jsonRole.put("jurisdiction", substring); + jsonRole.put("rolename", jsonRole.getString("roleName")); + jsonRole.put("createdate", jsonRole.getString("createDate")); + jsonRole.put("isdelete", jsonRole.getString("isDelete")); + jsonRole.remove("roleName"); + jsonRole.remove("createDate"); + jsonRole.remove("isDelete"); + rowNew.add(jsonRole); + } + + int total = (int) Math.ceil(totalNum() / (double) pagevolume); + JSONObject data = new JSONObject(); + data.put("total", total); + data.put("row", rowNew); + jsonObject.put("data", data); + return jsonObject; + } + + @Override + public JSONObject roleDis() { + JSONObject jsonObject = new JSONObject(); + try { + List syRoles = syRoleMapper.selectByExample(new SyRoleExample()); + if (syRoles != null && syRoles.size() > 0) { + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + JSONArray array = new JSONArray(); + for (SyRole sr : syRoles) { + JSONObject kv = new JSONObject(); + kv.put("name", sr.getRoleName()); + kv.put("value", sr.getId()); + array.add(kv); + } + jsonObject.put("data", array); + } else { + jsonObject.put("code", 201); + jsonObject.put("message", "列表信息错误"); + jsonObject.put("date", null); + } + } catch (Exception e) { + jsonObject.put("code", 202); + jsonObject.put("message", "下拉列表失败"); + jsonObject.put("date", null); + } + return jsonObject; + } +} diff --git b/src/main/java/com/objecteye/service/impl/SpecialAuthenticationServiceImpl.java a/src/main/java/com/objecteye/service/impl/SpecialAuthenticationServiceImpl.java new file mode 100644 index 0000000..1ea2cb1 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/SpecialAuthenticationServiceImpl.java @@ -0,0 +1,107 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; +import com.objecteye.pojo.SpecialAuthenticationUrlConfig; +import com.objecteye.service.ISpecialAuthenticationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@Component +public class SpecialAuthenticationServiceImpl implements ISpecialAuthenticationService { + + @Autowired + private MongoTemplate mongoTemplate; + + /** + * 分页查询 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public PageResult findByPage(Map requestMap) { + Integer pagevolume = (Integer) requestMap.get("pagevolume"); + Integer currentpage = (Integer) requestMap.get("currentpage"); + + List specialAuthenticationUrlConfigs = mongoTemplate + .find(new Query().limit(pagevolume).skip((currentpage - 1) * pagevolume), SpecialAuthenticationUrlConfig.class); + long total = mongoTemplate + .count(new Query().limit(pagevolume).skip((currentpage - 1) * pagevolume), SpecialAuthenticationUrlConfig.class); + total = (long) Math.ceil((double) total / pagevolume); + return new PageResult<>(total, specialAuthenticationUrlConfigs); + } + + /** + * 添加特殊地址权限要求 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject addConfig(Map requestMap) { + SpecialAuthenticationUrlConfig urlConfig = JSON.parseObject(JSON.toJSONString(requestMap), SpecialAuthenticationUrlConfig.class); + urlConfig = mongoTemplate.insert(urlConfig); + JSONObject resultObj = new JSONObject(); + if (urlConfig.getId() == null) { + resultObj.put("error", "数据创建失败"); + } else { + resultObj.put("id", urlConfig.getId()); + } + return resultObj; + } + + /** + * 更新配置信息 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject updateConfig(Map requestMap) { + SpecialAuthenticationUrlConfig urlConfig = JSON.parseObject(JSON.toJSONString(requestMap), SpecialAuthenticationUrlConfig.class); + long count = mongoTemplate.count(Query.query(Criteria.where("id").is(urlConfig.getId())), SpecialAuthenticationUrlConfig.class); + JSONObject resultObj = new JSONObject(); + if (count == 0) { + resultObj.put("error", "数据不存在"); + } else { + mongoTemplate.save(urlConfig); + } + return resultObj; + } + + /** + * 删除配置信息 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject deleteConfig(Map requestMap) { + SpecialAuthenticationUrlConfig urlConfig = JSON.parseObject(JSON.toJSONString(requestMap), SpecialAuthenticationUrlConfig.class); + mongoTemplate.remove(Query.query(Criteria.where("id").is(urlConfig.getId())), SpecialAuthenticationUrlConfig.class); + return new JSONObject(); + } + + /** + * 校验相同配置信息是否存在 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject checkConfig(Map requestMap) { + SpecialAuthenticationUrlConfig urlConfig = JSON.parseObject(JSON.toJSONString(requestMap), SpecialAuthenticationUrlConfig.class); + long count = mongoTemplate.count(Query.query(Criteria.where("id").is(urlConfig.getId())), SpecialAuthenticationUrlConfig.class); + JSONObject resultObj = new JSONObject(); + resultObj.put("count", count); + return resultObj; + } +} diff --git b/src/main/java/com/objecteye/service/impl/SpecialtyServicesImpl.java a/src/main/java/com/objecteye/service/impl/SpecialtyServicesImpl.java new file mode 100644 index 0000000..f63ed22 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/SpecialtyServicesImpl.java @@ -0,0 +1,483 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.dao.MongoTemplates; +import com.objecteye.entity.*; +import com.objecteye.exception.CustomXException; +import com.objecteye.mapper.SyEquipmentMapper; +import com.objecteye.pojo.*; +import com.objecteye.service.SpecialtyServices; +import com.objecteye.utils.RelationMappingUtil; +import com.objecteye.utils.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Decoder; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.CountDownLatch; + +@Service +public class SpecialtyServicesImpl implements SpecialtyServices { + + private final Logger logger = LoggerFactory.getLogger(SpecialtyServicesImpl.class); + + @Value("${requestBase64}") + private String requestBase64; + @Autowired + private CompareDistance compareDistance; + @Autowired + private VehicleEngine vehicleEngine; + @Autowired + public HttpClientUtils httpClientUtils; + @Autowired + public RabbitMQVehicleTools rabbitMQVehicleTools; + @Autowired + public MongoTemplates mongoTemplates; + @Autowired + private VehicleDetailsUtils vehicleDetailsUtils; + @Autowired + private SyEquipmentMapper syEquipmentMapper; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private RelationMappingUtil relationMappingUtil; + + private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public VehicleInfoRes findByCondition(VehicleCondition vehicleCondition) { + + return null; + } + + @Override + public JSONObject findByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile, Long starttime, Long endtime, int[] customspass, Integer vehicle_special_type_number) throws InterruptedException { + //封装结果的对象 + JSONObject result = new JSONObject(); + if (picfile == null) { + result.put("code", 201); + result.put("message", "没有符合要求的数据"); + result.put("data", null); + return result; + } + + String vehicleInfoByBase64 = multiToVehicle(picfile); + JSONObject dataJson = JSONObject.parseObject(vehicleInfoByBase64).getJSONObject("result"); + List rabbitMqVehicles = rabbitMQVehicleTools.sdkToRabbitVehicle(dataJson); + + //获取到用户选中的车辆 + int size = rabbitMqVehicles.size(); + if (number < size) { + RabbitMQVehicle rabbitMqVehicle = rabbitMqVehicles.get(number); + //先过滤条件 + List vehcieListBy = mongoTemplates.getVehcieListBy(new VehicleCondition(0, 0, rabbitMqVehicle.getVehicle_plate_hphm(), + null, starttime, endtime, customspass, vehicle_special_type_number, rabbitMqVehicle.getVehicle_color_index(), + rabbitMqVehicle.getVehicle_recg_issue_year(), rabbitMqVehicle.getVehicle_recg_brand(), rabbitMqVehicle.getVehicle_recg_type(), + rabbitMqVehicle.getVehicle_recg_subbrand())); + //获取该车辆的特征信息 + double[] currentFeature = rabbitMqVehicle.getVehicle_fea_feature(); + double currentFea = compareDistance.getDistance(currentFeature); + + Vector pvc = new Vector<>(); + int arrCount = 1000; + int threadNumber = (int) Math.ceil((double) vehcieListBy.size() / arrCount); + final CountDownLatch countDownLatch = new CountDownLatch(threadNumber); + for (int i = 0; i < threadNumber; i++) { + int index = i; + new Thread(() -> { + int fromIndex = index * arrCount; + int toIndex = fromIndex + arrCount; + toIndex = Math.min(toIndex, vehcieListBy.size()); + for (RabbitMQVehicle rabbitMQVehicle : vehcieListBy.subList(fromIndex, toIndex)) { + double[] dbFeature = (double[]) redisTemplate.opsForHash().get(GlobalUtil.VEHICLE_FEATURE, rabbitMQVehicle.getId()); + if (dbFeature != null) { + //进行比对 + double dbFea = (double) redisTemplate.opsForHash().get(GlobalUtil.VEHICLE_FEATURE_DISTANCE, rabbitMQVehicle.getId()); + double similar = compareDistance.simDistance(currentFeature, currentFea, dbFeature, dbFea); + if (threshold <= similar) { + similar = (double) Math.round(similar * 100) / 100; + if (similar >= 1) { + similar = 1; + } + PicVehicleCompare picVehicleCompare = new PicVehicleCompare(); + picVehicleCompare.setSimilar(similar); + picVehicleCompare.setRabbitMQVehicle(rabbitMQVehicle); + pvc.add(picVehicleCompare); + } + } + } + countDownLatch.countDown(); + }).start(); + } + countDownLatch.await(); + + //对row进行排序 + pvc.sort((o1, o2) -> { + if (o2.getSimilar() == o1.getSimilar()) { + return 0; + } else { + double similar = o2.getSimilar(); + double similar1 = o1.getSimilar(); + return similar > similar1 ? 1 : -1; + } + }); + + //对row进行分页查询 + int startNumber = (currentpage - 1) * pagevolume; + int endNumber = startNumber + pagevolume; + endNumber = pagevolume > pvc.size() ? pvc.size() : endNumber; + List picVehicleComparesNew = pvc.subList(startNumber, endNumber); + + //获取total(总条数) + int total = pvc.size(); + //根据总条数获取总页数 + int totalPage = (int) Math.ceil(((double) total) / pagevolume); + + JSONObject data = new JSONObject(); + + //获取row数据 + JSONArray row = new JSONArray(); + for (PicVehicleCompare next : picVehicleComparesNew) { + JSONObject rowData = new JSONObject(); + //获取id + RabbitMQVehicle rabbitMqVehicle1 = next.getRabbitMQVehicle(); + rowData.put("id", rabbitMqVehicle1.getId()); + rowData.put("hphm", rabbitMqVehicle1.getVehicle_plate_hphm()); + //获取设备id,然后通过设备id查询到设备的名称 + rowData.put("site", rabbitMqVehicle1.getEquipmentName()); + rowData.put("phototime", simpleDateFormat.format(new Date(rabbitMqVehicle1.getPictime()))); + rowData.put("recordid", rabbitMqVehicle1.getRecordid()); + // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN + double similar = next.getSimilar(); + rowData.put("similar", String.format("%.3f", similar)); + //添加snapshoturl的值 + //此处将原来的全景图url体换成了快照图绝对路径 + rowData.put("picurl", rabbitMqVehicle1.getSnapshoturl()); + + row.add(rowData); + } + + data.put("total", totalPage); + data.put("row", row); + if (total > 0 && row.size() > 0) { + result.put("code", 200); + result.put("message", "操作成功"); + result.put("data", data); + } else { + result.put("code", 201); + result.put("message", "没有符合要求的数据"); + data.put("total", total); + data.put("row", row); + result.put("data", data); + } + + return result; + } + + result.put("code", 201); + result.put("message", "没有符合要求的数据"); + result.put("data", null); + return result; + } + + @Override + public VehicleInfoRes chemistryFindByCondition(VehicleCondition vehicleCondition) { + + return null; + } + + @Override + public VehicleInfoRes chemistryFindByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile, String starttime, String endtime, int[] customspass) { + + return null; + } + + //通过转Base64的方式运行 + @Override + public JSONObject findCoordinateByPic(MultipartFile picfile, Integer vehicleSpecialTypeNumber) { + JSONObject jsonObject = new JSONObject(); + try { + String base64 = httpClientUtils.MultipartFileToBase64(picfile); + + BufferedImage bufferedImage = changeBase64StringtoImage(base64); + int width = bufferedImage.getWidth(); + int height = bufferedImage.getHeight(); + JSONObject tpkg = new JSONObject(); + tpkg.put("width", width); + tpkg.put("height", height); + + //获取车辆信息 + String vehicleInfoByBase64 = multiToVehicle(picfile); + JSONArray clxx = null; + if (vehicleInfoByBase64 != null) { + + JSONObject dataJson = JSONObject.parseObject(vehicleInfoByBase64).getJSONObject("result"); + + List rabbitMQVehicles = rabbitMQVehicleTools.sdkToRabbitVehicle(dataJson); + + int size = rabbitMQVehicles.size(); + clxx = new JSONArray(); + for (int i = 0; i < size; i++) { + RabbitMQVehicle rabbitMQVehicle = rabbitMQVehicles.get(i); + int vehicleSpecialType = rabbitMQVehicle.getVehicle_special_type(); + if (vehicleSpecialTypeNumber == -1 || vehicleSpecialType == vehicleSpecialTypeNumber) { + int[] vehicleDetectSyrectparam = rabbitMQVehicle.getVehicle_detect_syRectParam(); + JSONObject clxxOne = new JSONObject(); + clxxOne.put("gcxh", i); + clxxOne.put("height", vehicleDetectSyrectparam[0]); + clxxOne.put("left", vehicleDetectSyrectparam[1]); + clxxOne.put("top", vehicleDetectSyrectparam[2]); + clxxOne.put("width", vehicleDetectSyrectparam[3]); + clxx.add(clxxOne); + } + } + } + JSONObject data = new JSONObject(); + data.put("tpkg", tpkg); + data.put("clxx", clxx); + if (clxx != null && clxx.size() > 0) { + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + jsonObject.put("data", data); + } else { + jsonObject.put("code", 201); + String message = null; + if (vehicleSpecialTypeNumber == 1) { + message = "图片中没有检索到危化品车"; + } else if (vehicleSpecialTypeNumber == 2) { + message = "图片中没有检索到渣土车"; + } else if (vehicleSpecialTypeNumber == 0) { + message = "图片中没有检索到货车"; + } else { + message = "图片中没有检索到通用车辆"; + } + jsonObject.put("message", message); + jsonObject.put("data", data); + } + + + } catch (Exception e) { + jsonObject.put("code", 202); + jsonObject.put("message", "查询失败"); + jsonObject.put("data", ""); + e.printStackTrace(); + } + return jsonObject; + + } + + /** + * 通过车辆id查询车辆信息 + * + * @param id + * @return + */ + @Override + public JSONObject findById(String id) { + JSONObject jsonObject = new JSONObject(); + try { + RabbitMQVehicle rabbitMQVehicle = mongoTemplates.findById(RabbitMQVehicle.class, id); + //将RabbitMQVehicle识别为可读信息 + RabbitMQInfo rabbitMQInfo = rabbitMQVehicleTools.rabbitMQToRabbitInfo(rabbitMQVehicle); + + //=============== + if (rabbitMQVehicle != null) { + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + jsonObject.put("data", rabbitMQInfo); + } else { + jsonObject.put("code", 201); + jsonObject.put("message", "没有符合要求的数据"); + jsonObject.put("data", rabbitMQInfo); + } + } catch (Exception e) { + jsonObject.put("code", 202); + jsonObject.put("message", "请检查数据准确性"); + jsonObject.put("data", ""); + e.printStackTrace(); + } + return jsonObject; + } + + + //将multipart文件转成车型 + public String multiToVehicle(MultipartFile picfile) { + String vehicleInfoByBase64 = null; + try { + String base64 = httpClientUtils.MultipartFileToBase64(picfile); + + vehicleInfoByBase64 = vehicleEngine.getVehicleInfoByBase64(base64); + } catch (Exception e) { + e.printStackTrace(); + } + return vehicleInfoByBase64; + + } + + /** + * @param base64String base64码字符串 + **/ + public BufferedImage changeBase64StringtoImage(String base64String) { + BASE64Decoder decoder = new BASE64Decoder(); + BufferedImage buffer = null; + try { + byte[] bytes = decoder.decodeBuffer(base64String); + ByteArrayInputStream bais = new ByteArrayInputStream(bytes); + buffer = ImageIO.read(bais); + } catch (IOException e) { + e.printStackTrace(); + } + return buffer; + } + + + /** + * 通过过车序号查询车辆的信息 + * + * @param gcxh + * @param picfile + * @return + */ + @Override + public JSONObject findByGcxh1(int gcxh, MultipartFile picfile) { + JSONObject jsonObject = new JSONObject(); + try { + //获取到车型图片的base64值 + String base64 = httpClientUtils.MultipartFileToBase64(picfile); + + //通过base64结合sdk算法获取到车型的数字化信息 + String vehicleInfoByBase64 = vehicleEngine.getVehicleInfoByBase64(base64); + JSONObject vehicleSDKJsonData = JSONObject.parseObject(vehicleInfoByBase64); + //将base64封装为ArrayList + ArrayList vehicleDetailsList = vehicleDetailsUtils.base64ToVehicleDetailsArr(vehicleSDKJsonData); + if (vehicleDetailsList != null && vehicleDetailsList.size() > 0) { + VehicleDetails vehicleDetails = vehicleDetailsList.get(gcxh); + vehicleDetails.setVehicle_fea_res_feature(null); + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + jsonObject.put("data", vehicleDetails); + } else { + jsonObject.put("code", 201); + jsonObject.put("message", "空值"); + jsonObject.put("data", null); + } + + + } catch (Exception e) { + jsonObject.put("code", 202); + jsonObject.put("message", "数据不符合正规的json格式或者异常"); + jsonObject.put("data", null); + e.printStackTrace(); + } + return jsonObject; + } + + @Override + public Map getColorAndBrand(Map map) { + String image = map.get("image").toString(); + Object request_id = map.get("request_id"); + if (!GlobalUtil.checkBase64(image)) { + + throw new CustomXException(CustomInfoCollections.IMAGE_PARSE_EXCEPTION.getMsg(), CustomInfoCollections.IMAGE_PARSE_EXCEPTION.getCode()); + } + + String vehicleInfoByBase64 = vehicleEngine.getVehicleInfoByBase64(image); + ResponseParam responseParam = JSON.parseObject(vehicleInfoByBase64, ResponseParam.class); + String s1 = JSON.toJSONString(responseParam.getResult()); + VehicleAnalysisResultParam vehicleAnalysisResultParam = JSON.parseObject(s1, VehicleAnalysisResultParam.class); + + VehicleInfoParam[] info = vehicleAnalysisResultParam.getInfo(); + HashMap stringObjectHashMap = new HashMap<>(16); + if (info == null) { + throw new CustomXException(CustomInfoCollections.DETECT_NOT_FOUND.getMsg(), CustomInfoCollections.DETECT_NOT_FOUND.getCode()); + } + for (VehicleInfoParam vehicleInfoParam : info) { + ResultMsg resultMsg = new ResultMsg(); + + VehicleColorResultParam vehicle_color_res = vehicleInfoParam.getVehicle_color_res(); + int index = vehicle_color_res.getIndex(); + float score = vehicle_color_res.getScore(); + if (score >= 0.7) { + String vehicleColor = relationMappingUtil.getVehicleColor(index); + resultMsg.setVehicle_color(vehicleColor); + } else { + resultMsg.setVehicle_color("检测失败"); + } + StringBuffer sb = new StringBuffer(); + VehicleRecognizeResultParam vehicle_recg_res = vehicleInfoParam.getVehicle_recg_res(); + float name_score = vehicle_recg_res.getName_score(); + if (name_score < 0.7) { + resultMsg.setVehicle_brand("检测失败"); + } + String vehicle_recg_brand = vehicle_recg_res.getVehicle_brand(); + + sb.append(vehicle_recg_brand); + String vehicle_recg_subbrand = vehicle_recg_res.getVehicle_subbrand(); + if (vehicle_recg_subbrand != null) { + sb.append("-").append(vehicle_recg_subbrand); + } + String vehicle_recg_issue_year = vehicle_recg_res.getVehicle_issue_year(); + if (vehicle_recg_issue_year != null) { + sb.append("-").append(vehicle_recg_issue_year); + } + resultMsg.setVehicle_brand(sb.toString()); + + stringObjectHashMap.put("message", CustomInfoCollections.SUCCESS.getMsg()); + stringObjectHashMap.put("rtn", CustomInfoCollections.SUCCESS.getCode()); + stringObjectHashMap.put("request_id", request_id); + stringObjectHashMap.put("data", resultMsg); + } + return stringObjectHashMap; + } + + /** + * 通过过车序号查询车辆的信息 + * + * @param gcxh + * @param picfile + * @return + */ + @Override + public JSONObject findByGcxh(int gcxh, MultipartFile picfile) { + JSONObject jsonObject = new JSONObject(); + String vehicleInfoByBase64 = null; + try { + //获取车辆信息 + vehicleInfoByBase64 = multiToVehicle(picfile); + if (vehicleInfoByBase64 != null) { + RabbitMQInfo rabbitMQInfo = null; + JSONObject dataJson = JSONObject.parseObject(vehicleInfoByBase64).getJSONObject("result"); + int count = dataJson.containsKey("count") ? dataJson.getInteger("count") : 0; + if (count > 0) { + //将dataJson转成RabbitMQVehicle + RabbitMQVehicle rabbitMQVehicle = rabbitMQVehicleTools.sdkToOnlyVehicle(dataJson.getJSONArray("info").getJSONObject(gcxh)); + //将RabbitMQVehicle识别为可读信息 + rabbitMQInfo = rabbitMQVehicleTools.rabbitMQToRabbitInfo(rabbitMQVehicle); + } + + jsonObject.put("code", 200); + jsonObject.put("message", "success"); + jsonObject.put("data", rabbitMQInfo); + } + } catch (Exception e) { + jsonObject.put("code", 201); + jsonObject.put("message", "没有查询到相关车辆数据"); + jsonObject.put("data", ""); + e.printStackTrace(); + } + + return jsonObject; + } +} diff --git b/src/main/java/com/objecteye/service/impl/UserDetailServiceImpl.java a/src/main/java/com/objecteye/service/impl/UserDetailServiceImpl.java new file mode 100644 index 0000000..dc6b29c --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/UserDetailServiceImpl.java @@ -0,0 +1,47 @@ +package com.objecteye.service.impl; + +import com.objecteye.pojo.TokenUser; +import com.objecteye.pojo.UserDetailsMsg; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class UserDetailServiceImpl implements UserDetailsService { + + private final PasswordEncoder passwordEncoder; + + @Autowired + public UserDetailServiceImpl(PasswordEncoder passwordEncoder) { + this.passwordEncoder = passwordEncoder; + } + + @Autowired + private MongoTemplate mongoTemplate; + + @Override + public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { + List userDetailsMsgs = mongoTemplate.find(Query.query(Criteria.where("userName").is(s)), UserDetailsMsg.class); + + // admin + UserDetailsMsg superAdminUser = new UserDetailsMsg(); + superAdminUser.setUsername("superAdmin"); + superAdminUser.setPassword("123456"); + superAdminUser.setUserRole("1"); + userDetailsMsgs.add(superAdminUser); + if (userDetailsMsgs.size() > 0) { + UserDetailsMsg userDetailsMsg = userDetailsMsgs.get(0); + return new TokenUser(userDetailsMsg.getUsername(), passwordEncoder.encode(userDetailsMsg.getPassword())); + } + + return null; + } +} diff --git b/src/main/java/com/objecteye/service/impl/UserGroupServiceImpl.java a/src/main/java/com/objecteye/service/impl/UserGroupServiceImpl.java new file mode 100644 index 0000000..707a5a0 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/UserGroupServiceImpl.java @@ -0,0 +1,145 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; +import com.objecteye.pojo.UserDetailsMsg; +import com.objecteye.pojo.UserGroup; +import com.objecteye.service.IUserGroupService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@Component +public class UserGroupServiceImpl implements IUserGroupService { + + @Autowired + private MongoTemplate mongoTemplate; + + /** + * 分页查询 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public PageResult findByPage(Map requestMap) { + Integer pagevolume = (Integer) requestMap.get("pagevolume"); + Integer currentpage = (Integer) requestMap.get("currentpage"); + List userGroups = mongoTemplate.find(Query.query(new Criteria()) + .limit(pagevolume).skip((currentpage - 1) * pagevolume), UserGroup.class); + long total = mongoTemplate.count(new Query(), UserGroup.class); + total = (long) Math.ceil((double) total / pagevolume); + return new PageResult<>(total, userGroups); + } + + /** + * 检查用户组是否存在 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject checkGroup(Map requestMap) { + String groupName = (String) requestMap.get("groupName"); + long count = mongoTemplate.count(Query.query(Criteria.where("groupName").is(groupName)), UserGroup.class); + JSONObject resultObj = new JSONObject(); + if (count > 0) { + resultObj.put("count", count); + } + return resultObj; + } + + /** + * 添加用户组 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject addGroup(Map requestMap) { + UserGroup userGroup = JSON.parseObject(JSON.toJSONString(requestMap), UserGroup.class); + UserGroup lastMaxCodeGroup = mongoTemplate.findOne(new Query().with(Sort.by(Sort.Order.desc("groupCode"))), UserGroup.class); + if (lastMaxCodeGroup == null) { + userGroup.setGroupCode("001"); + userGroup.setParentCode("-1"); + } else { + String lastMaxCode = lastMaxCodeGroup.getGroupCode(); + userGroup.setGroupCode(newMaxCode(lastMaxCode, 3)); + } + userGroup = mongoTemplate.insert(userGroup); + JSONObject resultObj = new JSONObject(); + if (userGroup.getId() != null) { + resultObj.put("id", userGroup.getId()); + } else { + resultObj.put("error", "创建失败"); + } + + return resultObj; + } + + /** + * 获取下一个同层级最大code + * + * @param lastMaxCode 历史最大code + * @param length 单个层级位数(e.g. 001是3位, 0001是4位) + * @return 下一个同层级最大code + */ + private String newMaxCode(String lastMaxCode, int length) { + String prefix = ""; + String mainCode; + if (lastMaxCode.length() > length) { + prefix = lastMaxCode.substring(0, lastMaxCode.length() - length); + mainCode = lastMaxCode.substring(lastMaxCode.length() - length); + } else { + mainCode = lastMaxCode; + } + mainCode = String.format("%0" + length + "d", Integer.parseInt(mainCode) + 1); + return prefix + mainCode; + } + + /** + * 更新用户组 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject updateGroup(Map requestMap) { + UserGroup userGroup = JSON.parseObject(JSON.toJSONString(requestMap), UserGroup.class); + UserGroup oldUserGroup = mongoTemplate.findOne(Query.query(Criteria.where("id").is(userGroup.getId())), UserGroup.class); + JSONObject resultObj = new JSONObject(); + if (oldUserGroup == null) { + resultObj.put("error", "数据不存在"); + return resultObj; + } + if (userGroup.getParentCode().equals(oldUserGroup.getParentCode())) { + oldUserGroup.setGroupLevel(userGroup.getGroupLevel()); + oldUserGroup.setGroupName(userGroup.getGroupName()); + mongoTemplate.save(oldUserGroup, "userGroup"); + } + + return resultObj; + } + + /** + * 删除用户组 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject deleteGroup(Map requestMap) { + String groupId = (String) requestMap.get("groupId"); + mongoTemplate.updateMulti(Query.query(Criteria.where("group").is(groupId)), Update.update("group", null), UserDetailsMsg.class); + mongoTemplate.remove(Query.query(Criteria.where("id").is(groupId)), UserGroup.class); + return new JSONObject(); + } +} diff --git b/src/main/java/com/objecteye/service/impl/UserServicesImpl.java a/src/main/java/com/objecteye/service/impl/UserServicesImpl.java new file mode 100644 index 0000000..f801cec --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/UserServicesImpl.java @@ -0,0 +1,114 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.PageResult; +import com.objecteye.mapper.SyUserMapper; +import com.objecteye.pojo.UserDetailsMsg; +import com.objecteye.service.UserServices; +import com.objecteye.utils.UserTools; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +public class UserServicesImpl implements UserServices { + + @Autowired + public SyUserMapper syUserMapper; + @Autowired + private MongoTemplate mongoTemplate; + + /** + * 检查用户是否已经存在 + * + * @param requestMap 请求参数 + * @return 结果集 + */ + @Override + public JSONObject checkUser(Map requestMap) { + JSONObject resultObj = new JSONObject(); + if (!requestMap.containsKey("username")) { + resultObj.put("error", "需要用户名"); + return resultObj; + } + String username = (String) requestMap.get("username"); + long count = mongoTemplate.count(Query.query(Criteria.where("username").is(username)), UserDetailsMsg.class); + if (count > 0) { + resultObj.put("error", "用户名已经存在"); + } + return resultObj; + } + + @Override + public JSONObject addUser(Map requestMap) { + JSONObject jsonObject = new JSONObject(); + UserDetailsMsg userDetailsMsg = JSON.parseObject(JSON.toJSONString(requestMap), UserDetailsMsg.class); + userDetailsMsg.setCreateDate(UserTools.nowToDate()); + userDetailsMsg = mongoTemplate.insert(userDetailsMsg); + if (userDetailsMsg.getId() == null) { + jsonObject.put("error", "插入数据失败"); + } + return jsonObject; + } + + @Override + public PageResult userPage(Map requestMap) { + int currentpage = (int) requestMap.get("currentpage"); + int pagevolume = (int) requestMap.get("pagevolume"); + List userDetailsMsgs = mongoTemplate.find(new Query().skip((currentpage - 1) * pagevolume).limit(pagevolume), UserDetailsMsg.class); + long totalNum = mongoTemplate.count(new Query(), UserDetailsMsg.class); + ArrayList js = new ArrayList<>(); + for (UserDetailsMsg userDetailsMsg : userDetailsMsgs) { + JSONObject syUserJson = new JSONObject(); + syUserJson.put("id", userDetailsMsg.getId()); + syUserJson.put("username", userDetailsMsg.getUsername()); + syUserJson.put("password", userDetailsMsg.getPassword()); + syUserJson.put("userrole", userDetailsMsg.getUserRole()); + syUserJson.put("createdate", userDetailsMsg.getCreateDate()); + js.add(syUserJson); + } + return new PageResult<>((int) Math.ceil(totalNum / (double) pagevolume), js); + } + + @Override + public JSONObject updateUser(Map requestMap) { + JSONObject resultObj = new JSONObject(); + UserDetailsMsg userDetailsMsg = JSON.parseObject(JSON.toJSONString(requestMap), UserDetailsMsg.class); + userDetailsMsg = mongoTemplate.save(userDetailsMsg); + if (userDetailsMsg.getId() == null) { + resultObj.put("error", "操作失败"); + } + return resultObj; + } + + @Override + public JSONObject deleteUser(Map requestMap) { + Integer id = (Integer) requestMap.get("id"); + mongoTemplate.remove(Query.query(Criteria.where("id").is(id)), UserDetailsMsg.class); + return new JSONObject(); + } + + @Override + public JSONObject findUserById(Map requestMap) { + Integer id = (Integer) requestMap.get("id"); + JSONObject jsonObject = new JSONObject(); + UserDetailsMsg userDetailsMsg = mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), UserDetailsMsg.class); + if (userDetailsMsg != null) { + jsonObject.put("id", userDetailsMsg.getId()); + jsonObject.put("username", userDetailsMsg.getUsername()); + jsonObject.put("password", userDetailsMsg.getPassword()); + jsonObject.put("userrole", userDetailsMsg.getUserRole()); + jsonObject.put("createdate", userDetailsMsg.getCreateDate()); + } else { + jsonObject.put("error", "数据库中不存在该用户数据"); + } + return jsonObject; + } +} diff --git b/src/main/java/com/objecteye/service/impl/VehicleCurrencyServiceImpl.java a/src/main/java/com/objecteye/service/impl/VehicleCurrencyServiceImpl.java new file mode 100644 index 0000000..82ec584 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/VehicleCurrencyServiceImpl.java @@ -0,0 +1,522 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.objecteye.common.CommonResult; +import com.objecteye.dao.MongoTemplates; +import com.objecteye.mapper.SyVehicleModelMapper; +import com.objecteye.pojo.*; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.VehicleCurrencyService; +import com.objecteye.utils.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.CountDownLatch; + +@Service +public class VehicleCurrencyServiceImpl implements VehicleCurrencyService { + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private SyVehicleModelMapper syVehicleModelMapper; + @Autowired + private AreaEquipmentService areaEquipmentService; + @Autowired + public MongoTemplates mongoTemplates; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + public HttpClientUtils httpClientUtils; + @Autowired + public VehicleDetailsUtils vehicleDetailsUtils; + @Autowired + public RabbitMQVehicleTools rabbitMQVehicleTools; + @Autowired + private CompareDistance compareDistance; + private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + /** + * 多条件查询 + * + * @param vehicleCurrencyReques + * @return + */ + @Override + public JSONObject findByCondition(VehicleCurrencyReques vehicleCurrencyReques) { + + JSONObject data = new JSONObject(); + int totalPage = 0; + List vehicleCurrencyResultList = null; + try { + Query query = new Query(); + //必须条件 + Criteria c = new Criteria(); + + int currentpage = vehicleCurrencyReques.getCurrentpage(); + int pagevolume = vehicleCurrencyReques.getPagevolume(); + String hphm = vehicleCurrencyReques.getHphm(); + Long starttime = vehicleCurrencyReques.getStartTime(); + Long endtime = vehicleCurrencyReques.getEndTime(); + int[] condition = vehicleCurrencyReques.getCondition(); + int[] customspass = vehicleCurrencyReques.getCustomspass(); + String cllx = vehicleCurrencyReques.getCllx(); + Integer csys = vehicleCurrencyReques.getCsys(); + String brand = vehicleCurrencyReques.getBrand(); + String subbrand = vehicleCurrencyReques.getSubbrand(); + String birthday = vehicleCurrencyReques.getBirthday(); + Integer njbgs = vehicleCurrencyReques.getNjbgs(); + Integer hplx = vehicleCurrencyReques.getHplx(); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + //模糊号牌检索 + if (hphm != null && hphm.length() > 0) { + c.and("vehicle_plate_hphm").regex(".*" + hphm + ".*"); + } + + //时间段范围内 + if (starttime != 0L && endtime != 0L) { + c.and("pictime").gte(starttime).lte(endtime); + } + + //车辆类型检索 + if (cllx != null && cllx.length() > 0) { + c.and("vehicle_recg_type").is(cllx); + } + + //车身颜色检索 + if (csys != null) { + c.and("vehicle_color_index").is(csys); + } + + //车辆型号检索 + if (brand != null && brand.length() > 0) { + //车辆品牌 + c.and("vehicle_recg_brand").is(brand); + } + if (subbrand != null && subbrand.length() > 0) { + //车辆品牌 + c.and("vehicle_recg_subbrand").is(subbrand); + } + if (birthday != null && birthday.length() > 0) { + //车辆出场日期 + c.and("vehicle_recg_issue_year").is(birthday); + } + + //年检标个数检索 + if (njbgs != null) { + //获取年检标个数 + c.and("vehicle_pendant_detect_njbnumber").is(njbgs); + } + + + //号牌类型检索 + if (hplx != null) { + c.and("vehicleplatetype").is(hplx); + } + + /*无号牌(nullhphm):1 污损号牌(stained):2 主驾驶安全带(driverbelt):3 副驾驶安全带(copilotbelt):4 + 主驾驶打电话(drivercall):5 主驾驶吸烟(driversmoke):6 是否苫盖(cover):7 有挂摆件(pendant): 8 有遮阳板(sunlouver): 9*/ + //条件查询 + if (condition != null && condition.length > 0) { + for (int i : condition) { + switch (i) { + case 1: + //无号牌 + c.and("vehicle_plate_numScore").is(0); + break; + case 2: + //污损号牌(stained) + //当识别度为负数时认为是污损号牌 + c.and("vehicleplatedetectscore").is(-2); + //因目前sdk不支持污损号牌检测,所以此处略 + break; + case 3: + //主驾驶未系安全带(driverbelt): + c.and("vehicle_illegal_driver_person_status").is(1004); + c.and("vehicle_illegal_driver_belt_status").is(1000); + break; + case 4: + //副驾驶未系安全带(copilotbelt):4 + c.and("vehicle_illegal_copilot_person_status").is(1004); + c.and("vehicle_illegal_copilot_belt_status").is(1000); + break; + case 5: + //主驾驶打电话(drivercall): + c.and("vehicle_illegal_driver_person_status").is(1004); + c.and("vehicle_illegal_driver_phone_status").is(1000); + break; + case 6: + //主驾驶吸烟(driversmoke): + c.and("vehicle_illegal_driver_person_status").is(1004); + c.and("vehicle_illegal_driver_smoke_status").is(1000); + break; + case 7: + //是否苫盖(cover): + //因目前sdk不支持苫盖,所以此处略 + break; + case 8: + //有挂摆件(pendant): + c.and("vehicle_pendant_detect_gjexis").is(1); + break; + case 9: + // 有遮阳板(sunlouver): + c.and("vehicle_pendant_detect_zybexis").is(1); + break; + default: + break; + } + } + } + + //卡口范围 + if (customspass != null && customspass.length > 0) { + Set alleqids = new HashSet<>(); + for (int value : customspass) { + List epids = areaEquipmentService.findCaptureById(value); + alleqids.addAll(epids); + } + //获取当前设备id + c.and("deviceid").in(alleqids); + } + + query.addCriteria(c); + long totalNumber = mongoTemplate.count(query, VehicleCurrencyResult.class, "rabbitMQVehicle"); + + //按时间进行排序 + query.with(Sort.by(Sort.Order.desc("pictime"))); + +// 分页 + query.skip((currentpage - 1) * pagevolume).limit(pagevolume); + + vehicleCurrencyResultList = mongoTemplate.find(query, VehicleCurrencyResult.class, "rabbitMQVehicle"); + //遍历list,转换时间 + for (VehicleCurrencyResult vehicleCurrencyResult : vehicleCurrencyResultList) { + vehicleCurrencyResult.setPhototime(sdf.format(Long.parseLong(vehicleCurrencyResult.getPhototime()))); + //改变原有的全景图为现在的快照图 此处返回快照图的绝对路径 + vehicleCurrencyResult.setPicurl(vehicleCurrencyResult.getSnapshoturl()); + /*//获取抓拍图的base64 + int[] vehicle_detect_syRectParam = vehicleCurrencyResult.getVehicle_detect_syRectParam(); + String snapshotBase64 = vehicleDetailsUtils.picToSnapshot(vehicleCurrencyResult.getPicurl(), vehicle_detect_syRectParam[1], vehicle_detect_syRectParam[2], vehicle_detect_syRectParam[3], vehicle_detect_syRectParam[0]); + //将抓拍图的base64放入到返回结果中 + vehicleCurrencyResult.setSnapshot(snapshotBase64);*/ //此处是返回快照图的base64 + } + //根据总条数获取到总页数 + totalPage = (int) Math.ceil(((double) totalNumber) / pagevolume); + + data.put("total", totalPage); + data.put("row", vehicleCurrencyResultList); + } catch (Exception e) { + data.put("total", totalPage); + data.put("row", vehicleCurrencyResultList); + e.printStackTrace(); + } + return data; + } + + @Override + public CommonResult findVehicleByPic(int number, double threshold, int currentpage, int pagevolume, MultipartFile picfile, Long starttime, Long endtime, int[] customspass) throws InterruptedException { + //封装结果的对象 + if (picfile == null) { + return CommonResult.success(201, "图片为空", null); + } + + String vehicleInfoByBase64 = httpClientUtils.multiToVehicle(picfile); + JSONObject dataJson = JSONObject.parseObject(vehicleInfoByBase64).getJSONObject("result"); + + List rabbitMQVehicles = rabbitMQVehicleTools.sdkToRabbitVehicle(dataJson); + + //获取到用户选中的车辆 + int size = rabbitMQVehicles.size(); + if (number < size) { + RabbitMQVehicle rabbitMqVehicle = rabbitMQVehicles.get(number); + + List vehcieListBy = mongoTemplates.getVehcieListBy(new VehicleCondition(0, 0, rabbitMqVehicle.getVehicle_plate_hphm(), + null, starttime, endtime, customspass, null, rabbitMqVehicle.getVehicle_color_index(), rabbitMqVehicle.getVehicle_recg_issue_year(), + rabbitMqVehicle.getVehicle_recg_brand(), rabbitMqVehicle.getVehicle_recg_type(), rabbitMqVehicle.getVehicle_recg_subbrand())); + + //获取该车辆的特征信息 + double[] currentFeature = rabbitMqVehicle.getVehicle_fea_feature(); + double currentFea = compareDistance.getDistance(currentFeature); + + Vector pvc = new Vector<>(); + int arrCount = 1000; + int threadNumber = (int) Math.ceil((double) vehcieListBy.size() / arrCount); + final CountDownLatch countDownLatch = new CountDownLatch(threadNumber); + for (int i = 0; i < threadNumber; i++) { + int index = i; + new Thread(() -> { + int fromIndex = index * arrCount; + int toIndex = fromIndex + arrCount; + toIndex = Math.min(toIndex, vehcieListBy.size()); + for (RabbitMQVehicle rmqv : vehcieListBy.subList(fromIndex, toIndex)) { + double[] dbFeature = (double[]) redisTemplate.opsForHash().get(GlobalUtil.VEHICLE_FEATURE, rmqv.getId()); + if (dbFeature != null) { + //进行比对 + double dbFea = (double) redisTemplate.opsForHash().get(GlobalUtil.VEHICLE_FEATURE_DISTANCE, rmqv.getId()); + double similar = compareDistance.simDistance(currentFeature, currentFea, dbFeature, dbFea); + if (threshold <= similar) { + if (similar > 1) { + similar = 1.00; + } + PicVehicleCompare picVehicleCompare = new PicVehicleCompare(); + picVehicleCompare.setSimilar(similar); + picVehicleCompare.setRabbitMQVehicle(rmqv); + pvc.add(picVehicleCompare); + } + } + } + countDownLatch.countDown(); + }).start(); + } + countDownLatch.await(); + + //对row进行排序 + pvc.sort((o1, o2) -> { + if (o2.getSimilar() == o1.getSimilar()) { + return 0; + } else { + double similar = o2.getSimilar(); + double similar1 = o1.getSimilar(); + return similar > similar1 ? 1 : -1; + } + }); + + //对row进行分页查询 + ArrayList picVehicleComparesNew = new ArrayList<>(); + int startNumber = (currentpage - 1) * pagevolume; + int endNumber = startNumber + pagevolume; + endNumber = pagevolume > (pvc.size() - startNumber) ? pvc.size() : endNumber; + for (int m = startNumber; m < endNumber; m++) { + PicVehicleCompare picVehicleCompare = pvc.get(m); + picVehicleComparesNew.add(picVehicleCompare); + } + + //获取total(总条数) + int total = pvc.size(); + //根据总条数获取总页数 + int totalPage = (int) Math.ceil(((double) total) / pagevolume); + + ArrayList picVehicleRows = new ArrayList<>(); + for (PicVehicleCompare next : picVehicleComparesNew) { + //获取id + RabbitMQVehicle rabbitMqVehicle1 = next.getRabbitMQVehicle(); + // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN + double similar = next.getSimilar(); + String picurl = rabbitMqVehicle1.getPicurl(); + + //获取到快照路径 + String snapshoturl = rabbitMqVehicle1.getSnapshoturl(); + + String bg = String.format("%.3f", similar); + + //因为需要将快照图的值给picurl所以需要下面的返回方式 + PicVehicleRow picVehicleRow = new PicVehicleRow(rabbitMqVehicle1.getId(), rabbitMqVehicle1.getRecordid(), rabbitMqVehicle1.getVehicle_plate_hphm(), + snapshoturl, picurl, bg, rabbitMqVehicle1.getEquipmentName(), + simpleDateFormat.format(new Date(rabbitMqVehicle1.getPictime()))); + + picVehicleRows.add(picVehicleRow); + } + + PicVehicleDataResult picVehicleDataResult = new PicVehicleDataResult(totalPage, picVehicleRows); + + if (picVehicleDataResult.getRow().size() <= 0) { + return CommonResult.success(201, "没有查询到任何数据", null); + } else { + return CommonResult.success(picVehicleDataResult); + } + } + return CommonResult.success(202, "没有符合要求的数据", null); + } + + + /** + * 查询所有的车辆型号首字母 + * + * @return + */ + @Override + public CommonResult> selectDisplayForInitials() { + CommonResult> commonResult = null; + try { + List initialsArr = syVehicleModelMapper.selectDisplayForInitials(); + + commonResult = returnCommonResult(initialsArr); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + + return commonResult; + } + + /** + * 根据车辆首字母查询所有的车辆品牌 + * + * @param initials + * @return + */ + @Override + public CommonResult> selectDisplayForBrand(String initials) { + CommonResult> commonResult = null; + try { + List brandArr = syVehicleModelMapper.selectDisplayForBrand(initials); + commonResult = returnCommonResult(brandArr); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + return commonResult; + } + + /** + * 根据车辆车辆品牌查询所有的车辆子品牌 + * + * @param brand + * @return + */ + @Override + public CommonResult> selectDisplayForSubbrand(String brand) { + + CommonResult> commonResult = null; + try { + List subbrandArr = syVehicleModelMapper.selectDisplayForSubbrand(brand); + commonResult = returnCommonResult(subbrandArr); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + return commonResult; + } + + /** + * 根据车辆子品牌查询所有的车辆年限 + * + * @param subbrand + * @return + */ + @Override + public CommonResult> selectDisplayForBirthday(String subbrand) { + CommonResult> commonResult = null; + try { + List birthdayArr = syVehicleModelMapper.selectDisplayForBirthday(subbrand); + commonResult = returnCommonResult(birthdayArr); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + return commonResult; + } + + /** + * 返回所有车辆类型列表 + * + * @return + */ + @Override + public CommonResult> displayVehicleTypeList() { + CommonResult> commonResult = null; + try { + List displayVehicleTypeList = syVehicleModelMapper.displayVehicleTypeList(); + + commonResult = returnCommonResult(displayVehicleTypeList); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + + return commonResult; + } + + /** + * 返回所有车辆车身颜色列表 + * + * @return + */ + @Override + public CommonResult> displayVehicleColorList() { + CommonResult> commonResult = null; + try { + List displayVehicleColorList = syVehicleModelMapper.displayVehicleColorList(); + + commonResult = returnCommonResult1(displayVehicleColorList); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + + return commonResult; + } + + + /** + * 返回所有车辆号牌类型列表 + * + * @return + */ + @Override + public CommonResult> displayVehiclePlateTypeList() { + CommonResult> commonResult = null; + try { + List displayVehiclePlateTypeList = syVehicleModelMapper.displayVehiclePlateTypeList(); + + commonResult = returnCommonResult1(displayVehiclePlateTypeList); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + + return commonResult; + } + + /** + * 返回所有车辆年检标个数列表 + * + * @return + */ + @Override + public CommonResult> displayVehicleNjbNumberList() { + CommonResult> commonResult = null; + try { + List displayVehicleNjbNumberList = syVehicleModelMapper.displayVehicleNjbNumberList(); + + commonResult = returnCommonResult(displayVehicleNjbNumberList); + } catch (Exception e) { + commonResult = CommonResult.success(null, "数据查询失败"); + e.printStackTrace(); + } + + return commonResult; + } + + + public CommonResult> returnCommonResult(List list) { + CommonResult> commonResult; + if (list.size() <= 0) { + commonResult = CommonResult.success(201, "没有查询到任何数据", null); + } else { + commonResult = CommonResult.success(list); + } + return commonResult; + } + + public CommonResult> returnCommonResult1(List list) { + CommonResult> commonResult; + if (list.size() <= 0) { + commonResult = CommonResult.success(201, "没有查询到任何数据", null); + } else { + commonResult = CommonResult.success(list); + } + return commonResult; + } + + +} diff --git b/src/main/java/com/objecteye/service/impl/VehicleDbServiceImpl.java a/src/main/java/com/objecteye/service/impl/VehicleDbServiceImpl.java new file mode 100644 index 0000000..e93d789 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/VehicleDbServiceImpl.java @@ -0,0 +1,195 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import com.objecteye.entity.PageResult; +import com.objecteye.entity.SyVehicleDb; +import com.objecteye.entity.SyVehicleDbExample; +import com.objecteye.entity.UploadVehicleDbResult; +import com.objecteye.mapper.SyVehicleDbMapper; +import com.objecteye.service.DeployService; +import com.objecteye.service.VehicleDbService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 服务实现层 + * + * @author Administrator + */ +@Service +public class VehicleDbServiceImpl implements VehicleDbService { + + @Autowired + private SyVehicleDbMapper vehicleDbMapper; + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private DeployService deployService; + + /** + * 查询全部 + */ + @Override + public List findAll() { + SyVehicleDbExample example = new SyVehicleDbExample(); + SyVehicleDbExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + + return vehicleDbMapper.selectByExample(example); + } + + /** + * 按分页查询 + */ + @Override + public PageResult findPage(int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + SyVehicleDbExample example = new SyVehicleDbExample(); + SyVehicleDbExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + + Page page = (Page) vehicleDbMapper.selectByExample(example); + return new PageResult(page.getPages(), page.getResult()); + } + + /** + * 增加 + */ + @Override + public Integer add(SyVehicleDb vehicleDb) { + String strDate = DateUtil.now(); + vehicleDb.setCount(0); + vehicleDb.setCreateDate(strDate); + vehicleDb.setUpdateDate(strDate); + vehicleDb.setIsDelete(0); + + return vehicleDbMapper.insert(vehicleDb); + } + + + /** + * 修改 + */ + @Override + public Integer update(SyVehicleDb vehicleDb) { + String now = DateUtil.now(); + vehicleDb.setUpdateDate(now); + + return vehicleDbMapper.updateByPrimaryKeySelective(vehicleDb); + } + + /** + * 根据ID获取实体 + * + * @param id + * @return + */ + @Override + public SyVehicleDb findOne(int id) { + return vehicleDbMapper.selectByPrimaryKey(id); + } + + /** + * 批量删除 + */ + @Override + public void delete(int[] ids) { + for (int id : ids) { + + List deployList = deployService.getDeployListByLibAndDeployType(id, 2); + + UploadVehicleDbResult uploadVehicleDbResult = mongoTemplate.findOne(Query.query(new Criteria("id").is(id)), UploadVehicleDbResult.class); + + if (uploadVehicleDbResult != null) { + String id1 = uploadVehicleDbResult.getId(); + String plateNum = uploadVehicleDbResult.getPlateNum(); + float plateScore = uploadVehicleDbResult.getPlateScore(); + if (plateScore > 0.9) { + redisTemplate.opsForHash().delete("vehicleId", plateNum); + } + redisTemplate.opsForHash().delete("vehicleId", id1); + redisTemplate.opsForHash().delete("vehicleUrl", id1); + mongoTemplate.remove(uploadVehicleDbResult); + if (deployList != null && deployList.size() > 0) { + int size = deployList.size(); + for (int i = 0; i < size; i++) { + Integer deployId = deployList.get(i); + int[] deploy = {deployId}; + deployService.delete(deploy); + } + } + } + SyVehicleDb syVehicleDb = vehicleDbMapper.selectByPrimaryKey(id); + syVehicleDb.setIsDelete(1); + vehicleDbMapper.updateByPrimaryKeySelective(syVehicleDb); + } + } + + + @Override + public PageResult findPage(SyVehicleDb vehicleDb, int pageNum, int pageSize) { + PageHelper.startPage(pageNum, pageSize); + + SyVehicleDbExample example = new SyVehicleDbExample(); + SyVehicleDbExample.Criteria criteria = example.createCriteria(); + + if (vehicleDb != null) { + if (vehicleDb.getVehicleName() != null && vehicleDb.getVehicleName().length() > 0) { + criteria.andVehicleNameLike("%" + vehicleDb.getVehicleName() + "%"); + } + if (vehicleDb.getCreateDate() != null && vehicleDb.getCreateDate().length() > 0) { + criteria.andCreateDateLike("%" + vehicleDb.getCreateDate() + "%"); + } + if (vehicleDb.getUpdateDate() != null && vehicleDb.getUpdateDate().length() > 0) { + criteria.andUpdateDateLike("%" + vehicleDb.getUpdateDate() + "%"); + } + if (vehicleDb.getDescription() != null && vehicleDb.getDescription().length() > 0) { + criteria.andDescriptionLike("%" + vehicleDb.getDescription() + "%"); + } + + } + + Page page = (Page) vehicleDbMapper.selectByExample(example); + return new PageResult(page.getTotal(), page.getResult()); + } + + @Override + public int updateCountById(SyVehicleDb feature) { + + return vehicleDbMapper.updateByPrimaryKeySelective(feature); + } + + @Override + public List> findAllName() { + List> list = new ArrayList<>(); + List syVehicleDbs = findAll(); + if (syVehicleDbs != null) { + int size = syVehicleDbs.size(); + for (int i = 0; i < size; i++) { + Map map = new HashMap<>(16); + SyVehicleDb syVehicleDb = syVehicleDbs.get(i); + String name = syVehicleDb.getVehicleName(); + int id = syVehicleDb.getId(); + map.put("value", id + ""); + map.put("name", name); + list.add(map); + } + return list; + } + return null; + } + +} diff --git b/src/main/java/com/objecteye/service/impl/VehicleFileServiceImpl.java a/src/main/java/com/objecteye/service/impl/VehicleFileServiceImpl.java new file mode 100644 index 0000000..7a5c557 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/VehicleFileServiceImpl.java @@ -0,0 +1,480 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.*; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.service.IVehicleFileService; +import com.objecteye.service.SpecialtyServices; +import com.objecteye.utils.CompareDistance; +import com.objecteye.utils.GlobalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * 一车一档实现类 + * + * @author liuhaoyu + */ +@Component +public class VehicleFileServiceImpl implements IVehicleFileService { + + /** + * redis中保存的key-value集合 + */ + private final String VEHICLE_FILE_PLATE_NUMBER = "vehicleFilePlateNumber"; + + private final String URL = "http://192.168.10.4:10002/vehicle/analysisFile"; + + private final double FEATURE_LOWER_LIMIT = 0.8; + + /** + * 车牌号所在字段 + */ + private final String vehiclePlateHphm = "vehicle_plate_hphm"; + + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private CompareDistance compareDistance; + @Autowired + private SpecialtyServices specialtyServices; + + /** + * 档案浏览查询(分页) + * + * @param vehicleFileParam 请求参数 + * @return 结果集 + */ + @Override + public PageResult fileQueryByPage(VehicleFileParam vehicleFileParam) { + // 实际需要返回的数据 + List resultList = fileResultHandle(vehicleFileParam); + + int pageNum = vehicleFileParam.getCurrentpage(); + int pageSize = vehicleFileParam.getPagevolume(); + if (pageSize <= 0) { + return new PageResult<>(0, new ArrayList<>()); + } + + // 总页数 + int pageTotal = (resultList.size() / pageSize) + ((resultList.size() % pageSize > 0) ? 1 : 0); + if (pageTotal == 0) { + return new PageResult<>(pageTotal, new ArrayList<>()); + } + + int fromIndex = (pageNum - 1) * pageSize; + int toIndex; + if (pageNum == pageTotal) { + toIndex = resultList.size(); + } else { + toIndex = pageNum * pageSize; + if (toIndex > resultList.size()) { + toIndex = resultList.size(); + } + if (fromIndex >= toIndex) { + return new PageResult<>(pageTotal, new ArrayList<>()); + } + } + + return new PageResult<>(pageTotal, resultList.subList(fromIndex, toIndex)); + } + + /** + * 档案浏览查询(不分页) + * + * @param vehicleFileParam 请求参数 + * @return 结果集 + */ + @Override + public List fileQuery(VehicleFileParam vehicleFileParam) { + return fileResultHandle(vehicleFileParam); + } + + /** + * 档案浏览查询 最终数据处理 + * + * @param vehicleFileParam 请求参数 + * @return 结果集 + */ + private List fileResultHandle(VehicleFileParam vehicleFileParam) { + List plateNumberList = getRightDataByCondition(vehicleFileParam); + Map vehicleCountMap = getVehicleFileCountMap(plateNumberList); + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + int fileMinNumber = vehicleFileParam.getFileMinNumber(); + // 把符合条件的数据汇总 + List resultList = new ArrayList<>(); + Map vehicleFileBaseMap = redisTemplate.opsForHash().entries(VEHICLE_FILE_PLATE_NUMBER); + for (Map.Entry entry : vehicleFileBaseMap.entrySet()) { + if (!plateNumberList.contains(entry.getKey())) { + continue; + } + RabbitMQVehicle rabbitMqVehicle = JSON.parseObject(entry.getValue(), RabbitMQVehicle.class); + // 是否最后出现时间 + if (vehicleFileParam.getLastAppear() == 1) { + Long lastAppearTime = rabbitMqVehicle.getPictime(); + // 最新的出现时间在时间范围内的显示出来, 不在范围内的不做查询 + if (null != lastAppearTime) { + // 起始时间 + if (null != vehicleFileParam.getStartTime() && lastAppearTime < vehicleFileParam.getStartTime()) { + continue; + } + // 结束时间 + if (null != vehicleFileParam.getEndTime() && lastAppearTime > vehicleFileParam.getEndTime()) { + continue; + } + } + } + // 最小出现数 + if (fileMinNumber > vehicleCountMap.get(entry.getKey())) { + continue; + } + VvehicleFileQueryResult vehicleFileQueryResult = new VvehicleFileQueryResult(); + vehicleFileQueryResult.setAppearNum(vehicleCountMap.get(entry.getKey())); + vehicleFileQueryResult.setId(rabbitMqVehicle.getVehicle_plate_hphm()); + vehicleFileQueryResult.setPictime(simpleDateFormat.format(new Date(rabbitMqVehicle.getPictime()))); + vehicleFileQueryResult.setPicurl(rabbitMqVehicle.getSnapshoturl()); + resultList.add(vehicleFileQueryResult); + } + // 时间倒序 + resultList.sort((o1, o2) -> { + if (DateUtil.parse(o2.getPictime()).getTime() - DateUtil.parse(o1.getPictime()).getTime() > 0) { + return 1; + } else if (DateUtil.parse(o2.getPictime()).getTime() - DateUtil.parse(o1.getPictime()).getTime() < 0) { + return -1; + } else { + return 0; + } + }); + return resultList; + } + + /** + * 获取符合条件的车辆数据 + * + * @param vehicleFileParam 请求参数 + * @return 结果集- 车牌号 + */ + private List getRightDataByCondition(VehicleFileParam vehicleFileParam) { + // 拼接过滤条件 获取条件下指定车牌号的数量 + // 起始时间 + // 结束时间 + Criteria criteria = new Criteria(); + if (null != vehicleFileParam.getStartTime() && null != vehicleFileParam.getEndTime()) { + criteria.and("pictime").gte(vehicleFileParam.getStartTime()).lte(vehicleFileParam.getEndTime()); + } else if (null != vehicleFileParam.getStartTime() && null == vehicleFileParam.getEndTime()) { + criteria.and("pictime").gte(vehicleFileParam.getStartTime()); + } else if (null == vehicleFileParam.getStartTime() && null != vehicleFileParam.getEndTime()) { + criteria.and("pictime").lte(vehicleFileParam.getEndTime()); + } + + // 车牌号 + if (null != vehicleFileParam.getPlateNumber() && !"".equals(vehicleFileParam.getPlateNumber())) { + String plateNumber = vehicleFileParam.getPlateNumber(); + plateNumber = plateNumber.replaceAll("\\?", "\\\\S").replaceAll("\\*", ".*"); + Pattern pattern = Pattern.compile(plateNumber, Pattern.CASE_INSENSITIVE); + criteria.and(vehiclePlateHphm).regex(pattern); + } + + Query query = Query.query(criteria); + query.fields().include(vehiclePlateHphm); + + List rabbitMqVehicles = mongoTemplate.find(query, RabbitMQVehicle.class); + return rabbitMqVehicles.stream().map(RabbitMQVehicle::getVehicle_plate_hphm).distinct().collect(Collectors.toList()); + } + + /** + * 档案浏览查询 获取过滤条件下数据的档案出现次数 + * + * @param plateNumberList 需要查询数量的车牌号 + * @return 结果集 + */ + private Map getVehicleFileCountMap(List plateNumberList) { + Aggregation aggregation = Aggregation.newAggregation( + Aggregation.project(vehiclePlateHphm), + Aggregation.match(Criteria.where(vehiclePlateHphm).in(plateNumberList)), + Aggregation.group(vehiclePlateHphm).count().as("count"), + Aggregation.project(vehiclePlateHphm, "count")); + + AggregationResults rabbitMqVehicles = + mongoTemplate.aggregate(aggregation, "rabbitMQVehicle", RabbitMQVehicle.class); + // 符合时间范围的档案出现次数结果集 + List countVehicles = rabbitMqVehicles.getMappedResults(); + + Map vehicleFileCountMap = new HashMap<>(); + for (RabbitMQVehicle rabbitMqVehicle : countVehicles) { + if (null == rabbitMqVehicle) { + continue; + } + vehicleFileCountMap.put(rabbitMqVehicle.getId(), Long.parseLong(String.valueOf(rabbitMqVehicle.getCount()))); + } + return vehicleFileCountMap; + } + + /** + * 车牌搜档(分页) + * + * @param filePlateNumParam 页面容量 + * @return 结果集 + */ + @Override + public PageResult plateNumberQueryByPage(VehicleFilePlateNumParam filePlateNumParam) { + String plateNumber = filePlateNumParam.getPlateNumber(); + int pageNum = filePlateNumParam.getCurrentpage(); + int pageSize = filePlateNumParam.getPagevolume(); + if (pageSize <= 0) { + return new PageResult<>(0, new ArrayList<>()); + } + // 数据获取 + List rabbitMqVehicles = + mongoTemplate.find(Query.query(Criteria.where(vehiclePlateHphm).is(plateNumber)) + .with(Sort.by(Sort.Order.desc("pictime"))) + .limit(pageSize).skip((pageNum - 1) * pageSize), RabbitMQVehicle.class); + + // 数据条数获取 + long totalRows = mongoTemplate.count(Query.query(Criteria.where(vehiclePlateHphm).is(plateNumber)), RabbitMQVehicle.class); + // 总页数 + long pageTotal = (totalRows / pageSize) + ((totalRows % pageSize > 0) ? 1 : 0); + + return new PageResult<>(pageTotal, cleanDateToSimple(rabbitMqVehicles)); + } + + /** + * 车牌搜档(不分页) + * + * @param filePlateNumParam 请求参数 + * @return 结果集 + */ + @Override + public List plateNumberQuery(VehicleFilePlateNumParam filePlateNumParam) { + List rabbitMqVehicles = mongoTemplate.find(Query.query(Criteria.where(vehiclePlateHphm).is(filePlateNumParam.getPlateNumber())), RabbitMQVehicle.class); + return cleanDateToSimple(rabbitMqVehicles); + } + + /** + * 把RabbitMQVehicle格式的数据转换为输出视图数据模型数据 + * + * @param rabbitMqVehicles RabbitMQVehicle类型数据集合 + * @return 结果集 + */ + private List cleanDateToSimple(List rabbitMqVehicles) { + List resultList = new ArrayList<>(); + String dateFormat = "yyyy-MM-dd HH:mm:ss"; + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + if (null == rabbitMqVehicle) { + continue; + } + VvehicleFilePlateNumberQueryResult tempResult = new VvehicleFilePlateNumberQueryResult(); + tempResult.setPicurl(rabbitMqVehicle.getSnapshoturl()); + tempResult.setPlateNumber(rabbitMqVehicle.getVehicle_plate_hphm()); + tempResult.setType(rabbitMqVehicle.getVehicle_recg_type()); + tempResult.setColor(RelationMappingUtil.getVehicleColor(rabbitMqVehicle.getVehicle_color_index())); + tempResult.setLatitude(rabbitMqVehicle.getLatitude()); + tempResult.setLongitude(rabbitMqVehicle.getLongitude()); + tempResult.setBrand(rabbitMqVehicle.getVehicle_recg_brand()); + List styleList = new ArrayList<>(); + if (null != rabbitMqVehicle.getVehicle_recg_brand() && !"".equals(rabbitMqVehicle.getVehicle_recg_brand())) { + styleList.add(rabbitMqVehicle.getVehicle_recg_brand()); + } + if (null != rabbitMqVehicle.getVehicle_recg_subbrand() && !"".equals(rabbitMqVehicle.getVehicle_recg_subbrand())) { + styleList.add(rabbitMqVehicle.getVehicle_recg_subbrand()); + } + if (null != rabbitMqVehicle.getVehicle_recg_issue_year() && !"".equals(rabbitMqVehicle.getVehicle_recg_issue_year())) { + styleList.add(rabbitMqVehicle.getVehicle_recg_issue_year()); + } + String style = String.join("-", styleList); + tempResult.setStyle(style); + tempResult.setEquipmentName(rabbitMqVehicle.getEquipmentName()); + tempResult.setPictime(DateUtil.format(new Date(rabbitMqVehicle.getPictime()), dateFormat)); + tempResult.setId(rabbitMqVehicle.getId()); + resultList.add(tempResult); + } + return resultList; + } + + /** + * 以图搜档 + * + * @param gcxh 车辆序号 + * @param multipartFile 请求参数 + * @return 结果集 + */ + @Override + public VvehicleFilePicQueryResult picQuery(int gcxh, MultipartFile multipartFile) { + String fileName = multipartFile.getOriginalFilename(); + String picPath = GlobalUtil.dbPath1() + File.separator + "picture" + File.separator + fileName; + File newFile = new File(picPath); + try { + multipartFile.transferTo(newFile); + } catch (IOException e) { + e.printStackTrace(); + } + String response = GlobalUtil.httpExecute(URL, newFile); + newFile.delete(); + if (null == response || "".equals(response)) { + return null; + } + + JSONObject finalObj = getMostSimilarOne(gcxh, response); + if (finalObj == null) { + return null; + } + String plateNumber = finalObj.getString(vehiclePlateHphm); + // 获取redis中保存的最新数据 + String lastData = redisTemplate.opsForHash().get(VEHICLE_FILE_PLATE_NUMBER, plateNumber).toString(); + RabbitMQVehicle rabbitMqVehicle = JSON.parseObject(lastData, RabbitMQVehicle.class); + + VvehicleFilePicQueryResult picQueryResult = new VvehicleFilePicQueryResult(); + // 相似度 + picQueryResult.setFeature(finalObj.getString("threshold")); + // 图片地址 + picQueryResult.setUrl(rabbitMqVehicle.getPicurl()); + // 抓拍时间 + picQueryResult.setPictime(rabbitMqVehicle.getPictime()); + // 车牌号 + picQueryResult.setPlateNumber(plateNumber); + + return picQueryResult; + } + + /** + * 获取最相似的车辆信息 + * + * @param gcxh 车辆序号 + * @param response 图片文件 + * @return 车辆对应数据 + */ + @Override + public JSONObject getMostSimilarOne(int gcxh, String response) { + JSONObject jsonObject = JSON.parseObject(response); + JSONArray infoArr = jsonObject.getJSONObject("result").getJSONArray("info"); + if (null == infoArr || infoArr.size() == 0) { + return null; + } + List infoList = infoArr.toJavaList(JSONObject.class); + JSONObject infoObj = infoList.get(gcxh); + //获取车辆特征值 + JSONObject vehicleFeaRes = infoObj.getJSONObject("vehicle_fea_res"); + JSONArray featureArr = vehicleFeaRes.getJSONArray("feature"); + double[] featureNew = new double[featureArr.size()]; + for (int i = 0; i < featureArr.size(); i++) { + featureNew[i] = featureArr.getDoubleValue(i); + } + // 选中车辆的特征值信息 + double currentFeature = compareDistance.getDistance(featureNew); + Map redisMap = redisTemplate.opsForHash().entries(VEHICLE_FILE_PLATE_NUMBER); + List tempInfoList = new ArrayList<>(); + // 相似度字段名 + final String thresholdStr = "threshold"; + for (Map.Entry entry : redisMap.entrySet()) { + RabbitMQVehicle rabbitMqVehicle = JSON.parseObject(entry.getValue(), RabbitMQVehicle.class); + if (null == rabbitMqVehicle) { + continue; + } + double[] dbFeature = rabbitMqVehicle.getVehicle_fea_feature(); + // 缓存中车辆的特征值信息 + double dbDistance = compareDistance.getDistance(dbFeature); + // 计算相似度 + double threshold = compareDistance.simDistance(featureNew, currentFeature, dbFeature, dbDistance); + // 计算结果是NaN的情况不计入数据 + if (Double.isNaN(threshold)) { + continue; + } + JSONObject tempObj = JSON.parseObject(JSON.toJSONString(rabbitMqVehicle)); + // 相似度保留2位小数 + DecimalFormat decimalFormat = new DecimalFormat("#0.00"); + if (Double.parseDouble(decimalFormat.format(threshold)) >= 1) { + tempObj.put(thresholdStr, "1"); + } else { + tempObj.put(thresholdStr, decimalFormat.format(threshold)); + } + tempInfoList.add(tempObj); + } + + // 获取相似度最高的一项 + JSONObject finalObj = Collections.max(tempInfoList, Comparator.comparingDouble(value -> value.getDoubleValue(thresholdStr))); + // 低于相似值下限则认为没有相关档案 + if (FEATURE_LOWER_LIMIT > finalObj.getDoubleValue(thresholdStr)) { + return null; + } + return finalObj; + } + + /** + * 通过过车序号查询车辆的信息(转base64解析图片) + * + * @param gcxh 车辆序号 + * @param picfile 图片文件 + * @return 结果集 + */ + @Override + public JSONObject findByGcxh(int gcxh, MultipartFile picfile) { + return specialtyServices.findByGcxh(gcxh, picfile); + } + + /** + * 司机信息 + * + * @param params 请求参数 + * @return 结果集 + */ + @Override + public PageResult driverFiles(VehicleFilePlateNumParam params) { + Criteria criteria = new Criteria(); + criteria.and(vehiclePlateHphm).is(params.getPlateNumber()); + criteria.and("personUrl").ne(null); + + Query query = Query.query(criteria); + query.fields().include("pictime"); + query.fields().include(vehiclePlateHphm); + query.fields().include("longitude"); + query.fields().include("latitude"); + query.fields().include("personUrl"); + query.fields().include("equipmentName"); + query.fields().include("id"); + + List rabbitMqVehicles = mongoTemplate.find(query.with(Sort.by(Sort.Order.desc("pictime"))) + .limit(params.getPagevolume()) + .skip((params.getCurrentpage() - 1) * params.getPagevolume()), RabbitMQVehicle.class); + List resultList = new ArrayList<>(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + if (null == rabbitMqVehicle) { + continue; + } + VvehicleFileDriverResult tempResult = JSON.parseObject(JSON.toJSONString(rabbitMqVehicle), VvehicleFileDriverResult.class); + tempResult.setPicurl(rabbitMqVehicle.getPersonUrl()); + tempResult.setPlateNumber(rabbitMqVehicle.getVehicle_plate_hphm()); + tempResult.setPictime(simpleDateFormat.format(new Date(rabbitMqVehicle.getPictime()))); + resultList.add(tempResult); + } + + // 总条数 + long total = mongoTemplate.count(query, RabbitMQVehicle.class); + // 总页数 + int totalPage = (int) Math.ceil((double) total / params.getPagevolume()); + return new PageResult<>(totalPage, resultList); + } +} diff --git b/src/main/java/com/objecteye/service/impl/VehicleServiceImpl.java a/src/main/java/com/objecteye/service/impl/VehicleServiceImpl.java new file mode 100644 index 0000000..93da9e3 --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/VehicleServiceImpl.java @@ -0,0 +1,219 @@ +package com.objecteye.service.impl; + +import com.alibaba.fastjson.JSON; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyVehicleDbMapper; +import com.objecteye.service.DeployService; +import com.objecteye.service.VehicleDbService; +import com.objecteye.service.VehicleService; +import com.objecteye.utils.GlobalUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.mongodb.core.query.Update; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; +import java.io.IOException; +import java.util.List; + +/** + * @Author: lr + * @Date: 2019/9/16 11:20 + * @Version 1.0 + * @Message: + */ +@Service +public class VehicleServiceImpl implements VehicleService { + + + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private SyVehicleDbMapper vehicleDbMapper; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private DeployService deployService; + + @Value("${requestVehicleFile}") + private String url; + @Value("${picture.url}") + private String picIpAndPort; + + @Autowired + private VehicleDbService vehicleDbService; + + @Override + public PageResult findPage(int vehicleId, String picName, int pageNum, int pageSize) { + // 创建查询对象 + Query query = new Query(); + //分页条件 + Pageable pageable = new PageRequest(pageNum - 1, pageSize); + query.with(pageable); + //条件查询 + Criteria criteria = new Criteria(); + criteria.and("vehicleId").is(vehicleId); + if (picName != null) { + criteria.and("picName").regex(".*" + picName + ".*"); + } + query.addCriteria(criteria); + //总条数 + long count = mongoTemplate.count(query, UploadVehicleResult.class, "uploadVehicleDbResult"); + + //全部数据 + List datas = mongoTemplate.find(query, UploadVehicleDbResult.class, "uploadVehicleDbResult"); + //分页形式 + PageImpl alarmPageImpl = new PageImpl(datas, pageable, count); + + int totalPages = alarmPageImpl.getTotalPages(); + List content = alarmPageImpl.getContent(); + if (datas != null) { + return new PageResult(totalPages, content); + } + return null; + } + + @Override + public void delete(String[] ids) { + int length = ids.length; + int vehicleId = 0; + for (int i = 0; i < length; i++) { + String id = ids[i]; + UploadVehicleDbResult uploadVehicleDbResult = mongoTemplate.findOne(Query.query(new Criteria("id").is(id)), UploadVehicleDbResult.class); + vehicleId = uploadVehicleDbResult.getVehicleId(); + String plateNum = uploadVehicleDbResult.getPlateNum(); + float plateScore = uploadVehicleDbResult.getPlateScore(); + if (plateScore > 0.9 && redisTemplate.opsForHash().hasKey("vehicleId", plateNum)) { + redisTemplate.opsForHash().delete("vehicleId", plateNum); + } + List deployListByLibAndDeployType = deployService.getDeployListByLibAndDeployType(vehicleId, 1); + if (deployListByLibAndDeployType != null && deployListByLibAndDeployType.size() > 0) { + for (int j = 0; j < deployListByLibAndDeployType.size(); j++) { + String key = deployListByLibAndDeployType.get(j) + "|" + vehicleId; + if (redisTemplate.opsForHash().hasKey(key, id)) { + redisTemplate.opsForHash().delete(key, id); + } + } + } + redisTemplate.opsForHash().delete("vehicleId", id); + redisTemplate.opsForHash().delete("vehicleUrl", id); + mongoTemplate.remove(uploadVehicleDbResult); + } + SyVehicleDb syVehicleDb = vehicleDbMapper.selectByPrimaryKey(vehicleId); + syVehicleDb.setCount(syVehicleDb.getCount() - length); + vehicleDbMapper.updateByPrimaryKeySelective(syVehicleDb); + } + + @Override + public void update(UploadVehicleDbResult uploadVehicleDbResult) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("id").is(uploadVehicleDbResult.getId()); + query.addCriteria(criteria); + Update update = Update.update("picName", uploadVehicleDbResult.getPicName()); + mongoTemplate.findAndModify(query, update, UploadVehicleDbResult.class); + } + + @Override + public List findByPicName(UploadVehicleDbResult uploadVehicleResult) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("vehicleId").is(uploadVehicleResult.getVehicleId()); + criteria.and("picName").regex(".*" + uploadVehicleResult.getPicName() + ".*"); + query.addCriteria(criteria); + List uploadVehicleResultList = mongoTemplate.find(query, UploadVehicleDbResult.class, "uploadVehicleDbResult"); + return uploadVehicleResultList; + } + + @Override + public String uploadFiles(MultipartFile[] uploadFiles, int vehicleId) { + int count = 0; + SyVehicleDb one = vehicleDbService.findOne(vehicleId); + List deployListByLibAndDeployType = deployService.getDeployListByLibAndDeployType(vehicleId, 1); + if (uploadFiles.length > 0 && one != null) { + + int len = uploadFiles.length; + for (int i = 0; i < len; i++) { + MultipartFile multipartFile = uploadFiles[i]; + String fileName = multipartFile.getOriginalFilename(); + + String picPath = GlobalUtil.dbPath1() + File.separator + "picture" + File.separator + fileName; + + String imageUrl = picIpAndPort + fileName; + File newFile = new File(picPath); + try { + multipartFile.transferTo(newFile); + } catch (IOException e) { + e.printStackTrace(); + } + String s = GlobalUtil.httpExecute(url, newFile); + ResponseParam responseParam = JSON.parseObject(s, ResponseParam.class); + String code = responseParam.getCode(); + if ("0".equals(code)) { + String s1 = JSON.toJSONString(responseParam.getResult()); + VehicleAnalysisResultParam vehicleAnalysisResultParam = JSON.parseObject(s1, VehicleAnalysisResultParam.class); + UploadVehicleDbResult uploadVehicleDbResult = new UploadVehicleDbResult(); + VehicleInfoParam[] info = vehicleAnalysisResultParam.getInfo(); + if (null != info && info.length > 0) { + VehicleInfoParam vehicleInfoParam = info[0]; + VehicleFeatureResultParam vehicleFeaRes = vehicleInfoParam.getVehicle_fea_res(); + float[] feature = vehicleFeaRes.getFeature(); + uploadVehicleDbResult.setCount(vehicleAnalysisResultParam.getCount()); + uploadVehicleDbResult.setVehicleInfoParam(vehicleInfoParam); + + String pic = fileName.substring(0, fileName.indexOf(".")); + uploadVehicleDbResult.setPicName(pic); + uploadVehicleDbResult.setVehicleId(vehicleId); + uploadVehicleDbResult.setImageUrl(imageUrl); + + + VehiclePlateResultParam vehiclePlateDetRecgRes = vehicleInfoParam.getVehicle_plate_det_recg_res(); + float numScore = vehiclePlateDetRecgRes.getNumScore(); + uploadVehicleDbResult.setPlateScore(numScore); + VehiclePlateNumParam[] plateNumParams = vehiclePlateDetRecgRes.getPlateNumParams(); + String splateNum = ""; + + if (plateNumParams != null && plateNumParams.length > 0) { + StringBuffer stringBuffer = new StringBuffer(); + int length = plateNumParams.length; + for (int j = 0; j < length; j++) { + String character = plateNumParams[j].getCharacter(); + stringBuffer.append(character); + } + splateNum = stringBuffer.toString(); + uploadVehicleDbResult.setPlateNum(splateNum); + } + UploadVehicleDbResult save = mongoTemplate.save(uploadVehicleDbResult); + String id = save.getId(); + if (numScore > 0.9) { + redisTemplate.opsForHash().put("vehiclePlate", splateNum, id); + } + if (deployListByLibAndDeployType.size() > 0) { + for (int j = 0; j < deployListByLibAndDeployType.size(); j++) { + Integer deployId = deployListByLibAndDeployType.get(j); + String key1 = deployId + "|" + vehicleId; + redisTemplate.opsForHash().put(key1, id, 0); + } + } + redisTemplate.opsForHash().put("vehicleId", id, feature); + redisTemplate.opsForHash().put("vehicleUrl", id, imageUrl); + count++; + } + } + } + Integer count1 = one.getCount(); + one.setCount(count + count1); + vehicleDbService.updateCountById(one); + return "上传的文件共有" + len + ",成功上传的个数为: " + count; + } + return null; + } +} diff --git b/src/main/java/com/objecteye/service/impl/VehicleViolationsServiceImpl.java a/src/main/java/com/objecteye/service/impl/VehicleViolationsServiceImpl.java new file mode 100644 index 0000000..da063ff --- /dev/null +++ a/src/main/java/com/objecteye/service/impl/VehicleViolationsServiceImpl.java @@ -0,0 +1,486 @@ +package com.objecteye.service.impl; + +import cn.hutool.core.date.DateUnit; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyAreaEquipmentMapper; +import com.objecteye.mapper.SyEquipmentMapper; +import com.objecteye.mapper.SyVehicleForbidenTaskMapper; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.pojo.RabbitMqVehicleViolation; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.IVehicleViolationsService; +import com.objecteye.utils.GlobalUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * 车辆违规模块 + * + * @author liuhaoyu + */ +@Component +public class VehicleViolationsServiceImpl implements IVehicleViolationsService { + + private final Logger log = LoggerFactory.getLogger(VehicleViolationsServiceImpl.class); + + @Autowired + private SyVehicleForbidenTaskMapper syVehicleForbidenTaskMapper; + @Autowired + private SyEquipmentMapper syEquipmentMapper; + @Autowired + private SyAreaEquipmentMapper syAreaEquipmentMapper; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private AreaEquipmentService areaEquipmentService; + @Autowired + private MongoTemplate mongoTemplate; + + private static Map WEEK_MAP = new HashMap<>(); + + static { + WEEK_MAP.put(1, "周一"); + WEEK_MAP.put(2, "周二"); + WEEK_MAP.put(3, "周三"); + WEEK_MAP.put(4, "周四"); + WEEK_MAP.put(5, "周五"); + WEEK_MAP.put(6, "周六"); + WEEK_MAP.put(7, "周日"); + } + + /** + * 特殊车辆确认置信度下限 + */ + private final double SPECIAL_VEHICLE_TYPE_LOWER_SCORS = 0.7; + /** + * 车辆违规置信度下限 + */ + private final double ILLEGAL_CONFIRM_LIMMIT = 0.9; + + /** + * 同步还在激活状态的任务到redis + */ + private void syncForbiddenTask() { + SyVehicleForbidenTaskExample syVehicleForbidenTaskExample = new SyVehicleForbidenTaskExample(); + SyVehicleForbidenTaskExample.Criteria criteria = syVehicleForbidenTaskExample.createCriteria(); + criteria.andStatusNotEqualTo(0); + List forbiddenTasks = syVehicleForbidenTaskMapper.selectByExample(syVehicleForbidenTaskExample); + Map> deviceIdTaskMap = new HashMap<>(); + for (SyVehicleForbidenTask forbiddenTask : forbiddenTasks) { + if (null == forbiddenTask || null == forbiddenTask.getDeviceId() || "".equals(forbiddenTask.getDeviceId())) { + continue; + } + String[] deviceIdArr = forbiddenTask.getDeviceId().split(","); + for (String deviceId : deviceIdArr) { + List tempTasks = new ArrayList<>(); + if (deviceIdTaskMap.containsKey(deviceId)) { + tempTasks = deviceIdTaskMap.get(deviceId); + } + tempTasks.add(forbiddenTask); + deviceIdTaskMap.put(deviceId, tempTasks); + } + + } + redisTemplate.delete(GlobalUtil.FORBIDDEN_TASK); + redisTemplate.opsForHash().putAll(GlobalUtil.FORBIDDEN_TASK, deviceIdTaskMap); + } + + /** + * 禁行任务查询接口 + * + * @param currentpage 页码 + * @param pagevolume 页码容量 + * @param name 名称(非必填) + * @return 结果集 + */ + @Override + public PageResult forbiddenTaskQueryByPage(Integer currentpage, Integer pagevolume, String name) { + SyVehicleForbidenTaskExample syVehicleForbidenTaskExample = new SyVehicleForbidenTaskExample(); + SyVehicleForbidenTaskExample.Criteria criteria = syVehicleForbidenTaskExample.createCriteria(); + + if (null != name && !"".equals(name)) { + criteria.andNameLike("%" + name + "%"); + } + + PageInfo pageInfo = PageHelper.startPage(currentpage, pagevolume) + .doSelectPageInfo(() -> syVehicleForbidenTaskMapper.selectByExample(syVehicleForbidenTaskExample)); + + List tempList = pageInfo.getList(); + // 一次查询所有任务id对应的报警数 + Aggregation aggregation = Aggregation.newAggregation( + Aggregation.project("taskId"), + Aggregation.group("taskId").count().as("count"), + Aggregation.project("taskId", "count")); + AggregationResults vehicleViolationAgg = mongoTemplate.aggregate(aggregation, "rabbitMqVehicleViolation", JSONObject.class); + List taskWarningNumList = vehicleViolationAgg.getMappedResults(); + Map taskWarningNumMap = new HashMap<>(); + for (JSONObject jsonObject : taskWarningNumList) { + if (null == jsonObject) { + continue; + } + taskWarningNumMap.put(jsonObject.getString("_id"), jsonObject.getString("count")); + } + + List resultList = new ArrayList<>(); + // 拼接返回数据格式 + for (SyVehicleForbidenTask forbiddenTask : tempList) { + if (null == forbiddenTask) { + continue; + } + SyVehicleForbiddenTaskOutput output = new SyVehicleForbiddenTaskOutput(); + output.setId(String.valueOf(forbiddenTask.getId())); + output.setName(forbiddenTask.getName()); + output.setDescription(forbiddenTask.getDescription()); + output.setStatus(null != forbiddenTask.getStatus() && 1 == forbiddenTask.getStatus() ? "工作中" : "已撤销"); + output.setEffectStartTime(DateUtil.format(new Date(forbiddenTask.getEffectStartTime()), "yyyy-MM-dd HH:mm:ss")); + output.setVehicleType(forbiddenTask.getVehicleType().replaceAll("1", "危化品车").replaceAll("2", "渣土车")); + JSONObject forbiddenDetailObj = JSON.parseObject(forbiddenTask.getForbiddenDetailTime()); + if (null != forbiddenDetailObj) { + List forbiddenTimeList = new ArrayList<>(); + for (int i = 1; i <= WEEK_MAP.size(); i++) { + if (forbiddenDetailObj.containsKey(String.valueOf(i))) { + forbiddenTimeList.add(WEEK_MAP.get(i) + " " + forbiddenDetailObj.getString(String.valueOf(i))); + } + } + output.setForbiddenDetailTime(String.join(",", forbiddenTimeList)); + } + String warningNumber = taskWarningNumMap.getOrDefault(String.valueOf(forbiddenTask.getId()), "0"); + output.setWarningNumber(warningNumber); + output.setEquipment(getEquipmentNameByDeviceIds(forbiddenTask.getDeviceId())); + resultList.add(output); + } + return new PageResult<>(pageInfo.getPages(), resultList); + } + + /** + * 禁行任务查询明细 + * + * @param id 主键 + * @return 结果 + */ + @Override + public SyVehicleForbidenTask forbiddenTaskDetail(String id) { + SyVehicleForbidenTask forbidenTask = syVehicleForbidenTaskMapper.selectByPrimaryKey(Integer.valueOf(id)); + if (forbidenTask != null) { + String areaIds = forbidenTask.getAreaId(); + if (areaIds != null && !"".equals(areaIds)) { + List areaIdList = Arrays.stream(areaIds.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + SyAreaEquipmentExample syAreaEquipmentExample = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = syAreaEquipmentExample.createCriteria(); + criteria.andIdIn(areaIdList); + List syAreaEquipments = syAreaEquipmentMapper.selectByExample(syAreaEquipmentExample); + String areaNames = syAreaEquipments.stream().map(SyAreaEquipment::getName).collect(Collectors.joining(",")); + forbidenTask.setAreaName(areaNames); + } + } + return forbidenTask; + } + + /** + * 禁行任务维护- 新增接口 + * + * @param syVehicleForbidenTask 请求参数 + * @return 结果集 + */ + @Override + public int forbiddenTaskAdd(SyVehicleForbidenTask syVehicleForbidenTask) { + syVehicleForbidenTask.setEffectStartTime(System.currentTimeMillis()); + if (syVehicleForbidenTask.getStatus() == null) { + syVehicleForbidenTask.setStatus(1); + } + if (null != syVehicleForbidenTask.getAreaId() && !"".equals(syVehicleForbidenTask.getAreaId())) { + syVehicleForbidenTask.setDeviceId(getDeviceIdsByAreaIds(syVehicleForbidenTask.getAreaId())); + } + int status = syVehicleForbidenTaskMapper.insertSelective(syVehicleForbidenTask); + syncForbiddenTask(); + return status; + } + + /** + * 禁行任务维护- 修改接口 + * + * @param syVehicleForbidenTask 请求参数 + * @return 结果集 + */ + @Override + public int forbiddenTaskUpdate(SyVehicleForbidenTask syVehicleForbidenTask) { + if (null != syVehicleForbidenTask.getAreaId() && !"".equals(syVehicleForbidenTask.getAreaId())) { + syVehicleForbidenTask.setDeviceId(getDeviceIdsByAreaIds(syVehicleForbidenTask.getAreaId())); + } + int status = syVehicleForbidenTaskMapper.updateByPrimaryKeySelective(syVehicleForbidenTask); + syncForbiddenTask(); + return status; + } + + /** + * 根据区域id获取对应的所有设备id + * + * @param areaIds 区域id 多个之间,间隔 + * @return 设备id字符串 + */ + private String getDeviceIdsByAreaIds(String areaIds) { + String[] areaIdArr = areaIds.split(","); + Set deviceIdSet = new HashSet<>(); + for (String areaId : areaIdArr) { + deviceIdSet.addAll(areaEquipmentService.findCaptureById(Integer.parseInt(areaId))); + } + return deviceIdSet.stream().map(String::valueOf).collect(Collectors.joining(",")); + } + + /** + * 根据设备id获取对应的设备名称 + * + * @param deviceIds 设备ids + * @return 名称 + */ + private String getEquipmentNameByDeviceIds(String deviceIds) { + List deviceIdList = Arrays.stream(deviceIds.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + SyEquipmentExample syEquipmentExample = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = syEquipmentExample.createCriteria(); + criteria.andIdIn(deviceIdList); + List syAreaEquipments = syEquipmentMapper.selectByExample(syEquipmentExample); + return syAreaEquipments.stream().map(SyEquipment::getEquipmentName).collect(Collectors.joining(",")); + } + + /** + * 禁行任务维护- 删除接口 + * + * @param ids 请求参数 + * @return 结果集 + */ + @Override + public int forbiddenTaskDelete(String[] ids) { + int effectNum = 0; + for (String id : ids) { + if (null == id || "".equals(id)) { + continue; + } + // 删除历史数据 + mongoTemplate.remove(Query.query(Criteria.where("taskId").is(id)), RabbitMqVehicleViolation.class); + // 删除任务 + syVehicleForbidenTaskMapper.deleteByPrimaryKey(Integer.parseInt(id)); + effectNum++; + } + syncForbiddenTask(); + return effectNum; + } + + /** + * 布控任务监控 + * + * @param rabbitMqVehicle mq消息 + */ + @Override + public void taskListener(RabbitMQVehicle rabbitMqVehicle) { + RabbitMqVehicleViolation rabbitMqVehicleViolation = JSON.parseObject(JSON.toJSONString(rabbitMqVehicle), RabbitMqVehicleViolation.class); + rabbitMqVehicleViolation.setBaseId(rabbitMqVehicleViolation.getId()); + double specialScore = rabbitMqVehicleViolation.getVehicle_special_score(); + // 非特殊车辆 + if (specialScore >= SPECIAL_VEHICLE_TYPE_LOWER_SCORS) { + // 特殊车辆处理 + int deviceId = rabbitMqVehicleViolation.getDeviceid(); + int specialType = rabbitMqVehicleViolation.getVehicle_special_type(); + // 对激活的任务做判断 + List availableForbiddenTasks = (List) redisTemplate.opsForHash().get(GlobalUtil.FORBIDDEN_TASK, String.valueOf(deviceId)); + if (null != availableForbiddenTasks && availableForbiddenTasks.size() != 0) { + // 检测是否违规, 违规一次即跳出循环 + for (SyVehicleForbidenTask forbiddenTask : availableForbiddenTasks) { + List vehicleType = Arrays.stream(forbiddenTask.getVehicleType().split(",")).collect(Collectors.toList()); + if (vehicleType.contains(String.valueOf(specialType))) { + // 是否检测时间段内 + String pictime = DateUtil.format(new Date(rabbitMqVehicleViolation.getPictime()), "yyyy-MM-dd HH:mm:ss"); + JSONObject forbiddenDetail = JSON.parseObject(forbiddenTask.getForbiddenDetailTime()); + int dayOfWeek = DateUtil.dayOfWeek(new Date(rabbitMqVehicleViolation.getPictime())); + String week = String.valueOf(dayOfWeek == 1 ? 7 : dayOfWeek - 1); + String forbiddenDayDetail = forbiddenDetail.getString(week); + if (null != forbiddenDayDetail) { + String[] timeScopeArr = forbiddenDayDetail.split(","); + for (String timeScope : timeScopeArr) { + String startTime = pictime.split(" ")[0] + " " + timeScope.split("-")[0]; + String endTime = pictime.split(" ")[0] + " " + timeScope.split("-")[1]; + + if (betweenMs(pictime, startTime) < 0 && betweenMs(pictime, endTime) > 0) { + rabbitMqVehicleViolation.setId(UUID.randomUUID().toString()); + rabbitMqVehicleViolation.setTaskId(forbiddenTask.getId()); + mongoTemplate.insert(rabbitMqVehicleViolation); + break; + } + } + } + } + } + } + } + } + + /** + * 获取时间差值 带正负 + * + * @param beginDate 开始时间 + * @param endDate 结束时间 + * @return 时间差值 + */ + private long betweenMs(String beginDate, String endDate) { + return DateUtil.between(DateUtil.parse(beginDate), DateUtil.parse(endDate), DateUnit.MS, false); + } + + /** + * 车辆违规查询 + * + * @param params 请求参数 + * @param useViolationTable 是否是查询禁行违规 + * @return 结果集 + */ + @Override + public PageResult vehicleViolationQueryByPage(VehicleViolationsForbidenTaskQueryParams params, boolean useViolationTable) { + int pageNum = params.getCurrentpage(); + int pageSize = params.getPagevolume(); + boolean ifNoCheckStatus = true; + + Criteria criteria = new Criteria(); + if (null != params.getCustomsPass() && !"".equals(params.getCustomsPass())) { + List deviceIds = areaEquipmentService.findCaptureById(Integer.parseInt(params.getCustomsPass())); + criteria.and("deviceid").in(deviceIds); + } + Long startTime = params.getStartTime(); + Long endTime = params.getEndTime(); + if (null == startTime) { + if (null != endTime) { + criteria.and("pictime").lte(endTime); + } + } else if (null == endTime) { + criteria.and("pictime").gte(startTime); + } else { + criteria.andOperator(Criteria.where("pictime").gte(startTime), Criteria.where("pictime").lte(endTime)); + } + List orCriteriaList = new ArrayList<>(); + if (null != params.getIfNoPlate() && 1 == params.getIfNoPlate()) { + orCriteriaList.add(Criteria.where("vehicleplatedetectscore").is(0)); + ifNoCheckStatus = false; + } + if (null != params.getIfStainedPlate() && 1 == params.getIfStainedPlate()) { + String regex = "^.*\\*.*$"; + Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); + orCriteriaList.add(Criteria.where("vehicle_plate_hphm").regex(pattern)); + ifNoCheckStatus = false; + } + if (null != params.getIfDriverNoBelt() && 1 == params.getIfDriverNoBelt()) { + orCriteriaList.add(Criteria.where("vehicle_illegal_driver_belt_status").is(1000) + .and("vehicle_illegal_driver_belt_confidence").gte(ILLEGAL_CONFIRM_LIMMIT)); + ifNoCheckStatus = false; + } + if (null != params.getIfCopilotNoBelt() && 1 == params.getIfCopilotNoBelt()) { + orCriteriaList.add(Criteria.where("vehicle_illegal_copilot_belt_status").is(1000) + .and("vehicle_illegal_copilot_belt_confidence").gte(ILLEGAL_CONFIRM_LIMMIT)); + ifNoCheckStatus = false; + } + if (null != params.getIfPhone() && 1 == params.getIfPhone()) { + orCriteriaList.add(Criteria.where("vehicle_illegal_driver_phone_status").is(1000) + .and("vehicle_illegal_driver_phone_confidence").gte(ILLEGAL_CONFIRM_LIMMIT)); + ifNoCheckStatus = false; + } + if (null != params.getIfSmoke() && 1 == params.getIfSmoke()) { + orCriteriaList.add(Criteria.where("vehicle_illegal_driver_smoke_status").is(1000) + .and("vehicle_illegal_driver_smoke_confidence").gte(ILLEGAL_CONFIRM_LIMMIT)); + ifNoCheckStatus = false; + } + + boolean ifMuckCar = null != params.getIfMuckCar() && 1 == params.getIfMuckCar(); + boolean ifDangerousChemicals = null != params.getIfDangerousChemicals() && 1 == params.getIfDangerousChemicals(); + if (ifMuckCar) { + orCriteriaList.add(Criteria.where("vehicle_special_type").is(2) + .and("vehicle_special_score").gte(SPECIAL_VEHICLE_TYPE_LOWER_SCORS)); + ifNoCheckStatus = false; + } + if (ifDangerousChemicals) { + orCriteriaList.add(Criteria.where("vehicle_special_type").is(1) + .and("vehicle_special_score").gte(SPECIAL_VEHICLE_TYPE_LOWER_SCORS)); + ifNoCheckStatus = false; + } + + criteria.orOperator(orCriteriaList.stream().toArray(Criteria[]::new)); + + Query query = Query.query(criteria).limit(pageSize).skip((pageNum - 1) * pageSize); + query.fields().include("id"); + query.fields().include("baseId"); + query.fields().include("pictime"); + query.fields().include("snapshoturl"); + query.fields().include("personUrl"); + query.fields().include("vehicle_plate_hphm"); + query.fields().include("equipmentName"); + return getVehicleViolationQueryResult(query, useViolationTable, ifNoCheckStatus, pageSize); + } + + /** + * 车辆违规查询- 获得查询结果 + * + * @param query 过滤条件 + * @param useViolationTable 是否是使用违规车辆表 + * @param ifNoCheckStatus 是否无勾选项 + * @return 结果集 + */ + private PageResult getVehicleViolationQueryResult(Query query, boolean useViolationTable, boolean ifNoCheckStatus, int pageSize) { + if (ifNoCheckStatus) { + return new PageResult<>(0, new ArrayList<>()); + } + if (useViolationTable) { + List vehicleViolations = mongoTemplate.find(query, RabbitMqVehicleViolation.class); + + List resultList = new ArrayList<>(); + for (RabbitMqVehicleViolation rabbitMqVehicleViolation : vehicleViolations) { + if (null == rabbitMqVehicleViolation) { + continue; + } + VehicleSimpleResult vehicleSimpleResult = new VehicleSimpleResult(); + vehicleSimpleResult.setPicurl(rabbitMqVehicleViolation.getSnapshoturl()); + vehicleSimpleResult.setId(rabbitMqVehicleViolation.getBaseId()); + vehicleSimpleResult.setPersonUrl(rabbitMqVehicleViolation.getPersonUrl()); + vehicleSimpleResult.setPictime(DateUtil.format(new Date(rabbitMqVehicleViolation.getPictime()), "yyyy-MM-dd HH:mm:ss")); + vehicleSimpleResult.setPlateNumber(rabbitMqVehicleViolation.getVehicle_plate_hphm()); + vehicleSimpleResult.setEquipmentName(rabbitMqVehicleViolation.getEquipmentName() == null ? "" : rabbitMqVehicleViolation.getEquipmentName()); + resultList.add(vehicleSimpleResult); + } + long total = mongoTemplate.count(query, RabbitMqVehicleViolation.class); + int totalPage = (int) Math.ceil((double) total / pageSize); + + return new PageResult<>(totalPage, resultList); + } else { + List rabbitMqVehicles = mongoTemplate.find(query, RabbitMQVehicle.class); + + List resultList = new ArrayList<>(); + for (RabbitMQVehicle rabbitMqVehicle : rabbitMqVehicles) { + if (null == rabbitMqVehicle) { + continue; + } + VehicleSimpleResult vehicleSimpleResult = new VehicleSimpleResult(); + vehicleSimpleResult.setId(rabbitMqVehicle.getId()); + vehicleSimpleResult.setPicurl(rabbitMqVehicle.getSnapshoturl()); + vehicleSimpleResult.setPersonUrl(rabbitMqVehicle.getPersonUrl()); + vehicleSimpleResult.setPictime(DateUtil.format(new Date(rabbitMqVehicle.getPictime()), "yyyy-MM-dd HH:mm:ss")); + vehicleSimpleResult.setPlateNumber(rabbitMqVehicle.getVehicle_plate_hphm()); + vehicleSimpleResult.setEquipmentName(rabbitMqVehicle.getEquipmentName()); + resultList.add(vehicleSimpleResult); + } + long total = mongoTemplate.count(query, RabbitMQVehicle.class); + int totalPage = (int) Math.ceil((double) total / pageSize); + return new PageResult<>(totalPage, resultList); + } + } +} diff --git b/src/main/java/com/objecteye/utils/ApplicationContextUtil.java a/src/main/java/com/objecteye/utils/ApplicationContextUtil.java new file mode 100644 index 0000000..1b6a261 --- /dev/null +++ a/src/main/java/com/objecteye/utils/ApplicationContextUtil.java @@ -0,0 +1,28 @@ +package com.objecteye.utils; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * @author 作者 + * @version 创建时间:2018年12月10日 下午3:59:50 类说明 获取context对象 + */ +@Component +public class ApplicationContextUtil implements ApplicationContextAware { + private static ApplicationContext applicationContext; + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + public static Object getBean(String beanName) { + return applicationContext.getBean(beanName); + } + + @Override + public void setApplicationContext(ApplicationContext arg0) throws BeansException { + ApplicationContextUtil.applicationContext = arg0; + } +} diff --git b/src/main/java/com/objecteye/utils/CompareDistance.java a/src/main/java/com/objecteye/utils/CompareDistance.java new file mode 100644 index 0000000..6395f00 --- /dev/null +++ a/src/main/java/com/objecteye/utils/CompareDistance.java @@ -0,0 +1,47 @@ +package com.objecteye.utils; + +import org.springframework.stereotype.Component; + +@Component +public class CompareDistance { + /** + * 求两个double[]数组的欧式距离 + * + * @param vector1 数组1 + * @param distance 归一化之后的距离 + * @param vector2 数组2 + * @param distance1 归一化之后的距离 + * @return 距离 + */ + public double simDistance(double[] vector1, double distance, double[] vector2, double distance1) { + double score = 0; + for (int i = 0; i < vector1.length; i++) { + score += vector1[i] * vector2[i]; + } + score = score / (distance * distance1); + return score < 0 ? 0 : score; + } + + /** + * 数组归一化之后的距离 + * + * @param vector1 数组 + * @return 归一化之后的距离 + */ + public double getDistance(double[] vector1) { + double distance = 0; + double maxa = 0; + for (int j = 0; j < vector1.length; j++) { + if (vector1[j] > maxa) { + maxa = vector1[j]; + } + } + for (int j = 0; j < vector1.length; j++) { + vector1[j] = (vector1[j] / maxa); + distance += vector1[j] * vector1[j]; +// distance += (vector1[j] / maxa) * (vector1[j] / maxa); + } + return Math.sqrt(distance); + } + +} diff --git b/src/main/java/com/objecteye/utils/CustomAssert.java a/src/main/java/com/objecteye/utils/CustomAssert.java new file mode 100644 index 0000000..184687e --- /dev/null +++ a/src/main/java/com/objecteye/utils/CustomAssert.java @@ -0,0 +1,44 @@ +package com.objecteye.utils; + +import com.objecteye.exception.CustomXException; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Map; + +public class CustomAssert extends Assert { + + + public static void checkHeader(String header) { + if (!header.equals("application/json;charset=UTF-8")) { + throw new CustomXException(CustomInfoCollections.REQUEST_HEADER_CONTENT_ERROR.getMsg(), + CustomInfoCollections.REQUEST_HEADER_CONTENT_ERROR.getCode()); + } + } + + public static void checkField(Map map, String[] keys) { + for (String key : keys) { + if (map.get(key) == null) { + throw new CustomXException(CustomInfoCollections.REQUEST_BODY_FIELD_INCOMPLETE.getMsg(), + CustomInfoCollections.REQUEST_BODY_FIELD_INCOMPLETE.getCode()); + } + } + } + + public static void checkSimpleMapParam(Map map, String[] keys) { + for (String key : keys) { + if (StringUtils.isEmpty(map.get(key))) { + throw new CustomXException(CustomInfoCollections.REQUEST_BODY_IS_EMPTY.getMsg(), + CustomInfoCollections.REQUEST_BODY_IS_EMPTY.getCode()); + } + } + } + + public static void checkFileNull(MultipartFile file) { + if (null == file) { + throw new CustomXException(CustomInfoCollections.IMAGE_PARSE_EXCEPTION.getMsg(), + CustomInfoCollections.IMAGE_PARSE_EXCEPTION.getCode()); + } + } +} diff --git b/src/main/java/com/objecteye/utils/CustomInfoCollections.java a/src/main/java/com/objecteye/utils/CustomInfoCollections.java new file mode 100644 index 0000000..d6028c7 --- /dev/null +++ a/src/main/java/com/objecteye/utils/CustomInfoCollections.java @@ -0,0 +1,83 @@ +package com.objecteye.utils; + +public enum CustomInfoCollections { + CREATE_FACE_LIB_SUCCESS("人像库创建成功", "000"), + UPDATE_FACE_LIB_INFO_SUCCESS("人像库修改成功", "000"), + REMOVE_FACE_LIB_SUCCESS("人像库删除成功", "000"), + VIEW_FACE_LIB_SUCCESS("人像库查看成功", "000"), + FACE_DETECT_SUCCESS("人像检测成功", "000"), + FACE_EXTRACT_SUCCESS("人像建模成功", "000"), + FACE_1V1_FEATURE_SUCCESS("人像特征1V1成功", "000"), + FACE_1V1_FEATURE_FAILED("人像特征1V1失败", "500"), + FACE_1V1_IMAGE_SUCCESS("人像1V1成功", "000"), + FACE_1V1_IMAGE_FAILED("人像1V1失败", "500"), + SEARCH_GUID_BY_TIME_SUCCESS("查询成功", "000"), + IMAGE_QUALITY_SUCCESS("人脸图像质量评分成功", "000"), + SEARCH_FACE_1VN_SUCCESS("图片1:N比对成功", "000"), + SEARCH_FEATURE_1VN_SUCCESS("特征1:N比对成功", "000"), + ALL_FEATURE_TO_DB_SUCCESS("入库成功", "000"), + PROCESS_FINISHED("处理完成", "000"), + SUCCESS("成功", "000"), + DEL_CHARACT_BATCH_SUCCESS("批量特征值删除成功", "000"), + DEL_CHARACT_BY_LIBID_SUCCESS("已成功删除整库特征", "000"), + IMAGE_DOWNLOAD_FAILED("图片下载失败", "5"), + REQUEST_METHOD_NOT_SUPPORT("请求方法不支持,只支持POST请求", "120"), + NO_GUID_IN_THIS_SCOPE("该时间段内查询无guid", "125"), + UPDATE_FEATURE_VEC_FAILED("特征值修改失败", "209"), + GUID_BASED_FEATURE_VEC_NOT_EXIST("根据guid查询的特征值不存在", "210"), + IMAGE_QUALITY_SCORE_FAILED("图片质量评分失败", "203"), + SEND_CHARACT_BATCH_FAILED("批量特征值分发失败", "206"), + DEL_CHARACT_BATCH_FAILED("批量特征值删除失败", "207"), + DEL_CHARACT_BY_LIBID_FAILED("删除整库特征值失败", "208"), + SEARCH_FEATURE_1VN_FAILED("特征1:N比对失败", "301"), + FACE_ANGLE_TOO_LARGE("人脸角度过大", "307.01"), + BAD_FACE_IMAGE_QUALITY("人脸图像质量不达标", "307.02"), + REQUEST_HEADER_CONTENT_ERROR("请求头内容错误", "311"), + IMAGE_URL_IS_EMPTY("传入的图像URL为空字符串", "314"), + REQUEST_FEATURE_LENGTH_ERROR("请求体特征长度错误", "315"), + BATCH_LIBID_INCONSISTENT("批量操作时的libid不一致", "317"), + JSON_IN_REDIS_ERROR("redis中数据的格式错误", "318"), + IMAGE_TYPE_IS_EMPTY("传入的图像类型为空字符串", "319"), + DETECT_MODE_IS_ERROR("检测模式输入错误", "320"), + PAGE_NOT_FOUND_404("访问的api地址不存在", "404"), + PARTION_EXCEPTION("异常", "501"), + + + /** + * 错误码 + */ + REQUEST_LOSS_HEADER("请求头缺失", "101"), + REQUEST_BODY_NOT_JSON("请求体内容不符合json格式", "102"), + REQUEST_BODY_FIELD_INCOMPLETE("请求体缺少字段", "103"), + IMAGE_DATA_IS_EMPTY("传入的图像数据为空字符串", "104"), + REQUEST_BODY_IS_ERROR("请求体参数不符合标准", "105"), + REQUEST_BODY_IS_EMPTY("请求体非空参数为空", "106"), + + IMAGE_PARSE_EXCEPTION("图片非64位编码", "201"), + MAGE_URL_EXCEPTION("网络图片无法解析", "202"), + DETECT_FACE_NOT_FOUND("未检测到人脸", "301"), + FACE_DONT_MEET_STANDARDS("人脸图像不符合标准(角度、质量等)", "302"), + FACE_1VN_EXTRACT_FEATURE_FAILED("特征值提取失败", "304"), + SEARCH_FACE_1VN_FAILED("图片1:N比对失败", "303"), + DETECT_NOT_FOUND("检测失败", "305"), + CREATE_FACE_LIB_EXISTED("创建失败,人像库已存在", "401"), + LIBID_NOT_EXIST("操作失败,libid不存在", "402"), + ADD_FEATURE_TO_DB_FAILED("入库失败", "403"), + SYSTEM_EXCEPTION("系统错误", "500"); + + private String msg; + private String code; + + CustomInfoCollections(String msg, String code) { + this.msg = msg; + this.code = code; + } + + public String getMsg() { + return msg; + } + + public String getCode() { + return code; + } +} diff --git b/src/main/java/com/objecteye/utils/CustomParamCollections.java a/src/main/java/com/objecteye/utils/CustomParamCollections.java new file mode 100644 index 0000000..a1c87e4 --- /dev/null +++ a/src/main/java/com/objecteye/utils/CustomParamCollections.java @@ -0,0 +1,29 @@ +package com.objecteye.utils; + +public class CustomParamCollections { + + + public final static String[] FACE_DETECT_REQUEST_PARAM = {"request_id", "image"}; + + public final static String[] FACE_DETECT_REQUEST_FILE = {"request_id"}; + + public final static String[] FACE_1V1_IMAGE_REQUEST_PARAM = {"request_id", "image1", "image1_type", "image2", "image2_type"}; + + public final static String[] ADD_DB_SINGLE_PARAM = {"request_id", "image", "face_id", "is_filter"}; + + public final static String[] VEHICLE_SINGLE_PARAM = {"request_id", "image"}; + + public final static String[] ADD_DB_SINGLE_File = {"request_id", "face_id", "is_filter"}; + + public final static String[] SEARCH_FEATURE_VEC_BY_ID_REQUEST_PARAM = {"data"}; + + public final static String[] SEARCH_FACE_1VN_REQUEST_PARAM = {"request_id", "image", "threshold", "is_live"}; + + public final static String[] SEARCH_FACE_1VN_REQUEST_FILE = {"request_id", "threshold", "is_live"}; + + public final static String[] SEARCH_FEATURE_VEC_1VN_REQUEST_PARAM = {"feature", "top", "libids", "threshold"}; + + public final static String[] IMPORT_FEATURE_PARAM = {"importPath,request_id,image_type,libid"}; + + +} diff --git b/src/main/java/com/objecteye/utils/FaceUtils.java a/src/main/java/com/objecteye/utils/FaceUtils.java new file mode 100644 index 0000000..139f172 --- /dev/null +++ a/src/main/java/com/objecteye/utils/FaceUtils.java @@ -0,0 +1,100 @@ +package com.objecteye.utils; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.pojo.FaceInfoParam; +import com.objecteye.pojo.FacePosition; +import org.springframework.stereotype.Component; + +/** + * 人的工具类 + */ +@Component +public class FaceUtils { + + //封装Human类 + public FaceInfoParam rabbitToFaceInfo(JSONObject VehicleFaceJson, String id) { + FaceInfoParam faceInfoParam = new FaceInfoParam(); + +// JSONObject VehicleFaceJson = JSONObject.parseObject(rabbitInfo); + JSONObject faceJson = VehicleFaceJson.containsKey("faceInfoParam") ? VehicleFaceJson.getJSONObject("faceInfoParam") : null; + if (faceJson != null) { +// String id; //人像id +// faceInfoParam.setId(id);//因为从图片中提取到的人像没有id + +// String mattingData; //抠图的base64 + String mattingData = faceJson.containsKey("mattingData") ? faceJson.getString("mattingData") : null; + faceInfoParam.setMattingData(mattingData); + + JSONObject faceDetectInfoParam = faceJson.containsKey("faceDetectInfoParam") ? faceJson.getJSONObject("faceDetectInfoParam") : null; + if (faceDetectInfoParam != null) { + // FacePosition facePosition; //脸部位置 + JSONObject face_position = faceDetectInfoParam.containsKey("face_position") ? faceDetectInfoParam.getJSONObject("face_position") : null; + FacePosition facePosition = null; + if (face_position != null) { + facePosition = new FacePosition(); + facePosition.setLeft(face_position.containsKey("left") ? face_position.getInteger("left") : null); + facePosition.setTop(face_position.containsKey("top") ? face_position.getInteger("top") : null); + facePosition.setWidth(face_position.containsKey("width") ? face_position.getInteger("width") : null); + facePosition.setHeigth(face_position.containsKey("height") ? face_position.getInteger("height") : null); + } + faceInfoParam.setFacePosition(facePosition); + +// float facePosScore; //人脸框置信度 + float face_pos_score = faceDetectInfoParam.containsKey("face_pos_score") ? faceDetectInfoParam.getFloat("face_pos_score") : 0L; + faceInfoParam.setFacePosScore(face_pos_score); + +// Integer quality; //质量评价 + int quality = faceDetectInfoParam.containsKey("quality") ? faceDetectInfoParam.getInteger("quality") : 0; + faceInfoParam.setQuality(quality); + +// Integer clarity; //清晰度 0 - 100 + int clarity = faceDetectInfoParam.containsKey("clarity") ? faceDetectInfoParam.getInteger("clarity") : 0; + faceInfoParam.setClarity(clarity); + +// Integer brightness; //亮度 0 - 255 + int brightness = faceDetectInfoParam.containsKey("brightness") ? faceDetectInfoParam.getInteger("brightness") : 0; + faceInfoParam.setBrightness(brightness); + +// float roll; //姿态角--float + float roll = faceDetectInfoParam.containsKey("roll") ? faceDetectInfoParam.getFloat("roll") : 0L; + faceInfoParam.setRoll(roll); + +// float yaw; //姿态角--float + float yaw = faceDetectInfoParam.containsKey("yaw") ? faceDetectInfoParam.getFloat("yaw") : 0L; + faceInfoParam.setYaw(yaw); + +// float pitch; //姿态角--float + float pitch = faceDetectInfoParam.containsKey("pitch") ? faceDetectInfoParam.getFloat("pitch") : 0L; + faceInfoParam.setPitch(pitch); + +// float score; //人脸置信度-float + float score = faceDetectInfoParam.containsKey("score") ? faceDetectInfoParam.getFloat("score") : 0L; + faceInfoParam.setScore(score); + } + + // float[] fea; //人脸特征值 512位 + JSONArray feaJsonArr = faceJson.containsKey("fea") ? faceJson.getJSONArray("fea") : null; + float[] fea = null; + if (feaJsonArr != null && feaJsonArr.size() == 512) { + fea = new float[512]; + for (int i = 0; i < 512; i++) { + fea[i] = feaJsonArr.getFloat(i); + } + } + faceInfoParam.setFea(fea); + +// String retrieveKey; //1vN检索key值 + String retrieveKey = faceJson.containsKey("retrieveKey") ? faceJson.getString("retrieveKey") : null; + faceInfoParam.setRetrieveKey(retrieveKey); + + System.out.println("=================="); + +// Integer label; //聚类下标 + int label = faceJson.containsKey("label") ? faceJson.getInteger("label") : 0; + faceInfoParam.setLabel(label); + } + return faceInfoParam; + } + +} diff --git b/src/main/java/com/objecteye/utils/FileUtils.java a/src/main/java/com/objecteye/utils/FileUtils.java new file mode 100644 index 0000000..4a30123 --- /dev/null +++ a/src/main/java/com/objecteye/utils/FileUtils.java @@ -0,0 +1,34 @@ +package com.objecteye.utils; + + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.InputStream; + +public class FileUtils { + + public static void copyFile(String oldPath, String newPath) { + try { + int bytesum = 0; + int byteread = 0; + File oldfile = new File(oldPath); + if (oldfile.exists()) { + InputStream inStream = new FileInputStream(oldPath); + FileOutputStream fs = new FileOutputStream(newPath); + byte[] buffer = new byte[1444]; + int length; + while ((byteread = inStream.read(buffer)) != -1) { + bytesum += byteread; + System.out.println(bytesum); + fs.write(buffer, 0, byteread); + } + inStream.close(); + } + } catch (Exception e) { + System.out.println("复制单个文件操作出错"); + e.printStackTrace(); + } + } + +} diff --git b/src/main/java/com/objecteye/utils/FtpUtil.java a/src/main/java/com/objecteye/utils/FtpUtil.java new file mode 100644 index 0000000..d706a51 --- /dev/null +++ a/src/main/java/com/objecteye/utils/FtpUtil.java @@ -0,0 +1,52 @@ +package com.objecteye.utils; + +import org.apache.commons.net.ftp.FTP; +import org.apache.commons.net.ftp.FTPClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.net.SocketException; +import java.nio.charset.Charset; + +@Component +public class FtpUtil { + + private static final Logger log = LoggerFactory.getLogger(FtpUtil.class); + + @Value("${ftp.username}") + private String userName; + + @Value("${ftp.password}") + private String passWord; + + @Value("${ftp.host}") + private String ip; + + @Value("${ftp.port}") + private int port; + + private FTPClient ftpClient = new FTPClient(); + + + public FTPClient connect() { + try { + if (!ftpClient.isConnected()) { + + ftpClient.connect(ip, port); + ftpClient.login(userName, passWord); + ftpClient.setCharset(Charset.forName("UTF-8")); + ftpClient.setControlEncoding("UTF-8"); + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + } + return ftpClient; + } catch (SocketException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } +} diff --git b/src/main/java/com/objecteye/utils/GlobalUtil.java a/src/main/java/com/objecteye/utils/GlobalUtil.java new file mode 100644 index 0000000..a4a4776 --- /dev/null +++ a/src/main/java/com/objecteye/utils/GlobalUtil.java @@ -0,0 +1,464 @@ +package com.objecteye.utils; + +import com.objecteye.exception.CustomXException; +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.entity.mime.content.FileBody; +import org.apache.http.entity.mime.content.StringBody; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.boot.system.ApplicationHome; +import sun.misc.BASE64Decoder; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.awt.image.ComponentSampleModel; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.regex.Pattern; + +public class GlobalUtil { + private static Logger logger = LoggerFactory.getLogger(GlobalUtil.class); + + public final static String IPWITHDEPLOYLIST = "IpWithDeployList"; + public final static String EQUIPMENTIPANDID = "equipmentIpAndId"; + public final static String PREVIEWIPLISTLIST = "previewIpList"; + public final static String ALARMMSG = "alarmMsg"; + public final static String DEPLOYIDANDENDTIME = "deployIdAndTime"; + + public final static String COMMON_HEADER_CONTENT_TYPE = "application/json;charset=UTF-8"; + + /** + * redis中保存车辆特征值归一化距离信息的key + */ + public final static String VEHICLE_FEATURE_DISTANCE = "vehicleFeatureDistance"; + /** + * redis中保存车辆特征值信息的key + */ + public final static String VEHICLE_FEATURE = "vehicleFeature"; + + /** + * redis中保存违规信息的主键 + */ + public final static String FORBIDDEN_TASK = "forbidden_task"; + + /** + * 布控报警模块 -redis key值-任务开始时间 + */ + public final static String DEPLOYID_STATRTIME = "deployIdAndStartTime"; + + /** + * 布控报警模块 -redis key值-布控库id + */ + public final static String DEPLOY_LIB = "deployLib"; + /** + * 布控报警模块 -redis key值-布控类型 + */ + public final static String DEPLOY_TYPE = "deployType"; + /** + * 布控报警模块 -redis key值-车牌信息 + */ + public final static String DEPLOY_PLATE_NUM = "deployPlateNum"; + /** + * 布控报警模块 -redis 布控任务id-阈值 + */ + public final static String DEPLOYTHRESLD = "deployThresld"; + + + public final static int FACE_FEATURE_SIZE = 512; + + public final static int MAX_FACE_COUNT = 20; + + public final static int PARAM_SIZE = 62; + + public final static int FACIALFEAPOINTSIZE = 25; + + // public final static String FACE_DB_DIR = System.getProperty("user.home") + File.separator + "dbFiles" + File.separator; + + public final static String FACE_DB_DIR = dbPath() + File.separator; + + public final static String FACE_DB_SUFFIX = ".db"; + + public final static String IMAGE_DATA_TYPE = "just using imageBase64"; + + public final static String IMAGE_URL_TYPE = "just using imageUrl"; + + public final static String[] METRICS_NAMES_COUNT = {"system.cpu.count", "jvm.threads.daemon", "tomcat.threads.current"}; + + public final static String METRICS_PROCESS_START_TIME = "process.start.time"; + + public final static String METRICS_PROCESS_UP_TIME = "process.uptime"; + + + public final static String[] METRICS_NAMES_MEMORY = {"jvm.memory.max", "jvm.memory.used"}; + + public final static String[] METRICS_NAMES_PERCENT = {"process.cpu.usage", "system.cpu.usage"}; + + public final static String LIBRARY_PREFIX = "LIBRARY_DB_"; + + public final static String LIBRARY_PREFIX1 = "LIBRARY_HANDLE_"; + + public final static String LIBRARY_INFO_PREFIX = "LIBRARY_INFO_"; + + public static BufferedImage decodeBASE64ToBufferedImge(String imagebase64) { + + BufferedImage bufferedImage = null; + try { + byte[] bytes = Base64.getDecoder().decode(imagebase64); + ByteArrayInputStream stream = new ByteArrayInputStream(bytes); + bufferedImage = ImageIO.read(stream); + } catch (IOException e) { + logger.error("method:decodeBASE64ToBufferedImge,info:decodeBASE64ToBufferedImge failed,IOException"); + } + return bufferedImage; + } + + public static byte[] getMatrixBGR(BufferedImage image) { + if (null == image) + throw new NullPointerException(); + byte[] matrixBGR; + if (isBGR3Byte(image)) { + matrixBGR = (byte[]) image.getData().getDataElements(0, 0, image.getWidth(), image.getHeight(), null); + } else { + int intrgb[] = image.getRGB(0, 0, image.getWidth(), image.getHeight(), null, 0, image.getWidth()); + matrixBGR = new byte[image.getWidth() * image.getHeight() * 3]; + for (int i = 0, j = 0; i < intrgb.length; ++i, j += 3) { + matrixBGR[j] = (byte) (intrgb[i] & 0xff); + matrixBGR[j + 1] = (byte) ((intrgb[i] >> 8) & 0xff); + matrixBGR[j + 2] = (byte) ((intrgb[i] >> 16) & 0xff); + } + } + return matrixBGR; + } + + public static boolean isBGR3Byte(BufferedImage image) { + return equalBandOffsetWith3Byte(image, new int[]{0, 1, 2}); + } + + private static boolean equalBandOffsetWith3Byte(BufferedImage image, int[] bandOffset) { + if (image.getType() == BufferedImage.TYPE_3BYTE_BGR) { + if (image.getData().getSampleModel() instanceof ComponentSampleModel) { + ComponentSampleModel sampleModel = (ComponentSampleModel) image.getData().getSampleModel(); + if (Arrays.equals(sampleModel.getBandOffsets(), bandOffset)) { + return true; + } + } + + } + return false; + } + + public static BufferedImage imageUrlToBufferedImge(String imageUrl) throws IOException { + BufferedImage bufferedImage = null; + HttpURLConnection httpUrl = null; + URL url = null; + InputStream in = null; + try { + url = new URL(imageUrl); + httpUrl = (HttpURLConnection) url.openConnection(); + httpUrl.connect(); + in = httpUrl.getInputStream(); + bufferedImage = ImageIO.read(in); + } finally { + if (in != null) { + try { + in.close(); + httpUrl.disconnect(); + } catch (IOException e) { + logger.error("method:imageUrlToBufferedImge,info:imageUrlToBufferedImge failed,IOException"); + e.printStackTrace(); + } + } + } + return bufferedImage; + } + + public static boolean checkBase64(String imageBase64) { + String base64Pattern = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$"; + if (!Pattern.matches(base64Pattern, imageBase64)) { + return false; + } + return true; + } + + public static String featureToString(float[] feature) { + StringBuffer sb = new StringBuffer(); + sb.append("["); + for (int l = 0; l < feature.length; l++) { + sb.append(feature[l]); + if (l < feature.length - 1) { + sb.append(","); + } + } + sb.append("]"); + return sb.toString(); + } + + public static float[] featureToFloat(String featureStr) { + float[] feature = new float[GlobalUtil.FACE_FEATURE_SIZE]; + String[] feaArray = featureStr.trim().replace("[", "").replace("]", "").split(","); + if (feaArray.length != GlobalUtil.FACE_FEATURE_SIZE) { + Map re = new HashMap<>(16); + re.put("result", new ArrayList<>()); + throw new CustomXException(CustomInfoCollections.REQUEST_FEATURE_LENGTH_ERROR.getMsg(), CustomInfoCollections.REQUEST_FEATURE_LENGTH_ERROR.getCode(), re); + } + for (int i = 0; i < feaArray.length; i++) { + feature[i] = Float.parseFloat(feaArray[i]); + } + return feature; + } + + public static Integer getTimeStamp() { + long timeStampSec = System.currentTimeMillis() / 1000; + String timestamp = String.format("%010d", timeStampSec); + return Integer.valueOf(timestamp); + } + + public static String timeStampToTime(String timeStamp) { + String time; + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + time = simpleDateFormat.format(new Date(Long.valueOf(timeStamp))); + return time; + } + + public static float[] chooseMaxFaceRect(float[] rect, int faceCount) { + int index = chooseMaxFaceIndex(rect, faceCount); + for (int k = 0; k < GlobalUtil.PARAM_SIZE; k++) { + rect[k] = rect[index * GlobalUtil.PARAM_SIZE + k]; + } + return rect; + } + + public static int chooseMaxFaceIndex(float[] rect, int faceCount) { + int index = 0; + float max = rect[0 * GlobalUtil.PARAM_SIZE + 2] * rect[0 * GlobalUtil.PARAM_SIZE + 3]; + for (int i = 1; i < faceCount; i++) { + if (max < rect[i * GlobalUtil.PARAM_SIZE + 2] * rect[i * GlobalUtil.PARAM_SIZE + 3]) { + index = i; + max = rect[i * GlobalUtil.PARAM_SIZE + 2] * rect[i * GlobalUtil.PARAM_SIZE + 3]; + } + } + return index; + } + + public static String dbPath2() { + ApplicationHome home = new ApplicationHome(GlobalUtil.class); + File jarFile = home.getSource(); + //File parentFile = jarFile.getParentFile().getParentFile(); + File parentFile = jarFile.getParentFile(); + return parentFile.toString(); + } + + public static String dbPath() { + ApplicationHome home = new ApplicationHome(GlobalUtil.class); + File jarFile = home.getSource(); + File parentFile = jarFile.getParentFile().getParentFile(); + //File parentFile = jarFile.getParentFile(); + return parentFile.toString(); + } + + public static String dbPath1() { + ApplicationHome home = new ApplicationHome(GlobalUtil.class); + File jarFile = home.getSource(); + File parentFile = jarFile.getParentFile().getParentFile(); + //File parentFile = jarFile.getParentFile(); + return parentFile.toString(); + } + + public static BufferedImage downUrl(String url) { + BufferedImage bufferedImage = null; + try { + bufferedImage = GlobalUtil.imageUrlToBufferedImge(url); + } catch (IOException e) { + throw new CustomXException(CustomInfoCollections.IMAGE_DOWNLOAD_FAILED.getMsg(), CustomInfoCollections.IMAGE_DOWNLOAD_FAILED.getCode()); + } + if (bufferedImage == null) { + throw new CustomXException(CustomInfoCollections.IMAGE_DOWNLOAD_FAILED.getMsg(), CustomInfoCollections.IMAGE_DOWNLOAD_FAILED.getCode()); + } + return bufferedImage; + } + + public static BufferedImage base642BufferedImage(String base64) { + if (!GlobalUtil.checkBase64(base64)) { + Map ret = new HashMap<>(); + ret.put("result", new ArrayList<>()); + throw new CustomXException(CustomInfoCollections.IMAGE_PARSE_EXCEPTION.getMsg(), CustomInfoCollections.IMAGE_PARSE_EXCEPTION.getCode(), ret); + } + return GlobalUtil.decodeBASE64ToBufferedImge(base64); + } + + public static Map txt2String(File file) { + StringBuilder result = new StringBuilder(); + Map map = new HashMap(); + float[] floats = null; + try { + BufferedReader br = new BufferedReader(new FileReader(file)); + String s = null; + while ((s = br.readLine()) != null) { + String[] split = s.split(" "); + if (split.length == 513) { + floats = new float[512]; + for (int i = 1; i < 513; i++) { + floats[i - 1] = Float.parseFloat(split[i]); + } + String id = split[0]; + map.put(id, floats); + } else { + logger.error("格式错误"); + } + } + br.close(); + } catch (Exception e) { + e.printStackTrace(); + } + return map; + } + + public static boolean base64StrToImage(String imgStr, String path) { + if (imgStr == null) + return false; + BASE64Decoder decoder = new BASE64Decoder(); + try { + // 解密 + byte[] b = decoder.decodeBuffer(imgStr); + // 处理数据 + for (int i = 0; i < b.length; ++i) { + if (b[i] < 0) { + b[i] += 256; + } + } + //文件夹不存在则自动创建 + File tempFile = new File(path); + if (!tempFile.getParentFile().exists()) { + tempFile.getParentFile().mkdirs(); + } + OutputStream out = new FileOutputStream(tempFile); + out.write(b); + out.flush(); + out.close(); + return true; + } catch (Exception e) { + return false; + } + } + + public static void url2Pic(String _url, String path) throws Exception { + try { + URL url = new URL(_url); + URLConnection con = url.openConnection(); + con.setConnectTimeout(5000); + InputStream is = con.getInputStream(); + byte[] bs = new byte[1024]; + int len; + File sf = new File(path); + OutputStream os = new FileOutputStream(sf); + while ((len = is.read(bs)) != -1) { + os.write(bs, 0, len); + } + os.close(); + is.close(); + } catch (IOException e) { + } + } + + public static String httpExecute(String url, File file) { + + CloseableHttpResponse response = null; + String resultString = ""; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + + HttpPost httpPost = new HttpPost(url); + + FileBody fileBody = new FileBody(file, org.apache.http.entity.ContentType.create("image/png", Consts.UTF_8)); + + HttpEntity build = MultipartEntityBuilder.create() + .addPart("TPXX", fileBody) + .build(); + httpPost.setEntity(build); + response = httpClient.execute(httpPost); + resultString = EntityUtils.toString(response.getEntity(), "utf-8"); + + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return resultString; + } + + public static String httpExecute(String url, File file, String face_id) { + + CloseableHttpResponse response = null; + String resultString = ""; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + + HttpPost httpPost = new HttpPost(url); + + FileBody fileBody = new FileBody(file, org.apache.http.entity.ContentType.create("image/png", Consts.UTF_8)); + + HttpEntity build = MultipartEntityBuilder.create() + .addPart("image", fileBody) + .addPart("face_id", new StringBody(face_id)) + .build(); + httpPost.setEntity(build); + response = httpClient.execute(httpPost); + resultString = EntityUtils.toString(response.getEntity(), "utf-8"); + + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + response.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return resultString; + } + + /** + * 对字节数组字符串进行Base64解码并生成图片 + * + * @param imgStr + * @param imgFilePath + * @return + */ + public static boolean generateImage(String imgStr, String imgFilePath) { + if (imgStr == null) { + return false; + } + BASE64Decoder decoder = new BASE64Decoder(); + try { + byte[] bytes = decoder.decodeBuffer(imgStr); + for (int i = 0; i < bytes.length; ++i) { + if (bytes[i] < 0) { + bytes[i] += 256; + } + } + OutputStream out = new FileOutputStream(imgFilePath); + out.write(bytes); + out.flush(); + out.close(); + return true; + } catch (Exception e) { + return false; + } + } + +} diff --git b/src/main/java/com/objecteye/utils/HttpClientUtils.java a/src/main/java/com/objecteye/utils/HttpClientUtils.java new file mode 100644 index 0000000..46a02bb --- /dev/null +++ a/src/main/java/com/objecteye/utils/HttpClientUtils.java @@ -0,0 +1,157 @@ +package com.objecteye.utils; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.MultipartFile; +import sun.misc.BASE64Decoder; +import sun.misc.BASE64Encoder; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +@Component +public class HttpClientUtils { + @Value("${requestUrl}") + private String requestUrl; + @Value("${requestPath}") + private String picPath; + @Autowired + private VehicleEngine vehicleEngine; + + public String VehicleAnalysis(String TPXX) { + String result = VehicleAnalysis("", TPXX, "", ""); + return result; + + } + + //通过图片路径获取图片中车辆数据 + public String VehicleAnalysis(String GCXH, String TPXX, String MRHPT, String HPHM) { + + RestTemplate restTemplate = new RestTemplate(); +// HttpHeaders headers = new HttpHeaders(); +// headers.add("Content-Type", "application/json;charset=UTF-8");//标准Header +// HttpEntity httpEntity = new HttpEntity<>(headers); + + Map uriVariables = new HashMap<>(); + uriVariables.put("GCXH", GCXH); + if (TPXX != null || TPXX.length() > 0) { + uriVariables.put("TPXX", TPXX); + } else { + uriVariables.put("TPXX", "/software/sy/vehicle-socket/c++/image/test.jpg"); + } + uriVariables.put("MRHPT", MRHPT); + uriVariables.put("HPHM", HPHM); + ResponseEntity responseEntity = restTemplate.postForEntity(requestUrl, uriVariables, String.class); + String body = responseEntity.getBody(); + return body; + } + + //获取临时上传的图片数据信息 + public String VehicleAnalysisTmp(MultipartFile TPXX) { + String analysis = VehicleAnalysisTmp("", TPXX, "", ""); + return analysis; + } + + //获取临时上传的图片数据信息 + public String VehicleAnalysisTmp(String GCXH, MultipartFile TPXX, String MRHPT, String HPHM) { + String fileName = TPXX.getOriginalFilename();//name +// String tempFilePath = System.getProperty("java.io.tmpdir") + "/" + fileName; + String tempFilePath = null; + if (picPath.endsWith("/") || picPath.endsWith("\\")) { + tempFilePath = picPath + fileName; + } else { + tempFilePath = picPath + "/" + fileName; + } + + File tempFile = new File(tempFilePath); + try { + TPXX.transferTo(tempFile);//生成临时文件 + } catch (IOException e) { + e.printStackTrace(); + } + + String analysis = VehicleAnalysis(GCXH, tempFile.getAbsolutePath(), MRHPT, HPHM); + + tempFile.delete();//删除临时文件文件 + return analysis; + } + + public String MultipartFileToBase64(MultipartFile file) throws Exception { + BASE64Encoder base64Encoder = new BASE64Encoder(); + String base64EncoderImg = file.getOriginalFilename() + "," + base64Encoder.encode(file.getBytes()); + String[] split = base64EncoderImg.split(","); + String split1 = split[1]; + String base64Value = split1.replaceAll("\r\n|\r|\n", ""); + return base64Value; + } + + //将multipart文件转成车型对象 + public String multiToVehicle(MultipartFile picfile) { + String vehicleInfoByBase64 = null; + try { + String base64 = MultipartFileToBase64(picfile); + vehicleInfoByBase64 = vehicleEngine.getVehicleInfoByBase64(base64); + } catch (Exception e) { + e.printStackTrace(); + } + return vehicleInfoByBase64; + } + + //将multipart文件转成车型对象 + public String multiToHumanVehicle(MultipartFile picfile) { + String vehicleInfoByBase64 = null; + try { + String base64 = MultipartFileToBase64(picfile); + vehicleInfoByBase64 = vehicleEngine.getHumanVehicleInfoByBase64(base64); + } catch (Exception e) { + e.printStackTrace(); + } + return vehicleInfoByBase64; + } + + /** + * @param base64String base64码字符串 + **/ + public BufferedImage changeBase64StringtoImage(String base64String) { + BASE64Decoder decoder = new BASE64Decoder(); + BufferedImage buffer = null; + try { + byte[] bytes = decoder.decodeBuffer(base64String); + ByteArrayInputStream bais = new ByteArrayInputStream(bytes); + buffer = ImageIO.read(bais); + } catch (IOException e) { + e.printStackTrace(); + } + return buffer; + } + + public String multiToPeople(MultipartFile picfile) { + String peopleInfoByBase64 = null; + try { + String base64 = MultipartFileToBase64(picfile); + peopleInfoByBase64 = vehicleEngine.getPeopleInfoByBase64(base64); + } catch (Exception e) { + e.printStackTrace(); + } + return peopleInfoByBase64; + } +} + + + + + + + + + + + diff --git b/src/main/java/com/objecteye/utils/JwtTokenUtil.java a/src/main/java/com/objecteye/utils/JwtTokenUtil.java new file mode 100644 index 0000000..6905a51 --- /dev/null +++ a/src/main/java/com/objecteye/utils/JwtTokenUtil.java @@ -0,0 +1,136 @@ +package com.objecteye.utils; + +import com.objecteye.entity.SyUser; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * JwtToken生成的工具类 + * JWT token的格式:header.payload.signature + * header的格式(算法、token的类型): + * {"alg": "HS512","typ": "JWT"} + * payload的格式(用户名、创建时间、生成时间): + * {"sub":"wang","created":1489079981393,"exp":1489684781} + * signature的生成算法: + * HMACSHA512(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) + */ +@Component +public class JwtTokenUtil { + private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); + private static final String CLAIM_KEY_USERNAME = "sub"; + private static final String CLAIM_KEY_CREATED = "created"; + @Value("${jwt.secret}") + private String secret; + @Value("${jwt.expiration}") + private Long expiration; + + /** + * 根据负责生成JWT的token + */ + private String generateToken(Map claims) { + return Jwts.builder() + .setClaims(claims) + .setExpiration(generateExpirationDate()) + .signWith(SignatureAlgorithm.HS512, secret) + .compact(); + } + + /** + * 从token中获取JWT中的负载 + */ + private Claims getClaimsFromToken(String token) { + Claims claims = null; + try { + claims = Jwts.parser() + .setSigningKey(secret) + .parseClaimsJws(token) + .getBody(); + } catch (Exception e) { + LOGGER.info("JWT格式验证失败:{}", token); + } + return claims; + } + + /** + * 生成token的过期时间 + */ + private Date generateExpirationDate() { + return new Date(System.currentTimeMillis() + expiration * 1000); + } + + /** + * 从token中获取登录用户名 + */ + public String getUserNameFromToken(String token) { + String username; + try { + Claims claims = getClaimsFromToken(token); + username = claims.getSubject(); + } catch (Exception e) { + username = null; + } + return username; + } + + /** + * 验证token是否还有效 + * + * @param token 客户端传入的token + * @param userDetails 从数据库中查询出来的用户信息 + */ + public boolean validateToken(String token, SyUser userDetails) { + String username = getUserNameFromToken(token); + return username.equals(userDetails.getUsername()) && !isTokenExpired(token); + } + + /** + * 判断token是否已经失效 + */ + private boolean isTokenExpired(String token) { + Date expiredDate = getExpiredDateFromToken(token); + return expiredDate.before(new Date()); + } + + /** + * 从token中获取过期时间 + */ + private Date getExpiredDateFromToken(String token) { + Claims claims = getClaimsFromToken(token); + return claims.getExpiration(); + } + + /** + * 根据用户信息生成token + */ + public String generateToken(SyUser userDetails) { + Map claims = new HashMap<>(); + claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); + claims.put(CLAIM_KEY_CREATED, new Date()); + return generateToken(claims); + } + + /** + * 判断token是否可以被刷新 + */ + public boolean canRefresh(String token) { + return !isTokenExpired(token); + } + + /** + * 刷新token + */ + public String refreshToken(String token) { + Claims claims = getClaimsFromToken(token); + claims.put(CLAIM_KEY_CREATED, new Date()); + return generateToken(claims); + } +} diff --git b/src/main/java/com/objecteye/utils/PreviewUtils.java a/src/main/java/com/objecteye/utils/PreviewUtils.java new file mode 100644 index 0000000..f10e86a --- /dev/null +++ a/src/main/java/com/objecteye/utils/PreviewUtils.java @@ -0,0 +1,142 @@ +package com.objecteye.utils; + +import org.springframework.stereotype.Component; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.concurrent.ConcurrentHashMap; + +/** + * @author 作者 + * @version 创建时间:2018年11月14日 下午5:21:18 类说明 + */ +@Component +public class PreviewUtils { + /* + * rtsp转rtmp指令 + */ + public static String ffmpegTnstructions; + /** + * 存放所有rtmp流对应的process进程 key为rtmp流 value为转流进程 + */ + private static ConcurrentHashMap rtmpAndprocessMaps = new ConcurrentHashMap<>(); + /** + * 存放用户对应的rtmp流 key为用户名 value为rtmp流 + */ + private static ConcurrentHashMap userAndrtmpMaps = new ConcurrentHashMap<>(); + + /** + * rtsp转rtmp 得到rtmp流 + */ + public static String RtspToRtmp(String serverIp, String rtsp, Integer deviceId, String equipmentUserName, + String equipmentPassWord, String equipmentIp, String port) throws InterruptedException { + // 转流成功的rtmp流地址 + String rtmpStr = "rtmp://" + serverIp + ":1935/hls/" + deviceId; + boolean rtmpStrIsVaild = true; + try { + // 先判断rtmp流是否存在 存在拿来直接用 不需要转流 + if (rtmpAndprocessMaps.containsKey(rtmpStr)) { + // 一个用户只能保存一个rtmp流 + /*if (userAndrtmpMaps.containsKey(userName)) { + userAndrtmpMaps.remove(userName); + } + userAndrtmpMaps.put(userName, rtmpStr);*/ + } else { + Process process = null; + if (rtsp.contains("rtsp")) { + ffmpegTnstructions = "ffmpeg -re -stream_loop -1 -rtsp_transport tcp -i " + rtsp + " -vcodec copy -acodec copy -f flv -r 15 -s 1280x720 -an -y " + rtmpStr; + } else { + ffmpegTnstructions = "ffmpeg -re -stream_loop -1 -rtsp_transport tcp -i rtsp://" + equipmentUserName + ":" + equipmentPassWord + "@" + equipmentIp + ":" + port + "/h264/ch1/main/av_stream -vcodec copy -acodec copy -f flv -r 15 -s 1280x720 -an -y rtmp://" + serverIp + ":1935/hls/" + deviceId; + } + //System.out.println("运行代码:"+ffmpegTnstructions); + try { + process = Runtime.getRuntime().exec(ffmpegTnstructions); + rtmpAndprocessMaps.put(rtmpStr, process); + //userAndrtmpMaps.put(userName, rtmpStr); + ManageProcess(process); + Thread.sleep(100); + rtmpStrIsVaild = process.isAlive(); + //System.out.println("转流进程是否在运行:" + rtmpStrIsVaild); + + } catch (IOException e) { + e.printStackTrace(); + } + } + // 将没有用户在调用的线程 关闭 + /*for (String rtmpString : rtmpAndprocessMaps.keySet()) { + if (!userAndrtmpMaps.containsValue(rtmpString)) { + System.out.println("当前转流进程未使用,停止rtsp转rtmp"); + Process detroyPro = rtmpAndprocessMaps.get(rtmpString); + // 先判断进程是否存在 + if (detroyPro.isAlive()) { + detroyPro.destroy(); + } + rtmpAndprocessMaps.remove(rtmpString); + } + }*/ + // 输出当前内存存在的process和rtmp + /*for (String rtmpString : rtmpAndprocessMaps.keySet()) { + System.out.println( + "rtmpAndprocessMaps存在的值key为:" + rtmpString + " value为:" + rtmpAndprocessMaps.get(rtmpString)); + }*/ + // 输出当前内存存在的user和rtmp流 + /*for (String userString : userAndrtmpMaps.keySet()) { + System.out.println( + "userAndrtmpMaps存在的值key为:" + userString + " value为:" + userAndrtmpMaps.get(userString)); + }*/ + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } + if (rtmpStrIsVaild) { + return rtmpStr; + } else { + return null; + } + } + + /* + * 输出缓冲流 ----解决一段时间后实时流卡住的问题 + */ + public static void ManageProcess(Process proc) throws IOException, InterruptedException { + try { + new Thread(new Runnable() { + public void run() { + /// 错误输出 + BufferedReader br2 = null; + InputStreamReader is2 = null; + try { + br2 = new BufferedReader(new InputStreamReader(proc.getErrorStream())); + StringBuilder buf = new StringBuilder(); // 保存输出结果流 + String line2 = null; + while ((line2 = br2.readLine()) != null) { + buf.append(line2); + // 循环等待ffmpeg进程结束 + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (br2 != null) { + try { + br2.close(); + } catch (Exception ex) { + } + } + if (is2 != null) { + try { + is2.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + } + }).start(); + } catch (Exception e) { + // TODO: handle exception + e.printStackTrace(); + } + } +} diff --git b/src/main/java/com/objecteye/utils/RabbbitmqConsumer.java a/src/main/java/com/objecteye/utils/RabbbitmqConsumer.java new file mode 100644 index 0000000..61f8e4f --- /dev/null +++ a/src/main/java/com/objecteye/utils/RabbbitmqConsumer.java @@ -0,0 +1,112 @@ +package com.objecteye.utils; + +import com.alibaba.fastjson.JSON; +import com.objecteye.config.RabbitmqConfig; +import com.objecteye.dao.MongoTemplates; +import com.objecteye.entity.PersonMsg; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.service.DeployService; +import com.objecteye.service.IVehicleViolationsService; +import com.rabbitmq.client.Channel; +import org.springframework.amqp.core.Message; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class RabbbitmqConsumer { + + @Autowired + private RabbitMQVehicleTools rabbitMQVehicleTools; + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private MongoTemplates mongoTemplates; + @Autowired + private RabbitTemplate rabbitTemplate; + @Autowired + private DeployService deployService; + @Autowired + private IVehicleViolationsService vehicleViolationsService; + + @RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_STORE}) + public void receive_store(String msg, Message message, Channel channel) { + try { + List rabbitMQVehicles = rabbitMQVehicleTools.encapsulationRabbitVehicle(msg); + + if (rabbitMQVehicles != null && rabbitMQVehicles.size() > 0) { + + int size = rabbitMQVehicles.size(); + + for (int i = 0; i < size; i++) { + RabbitMQVehicle rabbitMQVehicle = rabbitMQVehicles.get(i); + if (rabbitMQVehicle == null) { + continue; + } + double vehicleWinScore = rabbitMQVehicle.getVehicle_win_score(); + if (vehicleWinScore < 0.7) { + continue; + } + int deviceid = rabbitMQVehicle.getDeviceid(); + RabbitMQVehicle rabbitMQVehicle1 = mongoTemplates.insertData(rabbitMQVehicle); + + String s = JSON.toJSONString(rabbitMQVehicle1); + + redisTemplate.opsForList().leftPush(deviceid, s); + // 车辆的特征值归一化距离保存到redisx + double dbFea = new CompareDistance().getDistance(rabbitMQVehicle1.getVehicle_fea_feature()); + redisTemplate.opsForHash().put(GlobalUtil.VEHICLE_FEATURE_DISTANCE, rabbitMQVehicle1.getId(), dbFea); + redisTemplate.opsForHash().put(GlobalUtil.VEHICLE_FEATURE, rabbitMQVehicle1.getId(), rabbitMQVehicle1.getVehicle_fea_feature()); + String vehicle_plate_hphm = rabbitMQVehicle1.getVehicle_plate_hphm(); + double vehicle_plate_numScore = rabbitMQVehicle1.getVehicle_plate_numScore(); + if (vehicle_plate_numScore > 0.9) { + redisTemplate.opsForHash().put("vehicleFilePlateNumber", vehicle_plate_hphm, s); + } + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.alarm", s); + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.forbidden", s); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_PERSON}) + public void receive_person(String msg, Message message, Channel channel) { + try { + PersonMsg personMsg = JSON.parseObject(msg, PersonMsg.class); + deployService.rabbitMqMsgListener(personMsg); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + @RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_ALARM}) + public void receive_alarm(String msg, Message message, Channel channel) { + try { + RabbitMQVehicle rabbitMqVehicle = JSON.parseObject(msg, RabbitMQVehicle.class); + deployService.rabbitMqMsgListener(rabbitMqVehicle); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @RabbitListener(queues = {RabbitmqConfig.QUEUE_INFORM_FORBIDDEN_TASK}) + public void receive_forbidden(String msg, Message message, Channel channel) { + try { + RabbitMQVehicle rabbitMqVehicle = JSON.parseObject(msg, RabbitMQVehicle.class); + // 车辆违规监听 + vehicleViolationsService.taskListener(rabbitMqVehicle); + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git b/src/main/java/com/objecteye/utils/RabbitMQVehicleTools.java a/src/main/java/com/objecteye/utils/RabbitMQVehicleTools.java new file mode 100644 index 0000000..3b96083 --- /dev/null +++ a/src/main/java/com/objecteye/utils/RabbitMQVehicleTools.java @@ -0,0 +1,808 @@ +package com.objecteye.utils; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.config.RabbitmqConfig; +import com.objecteye.entity.*; +import com.objecteye.pojo.PendantParams; +import com.objecteye.pojo.PlatePlateNumParams; +import com.objecteye.pojo.RabbitMQInfo; +import com.objecteye.pojo.RabbitMQVehicle; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; + +@Component +public class RabbitMQVehicleTools { + + @Value("${picture.snapshotPath}") + private String snapshotPath; + private String snapshotPathNew = "/snapshot/"; + + + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private RelationMappingUtil relationMappingUtil; + @Autowired + private VehicleDetailsUtils vehicleDetailsUtils; + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private RabbitTemplate rabbitTemplate; + @Autowired + private FaceUtils faceUtils; + + @Value("${picture.snapshotPath}") + private String path2; + @Value("${snapshotPrefix}") + private String snapshotPrefix; + + + public SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + private String nullStatus = " "; + + public List encapsulationRabbitVehicle(String msg) { + + List rabbitMQVehicles = new ArrayList<>(); + + UploadVehicleResult uploadVehicleResult = JSON.parseObject(msg, UploadVehicleResult.class); + if (null != uploadVehicleResult) { + long captureTime = uploadVehicleResult.getCaptureTime(); + String picurl = uploadVehicleResult.getImageUrl(); + int deviceId = uploadVehicleResult.getDeviceId(); + String equipmentName = uploadVehicleResult.getEquipmentName(); + String latitude = uploadVehicleResult.getLatitude(); + String longitude = uploadVehicleResult.getLongitude(); + String retrieveKey = null; + String url = null; + + VpInfoParam[] info = uploadVehicleResult.getInfo(); + int length = info.length; + for (int i = 0; i < length; i++) { + String snapshoturl = ""; + VpInfoParam vpInfoParam = info[i]; + VehicleInfoParam vehicleInfoParam = vpInfoParam.getVehicleInfoParam(); + RabbitMQVehicle rabbitMqVehicle = null; + if (null != vehicleInfoParam) { + String s = JSON.toJSONString(vehicleInfoParam); + JSONObject jsonObject = JSONObject.parseObject(s); + rabbitMqVehicle = sdkToOnlyVehicle(jsonObject); + rabbitMqVehicle.setPicurl(picurl); + if (picurl != null) { + int[] vehicle_detect_syRectParam = rabbitMqVehicle.getVehicle_detect_syRectParam(); + if (vehicle_detect_syRectParam != null && vehicle_detect_syRectParam.length == 4) { + //将快照图保存到本地,并获取到url + for (int j = 0; j < 3; j++) { + if (snapshoturl != "") { + break; + } + snapshoturl = vehicleDetailsUtils.urlCutToImagePath(i, picurl, snapshotPath, + vehicle_detect_syRectParam[1], vehicle_detect_syRectParam[2], + vehicle_detect_syRectParam[3], vehicle_detect_syRectParam[0]); + } + rabbitMqVehicle.setSnapshoturl(snapshoturl); + if (deviceId != 0) { + rabbitMqVehicle.setDeviceid(deviceId); + rabbitMqVehicle.setEquipmentName(equipmentName); + rabbitMqVehicle.setLongitude(longitude); + rabbitMqVehicle.setLatitude(latitude); + } else { + rabbitMqVehicle.setDeviceid(0); + } + rabbitMqVehicle.setPictime(captureTime); + } + } + } + // 人像部分 + FaceInfoParam faceInfoParam = vpInfoParam.getFaceInfoParam(); + if (faceInfoParam != null && rabbitMqVehicle != null) { + float[] fea = faceInfoParam.getFea(); + String mattingData = faceInfoParam.getMattingData(); + retrieveKey = faceInfoParam.getRetrieveKey(); + String name = retrieveKey + ".jpg"; + String path = path2 + name; + url = snapshotPrefix + name; + + rabbitMqVehicle.setPersonid(retrieveKey); + rabbitMqVehicle.setPersonUrl(url); + + GlobalUtil.generateImage(mattingData, path); + + PersonMsg personMsg = new PersonMsg(null, deviceId, snapshoturl, captureTime, equipmentName, longitude, latitude, url, retrieveKey, fea); + PersonMsg save = mongoTemplate.save(personMsg); + String s = JSON.toJSONString(save); + rabbitTemplate.convertAndSend(RabbitmqConfig.EXCHANGE_TOPICS_INFORM, "inform.person", s); + } + rabbitMQVehicles.add(rabbitMqVehicle); + } + return rabbitMQVehicles; + } + return null; + } + + public List sdkToRabbitVehicle(JSONObject jsonObject) { + List rabbitMQVehicles = new ArrayList<>(); + try { + + Integer count = jsonObject.getInteger("count"); + + if (count >= 1) { + boolean infoIsExit = jsonObject.containsKey("info"); + if (infoIsExit) { + long captureTime = jsonObject.containsKey("captureTime") ? jsonObject.getLong("captureTime") : System.currentTimeMillis(); + Integer devicedid = jsonObject.containsKey("deviceId") ? jsonObject.getInteger("deviceId") : null; + String equipName = jsonObject.containsKey("equipmentName") ? jsonObject.getString("equipmentName") : null; + String longitude = jsonObject.containsKey("longitude") ? jsonObject.getString("longitude") : null; + String latitude = jsonObject.containsKey("latitude") ? jsonObject.getString("latitude") : null; + String picurl = jsonObject.containsKey("imageUrl") ? jsonObject.getString("imageUrl") : null; + JSONArray infoArr = jsonObject.getJSONArray("info"); + for (int i = 0; i < infoArr.size(); i++) { + //获取到单辆车的信息 + JSONObject infoObj = infoArr.getJSONObject(i); + if (devicedid != null) { + Object totalCar = redisTemplate.opsForHash().get("totalVehicles", devicedid); + if (totalCar != null) { + Integer count1 = Integer.valueOf(totalCar.toString()); + count++; + redisTemplate.opsForHash().put("totalCar", devicedid, count1); + } else { + redisTemplate.opsForHash().put("totalCar", devicedid, 1); + } + } + + //封装建模 + RabbitMQVehicle rabbitMQVehicle = sdkToOnlyVehicle(infoObj); + rabbitMQVehicle.setPicurl(picurl); + //增加一个字段snapshoturl 用户存储快照图的url + //获取到快照图 + if (picurl != null) { + int[] vehicle_detect_syRectParam = rabbitMQVehicle.getVehicle_detect_syRectParam(); + if (vehicle_detect_syRectParam != null && vehicle_detect_syRectParam.length == 4) { + //将快照图保存到本地,并获取到url + String snapshoturl = vehicleDetailsUtils.urlCutToImagePath(i, picurl, snapshotPath, + vehicle_detect_syRectParam[1], vehicle_detect_syRectParam[2], + vehicle_detect_syRectParam[3], vehicle_detect_syRectParam[0]); + rabbitMQVehicle.setSnapshoturl(snapshoturl); + } + } + + if (devicedid != null) { + rabbitMQVehicle.setDeviceid(devicedid); + rabbitMQVehicle.setEquipmentName(equipName); + rabbitMQVehicle.setLongitude(longitude); + rabbitMQVehicle.setLatitude(latitude); + } else { + rabbitMQVehicle.setDeviceid(0); + } + rabbitMQVehicle.setPictime(captureTime); + + rabbitMQVehicles.add(rabbitMQVehicle); + } + } + } + return rabbitMQVehicles; + } catch (Exception e) { + e.printStackTrace(); + System.out.println("不是规则的JSON格式"); + return null; + } + } + + public RabbitMQInfo rabbitMQToRabbitInfo(RabbitMQVehicle rabbitMQVehicle) { + + RabbitMQInfo rabbitMQInfo = new RabbitMQInfo(); + + //封装数据信息 + //增加车头的检测坐标值 + int[] vehicle_detect_syRectParam1 = rabbitMQVehicle.getVehicle_detect_syRectParam(); + if (vehicle_detect_syRectParam1 != null && vehicle_detect_syRectParam1.length == 4 && null != rabbitMQVehicle.getPicurl()) { + //获取抓拍图 + String snapshotBase64 = VehicleDetailsUtils.picToSnapshot(rabbitMQVehicle.getPicurl(), vehicle_detect_syRectParam1[1], vehicle_detect_syRectParam1[2], vehicle_detect_syRectParam1[3], vehicle_detect_syRectParam1[0]); + rabbitMQInfo.setSnapshot(snapshotBase64); + } + + // id; //车辆id + rabbitMQInfo.setId(rabbitMQVehicle.getId()); + // equipmentName; //设备名称 + rabbitMQInfo.setEquipmentName(rabbitMQVehicle.getEquipmentName()); + // longitude; //经度 + rabbitMQInfo.setLongitude(rabbitMQVehicle.getLongitude()); + // latitude; //纬度 + rabbitMQInfo.setLatitude(rabbitMQVehicle.getLatitude()); + // picurl; //图片的路径 + rabbitMQInfo.setPicurl(rabbitMQVehicle.getPicurl()); + // recordid; //车辆档案id + rabbitMQInfo.setRecordid(rabbitMQVehicle.getRecordid()); + // pictime; //抓拍时间 + rabbitMQInfo.setPictime(sdf.format(rabbitMQVehicle.getPictime())); + // flag; //是否报警 + int flag = rabbitMQVehicle.getFlag(); + if (flag == 0) { + rabbitMQInfo.setFlag("无报警"); + } else { + rabbitMQInfo.setFlag("已报警"); + } + // tag; //是否确认 + int tag = rabbitMQVehicle.getTag(); + if (tag == 0) { + rabbitMQInfo.setTag("未确认"); + } else { + rabbitMQInfo.setTag("已确认"); + } + + // personid; //人像id + rabbitMQInfo.setPersonid(rabbitMQVehicle.getPersonid()); + // vehicleplatetype; //车牌类型 + int vehicleplatetype = rabbitMQVehicle.getVehicleplatetype(); + String vehiclePlateTypeName = relationMappingUtil.getVehiclePlateType(vehicleplatetype); + rabbitMQInfo.setVehicleplatetype(vehiclePlateTypeName); + + // vehicle_plate_numScore; //号牌可信度 + double vehicle_plate_numScore = rabbitMQVehicle.getVehicle_plate_numScore(); + BigDecimal bg = new BigDecimal(vehicle_plate_numScore).setScale(2, RoundingMode.UP); + float vehiclePlateNumScore = (float) bg.doubleValue(); + rabbitMQInfo.setVehicle_plate_numScore(vehiclePlateNumScore); + + // vehicle_color_index; //车辆颜色; + int vehicle_color_index = rabbitMQVehicle.getVehicle_color_index(); + String vehicleColor = relationMappingUtil.getVehicleColor(vehicle_color_index); + rabbitMQInfo.setVehicle_color_index(vehicleColor); + // vehicle_special_type; //特殊品类车类型 + int vehicle_special_type = rabbitMQVehicle.getVehicle_special_type(); + String vehicleSpecialType = relationMappingUtil.getVehicleSpecialType(vehicle_special_type); + rabbitMQInfo.setVehicle_special_type(vehicleSpecialType); + + + // vehicle_illegal_driver_person_status; + int vehicle_illegal_driver_person_status = rabbitMQVehicle.getVehicle_illegal_driver_person_status(); + String vehicleIllegalStatus3 = nullStatus; + if (vehicle_illegal_driver_person_status == 1003) { + vehicleIllegalStatus3 = "无人"; + } else if (vehicle_illegal_driver_person_status == 1004) { + vehicleIllegalStatus3 = "有人"; + } else { + vehicleIllegalStatus3 = "不确定有无人"; + } + rabbitMQInfo.setVehicle_illegal_driver_person_status(vehicleIllegalStatus3); + + if ("有人".equals(vehicleIllegalStatus3)) { + // vehicle_illegal_driver_smoke_status; + int vehicle_illegal_driver_smoke_status = rabbitMQVehicle.getVehicle_illegal_driver_smoke_status(); + String vehicleIllegalStatus = nullStatus; + if (vehicle_illegal_driver_smoke_status == 1000) { + vehicleIllegalStatus = "吸烟"; + } else if (vehicle_illegal_driver_smoke_status == 1001) { + vehicleIllegalStatus = "未吸烟"; + } else { + vehicleIllegalStatus = "不确定吸烟"; + } + rabbitMQInfo.setVehicle_illegal_driver_smoke_status(vehicleIllegalStatus); + + // vehicle_illegal_driver_belt_status; + int vehicle_illegal_driver_belt_status = rabbitMQVehicle.getVehicle_illegal_driver_belt_status(); + String vehicleIllegalStatus1 = nullStatus; + if (vehicle_illegal_driver_belt_status == 1000) { + vehicleIllegalStatus1 = "未系安全带"; + } else if (vehicle_illegal_driver_belt_status == 1001) { + vehicleIllegalStatus1 = "系安全带"; + } else { + vehicleIllegalStatus1 = "不确定系安全带"; + } + rabbitMQInfo.setVehicle_illegal_driver_belt_status(vehicleIllegalStatus1); + + // vehicle_illegal_driver_phone_status; + int vehicle_illegal_driver_phone_status = rabbitMQVehicle.getVehicle_illegal_driver_phone_status(); + String vehicleIllegalStatus2 = nullStatus; + if (vehicle_illegal_driver_phone_status == 1000) { + vehicleIllegalStatus2 = "打电话"; + } else if (vehicle_illegal_driver_phone_status == 1001) { + vehicleIllegalStatus2 = "未打电话"; + } else { + vehicleIllegalStatus2 = "不确定打电话"; + } + rabbitMQInfo.setVehicle_illegal_driver_phone_status(vehicleIllegalStatus2); + } else { + rabbitMQInfo.setVehicle_illegal_driver_smoke_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_driver_belt_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_driver_phone_status(nullStatus); + } + + + // vehicle_illegal_copilot_person_status; + int vehicle_illegal_copilot_person_status = rabbitMQVehicle.getVehicle_illegal_copilot_person_status(); + String vehicleIllegalStatus7 = nullStatus; + if (vehicle_illegal_copilot_person_status == 1003) { + vehicleIllegalStatus7 = "无人"; + } else if (vehicle_illegal_copilot_person_status == 1004) { + vehicleIllegalStatus7 = "有人"; + } else { + vehicleIllegalStatus7 = "不确定有无人"; + } + rabbitMQInfo.setVehicle_illegal_copilot_person_status(vehicleIllegalStatus7); + + if ("有人".equals(vehicleIllegalStatus7)) { + + // vehicle_illegal_copilot_smoke_status; + int vehicle_illegal_copilot_smoke_status = rabbitMQVehicle.getVehicle_illegal_copilot_smoke_status(); + System.out.println("副驾驶吸烟" + vehicle_illegal_copilot_smoke_status); + String vehicleIllegalStatus4 = nullStatus; + if (vehicle_illegal_copilot_smoke_status == 1000) { + vehicleIllegalStatus4 = "吸烟"; + } else if (vehicle_illegal_copilot_smoke_status == 1001) { + vehicleIllegalStatus4 = "未吸烟"; + } else { + vehicleIllegalStatus4 = "不确定吸烟"; + } + rabbitMQInfo.setVehicle_illegal_copilot_smoke_status(vehicleIllegalStatus4); + + // vehicle_illegal_copilot_belt_status; + int vehicle_illegal_copilot_belt_status = rabbitMQVehicle.getVehicle_illegal_copilot_belt_status(); + String vehicleIllegalStatus5 = nullStatus; + if (vehicle_illegal_copilot_belt_status == 1000) { + vehicleIllegalStatus5 = "未系安全带"; + } else if (vehicle_illegal_copilot_belt_status == 1001) { + vehicleIllegalStatus5 = "系安全带"; + } else { + vehicleIllegalStatus5 = "不确定系安全带"; + } + rabbitMQInfo.setVehicle_illegal_copilot_belt_status(vehicleIllegalStatus5); + + // vehicle_illegal_copilot_phone_status; + int vehicle_illegal_copilot_phone_status = rabbitMQVehicle.getVehicle_illegal_copilot_phone_status(); + String vehicleIllegalStatus6 = nullStatus; + if (vehicle_illegal_copilot_phone_status == 1000) { + vehicleIllegalStatus6 = "打电话"; + } else if (vehicle_illegal_copilot_phone_status == 1001) { + vehicleIllegalStatus6 = "未打电话"; + } else { + vehicleIllegalStatus6 = "不确定打电话"; + } + rabbitMQInfo.setVehicle_illegal_copilot_phone_status(vehicleIllegalStatus6); + } else { + rabbitMQInfo.setVehicle_illegal_copilot_smoke_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_copilot_belt_status(nullStatus); + rabbitMQInfo.setVehicle_illegal_copilot_phone_status(nullStatus); + } + + + // vehicle_recg_type; //车辆类型 + rabbitMQInfo.setVehicle_recg_type(rabbitMQVehicle.getVehicle_recg_type()); + + // vehicle_recg_freight_ton; //吨数 + rabbitMQInfo.setVehicle_recg_freight_ton(rabbitMQVehicle.getVehicle_recg_freight_ton()); + + // vehicle_recg_name_score; //品牌可信度 + double vehicle_recg_name_score = rabbitMQVehicle.getVehicle_recg_name_score(); + BigDecimal bigDecimal = new BigDecimal(vehicle_recg_name_score).setScale(2, RoundingMode.UP); + float vehicleRecgNameScore = (float) bigDecimal.doubleValue(); + rabbitMQInfo.setVehicle_recg_name_score(vehicleRecgNameScore); + + // vehicle_plate_hphm; //车辆号牌 + rabbitMQInfo.setVehicle_plate_hphm(rabbitMQVehicle.getVehicle_plate_hphm()); + + // vehicle_pendant_detect_njbnumber; //年检标数量 + rabbitMQInfo.setVehicle_pendant_detect_njbnumber(rabbitMQVehicle.getVehicle_pendant_detect_njbnumber()); + + // vehicle_pendant_detect_gjexis; //是否存在挂件 0表示不存在 1表示存在 + Integer vehicle_pendant_detect_gjexis = rabbitMQVehicle.getVehicle_pendant_detect_gjexis(); + if (vehicle_pendant_detect_gjexis == null || vehicle_pendant_detect_gjexis == 0) { + rabbitMQInfo.setVehicle_pendant_detect_gjexis("无"); + } else { + rabbitMQInfo.setVehicle_pendant_detect_gjexis("有"); + } + + PendantParams[] vehicle_pendant_params = rabbitMQVehicle.getVehicle_pendant_Params(); + String vehiclePendantZJH = "无"; //纸巾盒 + String vehiclePendantZJT = "无"; //转经筒 + String vehiclePendantDriverZYB = "无"; //主驾驶遮阳板 + String vehiclePendantCopilotZYB = "无"; //副驾驶遮阳板 + + if (vehicle_pendant_params != null && vehicle_pendant_params.length > 0) { + + for (PendantParams pp : vehicle_pendant_params) { + int index = pp.getIndex(); + switch (index) { + case 3: + //遮阳板 + /* + ints[0] = height; + ints[1] = left; + ints[2] = top; + ints[3] = width; + * */ + //获取遮阳板距离左边的距离 + int[] vehicle_detect_syRectParam = rabbitMQVehicle.getVehicle_detect_syRectParam(); + int width = vehicle_detect_syRectParam[3]; + int left = vehicle_detect_syRectParam[1]; + int ctCenter = left + (width / 2); + int zybLeft = pp.getSyrectparam()[1]; + if (zybLeft > ctCenter) { //为主驾驶 + // vehicle_pendant_driver_zyb; + vehiclePendantDriverZYB = "有"; + } else { + // vehicle_pendant_copilot_zyb; + vehiclePendantCopilotZYB = "有"; + } + break; + case 6: + //纸巾盒 + // vehicle_pendant_detect_zjh; + vehiclePendantZJH = "有"; + break; + case 7: + //转经筒 + // vehicle_pendant_detect_zjt; + vehiclePendantZJT = "有"; + break; + + } + } + } + rabbitMQInfo.setVehicle_pendant_detect_zjh(vehiclePendantZJH); + rabbitMQInfo.setVehicle_pendant_detect_zjt(vehiclePendantZJT); + rabbitMQInfo.setVehicle_pendant_driver_zyb(vehiclePendantDriverZYB); + rabbitMQInfo.setVehicle_pendant_copilot_zyb(vehiclePendantCopilotZYB); + + // vehicle_plate_status; + double vehicle_plate_numScore1 = rabbitMQVehicle.getVehicle_plate_numScore(); + String vehiclePlateStatus = null; + if (vehicle_plate_numScore1 == 0) { + //无号牌 + vehiclePlateStatus = "无号牌"; + } else { + PlatePlateNumParams[] vehicle_plate_plateNumParams = rabbitMQVehicle.getVehicle_plate_plateNumParams(); + String chara = null; + for (int i = 0; i < 7; i++) { + PlatePlateNumParams ppnp = vehicle_plate_plateNumParams[i]; + double maxprob = ppnp.getMaxprob(); + if (maxprob == 0) { + chara = "污损号牌"; + } + } + if (chara == null) { + //有号牌 + vehiclePlateStatus = "完整号牌"; + } else { + //污损号牌 + vehiclePlateStatus = "污损号牌"; + } + } + rabbitMQInfo.setVehicle_plate_status(vehiclePlateStatus); + + // clxh; + StringBuffer sb = new StringBuffer(); + String vehicle_recg_brand = rabbitMQVehicle.getVehicle_recg_brand(); + sb.append(vehicle_recg_brand); + String vehicle_recg_subbrand = rabbitMQVehicle.getVehicle_recg_subbrand(); + if (vehicle_recg_subbrand != null) { + sb.append("-").append(vehicle_recg_subbrand); + } + String vehicle_recg_issue_year = rabbitMQVehicle.getVehicle_recg_issue_year(); + if (vehicle_recg_issue_year != null) { + sb.append("-").append(vehicle_recg_issue_year); + } + rabbitMQInfo.setClxh(sb.toString()); + + return rabbitMQInfo; + + } + + + /*public List sdkToRabbitPeople(JSONObject jsonObject) { + List rabbitMQPeoples = new ArrayList<>(); + try { + JSONArray peopleVehicleArr = jsonObject.containsKey("info") ? jsonObject.getJSONArray("info") : null; + for (int i = 0; i < peopleVehicleArr.size(); i++) { + JSONObject peopleVehicleSingle = peopleVehicleArr.getJSONObject(i); + FaceInfoParam faceInfoParam = faceUtils.rabbitToFaceInfo(peopleVehicleSingle, nullStatus); + rabbitMQPeoples.add(faceInfoParam); + } + return rabbitMQPeoples; + } catch (Exception e) { + System.out.println("不是规则的JSON格式"); + return null; + } + }*/ + + public RabbitMQVehicle sdkToOnlyVehicle(JSONObject vehicleSingleInfo) { + int count = 0;//在档案中的位置 + int deviceid = 0; //设备id + String equipName = nullStatus; + String longitude = nullStatus; + String latitude = nullStatus; + String picurl = nullStatus; //图片的路径 + int recordid = 0; //车辆档案id + Long pictime = 0l; //抓拍时间 + int flag = 0; //是否报警 + int tag = 0; //是否确认 + String personid = nullStatus; //人像id + int[] vehicle_plate_rect = null; //车牌位置 + float vehicle_plate_detectScore = 0; //车牌检测分数 + int vehicle_plate_type = 0; //车牌类型 + float vehicle_plate_numScore = 0; + float vehicle_color_score = 0; + int vehicle_color_index = 0; + float vehicle_detect_score = 0; + int[] vehicle_detect_syrectparam = null; + float vehicle_win_score = 0; + int[] vehicle_win_syrectparam = null; + int vehicle_special_type = 0; + float vehicle_special_score = 0; + float vehicle_illegal_driver_smoke_confidence = 0; + int vehicle_illegal_driver_smoke_status = 0; + float vehicle_illegal_driver_belt_confidence = 0; + int vehicle_illegal_driver_belt_status = 0; + float vehicle_illegal_driver_phone_confidence = 0; + int vehicle_illegal_driver_phone_status = 0; + float vehicle_illegal_driver_person_confidence = 0; + int vehicle_illegal_driver_person_status = 0; + float vehicle_illegal_copilot_smoke_confidence = 0; + int vehicle_illegal_copilot_smoke_status = 0; + float vehicle_illegal_copilot_belt_confidence = 0; + int vehicle_illegal_copilot_belt_status = 0; + float vehicle_illegal_copilot_phone_confidence = 0; + int vehicle_illegal_copilot_phone_status = 0; + float vehicle_illegal_copilot_person_confidence = 0; + int vehicle_illegal_copilot_person_status = 0; + String vehicle_recg_issue_year = null; + String vehicle_recg_brand = null; + String vehicle_recg_type = nullStatus; + String vehicle_recg_subbrand = null; + String vehicle_recg_freight_ton = nullStatus; + float vehicle_recg_name_score = 0; + int vehicle_pendant_count = 0; + double[] vehicle_fea_feature = null; + PendantParams[] vehicle_pendant_Params = null; + PlatePlateNumParams[] vehicle_plate_plateNumParams = null; + String vehicle_plate_hphm = null; + Integer vehicle_pendant_detect_njbnumber = 0; //年检标数量 + Integer vehicle_pendant_detect_gjexis = 0; //是否存在挂件 0表示不存在 1表示存在 + Integer vehicle_pendant_detect_zybexis = 0; //是否存在遮阳板 0表示不存在 1表示存在 + + //额外添加的snapshoturl + String snapshoturl = " "; + + RabbitMQVehicle rabbitMQVehicle = null; + + if (vehicleSingleInfo != null) { + + //自动生成子目录文件夹 + try { + File file = new File(snapshotPath); + if (!file.exists()) { + file.mkdirs(); + } + } catch (Exception e) { + RuntimeException exe = new RuntimeException("文件夹创建失败"); + e.printStackTrace(); + + } + + JSONObject colorRes = vehicleSingleInfo.containsKey("vehicle_color_res") ? vehicleSingleInfo.getJSONObject("vehicle_color_res") : null; + if (colorRes != null) { + + vehicle_color_index = colorRes.getInteger("index"); + vehicle_color_score = colorRes.getFloat("score"); + } + JSONObject detectRes = vehicleSingleInfo.containsKey("vehicle_detect_res") ? vehicleSingleInfo.getJSONObject("vehicle_detect_res") : null; + if (detectRes != null) { + vehicle_detect_score = detectRes.getFloat("score"); + vehicle_detect_syrectparam = new int[4]; + JSONObject syRectParam = detectRes.getJSONObject("syRectParam"); + Integer height = syRectParam.getInteger("height"); + Integer left = syRectParam.getInteger("left"); + Integer top = syRectParam.getInteger("top"); + Integer width = syRectParam.getInteger("width"); + vehicle_detect_syrectparam[0] = height; + vehicle_detect_syrectparam[1] = left; + vehicle_detect_syrectparam[2] = top; + vehicle_detect_syrectparam[3] = width; + } + + JSONObject vehicle_fea_res = vehicleSingleInfo.containsKey("vehicle_fea_res") ? vehicleSingleInfo.getJSONObject("vehicle_fea_res") : null; + if (vehicle_fea_res != null) { + JSONArray feature = vehicle_fea_res.getJSONArray("feature"); + int size = feature.size(); + vehicle_fea_feature = new double[size]; + for (int i = 0; i < size; i++) { + vehicle_fea_feature[i] = feature.getDouble(i); + } + } + + JSONObject vehicle_illegal = vehicleSingleInfo.containsKey("vehicle_illegal_det_res") ? vehicleSingleInfo.getJSONObject("vehicle_illegal_det_res") : null; + if (vehicle_illegal != null) { + JSONObject driver = vehicle_illegal.containsKey("driver") ? vehicle_illegal.getJSONObject("driver") : null; + if (driver != null) { + + JSONObject person = driver.containsKey("person") ? driver.getJSONObject("person") : null; + if (person != null) { + vehicle_illegal_driver_person_confidence = person.getFloat("confidence"); + vehicle_illegal_driver_person_status = person.getInteger("status"); + } + if (vehicle_illegal_copilot_person_status == 1004) { + JSONObject belt = driver.containsKey("belt") ? driver.getJSONObject("belt") : null; + if (belt != null) { + vehicle_illegal_driver_belt_confidence = belt.getFloat("confidence"); + vehicle_illegal_driver_belt_status = belt.getInteger("status"); + } + + JSONObject phone = driver.containsKey("phone") ? driver.getJSONObject("phone") : null; + if (phone != null) { + vehicle_illegal_driver_phone_confidence = phone.getFloat("confidence"); + vehicle_illegal_driver_phone_status = phone.getInteger("status"); + } + JSONObject smoke = driver.containsKey("smoke") ? driver.getJSONObject("smoke") : null; + if (smoke != null) { + vehicle_illegal_driver_smoke_confidence = smoke.getFloat("confidence"); + vehicle_illegal_driver_smoke_status = smoke.getInteger("status"); + } + } + } + + JSONObject copilot = vehicle_illegal.containsKey("copilot") ? vehicle_illegal.getJSONObject("copilot") : null; + if (copilot != null) { + + JSONObject person = copilot.containsKey("person") ? copilot.getJSONObject("person") : null; + if (person != null) { + vehicle_illegal_copilot_person_confidence = person.getFloat("confidence"); + vehicle_illegal_copilot_person_status = person.getInteger("status"); + } + + if (vehicle_illegal_copilot_person_status == 1004) { + JSONObject belt = copilot.containsKey("belt") ? copilot.getJSONObject("belt") : null; + if (belt != null) { + vehicle_illegal_copilot_belt_confidence = belt.getFloat("confidence"); + vehicle_illegal_copilot_belt_status = belt.getInteger("status"); + } + + JSONObject phone = copilot.containsKey("phone") ? copilot.getJSONObject("phone") : null; + if (phone != null) { + vehicle_illegal_copilot_phone_confidence = phone.getFloat("confidence"); + vehicle_illegal_copilot_phone_status = phone.getInteger("status"); + } + JSONObject smoke = copilot.containsKey("smoke") ? copilot.getJSONObject("smoke") : null; + if (smoke != null) { + vehicle_illegal_copilot_smoke_confidence = smoke.getFloat("confidence"); + vehicle_illegal_copilot_smoke_status = smoke.getInteger("status"); + } + } + } + } + //挂件 + JSONObject vehicle_pendant_det_res = vehicleSingleInfo.containsKey("vehicle_pendant_det_res") ? vehicleSingleInfo.getJSONObject("vehicle_pendant_det_res") : null; + if (vehicle_pendant_det_res != null) { + vehicle_pendant_count = vehicle_pendant_det_res.getInteger("count"); + JSONArray vehiclePendantDetectInfoParams = vehicle_pendant_det_res.getJSONArray("vehiclePendantDetectInfoParams"); + int size = vehiclePendantDetectInfoParams.size(); + if (vehiclePendantDetectInfoParams != null && size > 0) { + for (int i = 0; i < vehiclePendantDetectInfoParams.size(); i++) { + //获取到其中的一个车辆属性 + JSONObject vehiclePendantOne = vehiclePendantDetectInfoParams.getJSONObject(i); + Integer index = vehiclePendantOne.getInteger("index"); + switch (index) { + case 3: + //是否有遮阳板 + vehicle_pendant_detect_zybexis = 1; + break; + case 4: + //获取年检标个数 + vehicle_pendant_detect_njbnumber++; + break; + case 5: + //是否有挂件 + vehicle_pendant_detect_gjexis = 1; + break; + default: + } + + } + + vehicle_pendant_Params = new PendantParams[size]; + for (int i = 0; i < size; i++) { + JSONObject jsonObject = vehiclePendantDetectInfoParams.getJSONObject(i); + float confidence = jsonObject.getFloat("confidence"); + Integer index = jsonObject.getInteger("index"); + int[] ints = new int[4]; + JSONObject syRectParam = jsonObject.getJSONObject("syRectParam"); + Integer height = syRectParam.getInteger("height"); + Integer left = syRectParam.getInteger("left"); + Integer top = syRectParam.getInteger("top"); + Integer width = syRectParam.getInteger("width"); + ints[0] = height; + ints[1] = left; + ints[2] = top; + ints[3] = width; + PendantParams pp = new PendantParams(index, ints, confidence); + vehicle_pendant_Params[i] = pp; + } + } + } + //每位号牌可信度 + JSONObject vehicle_plate_det_recg_res = vehicleSingleInfo.containsKey("vehicle_plate_det_recg_res") ? vehicleSingleInfo.getJSONObject("vehicle_plate_det_recg_res") : null; + if (vehicle_plate_det_recg_res != null && vehicle_plate_det_recg_res.getFloat("numScore") > 0.8) { + vehicle_plate_detectScore = vehicle_plate_det_recg_res.getFloat("detectScore"); + vehicle_plate_numScore = vehicle_plate_det_recg_res.getFloat("numScore"); + vehicle_plate_type = vehicle_plate_det_recg_res.getInteger("type"); + vehicle_plate_rect = new int[4]; + JSONObject rect = vehicle_plate_det_recg_res.getJSONObject("rect"); + Integer height = rect.getInteger("height"); + Integer left = rect.getInteger("left"); + Integer top = rect.getInteger("top"); + Integer width = rect.getInteger("width"); + vehicle_plate_rect[0] = height; + vehicle_plate_rect[1] = left; + vehicle_plate_rect[2] = top; + vehicle_plate_rect[3] = width; + + JSONArray plateNumParams = vehicle_plate_det_recg_res.getJSONArray("plateNumParams"); + int size = plateNumParams.size(); + if (size > 0) { + StringBuffer sb = new StringBuffer(); + vehicle_plate_plateNumParams = new PlatePlateNumParams[size]; + for (int i = 0; i < size; i++) { + JSONObject jsonObject = plateNumParams.getJSONObject(i); + String character = jsonObject.getString("character"); + sb.append(character); + float maxprob = jsonObject.getFloat("maxprob"); + PlatePlateNumParams ppnp = new PlatePlateNumParams(maxprob, character); + vehicle_plate_plateNumParams[i] = ppnp; + } + vehicle_plate_hphm = sb.toString(); + } + } + + JSONObject vehicle_recg_res = vehicleSingleInfo.containsKey("vehicle_recg_res") ? vehicleSingleInfo.getJSONObject("vehicle_recg_res") : null; + if (vehicle_recg_res != null) { + vehicle_recg_freight_ton = vehicle_recg_res.getString("freight_ton"); + vehicle_recg_name_score = vehicle_recg_res.getFloat("name_score"); + vehicle_recg_brand = vehicle_recg_res.getString("vehicle_brand"); + vehicle_recg_issue_year = vehicle_recg_res.getString("vehicle_issue_year"); + vehicle_recg_subbrand = vehicle_recg_res.getString("vehicle_subbrand"); + vehicle_recg_type = vehicle_recg_res.getString("vehicle_type"); + } + + JSONObject vehicle_special_res = vehicleSingleInfo.containsKey("vehicle_special_res") ? vehicleSingleInfo.getJSONObject("vehicle_special_res") : null; + if (vehicle_special_res != null) { + vehicle_special_score = vehicle_special_res.getFloat("score"); + vehicle_special_type = vehicle_special_res.getInteger("type"); + } + + JSONObject vehicle_win_detect_res = vehicleSingleInfo.containsKey("vehicle_win_detect_res") ? vehicleSingleInfo.getJSONObject("vehicle_win_detect_res") : null; + if (vehicle_win_detect_res != null) { + vehicle_win_score = vehicle_win_detect_res.getFloat("score"); + JSONObject syRectParam = vehicle_win_detect_res.getJSONObject("syRectParam"); + vehicle_win_syrectparam = new int[4]; + Integer height = syRectParam.getInteger("height"); + Integer left = syRectParam.getInteger("left"); + Integer top = syRectParam.getInteger("top"); + Integer width = syRectParam.getInteger("width"); + vehicle_win_syrectparam[0] = height; + vehicle_win_syrectparam[1] = left; + vehicle_win_syrectparam[2] = top; + vehicle_win_syrectparam[3] = width; + } + + //vehicle_pendant_detect_njbnumber; //年检标数量 + //vehicle_pendant_detect_gjexis; //是否存在挂件 0表示不存在 1表示存在 + //vehicle_pendant_detect_zybexis; //是否存在遮阳板 0表示不存在 1表示存在 + + + rabbitMQVehicle = new RabbitMQVehicle(count, deviceid, equipName, longitude, latitude, picurl, recordid, pictime, flag, tag, personid, vehicle_plate_rect, vehicle_plate_detectScore, vehicle_plate_type, vehicle_plate_numScore, vehicle_color_score, vehicle_color_index, vehicle_detect_score, vehicle_detect_syrectparam, vehicle_win_score, vehicle_win_syrectparam, vehicle_special_type, vehicle_special_score, vehicle_illegal_driver_smoke_confidence, vehicle_illegal_driver_smoke_status, vehicle_illegal_driver_belt_confidence, vehicle_illegal_driver_belt_status, vehicle_illegal_driver_phone_confidence, vehicle_illegal_driver_phone_status, vehicle_illegal_driver_person_confidence, vehicle_illegal_driver_person_status, vehicle_illegal_copilot_smoke_confidence, vehicle_illegal_copilot_smoke_status, vehicle_illegal_copilot_belt_confidence, vehicle_illegal_copilot_belt_status, vehicle_illegal_copilot_phone_confidence, vehicle_illegal_copilot_phone_status, vehicle_illegal_copilot_person_confidence, vehicle_illegal_copilot_person_status, vehicle_recg_issue_year, vehicle_recg_brand, vehicle_recg_type, vehicle_recg_subbrand, vehicle_recg_freight_ton, vehicle_recg_name_score, vehicle_pendant_count, vehicle_fea_feature, vehicle_pendant_Params, vehicle_plate_plateNumParams, vehicle_plate_hphm, vehicle_pendant_detect_njbnumber, vehicle_pendant_detect_gjexis, vehicle_pendant_detect_zybexis, null, snapshoturl); + + } + return rabbitMQVehicle; + } +} diff --git b/src/main/java/com/objecteye/utils/RelationMappingUtil.java a/src/main/java/com/objecteye/utils/RelationMappingUtil.java new file mode 100644 index 0000000..f71f60c --- /dev/null +++ a/src/main/java/com/objecteye/utils/RelationMappingUtil.java @@ -0,0 +1,134 @@ +package com.objecteye.utils; + +import org.springframework.stereotype.Component; + +@Component("relationMapping") +public class RelationMappingUtil { + + public String getVehicleColor(int i) { + switch (i) { + case 0: + return "棕"; + case 1: + return "橙"; + case 2: + return "灰"; + case 3: + return "白"; + case 4: + return "粉"; + case 5: + return "紫"; + case 6: + return "红"; + case 7: + return "绿"; + case 8: + return "蓝"; + case 9: + return "金"; + case 10: + return "银"; + case 11: + return "青"; + case 12: + return "黄"; + case 13: + return "黑"; + default: + return "检测失败"; + } + } + + //号牌种类 + public String getVehiclePlateType(int i) { + switch (i) { + case 0: + return "单排蓝色"; + case 1: + return "单排黄色"; + case 2: + return "单排白色"; + case 3: + return "单排黑色"; + case 4: + return "双排黄色"; + case 5: + return "双排白色"; + case 6: + return "新能源黄绿色"; + case 7: + return "新能源白绿色"; + default: + return "检测失败"; + } + } + + //获取车辆属性 + public String getVehiclePendantParam(int i) { + switch (i) { + case 0: + return "司机"; + case 1: + return "人脸"; + case 2: + return "安全带"; + case 3: + return "遮阳板"; + case 4: + return "年检标"; + case 5: + return "挂件"; + case 6: + return "纸巾盒"; + case 7: + return "转经筒"; + case 8: + return "手机"; + case 9: + return "天窗"; + case 10: + return "行李架"; + case 11: + return "烟"; + default: + return "检测失败"; + } + } + + //获取车辆违法数据 + public String getVehicleIllegalStatus(int i) { + switch (i) { + case 1000: + return "违规"; + case 1001: + return "合法"; + case 1002: + return "不确定"; + case 1003: + return "无人"; + case 1004: + return "有人"; + default: + return "检测失败"; + } + } + + //获取车辆类型 + public String getVehicleSpecialType(int i) { + switch (i) { + case -1: + return "其他"; + case 0: + return "货车"; + case 1: + return "危化品车"; + case 2: + return "渣土车"; + default: + return "检测失败"; + } + } + + +} diff --git b/src/main/java/com/objecteye/utils/TimeUtil.java a/src/main/java/com/objecteye/utils/TimeUtil.java new file mode 100644 index 0000000..c459223 --- /dev/null +++ a/src/main/java/com/objecteye/utils/TimeUtil.java @@ -0,0 +1,33 @@ +package com.objecteye.utils; + + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; + +/** + * @author yumiu + */ +public class TimeUtil { + + public static long getTimeStamp(String picName) { + String[] split = picName.split("_"); + long time = System.currentTimeMillis(); + + if (split.length >= 3) { + String timeStamp = split[2]; + System.out.println(timeStamp); + if (timeStamp != null && timeStamp.length() == 17) { + DateTime parse = DateUtil.parse(timeStamp); + System.out.println(parse); + time = parse.getTime(); + } + } + return time; + } + + public static String getPicFile(String picName) { + String[] split = picName.split("_"); + + return split[0]; + } +} diff --git b/src/main/java/com/objecteye/utils/UserTools.java a/src/main/java/com/objecteye/utils/UserTools.java new file mode 100644 index 0000000..72da657 --- /dev/null +++ a/src/main/java/com/objecteye/utils/UserTools.java @@ -0,0 +1,57 @@ +package com.objecteye.utils; + +import com.alibaba.fastjson.JSONArray; +import com.objecteye.entity.PageResult; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class UserTools { + + public static JSONArray getJSONArrayByList(List list) { + JSONArray jsonArray = new JSONArray(); + if (list == null || list.isEmpty()) { + return jsonArray; + } + jsonArray.addAll(list); + return jsonArray; + } + + public static String nowToDate() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return sdf.format(new Date()); + } + + /** + * 统一手动分页 + * + * @param baseList 原始数据集合 + * @param currentpage 页码 + * @param pagevolume 页面容量 + * @return 结果集 + */ + public static PageResult makePageResultByBaseList(List baseList, Integer currentpage, Integer pagevolume) { + // 总页数 + int pageTotal = (baseList.size() / pagevolume) + ((baseList.size() % pagevolume > 0) ? 1 : 0); + + int fromIndex = (currentpage - 1) * pagevolume; + int toIndex; + if (currentpage == pageTotal) { + toIndex = baseList.size(); + } else if (pageTotal == 0) { + return new PageResult<>(pageTotal, new ArrayList<>()); + } else { + toIndex = currentpage * pagevolume; + if (toIndex > baseList.size()) { + toIndex = baseList.size(); + } + if (fromIndex >= toIndex) { + return new PageResult<>(pageTotal, new ArrayList<>()); + } + } + + return new PageResult<>(pageTotal, baseList.subList(fromIndex, toIndex)); + } +} diff --git b/src/main/java/com/objecteye/utils/VehicleDetailsUtils.java a/src/main/java/com/objecteye/utils/VehicleDetailsUtils.java new file mode 100644 index 0000000..a937af1 --- /dev/null +++ a/src/main/java/com/objecteye/utils/VehicleDetailsUtils.java @@ -0,0 +1,465 @@ +package com.objecteye.utils; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.objecteye.entity.RelationMappingUtil; +import com.objecteye.pojo.VehicleDetails; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import sun.misc.BASE64Encoder; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.text.SimpleDateFormat; +import java.util.ArrayList; + +@Component +public class VehicleDetailsUtils { + + @Value("${snapshotPrefix}") + private String snapshotPrefix; + @Value("${picture.storePath}") + private String storePath; + + + private float sdkThreshold = 0.7F; //sdk的阈值 + private float cpsbThreshold = 0.9F; //车牌识别的阈值 + private String errorMsg = "识别异常"; + @Autowired + private RelationMappingUtil relationMappingUtil; + + /** + * 将SDK中的数据封装成VehicleDetails类 + */ + public VehicleDetails sdkToVehicleDetails(JSONObject vehicleDetailsOne) { + VehicleDetails vehicleDetails = new VehicleDetails(); + //因为是用户上传过来的数据,所以图片路径为空 + vehicleDetails.setPicurl(null); //图片路径 + //获取车辆类型 + JSONObject vehicle_recg_res = vehicleDetailsOne.getJSONObject("vehicle_recg_res"); + Float name_score = vehicle_recg_res.getFloat("name_score"); + String vehicle_type = errorMsg; + String vehicle_recg_info = errorMsg; + if (name_score > sdkThreshold) { + name_score = (float) Math.round(name_score * 100) / 100; + if (name_score > 1) { + name_score = 1F; + } + vehicle_type = vehicle_recg_res.getString("vehicle_type"); + String vehicle_brand = vehicle_recg_res.getString("vehicle_brand"); + String vehicle_subbrand = vehicle_recg_res.getString("vehicle_subbrand"); + String vehicle_issue_year = vehicle_recg_res.getString("vehicle_issue_year"); + vehicle_recg_info = vehicle_brand + "-" + vehicle_subbrand + "-" + vehicle_issue_year; + } + vehicleDetails.setVehicle_recg_type(vehicle_type); //车辆类型 + vehicleDetails.setVehicle_recg_brand(vehicle_recg_info); //车辆品牌型号(检测得到的车品牌、车子品牌、年份拼接而成) + vehicleDetails.setVehicle_recg_name_score(name_score); //品牌可信度 + + //获取车身颜色 + JSONObject vehicle_color_res = vehicleDetailsOne.getJSONObject("vehicle_color_res"); + Float colorScore = vehicle_color_res.getFloat("score"); + String vehicleColor = errorMsg; + if (colorScore > sdkThreshold) { + Integer vehicle_color_index = vehicle_color_res.getInteger("index"); + vehicleColor = RelationMappingUtil.getVehicleColor(vehicle_color_index); + } + vehicleDetails.setVehicle_color(vehicleColor); //车颜色 + + //获取车辆号牌信息 + JSONObject vehicle_plate_det_recg_res = vehicleDetailsOne.getJSONObject("vehicle_plate_det_recg_res"); + Float numScore = vehicle_plate_det_recg_res.getFloat("numScore"); + String vehiclePlateType = errorMsg; + String plateHPHM = errorMsg; + String ehicle_plate_status = "无号牌"; + if (numScore > cpsbThreshold) { + numScore = (float) Math.round(numScore * 100) / 100; + if (numScore > 1) { + numScore = 1F; + } + + Integer type = vehicle_plate_det_recg_res.getInteger("type"); + vehiclePlateType = RelationMappingUtil.getVehiclePlateType(type); + + JSONArray plateNumParams = vehicle_plate_det_recg_res.getJSONArray("plateNumParams"); + int size = plateNumParams.size(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < size; i++) { + JSONObject plateNumParamOne = plateNumParams.getJSONObject(i); + Float maxprob = plateNumParamOne.getFloat("maxprob");//每位号牌可信度 + String character = "*"; //每位号牌,默认为*,当置信度低于某个值时设置为* + if (maxprob >= sdkThreshold) { + character = plateNumParamOne.getString("character"); + } + character = plateNumParamOne.getString("character"); + sb.append(character); + } + plateHPHM = sb.toString(); + //判断车牌状态 + if (plateHPHM.contains("*")) { + ehicle_plate_status = "污损号牌"; + } else { + ehicle_plate_status = "完整号牌"; + } + } + vehicleDetails.setVehicle_plate_type(vehiclePlateType); //车牌类型 + vehicleDetails.setVehicle_plate_hphm(plateHPHM); //车牌号码 + vehicleDetails.setVehicle_plate_detectScore(numScore); //车牌可信度 + vehicleDetails.setVehicle_plate_status(ehicle_plate_status); //车牌状态 + + + //获取特殊车辆类型:渣土车 危化品车 其他 + JSONObject vehicle_special_res = vehicleDetailsOne.getJSONObject("vehicle_special_res"); + Float specialScore = vehicle_special_res.getFloat("score"); + String vehicleSpecialType = errorMsg; + if (specialScore > sdkThreshold) { + Integer vehicle_special_res_type = vehicle_special_res.getInteger("type"); + vehicleSpecialType = RelationMappingUtil.getVehicleSpecialType(vehicle_special_res_type); + } + vehicleDetails.setSpecialty_vehicle_type(vehicleSpecialType); //特殊品类车辆类型 + + //因为是用户上传的图片所以没有抓拍时间,默认为当前时间 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String picTime = sdf.format(System.currentTimeMillis()); + vehicleDetails.setPictime(picTime); //抓拍时间(2019-09-24 15:46:12) + + //获取设备名称(因为是用户上传的图片,所以设备名称默认为“用户手动上传”) + String equipmentName = "无地点信息"; + vehicleDetails.setEquipmentName(equipmentName);//设备名称 + + //获取经纬度(来源于用户上传的图片,所以不存在经纬度,默认为北京的经纬度) + vehicleDetails.setLongitude("116.40"); //经度 + vehicleDetails.setLatitude("39.90"); //纬度 + + //获取所有违法状态 + JSONObject vehicle_illegal_det_res = vehicleDetailsOne.getJSONObject("vehicle_illegal_det_res"); + String driverIllStatus = null; + String copilotIllStatus = null; + //主驾驶状态 + JSONObject driver = vehicle_illegal_det_res.getJSONObject("driver"); + StringBuilder driverIll = new StringBuilder(); + JSONObject driverSmoke = driver.getJSONObject("smoke"); + Float driverSmokeConfidence = driverSmoke.getFloat("confidence"); + if (driverSmokeConfidence >= sdkThreshold) { + String driverSmokeStatus = null; + Integer status = driverSmoke.getInteger("status"); + switch (status) { + case 1000: + driverSmokeStatus = "抽烟"; + break; + case 1001: + driverSmokeStatus = "未抽烟"; + break; + default: + driverSmokeStatus = "抽烟未知"; + } + driverIll.append(driverSmokeStatus).append("、"); + } + + JSONObject driverBelt = driver.getJSONObject("belt"); + Float driverBeltConfidence = driverBelt.getFloat("confidence"); + if (driverBeltConfidence >= sdkThreshold) { + String driverBeltStatus = null; + Integer status = driverBelt.getInteger("status"); + switch (status) { + case 1000: + driverBeltStatus = "未系安全带"; + break; + case 1001: + driverBeltStatus = "系安全带"; + break; + default: + driverBeltStatus = "安全带未知"; + } + driverIll.append(driverBeltStatus).append("、"); + } + + JSONObject driverPhone = driver.getJSONObject("phone"); + Float driverPhoneConfidence = driverPhone.getFloat("confidence"); + if (driverPhoneConfidence >= sdkThreshold) { + String driverPhoneStatus = null; + Integer status = driverPhone.getInteger("status"); + switch (status) { + case 1000: + driverPhoneStatus = "打电话"; + break; + case 1001: + driverPhoneStatus = "未打电话"; + break; + default: + driverPhoneStatus = "打电话未知"; + } + driverIll.append(driverPhoneStatus).append("、"); + } + + JSONObject driverPerson = driver.getJSONObject("person"); + Float driverPersonConfidence = driverPerson.getFloat("confidence"); + if (driverPersonConfidence >= sdkThreshold) { + String driverPersonStatus = null; + Integer status = driverPerson.getInteger("status"); + switch (status) { + case 1000: + driverPersonStatus = "无人"; + break; + case 1001: + driverPersonStatus = "有人"; + break; + case 1003: + driverPersonStatus = "无人"; + break; + case 1004: + driverPersonStatus = "有人"; + break; + default: + driverPersonStatus = "有无人未知"; + } + driverIll.append(driverPersonStatus).append("、"); + } + String driverIllInfo = driverIll.toString(); + + if (driverIllInfo.length() >= 1) { + driverIllStatus = driverIllInfo.substring(0, driverIllInfo.length() - 1); + } + + + //副驾驶状态 + JSONObject copilot = vehicle_illegal_det_res.getJSONObject("copilot"); + StringBuilder copilotIll = new StringBuilder(); + JSONObject copilotSmoke = copilot.getJSONObject("smoke"); + Float copilotSmokeConfidence = copilotSmoke.getFloat("confidence"); + if (copilotSmokeConfidence >= sdkThreshold) { + String copilotSmokeStatus = null; + Integer status = copilotSmoke.getInteger("status"); + switch (status) { + case 1000: + copilotSmokeStatus = "抽烟"; + break; + case 1001: + copilotSmokeStatus = "未抽烟"; + break; + default: + copilotSmokeStatus = "抽烟未知"; + } + copilotIll.append(copilotSmokeStatus).append("、"); + } + + JSONObject copilotBelt = copilot.getJSONObject("belt"); + Float copilotBeltConfidence = copilotBelt.getFloat("confidence"); + if (copilotBeltConfidence >= sdkThreshold) { + String copilotBeltStatus = null; + Integer status = copilotBelt.getInteger("status"); + switch (status) { + case 1000: + copilotBeltStatus = "未系安全带"; + break; + case 1001: + copilotBeltStatus = "系安全带"; + break; + default: + copilotBeltStatus = "安全带未知"; + } + copilotIll.append(copilotBeltStatus).append("、"); + } + + JSONObject copilotPhone = copilot.getJSONObject("phone"); + Float copilotPhoneConfidence = copilotPhone.getFloat("confidence"); + if (copilotPhoneConfidence >= sdkThreshold) { + String copilotPhoneStatus = null; + Integer status = copilotPhone.getInteger("status"); + switch (status) { + case 1000: + copilotPhoneStatus = "打电话"; + break; + case 1001: + copilotPhoneStatus = "未打电话"; + break; + default: + copilotPhoneStatus = "打电话未知"; + } + copilotIll.append(copilotPhoneStatus).append("、"); + } + + JSONObject copilotPerson = copilot.getJSONObject("person"); + Float copilotPersonConfidence = copilotPerson.getFloat("confidence"); + if (copilotPersonConfidence >= sdkThreshold) { + String copilotPersonStatus = null; + Integer status = copilotPerson.getInteger("status"); + switch (status) { + case 1000: + copilotPersonStatus = "无人"; + break; + case 1001: + copilotPersonStatus = "有人"; + break; + case 1003: + copilotPersonStatus = "无人"; + break; + case 1004: + copilotPersonStatus = "有人"; + break; + default: + copilotPersonStatus = "有无人未知"; + } + copilotIll.append(copilotPersonStatus).append("、"); + } + String copilotIllInfo = copilotIll.toString(); + if (copilotIllInfo.length() >= 1) { + copilotIllStatus = copilotIllInfo.substring(0, copilotIllInfo.length() - 1); + } + //将主副驾驶状态填入 + vehicleDetails.setVehicle_illegal_driver_status(driverIllStatus); //主驾驶状态 + vehicleDetails.setVehicle_illegal_copilot_status(copilotIllStatus); //副驾驶状态 + + //获取车头照片 + JSONObject vehicle_detect_res = vehicleDetailsOne.getJSONObject("vehicle_detect_res"); + Float score = vehicle_detect_res.getFloat("score"); + Integer ctCenter = 0; //车头中间线,用于分割主副驾位置 + if (score >= 0.5) { + JSONObject syRectParam = vehicle_detect_res.getJSONObject("syRectParam"); + Integer width = syRectParam.getInteger("width"); + Integer left = syRectParam.getInteger("left"); + ctCenter = left + (width / 2); + } + + //获取主副驾驶遮阳板、挂件、纸巾盒、转经筒 + JSONObject vehicle_pendant_det_res = vehicleDetailsOne.getJSONObject("vehicle_pendant_det_res"); + JSONArray vehiclePendantDetectInfoParams = vehicle_pendant_det_res.getJSONArray("vehiclePendantDetectInfoParams"); + Integer count = vehicle_pendant_det_res.getInteger("count"); + int njbNumber = 0; //年检标数量 + String driverZYB = "无"; //主驾遮阳板 + String copilotZYB = "无"; //副驾遮阳板 + String gj = "无"; //挂件 + String zjh = "无"; //纸巾盒 + String zjt = "无"; //转经筒 + for (int i = 0; i < count; i++) { + JSONObject vehiclePendantJson = vehiclePendantDetectInfoParams.getJSONObject(i);//单个属性 + Float confidence = vehiclePendantJson.getFloat("confidence"); + if (confidence >= sdkThreshold) { + Integer index = vehiclePendantJson.getInteger("index"); + switch (index) { + case 3: + //判断主副驾驶 + //获取遮阳板距离左边的距离 + Integer zybLeft = vehiclePendantJson.getJSONObject("syRectParam").getInteger("left"); + if (zybLeft > ctCenter) { //为副驾驶 + copilotZYB = "有"; + } else { + driverZYB = "有"; + } + case 4: + njbNumber++; + case 5: + gj = "有"; + case 6: + zjh = "有"; + case 7: + zjt = "有"; + + } + } + } + vehicleDetails.setVehicle_driver_sunvisor(driverZYB); //主驾遮阳板 + vehicleDetails.setVehicle_copilot_sunvisor(copilotZYB); //副驾遮阳板 + vehicleDetails.setVehicle_annualInspectionStandard(String.valueOf(njbNumber)); //年检标 + vehicleDetails.setVehicle_pendant(gj); //挂件 + vehicleDetails.setVehicle_tissuebox(zjh); //纸巾盒 + vehicleDetails.setVehicle_prayerwheel(zjt);//转经筒 + + //获取车辆特征值 + JSONObject vehicle_fea_res = vehicleDetailsOne.getJSONObject("vehicle_fea_res"); + JSONArray featureArr = vehicle_fea_res.getJSONArray("feature"); + int size = featureArr.size(); + Double[] featureNew = new Double[size]; + for (int i = 0; i < size; i++) { + featureNew[i] = featureArr.getDouble(i); + } + vehicleDetails.setVehicle_fea_res_feature(featureNew);//获取特征值 + + return vehicleDetails; + } + + public ArrayList base64ToVehicleDetailsArr(JSONObject vehicleSDKJsonData) { + ArrayList vehicleDetailsList = null; + if (vehicleSDKJsonData.getString("msg").equals("success")) { + //开始解析数据并封装成List + JSONObject vehicleSDKResultJsonData = vehicleSDKJsonData.getJSONObject("result"); + //查询本章图片检测到几个车 + Integer count = vehicleSDKResultJsonData.getInteger("count"); + JSONArray vehicleSDKinfoJson = vehicleSDKResultJsonData.getJSONArray("info"); + vehicleDetailsList = new ArrayList<>(); + for (int i = 0; i < count; i++) { + //获取到单个的车辆数据 + JSONObject vehicleDetailsOne = vehicleSDKinfoJson.getJSONObject(i); + //调用通过vehicleSDKResultJsonData获取到单个车 + VehicleDetails vehicleDetails = sdkToVehicleDetails(vehicleDetailsOne); + vehicleDetailsList.add(vehicleDetails); + } + } + return vehicleDetailsList; + } + + /** + * 从全景图中获取到抓拍车辆图的base64 + */ + public static String picToSnapshot(String url, int left, int top, int width, int height) { + +// String path = "http://192.168.10.153:8880/192.168.10.78_01_20190927092803811_FACE_ALARM104.jpg"; + String snapshotBase64 = null; + ByteArrayOutputStream baos = null; + try { + URL path = new URL(url); + BufferedImage image = (BufferedImage) ImageIO.read(path); + BufferedImage subimage = image.getSubimage(left, top, width, height); + baos = new ByteArrayOutputStream(); + ImageIO.write(subimage, "jpg", baos); + + byte[] bytes = baos.toByteArray(); + BASE64Encoder encoder = new BASE64Encoder(); + String encode = encoder.encode(bytes); + snapshotBase64 = "data:image/jpeg;base64," + encode.replaceAll("\n", "").replaceAll("\r", ""); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (baos != null) { + baos.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return snapshotBase64; + } + + + /** + * 通过全景图的URL截取到其中的快照图并放入到指定位置 + */ + String urlCutToImagePath(int index, String imgUrl, String subPath, Integer left, Integer top, Integer width, Integer height) { + + String snapshotPathNew = null; + try { + String substring = imgUrl.substring(imgUrl.lastIndexOf('/') + 1); + BufferedImage read = ImageIO.read(new File(storePath + substring)); + BufferedImage subimage = read.getSubimage(left, top, width, height); + //获取到快照图的详细路径 + String snapshotName = "SNAPSHOT_" + index + "_" + imgUrl.substring(imgUrl.lastIndexOf('/') + 1); + String snapshotPath = subPath + snapshotName; + File t = new File(snapshotPath); + if (t.exists()) { + t.delete(); + } + ImageIO.write(subimage, "jpg", t); + + return snapshotPrefix + snapshotName; + } catch (IOException e) { + e.printStackTrace(); + } + return snapshotPathNew; + } + +} diff --git b/src/main/java/com/objecteye/utils/VehicleEngine.java a/src/main/java/com/objecteye/utils/VehicleEngine.java new file mode 100644 index 0000000..7312360 --- /dev/null +++ a/src/main/java/com/objecteye/utils/VehicleEngine.java @@ -0,0 +1,159 @@ +package com.objecteye.utils; + +import com.objecteye.pojo.SearchDataFromRetrieveDb; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class VehicleEngine { + + @Autowired + private RestTemplate restTemplate; + + @Value("${requestBase64}") + private String requestBase64; + @Value("${requestPath}") + private String requestPath; + @Value("${humanVehicleBase64}") + private String humanVehicleBase64; + @Value("${extractFeatureByBase64}") + private String extractFeatureByBase64; + @Value("${searchDataFromRetrieveDbPath}") + private String searchDataFromRetrieveDbPath; + @Value("${addUrlToDeployDb}") + private String addUrlToDeployDb; + @Value("${searchDataFromDeployDb}") + private String searchDataFromDeployDb; + @Value("${deleteDataFromDeployDb}") + private String deleteDataFromDeployDb; + + private final Logger logger = LoggerFactory.getLogger(VehicleEngine.class); + + + /** + * 通过base64获取 车辆结构化数据信息 + * + * @param tpxx base64参数信息 + * @return 车辆结构化数据信息 + */ + public String getVehicleInfoByBase64(String tpxx) { + return getInfoByBase64(tpxx, requestBase64); + } + + /** + * 通过base64获取到人车的信息 + * + * @param tpxx base64参数信息 + * @return 人车结构化数据 + */ + public String getHumanVehicleInfoByBase64(String tpxx) { + return getInfoByBase64(tpxx, humanVehicleBase64); + } + + /** + * 根据参数获取指定uri的返回值 body体 + * + * @param tpxx 请求参数 + * @param uri 请求地址 + * @return 返回信息body体 + */ + public String getInfoByBase64(String tpxx, String uri) { + Map uriVariables = new HashMap<>(16); + String body = null; + if (tpxx != null && tpxx.length() > 0) { + uriVariables.put("TPXX", tpxx); + ResponseEntity responseEntity = null; + try { + responseEntity = restTemplate.postForEntity(uri, uriVariables, String.class); + body = responseEntity.getBody(); + } catch (RestClientException e) { + e.printStackTrace(); + } + } + return body; + } + + /** + * 获取人脸底库对比数据 + * + * @param topN 选取数据量(可能不足) + * @param threshold 设定阈值 + * @param threadNum 检索线程个数 + * @param feature 特征值数组 + * @return 符合要求的人脸对比数据 + */ + public SearchDataFromRetrieveDb searchDataFromRetrieveDb(int topN, float threshold, int threadNum, float[] feature) { + Map uriVariables = new HashMap<>(16); + SearchDataFromRetrieveDb body = null; + if (feature != null && feature.length > 0) { + uriVariables.put("topN", topN); + uriVariables.put("threshold", threshold); + uriVariables.put("threadNum", threadNum); + uriVariables.put("feature", feature); + ResponseEntity responseEntity = null; + try { + responseEntity = restTemplate.postForEntity(searchDataFromRetrieveDbPath, uriVariables, SearchDataFromRetrieveDb.class); + body = responseEntity.getBody(); + } catch (RestClientException e) { + logger.error("您输入的图片因路径或其他原因导致无法出现识别,请将图片放入到http://192.168.10.4:8084/home/lxu/vehicleImages/new_wfcl/路径下"); + } + } + return body; + } + + /** + * 通过base64获取到人像数据 + * + * @param base64 base64数据 + * @return 获取人脸特征值数据 + */ + public String getPeopleInfoByBase64(String base64) { + return getInfoByBase64(base64, extractFeatureByBase64); + } + + /** + * 根据参数获取人像底库数据 + * + * @param map 请求参数 + * @return 人像底库满足条件的数据 + */ + public String searchDataFromDeployDb(Map map) { + HttpEntity> requestEntity = new HttpEntity<>(map); + ResponseEntity response = restTemplate.postForEntity(searchDataFromDeployDb, requestEntity, String.class); + return response.getBody(); + } + + /** + * 根据url添加到布控库 + * + * @param map + * @return + */ + public String addUrlToDeployDb(Map map) { + HttpEntity> requestEntity = new HttpEntity>(map); + ResponseEntity response = restTemplate.postForEntity(addUrlToDeployDb, requestEntity, String.class); + return response.getBody(); + } + + /** + * 删除库中的数据 + * + * @param map + * @return + */ + public String deleteDataFromDeployDb(Map map) { + HttpEntity> requestEntity = new HttpEntity>(map); + ResponseEntity response = restTemplate.postForEntity(deleteDataFromDeployDb, requestEntity, String.class); + return response.getBody(); + } +} diff --git b/src/main/java/com/objecteye/websocket/MyHandshakeInterceptor.java a/src/main/java/com/objecteye/websocket/MyHandshakeInterceptor.java new file mode 100644 index 0000000..da10cf6 --- /dev/null +++ a/src/main/java/com/objecteye/websocket/MyHandshakeInterceptor.java @@ -0,0 +1,32 @@ +package com.objecteye.websocket; + +import org.springframework.http.server.ServerHttpRequest; +import org.springframework.http.server.ServerHttpResponse; +import org.springframework.http.server.ServletServerHttpRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.server.HandshakeInterceptor; + +import java.util.Map; + +/** + * @Author: lr + * @Date: 2019/9/5 14:32 + * @Version 1.0 + * @Message: + */ +@Component +public class MyHandshakeInterceptor implements HandshakeInterceptor { + @Override + public boolean beforeHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Map map) throws Exception { + String deviceId = ((ServletServerHttpRequest) serverHttpRequest).getServletRequest().getParameter("deviceId"); + if (deviceId != null) { + map.put("deviceId", deviceId); + } + return true; + } + + @Override + public void afterHandshake(ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse, WebSocketHandler webSocketHandler, Exception e) { + } +} diff --git b/src/main/java/com/objecteye/websocket/MyWebSocketHandler.java a/src/main/java/com/objecteye/websocket/MyWebSocketHandler.java new file mode 100644 index 0000000..0edbe0b --- /dev/null +++ a/src/main/java/com/objecteye/websocket/MyWebSocketHandler.java @@ -0,0 +1,264 @@ +package com.objecteye.websocket; + +import com.alibaba.fastjson.JSON; +import com.objecteye.entity.*; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.service.AreaEquipmentService; +import com.objecteye.service.EquipmentService; +import net.sf.json.JSONObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.web.socket.CloseStatus; +import org.springframework.web.socket.TextMessage; +import org.springframework.web.socket.WebSocketSession; +import org.springframework.web.socket.handler.TextWebSocketHandler; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + + +/** + * @Author: lr + * @Date: 2019/9/3 10:45 + * @Version 1.0 + * @Message: + */ +@Component +public class MyWebSocketHandler extends TextWebSocketHandler { + + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private EquipmentService equipmentService; + + @Autowired + private AreaEquipmentService areaEquipmentService; + + @Autowired + private SelectMongoData selectMongoData; + + + @Override + public void handleTextMessage(WebSocketSession session, TextMessage message) + throws Exception { + super.handleTextMessage(session, message); + } + + /** + * 抓拍数据和报警数据的json格式 + */ + public String getRealData(Object countMsg, Object captureMsg, Object deployAlarmMsg) { + JSONObject jsonObject = new JSONObject(); + boolean isNull = true; + if (countMsg != null) { + isNull = false; + jsonObject.put("countMsg", countMsg); + jsonObject.put("countCode", 0); + } else { + jsonObject.put("countCode", 1); + } + if (captureMsg != null) { + isNull = false; + jsonObject.put("captureMsg", captureMsg); + jsonObject.put("captureCode", 0); + } else { + jsonObject.put("captureCode", 1); + } + if (deployAlarmMsg != null) { + isNull = false; + jsonObject.put("deployAlarmMsg", deployAlarmMsg); + jsonObject.put("deployAlarmCode", 0); + } else { + jsonObject.put("deployAlarmCode", 1); + } + if (isNull) { + return null; + } + return jsonObject.toString(); + } + + + @Override + public void afterConnectionEstablished(WebSocketSession session) { + + //获取请求头中节点id + String deviceId = session.getAttributes().get("deviceId").toString(); + if (deviceId.equals("0")) { //可视化大屏 + while (session.isOpen()) { + String data = null; + try { + data = (String) redisTemplate.opsForValue().get("data"); + if (data == null) { //缓存为空,从库中取数据,存入缓存 + VisualStatisticsMsg displayData = getDisplayData(); + data = JSON.toJSONString(displayData); + redisTemplate.opsForValue().set("data", data); + } else { + //推送数据 + session.sendMessage(new TextMessage(data)); + Thread.sleep(5000); + } + } catch (Exception e) { + //e.printStackTrace(); + } + } + } else { //实时预览 + while (session.isOpen()) { + Object captureMsg = null; + Object countMsg = null; + Object deployAlarmMsg = null; + + //对于流量统计和实时抓拍先判断设备是否有效 + SyAreaEquipment areaEquipment = areaEquipmentService.findOne(Integer.parseInt(deviceId)); + SyEquipment equipment = null; + Integer typeId = 0; + if (areaEquipment != null) { + typeId = areaEquipment.getTypeId(); //设备id + equipment = equipmentService.findOne(typeId); + if (equipment != null) { + //抓拍数据 + boolean havaIpKey = redisTemplate.hasKey(typeId); + if (havaIpKey) { + Long size = redisTemplate.opsForList().size(typeId); + if (size != 0) { + //从redis取数据(直接获取json字符串) + captureMsg = redisTemplate.opsForList().rightPop(typeId); + RabbitMQVehicle captureRedis = JSON.parseObject(captureMsg.toString(), RabbitMQVehicle.class); + String id = captureRedis.getId(); + String picurl = captureRedis.getPicurl(); + JSONObject object = new JSONObject(); + object.put("id", id); + object.put("picurl", picurl); + //VehicleDetails vehicleDetails = SdkToVehicleDetail.sdktodetail(captureRedis); + captureMsg = object.toString(); + } + } + + //流量统计 + CountMsg countMsg1 = new CountMsg(); + long vehicleCount = selectMongoData.getVehicleCountBydeviceId(typeId); + String strVehicleCount = selectMongoData.changeType(vehicleCount); + countMsg1.setVehicleCount(strVehicleCount); + long vehicleCountInHours = selectMongoData.getVehicleCountInHours(typeId); + String strVehicleCountInHours = selectMongoData.changeType(vehicleCountInHours); + countMsg1.setVehicleCountInHours(strVehicleCountInHours); + + long violateCountByDeviceId = selectMongoData.getViolateCountByDeviceId(typeId); + String strViolateCounts = selectMongoData.changeType(violateCountByDeviceId); + countMsg1.setViolateCount(strViolateCounts); + countMsg = JSON.toJSON(countMsg1); + } + } + + //布控任务报警 + boolean havedeployKey = redisTemplate.hasKey("ALARM"); + if (havedeployKey) { + Long size = redisTemplate.opsForList().size("ALARM"); + if (size != 0) { + //从redis取数据 + deployAlarmMsg = redisTemplate.opsForList().rightPop("ALARM"); + DeployAlarmMsg deployMsg = new DeployAlarmMsg(); + PlateAlarmMsg plateAlarmMsg = JSON.parseObject(deployAlarmMsg.toString(), PlateAlarmMsg.class); + String alarmTime = plateAlarmMsg.getAlarmTime(); + deployMsg.setAlarmTime(alarmTime); + String equipmentName = plateAlarmMsg.getEquipmentName(); + deployMsg.setAlarmPlace(equipmentName); + Integer alarmType = plateAlarmMsg.getAlarmType(); + deployMsg.setDeployType(alarmType); + String snapshotUrl = plateAlarmMsg.getSnapshotUrl(); + deployMsg.setCaptureUrl(snapshotUrl); + if (alarmType == 0) { + String plateNum = plateAlarmMsg.getPlateNum(); + deployMsg.setDeployUrl(plateNum); + } else { + String libUrl = plateAlarmMsg.getLibUrl(); + deployMsg.setDeployUrl(libUrl); + double similarity = plateAlarmMsg.getSimilarity(); + deployMsg.setSimilarity(Double.parseDouble(String.format("%.2f", similarity))); + } + deployAlarmMsg = JSON.toJSON(deployMsg); + } + } + + String realData = getRealData(countMsg, captureMsg, deployAlarmMsg); + if (realData != null) { + try { //每隔2秒,推送一次 + session.sendMessage(new TextMessage(realData)); + //Thread.sleep(2000); + } catch (IOException e) { + //e.printStackTrace(); + } + } + } + } + + } + + //抛出异常后处理 + @Override + public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { + if (session.isOpen()) { + session.close(); + } + } + + @Override + public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { + if (session.isOpen()) { + session.close(); + } + } + + //从库里查数据 + public VisualStatisticsMsg getDisplayData() { + //左上角那一块 + VisualStatisticsMsg visualStatisticsMsg = new VisualStatisticsMsg(); + long vehicleCount = selectMongoData.getVehicleCount(); + String strVehicleCount = selectMongoData.changeType(vehicleCount); + visualStatisticsMsg.setVehicleCount(strVehicleCount); + long monitorTotalDays = selectMongoData.getMonitorTotalDays(); + String strMonitorTotalDays = selectMongoData.changeType(monitorTotalDays); + visualStatisticsMsg.setMonitorTotalDays(strMonitorTotalDays); + int deviceCount = selectMongoData.getDeviceCount(); + visualStatisticsMsg.setDeviceCount(deviceCount); + int deployCount = selectMongoData.getDeployCount(); + String strDeployCount = selectMongoData.changeType(deployCount); + visualStatisticsMsg.setDeployCount(strDeployCount); + long alarmCount = selectMongoData.getAlarmCount(); + String strAlarmCount = selectMongoData.changeType(alarmCount); + visualStatisticsMsg.setAlarmCount(strAlarmCount); + long vehicleCountInMonth = selectMongoData.getVehicleCountInMonth(); + String strVehicleCountInMonth = selectMongoData.changeType(vehicleCountInMonth); + visualStatisticsMsg.setVehicleCountInMonth(strVehicleCountInMonth); + long vehicleCountInWeek = selectMongoData.getVehicleCountInWeek(); + String strVehicleCountInWeek = selectMongoData.changeType(vehicleCountInWeek); + visualStatisticsMsg.setVehicleCountInWeek(strVehicleCountInWeek); + + //区域和七日过车 + Map areaEquipmentCount = selectMongoData.getAreaEquipmentCount(); + visualStatisticsMsg.setAreaEquipmentCount(areaEquipmentCount); + List oneWeekVehicleCount = selectMongoData.getOneWeekVehicleCount(); + visualStatisticsMsg.setOneWeekVehicleCount(oneWeekVehicleCount); + List oneWeekSpecialtyVehicleCount = selectMongoData.getOneWeekSpecialtyVehicleCount(); + visualStatisticsMsg.setOneWeekSpecialtyVehicleCount(oneWeekSpecialtyVehicleCount); + List> vehicleCountByArea = selectMongoData.getVehicleCountByArea(); + visualStatisticsMsg.setVehicleCountByArea(vehicleCountByArea); + //今日相关数据 + Map todayData = selectMongoData.getTodayData(); + visualStatisticsMsg.setTodayData(todayData); + + return visualStatisticsMsg; + } + + + //隔一分钟更新缓存 + @Scheduled(fixedRate = 60000) + public void putCache() { + VisualStatisticsMsg displayData = getDisplayData(); + String displaydata = JSON.toJSONString(displayData); + redisTemplate.opsForValue().set("data", displaydata); + } +} diff --git b/src/main/java/com/objecteye/websocket/SdkToVehicleDetail.java a/src/main/java/com/objecteye/websocket/SdkToVehicleDetail.java new file mode 100644 index 0000000..950aa73 --- /dev/null +++ a/src/main/java/com/objecteye/websocket/SdkToVehicleDetail.java @@ -0,0 +1,340 @@ +package com.objecteye.websocket; + +import com.objecteye.entity.RelationMappingUtil; +import com.objecteye.pojo.PendantParams; +import com.objecteye.pojo.PlatePlateNumParams; +import com.objecteye.pojo.RabbitMQVehicle; +import com.objecteye.pojo.VehicleDetails; +import com.objecteye.utils.VehicleDetailsUtils; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * @Author: lr + * @Date: 2019/9/25 11:47 + * @Version 1.0 + * @Message: + */ +public class SdkToVehicleDetail { + + private static float sdkThreshold = 0.7F; //sdk的阈值 + private static float cpsbThreshold = 0.99F; //车牌识别的阈值 + private static String errorMsg = "识别异常"; + + + /** + * 将SDK中的数据封装成VehicleDetails类 + */ + public static VehicleDetails sdktodetail(RabbitMQVehicle captureRedis) { + + VehicleDetails vehicleDetails = new VehicleDetails(); + //抓拍图片id + String id = captureRedis.getId(); + vehicleDetails.setId(id); + + //抓拍图片url + String picurl = captureRedis.getPicurl(); + vehicleDetails.setPicurl(picurl); + + double vehicle_detect_score1 = captureRedis.getVehicle_detect_score(); + String snapshotBase64 = ""; + if (vehicle_detect_score1 > sdkThreshold) { + //增加车头的检测坐标值 + int[] vehicle_detect_syRectParam1 = captureRedis.getVehicle_detect_syRectParam(); + //获取抓拍图 + snapshotBase64 = VehicleDetailsUtils.picToSnapshot(picurl, vehicle_detect_syRectParam1[1], vehicle_detect_syRectParam1[2], vehicle_detect_syRectParam1[3], vehicle_detect_syRectParam1[0]); + } + vehicleDetails.setSnapshot(snapshotBase64); + + //车辆类型 + String vehicle_recg_type = errorMsg; + //品牌型号 + String vehicle_recg_info = errorMsg; + double vehicle_recg_name_score = captureRedis.getVehicle_recg_name_score(); + if (vehicle_recg_name_score > sdkThreshold) { + StringBuilder brand = new StringBuilder(); + vehicle_recg_type = captureRedis.getVehicle_recg_type(); + String vehicle_recg_brand = captureRedis.getVehicle_recg_brand(); + String vehicle_recg_subbrand = captureRedis.getVehicle_recg_subbrand(); + String vehicle_recg_issue_year = captureRedis.getVehicle_recg_issue_year(); + if (vehicle_recg_brand.length() != 0) { + brand = brand.append(vehicle_recg_brand); + } + if (vehicle_recg_subbrand.length() != 0) { + brand = brand.append("-" + vehicle_recg_subbrand); + } + if (vehicle_recg_issue_year.length() != 0) { + brand = brand.append("-" + vehicle_recg_issue_year); + } + vehicle_recg_info = brand.toString(); + } + vehicleDetails.setVehicle_recg_type(vehicle_recg_type); + vehicleDetails.setVehicle_recg_brand(vehicle_recg_info); + vehicleDetails.setVehicle_recg_name_score(Float.parseFloat(String.format("%.2f", vehicle_recg_name_score))); + + //车辆颜色 + double vehicle_color_score = captureRedis.getVehicle_color_score(); + String vehicleColor = errorMsg; + if (vehicle_color_score > sdkThreshold) { + int vehicle_color_index = captureRedis.getVehicle_color_index(); + vehicleColor = RelationMappingUtil.getVehicleColor(vehicle_color_index); + } + vehicleDetails.setVehicle_color(vehicleColor); + + //车牌相关信息 + double vehicle_plate_numScore = captureRedis.getVehicle_plate_numScore(); + String vehiclePlateType = errorMsg; + String vehiclePlateNum = errorMsg; + String vehiclePlateNumStatus = "无"; + if (vehicle_plate_numScore > cpsbThreshold) { //按总体的车牌分数衡量,如果总体车牌分数大于0.99,默认车牌完好 + int vehicleplatetype = captureRedis.getVehicleplatetype(); + vehiclePlateType = RelationMappingUtil.getVehiclePlateType(vehicleplatetype); + PlatePlateNumParams[] vehicle_plate_plateNumParams = captureRedis.getVehicle_plate_plateNumParams(); + int length = vehicle_plate_plateNumParams.length; + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + String character = vehicle_plate_plateNumParams[i].getCharacter(); + sb.append(character); + } + vehiclePlateNum = sb.toString(); + vehiclePlateNumStatus = "有"; + } + vehicleDetails.setVehicle_plate_type(vehiclePlateType); //车牌类型 + vehicleDetails.setVehicle_plate_detectScore(Float.parseFloat(String.format("%.2f", vehicle_plate_numScore))); //车牌可信度 + vehicleDetails.setVehicle_plate_hphm(vehiclePlateNum); //车牌号码 + vehicleDetails.setVehicle_plate_status(vehiclePlateNumStatus); //车牌状态 + + //抓拍时间 + Long pictime = captureRedis.getPictime(); + Date date = new Date(pictime); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String dateString = dateFormat.format(date); + vehicleDetails.setPictime(dateString); + + //设备相关信息 + String equipmentName = captureRedis.getEquipmentName(); + vehicleDetails.setEquipmentName(equipmentName); + String longitude = captureRedis.getLongitude(); + vehicleDetails.setLongitude(longitude); + String latitude = captureRedis.getLatitude(); + vehicleDetails.setLatitude(latitude); + + //违规信息(司机与副驾) + String driverStatus = ""; + StringBuilder driverIll = new StringBuilder(); + String copilotStatus = ""; + StringBuilder copilotIll = new StringBuilder(); + //司机 + double vehicle_illegal_driver_person_confidence = captureRedis.getVehicle_illegal_driver_person_confidence(); + if (vehicle_illegal_driver_person_confidence > sdkThreshold) { + String driverPersonStatus = null; + int vehicle_illegal_driver_person_status = captureRedis.getVehicle_illegal_driver_person_status(); + switch (vehicle_illegal_driver_person_status) { + case 1003: + driverPersonStatus = "无人"; + break; + case 1004: + driverPersonStatus = "有人"; + break; + default: + driverPersonStatus = "有无人未知"; + } + driverIll.append(driverPersonStatus).append("、"); + } + + double vehicle_illegal_driver_belt_confidence = captureRedis.getVehicle_illegal_driver_belt_confidence(); + if (vehicle_illegal_driver_belt_confidence > sdkThreshold) { + String driverBeltStatus = null; + int vehicle_illegal_driver_belt_status = captureRedis.getVehicle_illegal_driver_belt_status(); + switch (vehicle_illegal_driver_belt_status) { + case 1000: + driverBeltStatus = "未系安全带"; + break; + case 1001: + driverBeltStatus = "系安全带"; + break; + default: + driverBeltStatus = "安全带未知"; + } + driverIll.append(driverBeltStatus).append("、"); + } + + double vehicle_illegal_driver_smoke_confidence = captureRedis.getVehicle_illegal_driver_smoke_confidence(); + if (vehicle_illegal_driver_smoke_confidence > sdkThreshold) { + String driverSmokeStatus = null; + int vehicle_illegal_driver_smoke_status = captureRedis.getVehicle_illegal_driver_smoke_status(); + switch (vehicle_illegal_driver_smoke_status) { + case 1000: + driverSmokeStatus = "抽烟"; + break; + case 1001: + driverSmokeStatus = "未抽烟"; + break; + default: + driverSmokeStatus = "抽烟未知"; + } + driverIll.append(driverSmokeStatus).append("、"); + } + + double vehicle_illegal_driver_phone_confidence = captureRedis.getVehicle_illegal_driver_phone_confidence(); + if (vehicle_illegal_driver_phone_confidence > sdkThreshold) { + String driverPhoneStatus = null; + int vehicle_illegal_driver_phone_status = captureRedis.getVehicle_illegal_driver_phone_status(); + switch (vehicle_illegal_driver_phone_status) { + case 1000: + driverPhoneStatus = "打电话"; + break; + case 1001: + driverPhoneStatus = "未打电话"; + break; + default: + driverPhoneStatus = "打电话未知"; + } + driverIll.append(driverPhoneStatus).append("、"); + } + String driverIllInfo = driverIll.toString(); + int lengths = driverIllInfo.length(); + if (lengths > 0) { + driverStatus = driverIllInfo.substring(0, lengths - 1); + } + + + //副驾 + double vehicle_illegal_copilot_person_confidence = captureRedis.getVehicle_illegal_copilot_person_confidence(); + if (vehicle_illegal_copilot_person_confidence > sdkThreshold) { + String copilotPersonStatus = null; + int vehicle_illegal_copilot_person_status = captureRedis.getVehicle_illegal_copilot_person_status(); + switch (vehicle_illegal_copilot_person_status) { + case 1003: + copilotPersonStatus = "无人"; + break; + case 1004: + copilotPersonStatus = "有人"; + break; + default: + copilotPersonStatus = "有无人未知"; + } + copilotIll.append(copilotPersonStatus).append("、"); + } + + + double vehicle_illegal_copilot_belt_confidence = captureRedis.getVehicle_illegal_copilot_belt_confidence(); + if (vehicle_illegal_copilot_belt_confidence > sdkThreshold) { + String copilotBeltStatus = null; + int vehicle_illegal_copilot_belt_status = captureRedis.getVehicle_illegal_copilot_belt_status(); + switch (vehicle_illegal_copilot_belt_status) { + case 1000: + copilotBeltStatus = "未系安全带"; + break; + case 1001: + copilotBeltStatus = "系安全带"; + break; + default: + copilotBeltStatus = "安全带未知"; + } + copilotIll.append(copilotBeltStatus).append("、"); + } + + double vehicle_illegal_copilot_smoke_confidence = captureRedis.getVehicle_illegal_copilot_smoke_confidence(); + if (vehicle_illegal_copilot_smoke_confidence > sdkThreshold) { + String copilotSmokeStatus = null; + int vehicle_illegal_copilot_smoke_status = captureRedis.getVehicle_illegal_copilot_smoke_status(); + switch (vehicle_illegal_copilot_smoke_status) { + case 1000: + copilotSmokeStatus = "抽烟"; + break; + case 1001: + copilotSmokeStatus = "未抽烟"; + break; + default: + copilotSmokeStatus = "抽烟未知"; + } + copilotIll.append(copilotSmokeStatus).append("、"); + } + + double vehicle_illegal_copilot_phone_confidence = captureRedis.getVehicle_illegal_copilot_phone_confidence(); + if (vehicle_illegal_copilot_phone_confidence > sdkThreshold) { + String copilotPhoneStatus = null; + int vehicle_illegal_copilot_phone_status = captureRedis.getVehicle_illegal_copilot_phone_status(); + switch (vehicle_illegal_copilot_phone_status) { + case 1000: + copilotPhoneStatus = "打电话"; + break; + case 1001: + copilotPhoneStatus = "未打电话"; + break; + default: + copilotPhoneStatus = "打电话未知"; + } + copilotIll.append(copilotPhoneStatus).append("、"); + } + + String copilotIllInfo = copilotIll.toString(); + int lengthss = copilotIllInfo.length(); + if (lengthss > 0) { + copilotStatus = copilotIllInfo.substring(0, lengthss - 1); + } + vehicleDetails.setVehicle_illegal_driver_status(driverStatus); + vehicleDetails.setVehicle_illegal_copilot_status(copilotStatus); + + //获取车头照片 + double vehicle_detect_score = captureRedis.getVehicle_detect_score(); + Integer ctCenter = 0; //车头中间线,用于分割主副驾位置 + if (vehicle_detect_score > sdkThreshold) { + int[] vehicle_detect_syRectParam = captureRedis.getVehicle_detect_syRectParam(); + Integer width = vehicle_detect_syRectParam[0]; + Integer left = vehicle_detect_syRectParam[2]; + ctCenter = left + (width / 2); + } + + //车头信息 + //获取主副驾驶遮阳板、挂件、纸巾盒、转经筒 + PendantParams[] vehicle_pendant_params = captureRedis.getVehicle_pendant_Params(); + Integer count = captureRedis.getVehicle_pendant_count(); //车属性个数 + int njbNumber = 0; //年检标数量 + String driverZYB = "无"; //主驾遮阳板 + String copilotZYB = "无"; //副驾遮阳板 + String gj = "无"; //挂件 + String zjh = "无"; //纸巾盒 + String zjt = "无"; //转经筒 + for (int i = 0; i < count; i++) { + Double confidence = vehicle_pendant_params[i].getConfidence(); + if (confidence >= sdkThreshold) { + Integer index = vehicle_pendant_params[i].getIndex(); + switch (index) { + case 3: + //判断主副驾驶 + //获取遮阳板距离左边的距离 + Integer zybLeft = vehicle_pendant_params[i].getSyrectparam()[i]; + if (ctCenter != 0) { + if (zybLeft > ctCenter) { //为主驾驶 + driverZYB = "有"; + } else { + copilotZYB = "有"; + } + } + case 4: + njbNumber++; + case 5: + gj = "有"; + case 6: + zjh = "有"; + case 7: + zjt = "有"; + } + } + } + vehicleDetails.setVehicle_driver_sunvisor(driverZYB); + vehicleDetails.setVehicle_copilot_sunvisor(copilotZYB); + vehicleDetails.setVehicle_annualInspectionStandard(String.valueOf(njbNumber)); + vehicleDetails.setVehicle_pendant(gj); + vehicleDetails.setVehicle_tissuebox(zjh); + vehicleDetails.setVehicle_prayerwheel(zjt); + + if (vehicleDetails != null) { + return vehicleDetails; + } + return null; + } +} diff --git b/src/main/java/com/objecteye/websocket/SelectMongoData.java a/src/main/java/com/objecteye/websocket/SelectMongoData.java new file mode 100644 index 0000000..69590be --- /dev/null +++ a/src/main/java/com/objecteye/websocket/SelectMongoData.java @@ -0,0 +1,726 @@ +package com.objecteye.websocket; + +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.objecteye.entity.*; +import com.objecteye.mapper.SyAreaEquipmentMapper; +import com.objecteye.mapper.SyDeployMapper; +import com.objecteye.mapper.SyEquipmentMapper; +import com.objecteye.service.AreaEquipmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.data.mongodb.core.query.Query; +import org.springframework.stereotype.Component; + +import java.util.*; + + +@Component +public class SelectMongoData { + + private static float sdkThreshold = 0.7F; //sdk的阈值 + + @Autowired + private MongoTemplate mongoTemplate; + @Autowired + private SyEquipmentMapper syEquipmentMapper; + @Autowired + private SyAreaEquipmentMapper areaEquipmentMapper; + @Autowired + private AreaEquipmentService areaEquipmentService; + @Autowired + private SyDeployMapper syDeployMapper; + + //处理过车总量 + public long getVehicleCount() { + Query query = new Query(); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //监控总天数(从系统接入的那天开始算起) + public long getMonitorTotalDays() { + Query query = new Query(); + SystemStartTime one = mongoTemplate.findOne(query, SystemStartTime.class, "SystemStartTime"); + long startTime = one.getStartTime(); + DateTime now = DateUtil.date(); + DateTime endOfDay = DateUtil.endOfDay(now); + long endTime = endOfDay.getTime(); + long days = (endTime - startTime + 1) / (1000 * 60 * 60 * 24); + return days; + } + + //记录程序开始运行时间 + public void setSystemStartTime() { + Query query = new Query(); + long count = mongoTemplate.count(query, "SystemStartTime"); + if (count == 0) { + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + SystemStartTime systemStartTime = new SystemStartTime(); + systemStartTime.setStartTime(startTime); + mongoTemplate.save(systemStartTime, "SystemStartTime"); + } + } + + //卡口数 + public int getDeviceCount() { + SyEquipmentExample example = new SyEquipmentExample(); + SyEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + int count = syEquipmentMapper.countByExample(example); + return count; + } + + //布控车辆/排总数 + public int getDeployCount() { + SyDeployExample example = new SyDeployExample(); + SyDeployExample.Criteria criteria = example.createCriteria(); + criteria.andIsDeleteEqualTo(0); + int count = syDeployMapper.countByExample(example); + return count; + } + + //报警总数 + public long getAlarmCount() { + Query query = new Query(); + long count = mongoTemplate.count(query, "plateAlarmMsg"); + return count; + } + + //本月过车总数 + public long getVehicleCountInMonth() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本月第一天时间 + DateTime time = DateUtil.beginOfMonth(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本周过车总数 + public long getVehicleCountInWeek() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本周开始时间 + DateTime time = DateUtil.beginOfWeek(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日主驾未系安全带 + public long getDriverBelt() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_illegal_driver_belt_confidence").gt(sdkThreshold) + .and("vehicle_illegal_driver_belt_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日副驾驶未系安全带 + public long getCopilotBelt() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_illegal_copilot_belt_confidence").gt(sdkThreshold) + .and("vehicle_illegal_copilot_belt_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日主驾打电话 + public long getDriverPhone() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_illegal_driver_phone_confidence").gt(sdkThreshold) + .and("vehicle_illegal_driver_phone_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日副驾打电话 + public long getCopilotPhone() { + Query query = new Query(); + Criteria criteria = new Criteria(); + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_illegal_copilot_phone_confidence").gt(sdkThreshold) + .and("vehicle_illegal_copilot_phone_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日主驾抽烟 + public long getDriverSmoke() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_illegal_driver_smoke_confidence").gt(sdkThreshold) + .and("vehicle_illegal_driver_smoke_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日副驾抽烟 + public long getCopilotSmoke() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_illegal_copilot_smoke_confidence").gt(sdkThreshold) + .and("vehicle_illegal_copilot_smoke_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日污损车牌 + + + //本日无车牌 + + //本日违规类型排名 + public List> getViolationTypeRanking() { + List> list = new ArrayList<>(); + Map map = new HashMap<>(); + map.put("name", "主驾未系安全带"); + map.put("value", getDriverBelt()); + list.add(map); + Map map1 = new HashMap<>(); + map1.put("name", "副驾驶未系安全带"); + map1.put("value", getCopilotBelt()); + list.add(map1); + Map map2 = new HashMap<>(); + map2.put("name", "主驾打电话"); + map2.put("value", getDriverPhone()); + list.add(map2); + Map map3 = new HashMap<>(); + map3.put("name", "主驾抽烟"); + map3.put("value", getDriverSmoke()); + list.add(map3); + Map map4 = new HashMap<>(); + map4.put("name", "污损车牌"); + map4.put("value", 0); + list.add(map4); + Map map5 = new HashMap<>(); + map5.put("name", "无车牌"); + map5.put("value", 0); + list.add(map5); + Collections.sort(list, new Comparator>() { + @Override + public int compare(Map a, Map b) { + //默认flag值1,默认是升序,如果返回是为-flag则是降序 + String valueA = a.get("value").toString(); + String valueB = b.get("value").toString(); + int flag = Integer.parseInt(valueA) - Integer.parseInt(valueB); + if (flag < 0) { + return 1; + } + if (flag == 0) { + return 0; + } + return -1; + } + }); + return list; + } + + //本日渣土车 + public long getMuckCarCount() { + Query query = new Query(); + Criteria criteria = new Criteria(); + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_special_score").gt(sdkThreshold) + .and("vehicle_special_type").is(2); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日危化品车 + public long getDangerousChemicalsVehicleCount() { + Query query = new Query(); + Criteria criteria = new Criteria(); + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_special_score").gt(sdkThreshold) + .and("vehicle_special_type").is(1); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日过车总数 + public long getVehicleCountInDay() { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取当前时间 + DateTime date = DateUtil.date(); + //获取本日开始时间 + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //本日违规总数 + public long getViolateCountInDay() { + long count = getDriverBelt() + getCopilotBelt() + getDriverPhone() + getCopilotPhone() + getDriverSmoke() + getCopilotSmoke(); + return count; + } + + //本日报警总数 + public long getAlarmCountInDay() { + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + long count = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime)), "plateAlarmMsg"); + return count; + } + + //本日车牌报警总数 + public long getPlateAlarmCountInDay() { + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + long count = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(0)), "plateAlarmMsg"); + return count; + } + + //本日车辆报警总数 + public long getVihecleAlarmCountInDay() { + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + long count = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(1)), "plateAlarmMsg"); + return count; + } + + //本日人员报警总数 + public long getPersonAlarmCountInDay() { + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + long count = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(2)), "plateAlarmMsg"); + return count; + } + + //本日相关数据 + public Map getTodayData() { + Map dataMap = new HashMap<>(); + //时间 + DateTime date = DateUtil.date(); + DateTime time = DateUtil.beginOfDay(date); + long startTime = time.getTime(); + long endTime = date.getTime(); + //本日过车总数 + long vehicleCountInDay = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime)), "rabbitMQVehicle"); + dataMap.put("vehicleCountInDay", vehicleCountInDay); + //本日主驾未系安全带 + long driverBeltInDay = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_driver_belt_confidence").gt(sdkThreshold).and("vehicle_illegal_driver_belt_status").is(1000)), "rabbitMQVehicle"); + //本日副驾驶未系安全带 + long copilotBeltInDay = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_copilot_belt_confidence").gt(sdkThreshold).and("vehicle_illegal_copilot_belt_status").is(1000)), "rabbitMQVehicle"); + //本日主驾打电话 + long driverPhone = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_driver_phone_confidence").gt(sdkThreshold).and("vehicle_illegal_driver_phone_status").is(1000)), "rabbitMQVehicle"); + //本日副驾打电话 + long copilotPhone = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_copilot_phone_confidence").gt(sdkThreshold).and("vehicle_illegal_copilot_phone_status").is(1000)), "rabbitMQVehicle"); + //本日主驾抽烟 + long driverSmoke = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_driver_smoke_confidence").gt(sdkThreshold).and("vehicle_illegal_driver_smoke_status").is(1000)), "rabbitMQVehicle"); + //本日副驾抽烟 + long copilotSmoke = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_illegal_copilot_smoke_confidence").gt(sdkThreshold).and("vehicle_illegal_copilot_smoke_status").is(1000)), "rabbitMQVehicle"); + //本日渣土车 + long muckCarCount = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_special_score").gt(sdkThreshold).and("vehicle_special_type").is(2)), "rabbitMQVehicle"); + dataMap.put("muckCarCount", muckCarCount); + //本日危化品车 + long dangerousCarCount = mongoTemplate.count(Query.query(Criteria.where("pictime").gte(startTime).lt(endTime).and("vehicle_special_score").gt(sdkThreshold).and("vehicle_special_type").is(1)), "rabbitMQVehicle"); + dataMap.put("dangerousCarCount", dangerousCarCount); + //本日违规总数 + long violateCountInDay = driverBeltInDay + copilotBeltInDay + driverPhone + copilotPhone + driverSmoke + copilotSmoke; + dataMap.put("violateCountInDay", violateCountInDay); + //本日车牌报警总数 + long plateAlarmCountInDay = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(0)), "plateAlarmMsg"); + dataMap.put("plateAlarmCountInDay", plateAlarmCountInDay); + //本日车辆报警总数 + long vihecleAlarmCountInDay = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(1)), "plateAlarmMsg"); + dataMap.put("vihecleAlarmCountInDay", vihecleAlarmCountInDay); + //本日人员报警总数 + long personAlarmCountInDay = mongoTemplate.count(Query.query(Criteria.where("picTime").gte(startTime).lt(endTime).and("alarmType").is(2)), "plateAlarmMsg"); + dataMap.put("personAlarmCountInDay", personAlarmCountInDay); + //本日报警总数 + long alarmCountInDay = plateAlarmCountInDay + vihecleAlarmCountInDay + personAlarmCountInDay; + dataMap.put("alarmCountInDay", alarmCountInDay); + //违规排行 + Map map = new HashMap(); + map.put("主驾未系安全带", driverBeltInDay); + map.put("副驾驶未系安全带", copilotBeltInDay); + map.put("主驾打电话", driverPhone); + map.put("主驾抽烟", driverSmoke); + map.put("污损车牌", Long.valueOf(0)); + map.put("无车牌", Long.valueOf(0)); + Comparator> valueComparator = new Comparator>() { + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + return Math.toIntExact(o2.getValue() - o1.getValue()); + } + }; + List> violationTypeRanking = new ArrayList>(map.entrySet()); + Collections.sort(violationTypeRanking, valueComparator); + dataMap.put("violationTypeRanking", violationTypeRanking); + + return dataMap; + + } + + + //点位区域分布(只需返回区域名称和该区域下有多少设备即可) + public Map getAreaEquipmentCount() { + Map map = new HashMap<>(); + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andTypeIdEqualTo(0); + criteria.andParentIdNotEqualTo(0); + List syAreaEquipments = areaEquipmentMapper.selectByExample(example); + for (SyAreaEquipment i : syAreaEquipments) { + Integer id = i.getId(); + SyAreaEquipmentExample example1 = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria1 = example1.createCriteria(); + criteria1.andParentIdEqualTo(id); + int count = areaEquipmentMapper.countByExample(example1); + String name = i.getName(); + map.put(name, count); + } + if (map.size() > 0) { + return map; + } + return null; + } + + //七日过车情况(近七天每天的过车总量) + public List getOneWeekVehicleCount() { + List list = new ArrayList<>(); + //获取当前时间 + DateTime date = DateUtil.date(); + for (int i = 6; i >= 0; i--) { + DateTime offsetDay = DateUtil.offsetDay(date, -i); + long countToday = getVehicleCountToday(offsetDay); + list.add(countToday); + } + if (list.size() <= 0) { + return null; + } + return list; + } + + //当天过车总量 + public long getVehicleCountToday(DateTime date) { + //获取本日开始时间 + DateTime beginOfDay = DateUtil.beginOfDay(date); + //获取本日结束时间 + DateTime endOfDay = DateUtil.endOfDay(date); + Query query = new Query(); + Criteria criteria = new Criteria(); + long startTime = beginOfDay.getTime(); + long endTime = endOfDay.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //七日特殊品类车辆走势(近七天每天渣土车、危化品车总数) + public List getOneWeekSpecialtyVehicleCount() { + List list = new ArrayList<>(); + //获取当前时间 + DateTime date = DateUtil.date(); + for (int i = 6; i >= 0; i--) { + DateTime offsetDay = DateUtil.offsetDay(date, -i); + long muckCarCountToday = getMuckCarCountToday(offsetDay); + long chemicalsVehicleCountToday = getDangerousChemicalsVehicleCountToday(offsetDay); + long[] l = new long[2]; + l[0] = muckCarCountToday; + l[1] = chemicalsVehicleCountToday; + list.add(l); + } + return list; + } + + //一天中渣土车总量 + public long getMuckCarCountToday(DateTime date) { + //获取本日开始时间 + DateTime beginOfDay = DateUtil.beginOfDay(date); + //获取本日结束时间 + DateTime endOfDay = DateUtil.endOfDay(date); + Query query = new Query(); + Criteria criteria = new Criteria(); + long startTime = beginOfDay.getTime(); + long endTime = endOfDay.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_special_score").gt(sdkThreshold) + .and("vehicle_special_type").is(2); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //一天中危化品车总量 + public long getDangerousChemicalsVehicleCountToday(DateTime date) { + Query query = new Query(); + Criteria criteria = new Criteria(); + //获取本日开始时间 + DateTime beginOfDay = DateUtil.beginOfDay(date); + //获取本日结束时间 + DateTime endOfDay = DateUtil.endOfDay(date); + long startTime = beginOfDay.getTime(); + long endTime = endOfDay.getTime(); + criteria.and("pictime").gte(startTime).lt(endTime) + .and("vehicle_special_score").gt(sdkThreshold) + .and("vehicle_special_type").is(1); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //获取卡口经过车辆数 + public long getVehicleCountBydeviceId(int deviceId) { + Query query = new Query(); + SystemStartTime one = mongoTemplate.findOne(query, SystemStartTime.class, "SystemStartTime"); + long startTime = one.getStartTime(); + DateTime now = DateUtil.date(); + long endTime = now.getTime(); + Criteria criteria = new Criteria(); + criteria.and("deviceid").is(deviceId); + criteria.and("pictime").gte(startTime).lt(endTime); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //获取过去一小时卡口经过车辆数 + public long getVehicleCountInHours(int deviceId) { + Query query = new Query(); + DateTime now = DateUtil.date(); //现在 + DateTime offsetHour = DateUtil.offsetHour(now, -1); //一小时前 + long startTime = offsetHour.getTime(); + long endTime = now.getTime(); + Criteria criteria = new Criteria(); + criteria.and("deviceid").is(deviceId); + criteria.and("pictime").gte(startTime).lt(endTime); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //地图展示每个区的过车总数(经纬度、过车总数) + public List> getVehicleCountByArea() { + + List> list = new ArrayList<>(); + //获得所有区域 + SyAreaEquipmentExample example = new SyAreaEquipmentExample(); + SyAreaEquipmentExample.Criteria criteria = example.createCriteria(); + criteria.andTypeIdEqualTo(0); + criteria.andParentIdNotEqualTo(0); + List syAreaEquipments = areaEquipmentMapper.selectByExample(example); + //计算各区域过车总数 + for (SyAreaEquipment i : syAreaEquipments) { + Map map = new HashMap<>(16); + //获得节点id + Integer id = i.getId(); + //获得一个区域中所有的设备id + List deviceIds = areaEquipmentService.findCaptureById(id); + if (deviceIds.size() > 0) { + long count = 0; + for (int j = 0; j < deviceIds.size(); j++) { + + + //获得区域名称 + String name = i.getName(); + map.put("name", name); + //获得其中一个设备的经纬度 + Integer deviceId = deviceIds.get(j); + SyEquipment syEquipment = syEquipmentMapper.selectByPrimaryKey(deviceId); + String longitude = syEquipment.getLongitude(); + String latitude = syEquipment.getLatitude(); + map.put("longitude", longitude); + map.put("latitude", latitude); + //获得区域内一个设备的过车总数 + Query query = new Query(); + Criteria criteria1 = new Criteria(); + criteria1.and("deviceid").is(deviceId); + query.addCriteria(criteria1); + long count1 = mongoTemplate.count(query, "rabbitMQVehicle"); + count = count + count1; + } + map.put("count", count); + list.add(map); + } else { //一个区域没有设备,就不用返回 + continue; + } + } + if (list.size() > 0) { + return list; + } + return null; + } + + //限定设备,主驾未系安全带 + public long getDriverBeltByDeviceId(int deviceId) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("deviceId").is(deviceId) + .and("vehicle_illegal_driver_belt_confidence").gt(sdkThreshold) + .and("vehicle_illegal_driver_belt_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //限定设备,副驾驶未系安全带 + public long getCopilotBeltByDeviceId(int deviceId) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("deviceId").is(deviceId) + .and("vehicle_illegal_copilot_belt_confidence").gt(sdkThreshold) + .and("vehicle_illegal_copilot_belt_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //限定设备,主驾打电话 + public long getDriverPhoneByDeviceId(int deviceId) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("deviceId").is(deviceId) + .and("vehicle_illegal_driver_phone_confidence").gt(sdkThreshold) + .and("vehicle_illegal_driver_phone_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //限定设备,副驾打电话 + public long getCopilotPhoneByDeviceId(int deviceId) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("deviceId").is(deviceId) + .and("vehicle_illegal_copilot_phone_confidence").gt(sdkThreshold) + .and("vehicle_illegal_copilot_phone_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //限定设备,主驾抽烟 + public long getDriverSmokeByDeviceId(int deviceId) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("deviceId").is(deviceId) + .and("vehicle_illegal_driver_smoke_confidence").gt(sdkThreshold) + .and("vehicle_illegal_driver_smoke_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //限定设备,副驾抽烟 + public long getCopilotSmokeByDeviceId(int deviceId) { + Query query = new Query(); + Criteria criteria = new Criteria(); + criteria.and("deviceId").is(deviceId) + .and("vehicle_illegal_copilot_smoke_confidence").gt(sdkThreshold) + .and("vehicle_illegal_copilot_smoke_status").is(1000); + query.addCriteria(criteria); + long count = mongoTemplate.count(query, "rabbitMQVehicle"); + return count; + } + + //设备接入至现在的违规车辆数 + public long getViolateCountByDeviceId(int deviceId) { + long count = getDriverBeltByDeviceId(deviceId) + getDriverPhoneByDeviceId(deviceId) + getDriverSmokeByDeviceId(deviceId) + getCopilotBeltByDeviceId(deviceId) + getCopilotPhoneByDeviceId(deviceId) + getCopilotSmokeByDeviceId(deviceId); + return count; + } + + //转换类型 + public String changeType(long count) { + String strCount = null; + if (count > 99999999) { + count = count % 100000000; + strCount = count + "亿"; + return strCount; + } + strCount = "" + count; + return strCount; + } + + +} diff --git b/src/main/java/com/objecteye/websocket/WebSocketConfigClass.java a/src/main/java/com/objecteye/websocket/WebSocketConfigClass.java new file mode 100644 index 0000000..6cfea40 --- /dev/null +++ a/src/main/java/com/objecteye/websocket/WebSocketConfigClass.java @@ -0,0 +1,33 @@ +package com.objecteye.websocket; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.WebSocketHandler; +import org.springframework.web.socket.config.annotation.EnableWebSocket; +import org.springframework.web.socket.config.annotation.WebSocketConfigurer; +import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; + +/** + * @Author: lr + * @Date: 2019/9/3 10:51 + * @Version 1.0 + * @Message: + */ +@Configuration +@EnableWebSocket +public class WebSocketConfigClass implements WebSocketConfigurer { + + @Autowired + private MyHandshakeInterceptor myHandshakeInterceptor; + + @Override + public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { + registry.addHandler(myHandler(), "/ws").setAllowedOrigins("*").addInterceptors(this.myHandshakeInterceptor); + } + + @Bean + public WebSocketHandler myHandler() { + return new MyWebSocketHandler(); + } +} diff --git b/src/main/resources/META-INF/additional-spring-configuration-metadata.json a/src/main/resources/META-INF/additional-spring-configuration-metadata.json new file mode 100644 index 0000000..3282e3c --- /dev/null +++ a/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -0,0 +1,9 @@ +{ + "properties": [ + { + "name": "jwt.secret", + "type": "java.lang.String", + "description": "Description for jwt.secret." + } + ] +} \ No newline at end of file diff --git b/src/main/resources/application-dev.yml a/src/main/resources/application-dev.yml new file mode 100644 index 0000000..d074774 --- /dev/null +++ a/src/main/resources/application-dev.yml @@ -0,0 +1,23 @@ +spring: + datasource: + url: jdbc:mysql://192.168.10.153:3306/sy_vehicle?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: 123456 + data: + mongodb: + uri: mongodb://vehicle:shiyu2018@192.168.10.153:27017/vehicle + servlet: + multipart: + max-file-size: 20MB + max-request-size: 20MB + redis: + database: 0 + host: 192.168.10.153 + port: 6381 + jedis: + pool: + max-active: -1 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + timeout: 10000ms \ No newline at end of file diff --git b/src/main/resources/application-prop.yml a/src/main/resources/application-prop.yml new file mode 100644 index 0000000..e69de29 --- /dev/null +++ a/src/main/resources/application-prop.yml diff --git b/src/main/resources/application-test.yml a/src/main/resources/application-test.yml new file mode 100644 index 0000000..cccecb5 --- /dev/null +++ a/src/main/resources/application-test.yml @@ -0,0 +1,23 @@ +spring: + datasource: + url: jdbc:mysql://192.168.10.39:3306/sy_vehicle?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai + username: root + password: 123456 + data: + mongodb: + uri: mongodb://192.168.10.39:27017/vehicle + servlet: + multipart: + max-file-size: 20MB + max-request-size: 20MB + redis: + database: 0 + host: 192.168.10.39 + port: 6379 + jedis: + pool: + max-active: -1 + max-wait: -1ms + max-idle: 8 + min-idle: 0 + timeout: 10000ms \ No newline at end of file diff --git b/src/main/resources/application.yml a/src/main/resources/application.yml new file mode 100644 index 0000000..489b5c1 --- /dev/null +++ a/src/main/resources/application.yml @@ -0,0 +1,70 @@ +spring: + profiles: + active: test #默认开发环境 + rabbitmq: + host: 192.168.10.39 + port: 5672 + username: admin + password: 123456 + virtualHost: / + + +mybatis: + mapper-locations: + - classpath*:com.objecteye.mapper/*.xml + +jwt: + tokenHeader: Authorization #JWT存储的请求头 + secret: mySecret #JWT加解密使用的密钥 + expiration: 604800 #JWT的超期限时间(60*60*24) + tokenHead: Bearer #JWT负载中拿到开头 + +pagehelper: + helperDialect: mysql + reasonable: true + support-methods-arguments: true + params: count=countSql + +logging: + level: + root: info #日志配置DEBUG,INFO,WARN,ERROR + com.objecteye: info +# file: demo_log.log #配置日志生成路径 +# path: /var/logs #配置日志文件名称 +picture: + url: http://192.168.10.153:8880/ + storePath: /ftpTest + http: http://192.168.10.153:8880/ + snapshotPath: /home/hexy/picture/snapshot/ + +snapshotPrefix: http://192.168.10.153:8880/snapshot/ + +server: + port: 8080 + address: 127.0.0.1 + +ftp: + username: officer + password: 334554321123211 + host: 192.168.10.39 + port: 21 + + +#调用引擎url +requestFile: http://192.168.10.4:10002/vps/analysisFile +requestPath: http://192.168.10.61:3000/mock/11/vehicle/analysisPath +requestUrl: http://192.168.10.4:10002/vehicle/analysisFile +requestVehicleFile: http://192.168.10.4:10002/vehicle/analysisFile +requestBase64: http://192.168.10.4:10002/vehicle/analysisBase64 +humanVehicleBase64: http://192.168.10.4:10002/vps/analysisBase64 +extractFeatureByBase64: http://192.168.10.4:10002/face/extractFeatureByBase64 +searchDataFromRetrieveDbPath: http://192.168.10.4:10002/face/searchDataFromRetrieveDb +driverSnapshotPrefix: http://192.168.10.153:8880/driverSnapshotPath/ +searchDataFromDeployDb: http://192.168.10.4:10002/face/searchDataFromDeployDb +addUrlToDeployDb: http://192.168.10.4:10002/face/addUrlToDeployDb +deleteDataFromDeployDb: http://192.168.10.4:10002/face/deleteDataFromDeployDb + +#人脸检索参数值 +topN: 30 +threshold: 0.4 +threadNum: 1 \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyAreaEquipmentMapper.xml a/src/main/resources/com.objecteye.mapper/SyAreaEquipmentMapper.xml new file mode 100644 index 0000000..865235e --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyAreaEquipmentMapper.xml @@ -0,0 +1,212 @@ + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, parent_id, name, type_id, is_equipment + + + + + delete + from sy_area_equipment + where id = #{id,jdbcType=INTEGER} + + + delete from sy_area_equipment + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_area_equipment (parent_id, name, type_id, + is_equipment) + values (#{parentId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{typeId,jdbcType=INTEGER}, + #{isEquipment,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_area_equipment + + + parent_id, + + + name, + + + type_id, + + + is_equipment, + + + + + #{parentId,jdbcType=INTEGER}, + + + #{name,jdbcType=VARCHAR}, + + + #{typeId,jdbcType=INTEGER}, + + + #{isEquipment,jdbcType=INTEGER}, + + + + + + update sy_area_equipment + + + id = #{record.id,jdbcType=INTEGER}, + + + parent_id = #{record.parentId,jdbcType=INTEGER}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + type_id = #{record.typeId,jdbcType=INTEGER}, + + + is_equipment = #{record.isEquipment,jdbcType=INTEGER}, + + + + + + + + update sy_area_equipment + set id = #{record.id,jdbcType=INTEGER}, + parent_id = #{record.parentId,jdbcType=INTEGER}, + name = #{record.name,jdbcType=VARCHAR}, + type_id = #{record.typeId,jdbcType=INTEGER}, + is_equipment = #{record.isEquipment,jdbcType=INTEGER} + + + + + + update sy_area_equipment + + + parent_id = #{parentId,jdbcType=INTEGER}, + + + name = #{name,jdbcType=VARCHAR}, + + + type_id = #{typeId,jdbcType=INTEGER}, + + + is_equipment = #{isEquipment,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_area_equipment + set name = #{name,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyDeployEquipmentMapper.xml a/src/main/resources/com.objecteye.mapper/SyDeployEquipmentMapper.xml new file mode 100644 index 0000000..d01144b --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyDeployEquipmentMapper.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, eid, did, is_delete + + + + + delete + from sy_deploy_equipment + where id = #{id,jdbcType=INTEGER} + + + delete from sy_deploy_equipment + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_deploy_equipment (eid, did, is_delete + ) + values (#{eid,jdbcType=INTEGER}, #{did,jdbcType=INTEGER}, #{isDelete,jdbcType=INTEGER} + ) + + + + SELECT LAST_INSERT_ID() + + insert into sy_deploy_equipment + + + eid, + + + did, + + + is_delete, + + + + + #{eid,jdbcType=INTEGER}, + + + #{did,jdbcType=INTEGER}, + + + #{isDelete,jdbcType=INTEGER}, + + + + + + update sy_deploy_equipment + + + id = #{record.id,jdbcType=INTEGER}, + + + eid = #{record.eid,jdbcType=INTEGER}, + + + did = #{record.did,jdbcType=INTEGER}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + + + + + + update sy_deploy_equipment + set id = #{record.id,jdbcType=INTEGER}, + eid = #{record.eid,jdbcType=INTEGER}, + did = #{record.did,jdbcType=INTEGER}, + is_delete = #{record.isDelete,jdbcType=INTEGER} + + + + + + update sy_deploy_equipment + + + eid = #{eid,jdbcType=INTEGER}, + + + did = #{did,jdbcType=INTEGER}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_deploy_equipment + set eid = #{eid,jdbcType=INTEGER}, + did = #{did,jdbcType=INTEGER}, + is_delete = #{isDelete,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyDeployFeatureMapper.xml a/src/main/resources/com.objecteye.mapper/SyDeployFeatureMapper.xml new file mode 100644 index 0000000..bc22447 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyDeployFeatureMapper.xml @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, did, fid, is_delete + + + + + delete from sy_deploy_feature + where id = #{id,jdbcType=INTEGER} + + + delete from sy_deploy_feature + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_deploy_feature (did, fid, is_delete + ) + values (#{did,jdbcType=INTEGER}, #{fid,jdbcType=INTEGER}, #{isDelete,jdbcType=INTEGER} + ) + + + + SELECT LAST_INSERT_ID() + + insert into sy_deploy_feature + + + did, + + + fid, + + + is_delete, + + + + + #{did,jdbcType=INTEGER}, + + + #{fid,jdbcType=INTEGER}, + + + #{isDelete,jdbcType=INTEGER}, + + + + + + update sy_deploy_feature + + + id = #{record.id,jdbcType=INTEGER}, + + + did = #{record.did,jdbcType=INTEGER}, + + + fid = #{record.fid,jdbcType=INTEGER}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + + + + + + update sy_deploy_feature + set id = #{record.id,jdbcType=INTEGER}, + did = #{record.did,jdbcType=INTEGER}, + fid = #{record.fid,jdbcType=INTEGER}, + is_delete = #{record.isDelete,jdbcType=INTEGER} + + + + + + update sy_deploy_feature + + + did = #{did,jdbcType=INTEGER}, + + + fid = #{fid,jdbcType=INTEGER}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_deploy_feature + set did = #{did,jdbcType=INTEGER}, + fid = #{fid,jdbcType=INTEGER}, + is_delete = #{isDelete,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyDeployMapper.xml a/src/main/resources/com.objecteye.mapper/SyDeployMapper.xml new file mode 100644 index 0000000..8453f40 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyDeployMapper.xml @@ -0,0 +1,356 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, start_time, end_time, thresld, description, deploy_equip, deploy_lib, deploy_type, + create_date, status, is_delete, singleMonitor, single_id + + + + + delete + from sy_deploy + where id = #{id,jdbcType=INTEGER} + + + delete from sy_deploy + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_deploy (name, start_time, end_time, + thresld, description, deploy_equip, + deploy_lib, deploy_type, create_date, + status, is_delete, singleMonitor, + single_id) + values (#{name,jdbcType=VARCHAR}, #{startTime,jdbcType=VARCHAR}, #{endTime,jdbcType=VARCHAR}, + #{thresld,jdbcType=REAL}, #{description,jdbcType=VARCHAR}, #{deployEquip,jdbcType=VARCHAR}, + #{deployLib,jdbcType=VARCHAR}, #{deployType,jdbcType=INTEGER}, #{createDate,jdbcType=VARCHAR}, + #{status,jdbcType=INTEGER}, #{isDelete,jdbcType=INTEGER}, #{singlemonitor,jdbcType=INTEGER}, + #{singleId,jdbcType=VARCHAR}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_deploy + + + name, + + + start_time, + + + end_time, + + + thresld, + + + description, + + + deploy_equip, + + + deploy_lib, + + + deploy_type, + + + create_date, + + + status, + + + is_delete, + + + singleMonitor, + + + single_id, + + + + + #{name,jdbcType=VARCHAR}, + + + #{startTime,jdbcType=VARCHAR}, + + + #{endTime,jdbcType=VARCHAR}, + + + #{thresld,jdbcType=REAL}, + + + #{description,jdbcType=VARCHAR}, + + + #{deployEquip,jdbcType=VARCHAR}, + + + #{deployLib,jdbcType=VARCHAR}, + + + #{deployType,jdbcType=INTEGER}, + + + #{createDate,jdbcType=VARCHAR}, + + + #{status,jdbcType=INTEGER}, + + + #{isDelete,jdbcType=INTEGER}, + + + #{singlemonitor,jdbcType=INTEGER}, + + + #{singleId,jdbcType=VARCHAR}, + + + + + + update sy_deploy + + + id = #{record.id,jdbcType=INTEGER}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + start_time = #{record.startTime,jdbcType=VARCHAR}, + + + end_time = #{record.endTime,jdbcType=VARCHAR}, + + + thresld = #{record.thresld,jdbcType=REAL}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + deploy_equip = #{record.deployEquip,jdbcType=VARCHAR}, + + + deploy_lib = #{record.deployLib,jdbcType=VARCHAR}, + + + deploy_type = #{record.deployType,jdbcType=INTEGER}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + status = #{record.status,jdbcType=INTEGER}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + singleMonitor = #{record.singlemonitor,jdbcType=INTEGER}, + + + single_id = #{record.singleId,jdbcType=VARCHAR}, + + + + + + + + update sy_deploy + set id = #{record.id,jdbcType=INTEGER}, + name = #{record.name,jdbcType=VARCHAR}, + start_time = #{record.startTime,jdbcType=VARCHAR}, + end_time = #{record.endTime,jdbcType=VARCHAR}, + thresld = #{record.thresld,jdbcType=REAL}, + description = #{record.description,jdbcType=VARCHAR}, + deploy_equip = #{record.deployEquip,jdbcType=VARCHAR}, + deploy_lib = #{record.deployLib,jdbcType=VARCHAR}, + deploy_type = #{record.deployType,jdbcType=INTEGER}, + create_date = #{record.createDate,jdbcType=VARCHAR}, + status = #{record.status,jdbcType=INTEGER}, + is_delete = #{record.isDelete,jdbcType=INTEGER}, + singleMonitor = #{record.singlemonitor,jdbcType=INTEGER}, + single_id = #{record.singleId,jdbcType=VARCHAR} + + + + + + update sy_deploy + + + name = #{name,jdbcType=VARCHAR}, + + + start_time = #{startTime,jdbcType=VARCHAR}, + + + end_time = #{endTime,jdbcType=VARCHAR}, + + + thresld = #{thresld,jdbcType=REAL}, + + + description = #{description,jdbcType=VARCHAR}, + + + deploy_equip = #{deployEquip,jdbcType=VARCHAR}, + + + deploy_lib = #{deployLib,jdbcType=VARCHAR}, + + + deploy_type = #{deployType,jdbcType=INTEGER}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=INTEGER}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + singleMonitor = #{singlemonitor,jdbcType=INTEGER}, + + + single_id = #{singleId,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_deploy + set name = #{name,jdbcType=VARCHAR}, + start_time = #{startTime,jdbcType=VARCHAR}, + end_time = #{endTime,jdbcType=VARCHAR}, + thresld = #{thresld,jdbcType=REAL}, + description = #{description,jdbcType=VARCHAR}, + deploy_equip = #{deployEquip,jdbcType=VARCHAR}, + deploy_lib = #{deployLib,jdbcType=VARCHAR}, + deploy_type = #{deployType,jdbcType=INTEGER}, + create_date = #{createDate,jdbcType=VARCHAR}, + status = #{status,jdbcType=INTEGER}, + is_delete = #{isDelete,jdbcType=INTEGER}, + singleMonitor = #{singlemonitor,jdbcType=INTEGER}, + single_id = #{singleId,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyEquipmentMapper.xml a/src/main/resources/com.objecteye.mapper/SyEquipmentMapper.xml new file mode 100644 index 0000000..495f81d --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyEquipmentMapper.xml @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, equipment_name, equipment_ip, rtsp_url, longitude, latitude, orientation, username, + password, equipment_port, intent_port, vendor, description, create_date, update_date, + is_delete, equipment_type, status, aid, place + + + + + delete + from sy_equipment + where id = #{id,jdbcType=INTEGER} + + + delete from sy_equipment + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_equipment (equipment_name, equipment_ip, rtsp_url, + longitude, latitude, orientation, + username, password, equipment_port, + intent_port, vendor, description, + create_date, update_date, is_delete, + equipment_type, status, aid, + place) + values (#{equipmentName,jdbcType=VARCHAR}, #{equipmentIp,jdbcType=VARCHAR}, #{rtspUrl,jdbcType=VARCHAR}, + #{longitude,jdbcType=VARCHAR}, #{latitude,jdbcType=VARCHAR}, #{orientation,jdbcType=VARCHAR}, + #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{equipmentPort,jdbcType=VARCHAR}, + #{intentPort,jdbcType=VARCHAR}, #{vendor,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, + #{createDate,jdbcType=VARCHAR}, #{updateDate,jdbcType=VARCHAR}, #{isDelete,jdbcType=INTEGER}, + #{equipmentType,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, #{aid,jdbcType=INTEGER}, + #{place,jdbcType=VARCHAR}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_equipment + + + equipment_name, + + + equipment_ip, + + + rtsp_url, + + + longitude, + + + latitude, + + + orientation, + + + username, + + + password, + + + equipment_port, + + + intent_port, + + + vendor, + + + description, + + + create_date, + + + update_date, + + + is_delete, + + + equipment_type, + + + status, + + + aid, + + + place, + + + + + #{equipmentName,jdbcType=VARCHAR}, + + + #{equipmentIp,jdbcType=VARCHAR}, + + + #{rtspUrl,jdbcType=VARCHAR}, + + + #{longitude,jdbcType=VARCHAR}, + + + #{latitude,jdbcType=VARCHAR}, + + + #{orientation,jdbcType=VARCHAR}, + + + #{username,jdbcType=VARCHAR}, + + + #{password,jdbcType=VARCHAR}, + + + #{equipmentPort,jdbcType=VARCHAR}, + + + #{intentPort,jdbcType=VARCHAR}, + + + #{vendor,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{createDate,jdbcType=VARCHAR}, + + + #{updateDate,jdbcType=VARCHAR}, + + + #{isDelete,jdbcType=INTEGER}, + + + #{equipmentType,jdbcType=INTEGER}, + + + #{status,jdbcType=INTEGER}, + + + #{aid,jdbcType=INTEGER}, + + + #{place,jdbcType=VARCHAR}, + + + + + + update sy_equipment + + + id = #{record.id,jdbcType=INTEGER}, + + + equipment_name = #{record.equipmentName,jdbcType=VARCHAR}, + + + equipment_ip = #{record.equipmentIp,jdbcType=VARCHAR}, + + + rtsp_url = #{record.rtspUrl,jdbcType=VARCHAR}, + + + longitude = #{record.longitude,jdbcType=VARCHAR}, + + + latitude = #{record.latitude,jdbcType=VARCHAR}, + + + orientation = #{record.orientation,jdbcType=VARCHAR}, + + + username = #{record.username,jdbcType=VARCHAR}, + + + password = #{record.password,jdbcType=VARCHAR}, + + + equipment_port = #{record.equipmentPort,jdbcType=VARCHAR}, + + + intent_port = #{record.intentPort,jdbcType=VARCHAR}, + + + vendor = #{record.vendor,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + update_date = #{record.updateDate,jdbcType=VARCHAR}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + equipment_type = #{record.equipmentType,jdbcType=INTEGER}, + + + status = #{record.status,jdbcType=INTEGER}, + + + aid = #{record.aid,jdbcType=INTEGER}, + + + place = #{record.place,jdbcType=VARCHAR}, + + + + + + + + update sy_equipment + set id = #{record.id,jdbcType=INTEGER}, + equipment_name = #{record.equipmentName,jdbcType=VARCHAR}, + equipment_ip = #{record.equipmentIp,jdbcType=VARCHAR}, + rtsp_url = #{record.rtspUrl,jdbcType=VARCHAR}, + longitude = #{record.longitude,jdbcType=VARCHAR}, + latitude = #{record.latitude,jdbcType=VARCHAR}, + orientation = #{record.orientation,jdbcType=VARCHAR}, + username = #{record.username,jdbcType=VARCHAR}, + password = #{record.password,jdbcType=VARCHAR}, + equipment_port = #{record.equipmentPort,jdbcType=VARCHAR}, + intent_port = #{record.intentPort,jdbcType=VARCHAR}, + vendor = #{record.vendor,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + create_date = #{record.createDate,jdbcType=VARCHAR}, + update_date = #{record.updateDate,jdbcType=VARCHAR}, + is_delete = #{record.isDelete,jdbcType=INTEGER}, + equipment_type = #{record.equipmentType,jdbcType=INTEGER}, + status = #{record.status,jdbcType=INTEGER}, + aid = #{record.aid,jdbcType=INTEGER}, + place = #{record.place,jdbcType=VARCHAR} + + + + + + update sy_equipment + + + equipment_name = #{equipmentName,jdbcType=VARCHAR}, + + + equipment_ip = #{equipmentIp,jdbcType=VARCHAR}, + + + rtsp_url = #{rtspUrl,jdbcType=VARCHAR}, + + + longitude = #{longitude,jdbcType=VARCHAR}, + + + latitude = #{latitude,jdbcType=VARCHAR}, + + + orientation = #{orientation,jdbcType=VARCHAR}, + + + username = #{username,jdbcType=VARCHAR}, + + + password = #{password,jdbcType=VARCHAR}, + + + equipment_port = #{equipmentPort,jdbcType=VARCHAR}, + + + intent_port = #{intentPort,jdbcType=VARCHAR}, + + + vendor = #{vendor,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + update_date = #{updateDate,jdbcType=VARCHAR}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + equipment_type = #{equipmentType,jdbcType=INTEGER}, + + + status = #{status,jdbcType=INTEGER}, + + + aid = #{aid,jdbcType=INTEGER}, + + + place = #{place,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_equipment + set equipment_name = #{equipmentName,jdbcType=VARCHAR}, + rtsp_url = #{rtspUrl,jdbcType=VARCHAR}, + longitude = #{longitude,jdbcType=VARCHAR}, + latitude = #{latitude,jdbcType=VARCHAR}, + orientation = #{orientation,jdbcType=VARCHAR}, + username = #{username,jdbcType=VARCHAR}, + password = #{password,jdbcType=VARCHAR}, + equipment_port = #{equipmentPort,jdbcType=VARCHAR}, + intent_port = #{intentPort,jdbcType=VARCHAR}, + vendor = #{vendor,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + update_date = #{updateDate,jdbcType=VARCHAR}, + equipment_type = #{equipmentType,jdbcType=INTEGER}, + place = #{place,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyFeatureMapper.xml a/src/main/resources/com.objecteye.mapper/SyFeatureMapper.xml new file mode 100644 index 0000000..3933033 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyFeatureMapper.xml @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, description, count, is_delete, create_date, update_date, is_single + + + + + delete + from sy_feature + where id = #{id,jdbcType=INTEGER} + + + delete from sy_feature + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_feature (name, description, count, + is_delete, create_date, update_date, + is_single) + values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{count,jdbcType=INTEGER}, + #{isDelete,jdbcType=INTEGER}, #{createDate,jdbcType=VARCHAR}, #{updateDate,jdbcType=VARCHAR}, + #{isSingle,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_feature + + + name, + + + description, + + + count, + + + is_delete, + + + create_date, + + + update_date, + + + is_single, + + + + + #{name,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{count,jdbcType=INTEGER}, + + + #{isDelete,jdbcType=INTEGER}, + + + #{createDate,jdbcType=VARCHAR}, + + + #{updateDate,jdbcType=VARCHAR}, + + + #{isSingle,jdbcType=INTEGER}, + + + + + + update sy_feature + + + id = #{record.id,jdbcType=INTEGER}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + count = #{record.count,jdbcType=INTEGER}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + update_date = #{record.updateDate,jdbcType=VARCHAR}, + + + is_single = #{record.isSingle,jdbcType=INTEGER}, + + + + + + + + update sy_feature + set id = #{record.id,jdbcType=INTEGER}, + name = #{record.name,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + count = #{record.count,jdbcType=INTEGER}, + is_delete = #{record.isDelete,jdbcType=INTEGER}, + create_date = #{record.createDate,jdbcType=VARCHAR}, + update_date = #{record.updateDate,jdbcType=VARCHAR}, + is_single = #{record.isSingle,jdbcType=INTEGER} + + + + + + update sy_feature + + + name = #{name,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + count = #{count,jdbcType=INTEGER}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + update_date = #{updateDate,jdbcType=VARCHAR}, + + + is_single = #{isSingle,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_feature + set name = #{name,jdbcType=VARCHAR}, + update_date = #{updateDate,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyPersonnelMapper.xml a/src/main/resources/com.objecteye.mapper/SyPersonnelMapper.xml new file mode 100644 index 0000000..57ea1ee --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyPersonnelMapper.xml @@ -0,0 +1,271 @@ + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, name, indentity, image_url, create_date, update_date, status, conreason, fid + + + + + delete + from sy_personnel + where id = #{id,jdbcType=INTEGER} + + + delete from sy_personnel + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_personnel (name, indentity, image_url, + create_date, update_date, status, + conreason, fid) + values (#{name,jdbcType=VARCHAR}, #{indentity,jdbcType=VARCHAR}, #{imageUrl,jdbcType=VARCHAR}, + #{createDate,jdbcType=VARCHAR}, #{updateDate,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, + #{conreason,jdbcType=VARCHAR}, #{fid,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_personnel + + + name, + + + indentity, + + + image_url, + + + create_date, + + + update_date, + + + status, + + + conreason, + + + fid, + + + + + #{name,jdbcType=VARCHAR}, + + + #{indentity,jdbcType=VARCHAR}, + + + #{imageUrl,jdbcType=VARCHAR}, + + + #{createDate,jdbcType=VARCHAR}, + + + #{updateDate,jdbcType=VARCHAR}, + + + #{status,jdbcType=INTEGER}, + + + #{conreason,jdbcType=VARCHAR}, + + + #{fid,jdbcType=INTEGER}, + + + + + + update sy_personnel + + + id = #{record.id,jdbcType=INTEGER}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + indentity = #{record.indentity,jdbcType=VARCHAR}, + + + image_url = #{record.imageUrl,jdbcType=VARCHAR}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + update_date = #{record.updateDate,jdbcType=VARCHAR}, + + + status = #{record.status,jdbcType=INTEGER}, + + + conreason = #{record.conreason,jdbcType=VARCHAR}, + + + fid = #{record.fid,jdbcType=INTEGER}, + + + + + + + + update sy_personnel + set id = #{record.id,jdbcType=INTEGER}, + name = #{record.name,jdbcType=VARCHAR}, + indentity = #{record.indentity,jdbcType=VARCHAR}, + image_url = #{record.imageUrl,jdbcType=VARCHAR}, + create_date = #{record.createDate,jdbcType=VARCHAR}, + update_date = #{record.updateDate,jdbcType=VARCHAR}, + status = #{record.status,jdbcType=INTEGER}, + conreason = #{record.conreason,jdbcType=VARCHAR}, + fid = #{record.fid,jdbcType=INTEGER} + + + + + + update sy_personnel + + + name = #{name,jdbcType=VARCHAR}, + + + indentity = #{indentity,jdbcType=VARCHAR}, + + + image_url = #{imageUrl,jdbcType=VARCHAR}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + update_date = #{updateDate,jdbcType=VARCHAR}, + + + status = #{status,jdbcType=INTEGER}, + + + conreason = #{conreason,jdbcType=VARCHAR}, + + + fid = #{fid,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_personnel + set name = #{name,jdbcType=VARCHAR}, + update_date = #{updateDate,jdbcType=VARCHAR}, + status = #{status,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyPrivilegeMapper.xml a/src/main/resources/com.objecteye.mapper/SyPrivilegeMapper.xml new file mode 100644 index 0000000..18009b5 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyPrivilegeMapper.xml @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, privilege_name, is_delete, create_date + + + + + delete + from sy_privilege + where id = #{id,jdbcType=INTEGER} + + + delete from sy_privilege + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_privilege (privilege_name, is_delete, create_date + ) + values (#{privilegeName,jdbcType=VARCHAR}, #{isDelete,jdbcType=VARCHAR}, #{createDate,jdbcType=VARCHAR} + ) + + + + SELECT LAST_INSERT_ID() + + insert into sy_privilege + + + privilege_name, + + + is_delete, + + + create_date, + + + + + #{privilegeName,jdbcType=VARCHAR}, + + + #{isDelete,jdbcType=VARCHAR}, + + + #{createDate,jdbcType=VARCHAR}, + + + + + + update sy_privilege + + + id = #{record.id,jdbcType=INTEGER}, + + + privilege_name = #{record.privilegeName,jdbcType=VARCHAR}, + + + is_delete = #{record.isDelete,jdbcType=VARCHAR}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + + + + + + update sy_privilege + set id = #{record.id,jdbcType=INTEGER}, + privilege_name = #{record.privilegeName,jdbcType=VARCHAR}, + is_delete = #{record.isDelete,jdbcType=VARCHAR}, + create_date = #{record.createDate,jdbcType=VARCHAR} + + + + + + update sy_privilege + + + privilege_name = #{privilegeName,jdbcType=VARCHAR}, + + + is_delete = #{isDelete,jdbcType=VARCHAR}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_privilege + set privilege_name = #{privilegeName,jdbcType=VARCHAR}, + is_delete = #{isDelete,jdbcType=VARCHAR}, + create_date = #{createDate,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyRoleMapper.xml a/src/main/resources/com.objecteye.mapper/SyRoleMapper.xml new file mode 100644 index 0000000..6ed85c3 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyRoleMapper.xml @@ -0,0 +1,207 @@ + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, role_name, is_delete, create_date + + + + + delete + from sy_role + where id = #{id,jdbcType=INTEGER} + + + delete from sy_role + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_role (role_name, is_delete, create_date + ) + values (#{roleName,jdbcType=VARCHAR}, #{isDelete,jdbcType=INTEGER}, #{createDate,jdbcType=VARCHAR} + ) + + + + SELECT LAST_INSERT_ID() + + insert into sy_role + + + role_name, + + + is_delete, + + + create_date, + + + + + #{roleName,jdbcType=VARCHAR}, + + + #{isDelete,jdbcType=INTEGER}, + + + #{createDate,jdbcType=VARCHAR}, + + + + + + update sy_role + + + id = #{record.id,jdbcType=INTEGER}, + + + role_name = #{record.roleName,jdbcType=VARCHAR}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + + + + + + update sy_role + set id = #{record.id,jdbcType=INTEGER}, + role_name = #{record.roleName,jdbcType=VARCHAR}, + is_delete = #{record.isDelete,jdbcType=INTEGER}, + create_date = #{record.createDate,jdbcType=VARCHAR} + + + + + + update sy_role + + + role_name = #{roleName,jdbcType=VARCHAR}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_role + set role_name = #{roleName,jdbcType=VARCHAR}, + is_delete = #{isDelete,jdbcType=INTEGER}, + create_date = #{createDate,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + + + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyRolePrivilegeMapper.xml a/src/main/resources/com.objecteye.mapper/SyRolePrivilegeMapper.xml new file mode 100644 index 0000000..8253fc7 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyRolePrivilegeMapper.xml @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, pid, rid + + + + + delete + from sy_role_privilege + where id = #{id,jdbcType=INTEGER} + + + delete from sy_role_privilege + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_role_privilege (pid, rid) + values (#{pid,jdbcType=INTEGER}, #{rid,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_role_privilege + + + pid, + + + rid, + + + + + #{pid,jdbcType=INTEGER}, + + + #{rid,jdbcType=INTEGER}, + + + + + + + + update sy_role_privilege + + + id = #{record.id,jdbcType=INTEGER}, + + + pid = #{record.pid,jdbcType=INTEGER}, + + + rid = #{record.rid,jdbcType=INTEGER}, + + + + + + + + update sy_role_privilege + set id = #{record.id,jdbcType=INTEGER}, + pid = #{record.pid,jdbcType=INTEGER}, + rid = #{record.rid,jdbcType=INTEGER} + + + + + + update sy_role_privilege + + + pid = #{pid,jdbcType=INTEGER}, + + + rid = #{rid,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_role_privilege + set pid = #{pid,jdbcType=INTEGER}, + rid = #{rid,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyUserMapper.xml a/src/main/resources/com.objecteye.mapper/SyUserMapper.xml new file mode 100644 index 0000000..02677a7 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyUserMapper.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, username, password, user_role, create_date + + + + + + + + + + + delete + from sy_user + where id = #{id,jdbcType=INTEGER} + + + delete from sy_user + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_user (username, password, user_role, create_date) + values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{userRole,jdbcType=VARCHAR}, + #{createDate,jdbcType=VARCHAR}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_user + + + username, + + + password, + + + user_role, + + + create_date, + + + + + #{username,jdbcType=VARCHAR}, + + + #{password,jdbcType=VARCHAR}, + + + #{userRole,jdbcType=VARCHAR}, + + + #{createDate,jdbcType=VARCHAR}, + + + + + + update sy_user + + + id = #{record.id,jdbcType=INTEGER}, + + + username = #{record.username,jdbcType=VARCHAR}, + + + password = #{record.password,jdbcType=VARCHAR}, + + + user_role = #{record.userRole,jdbcType=VARCHAR}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + + + + + + update sy_user + set id = #{record.id,jdbcType=INTEGER}, + username = #{record.username,jdbcType=VARCHAR}, + password = #{record.password,jdbcType=VARCHAR}, + user_role = #{record.userRole,jdbcType=VARCHAR}, + create_date = #{record.createDate,jdbcType=VARCHAR} + + + + + + update sy_user + + + username = #{username,jdbcType=VARCHAR}, + + + password = #{password,jdbcType=VARCHAR}, + + + user_role = #{userRole,jdbcType=VARCHAR}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_user + set password = #{password,jdbcType=VARCHAR}, + user_role = #{userRole,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyVehicleDbMapper.xml a/src/main/resources/com.objecteye.mapper/SyVehicleDbMapper.xml new file mode 100644 index 0000000..3e621e4 --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyVehicleDbMapper.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, vehicle_name, create_date, update_date, description, is_delete, count + + + + + delete + from sy_vehicle_db + where id = #{id,jdbcType=INTEGER} + + + delete from sy_vehicle_db + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_vehicle_db (vehicle_name, create_date, update_date, + description, is_delete, count + ) + values (#{vehicleName,jdbcType=VARCHAR}, #{createDate,jdbcType=VARCHAR}, #{updateDate,jdbcType=VARCHAR}, + #{description,jdbcType=VARCHAR}, #{isDelete,jdbcType=INTEGER}, #{count,jdbcType=INTEGER} + ) + + + + SELECT LAST_INSERT_ID() + + insert into sy_vehicle_db + + + vehicle_name, + + + create_date, + + + update_date, + + + description, + + + is_delete, + + + count, + + + + + #{vehicleName,jdbcType=VARCHAR}, + + + #{createDate,jdbcType=VARCHAR}, + + + #{updateDate,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{isDelete,jdbcType=INTEGER}, + + + #{count,jdbcType=INTEGER}, + + + + + + update sy_vehicle_db + + + id = #{record.id,jdbcType=INTEGER}, + + + vehicle_name = #{record.vehicleName,jdbcType=VARCHAR}, + + + create_date = #{record.createDate,jdbcType=VARCHAR}, + + + update_date = #{record.updateDate,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + is_delete = #{record.isDelete,jdbcType=INTEGER}, + + + count = #{record.count,jdbcType=INTEGER}, + + + + + + + + update sy_vehicle_db + set id = #{record.id,jdbcType=INTEGER}, + vehicle_name = #{record.vehicleName,jdbcType=VARCHAR}, + create_date = #{record.createDate,jdbcType=VARCHAR}, + update_date = #{record.updateDate,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + is_delete = #{record.isDelete,jdbcType=INTEGER}, + count = #{record.count,jdbcType=INTEGER} + + + + + + update sy_vehicle_db + + + vehicle_name = #{vehicleName,jdbcType=VARCHAR}, + + + create_date = #{createDate,jdbcType=VARCHAR}, + + + update_date = #{updateDate,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + is_delete = #{isDelete,jdbcType=INTEGER}, + + + count = #{count,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_vehicle_db + set vehicle_name = #{vehicleName,jdbcType=VARCHAR}, + create_date = #{createDate,jdbcType=VARCHAR}, + update_date = #{updateDate,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + is_delete = #{isDelete,jdbcType=INTEGER}, + count = #{count,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyVehicleForbidenTaskMapper.xml a/src/main/resources/com.objecteye.mapper/SyVehicleForbidenTaskMapper.xml new file mode 100644 index 0000000..fbb635b --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyVehicleForbidenTaskMapper.xml @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, area_id, name, description, device_id, vehicle_type, forbidden_detail_time, effect_start_time, effect_end_time, + status + + + + + delete + from sy_vehicle_forbiden_task + where id = #{id,jdbcType=INTEGER} + + + delete from sy_vehicle_forbiden_task + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_vehicle_forbiden_task (area_id, name, description, device_id, vehicle_type, + forbidden_detail_time, effect_start_time, effect_end_time, + status) + values (#{areaId,jdbcType=VARCHAR},#{name,jdbcType=VARCHAR},#{description,jdbcType=VARCHAR}, + #{deviceId,jdbcType=VARCHAR}, #{vehicleType,jdbcType=VARCHAR}, + #{forbiddenDetailTime,jdbcType=VARCHAR}, #{effectStartTime,jdbcType=BIGINT}, #{effectEndTime,jdbcType=BIGINT}, + #{status,jdbcType=INTEGER}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_vehicle_forbiden_task + + + area_id, + + + name, + + + description, + + + device_id, + + + vehicle_type, + + + forbidden_detail_time, + + + effect_start_time, + + + effect_end_time, + + + status, + + + + + #{areaId,jdbcType=VARCHAR}, + + + #{name,jdbcType=VARCHAR}, + + + #{description,jdbcType=VARCHAR}, + + + #{deviceId,jdbcType=VARCHAR}, + + + #{vehicleType,jdbcType=VARCHAR}, + + + #{forbiddenDetailTime,jdbcType=VARCHAR}, + + + #{effectStartTime,jdbcType=BIGINT}, + + + #{effectEndTime,jdbcType=BIGINT}, + + + #{status,jdbcType=INTEGER}, + + + + + + update sy_vehicle_forbiden_task + + + id = #{record.id,jdbcType=INTEGER}, + + + area_id = #{record.areaId,jdbcType=VARCHAR}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + description = #{record.description,jdbcType=VARCHAR}, + + + device_id = #{record.deviceId,jdbcType=VARCHAR}, + + + vehicle_type = #{record.vehicleType,jdbcType=VARCHAR}, + + + forbidden_detail_time = #{record.forbiddenDetailTime,jdbcType=VARCHAR}, + + + effect_start_time = #{record.effectStartTime,jdbcType=BIGINT}, + + + effect_end_time = #{record.effectEndTime,jdbcType=BIGINT}, + + + status = #{record.status,jdbcType=INTEGER}, + + + + + + + + update sy_vehicle_forbiden_task + set id = #{record.id,jdbcType=INTEGER}, + area_id = #{record.areaId,jdbcType=VARCHAR}, + name = #{record.name,jdbcType=VARCHAR}, + description = #{record.description,jdbcType=VARCHAR}, + device_id = #{record.deviceId,jdbcType=VARCHAR}, + vehicle_type = #{record.vehicleType,jdbcType=VARCHAR}, + forbidden_detail_time = #{record.forbiddenDetailTime,jdbcType=VARCHAR}, + effect_start_time = #{record.effectStartTime,jdbcType=BIGINT}, + effect_end_time = #{record.effectEndTime,jdbcType=BIGINT}, + status = #{record.status,jdbcType=INTEGER} + + + + + + update sy_vehicle_forbiden_task + + + area_id = #{areaId,jdbcType=VARCHAR}, + + + name = #{name,jdbcType=VARCHAR}, + + + description = #{description,jdbcType=VARCHAR}, + + + device_id = #{deviceId,jdbcType=VARCHAR}, + + + vehicle_type = #{vehicleType,jdbcType=VARCHAR}, + + + forbidden_detail_time = #{forbiddenDetailTime,jdbcType=VARCHAR}, + + + effect_start_time = #{effectStartTime,jdbcType=BIGINT}, + + + effect_end_time = #{effectEndTime,jdbcType=BIGINT}, + + + status = #{status,jdbcType=INTEGER}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_vehicle_forbiden_task + set area_id = #{areaId,jdbcType=VARCHAR}, + name = #{name,jdbcType=VARCHAR}, + description = #{description,jdbcType=VARCHAR}, + device_id = #{deviceId,jdbcType=VARCHAR}, + vehicle_type = #{vehicleType,jdbcType=VARCHAR}, + forbidden_detail_time = #{forbiddenDetailTime,jdbcType=VARCHAR}, + effect_start_time = #{effectStartTime,jdbcType=BIGINT}, + effect_end_time = #{effectEndTime,jdbcType=BIGINT}, + status = #{status,jdbcType=INTEGER} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file diff --git b/src/main/resources/com.objecteye.mapper/SyVehicleModelMapper.xml a/src/main/resources/com.objecteye.mapper/SyVehicleModelMapper.xml new file mode 100644 index 0000000..c9d868d --- /dev/null +++ a/src/main/resources/com.objecteye.mapper/SyVehicleModelMapper.xml @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, initials, brand, subbrand, birthday + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + delete + from sy_vehicle_model + where id = #{id,jdbcType=INTEGER} + + + delete from sy_vehicle_model + + + + + + + SELECT LAST_INSERT_ID() + + insert into sy_vehicle_model (initials, brand, subbrand, + birthday) + values (#{initials,jdbcType=VARCHAR}, #{brand,jdbcType=VARCHAR}, #{subbrand,jdbcType=VARCHAR}, + #{birthday,jdbcType=VARCHAR}) + + + + SELECT LAST_INSERT_ID() + + insert into sy_vehicle_model + + + initials, + + + brand, + + + subbrand, + + + birthday, + + + + + #{initials,jdbcType=VARCHAR}, + + + #{brand,jdbcType=VARCHAR}, + + + #{subbrand,jdbcType=VARCHAR}, + + + #{birthday,jdbcType=VARCHAR}, + + + + + + update sy_vehicle_model + + + id = #{record.id,jdbcType=INTEGER}, + + + initials = #{record.initials,jdbcType=VARCHAR}, + + + brand = #{record.brand,jdbcType=VARCHAR}, + + + subbrand = #{record.subbrand,jdbcType=VARCHAR}, + + + birthday = #{record.birthday,jdbcType=VARCHAR}, + + + + + + + + update sy_vehicle_model + set id = #{record.id,jdbcType=INTEGER}, + initials = #{record.initials,jdbcType=VARCHAR}, + brand = #{record.brand,jdbcType=VARCHAR}, + subbrand = #{record.subbrand,jdbcType=VARCHAR}, + birthday = #{record.birthday,jdbcType=VARCHAR} + + + + + + update sy_vehicle_model + + + initials = #{initials,jdbcType=VARCHAR}, + + + brand = #{brand,jdbcType=VARCHAR}, + + + subbrand = #{subbrand,jdbcType=VARCHAR}, + + + birthday = #{birthday,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=INTEGER} + + + update sy_vehicle_model + set initials = #{initials,jdbcType=VARCHAR}, + brand = #{brand,jdbcType=VARCHAR}, + subbrand = #{subbrand,jdbcType=VARCHAR}, + birthday = #{birthday,jdbcType=VARCHAR} + where id = #{id,jdbcType=INTEGER} + + \ No newline at end of file