From 53745d5688e12504b7bdbc132d0598e645554ee3 Mon Sep 17 00:00:00 2001
From: zhangye <654600784@qq.com>
Date: Fri, 13 Mar 2020 16:41:27 +0800
Subject: [PATCH] ct
---
ct/pom.xml | 73 ++
.../java/com/ccsens/ct/CtApplication.java | 24 +
.../com/ccsens/ct/api/BusinessController.java | 54 +
.../com/ccsens/ct/api/ClockController.java | 51 +
.../com/ccsens/ct/api/DebugController.java | 56 +
.../com/ccsens/ct/api/SiteController.java | 79 ++
.../com/ccsens/ct/bean/dto/BusinessDto.java | 57 +
.../java/com/ccsens/ct/bean/dto/ClockDto.java | 22 +
.../java/com/ccsens/ct/bean/dto/SiteDto.java | 56 +
.../java/com/ccsens/ct/bean/po/Business.java | 161 +++
.../ccsens/ct/bean/po/BusinessExample.java | 1051 +++++++++++++++++
.../main/java/com/ccsens/ct/bean/po/Site.java | 118 ++
.../com/ccsens/ct/bean/po/SiteClockIn.java | 118 ++
.../ccsens/ct/bean/po/SiteClockInExample.java | 742 ++++++++++++
.../com/ccsens/ct/bean/po/SiteExample.java | 762 ++++++++++++
.../com/ccsens/ct/bean/po/SiteQrcode.java | 106 ++
.../ccsens/ct/bean/po/SiteQrcodeExample.java | 701 +++++++++++
.../com/ccsens/ct/bean/vo/BusinessVo.java | 29 +
.../java/com/ccsens/ct/bean/vo/ClockVo.java | 19 +
.../java/com/ccsens/ct/bean/vo/SiteVo.java | 44 +
.../java/com/ccsens/ct/config/BeanConfig.java | 31 +
.../com/ccsens/ct/config/SpringConfig.java | 164 +++
.../ccsens/ct/config/SwaggerConfigure.java | 56 +
.../ct/intercept/MybatisInterceptor.java | 154 +++
.../ccsens/ct/persist/dao/BusinessDao.java | 8 +
.../ccsens/ct/persist/dao/SiteClockInDao.java | 14 +
.../com/ccsens/ct/persist/dao/SiteDao.java | 8 +
.../ccsens/ct/persist/dao/SiteQrcodeDao.java | 9 +
.../ct/persist/mapper/BusinessMapper.java | 30 +
.../ct/persist/mapper/SiteClockInMapper.java | 30 +
.../ccsens/ct/persist/mapper/SiteMapper.java | 30 +
.../ct/persist/mapper/SiteQrcodeMapper.java | 30 +
.../ccsens/ct/service/BusinessService.java | 170 +++
.../com/ccsens/ct/service/ClockService.java | 58 +
.../ccsens/ct/service/IBusinessService.java | 13 +
.../com/ccsens/ct/service/IClockService.java | 14 +
.../com/ccsens/ct/service/ISiteService.java | 21 +
.../com/ccsens/ct/service/SiteService.java | 230 ++++
ct/src/main/resources/application-common.yml | 30 +
ct/src/main/resources/application-dev.yml | 29 +
ct/src/main/resources/application-test.yml | 31 +
ct/src/main/resources/application.yml | 4 +
ct/src/main/resources/druid-dev.yml | 33 +
ct/src/main/resources/druid-prod.yml | 33 +
ct/src/main/resources/druid-test.yml | 33 +
ct/src/main/resources/logback-spring.xml | 196 +++
.../resources/mapper_dao/SiteClockInDao.xml | 29 +
ct/src/main/resources/mapper_dao/SiteDao.xml | 28 +
.../resources/mapper_raw/BusinessMapper.xml | 338 ++++++
.../mapper_raw/SiteClockInMapper.xml | 275 +++++
.../main/resources/mapper_raw/SiteMapper.xml | 276 +++++
.../resources/mapper_raw/SiteQrcodeMapper.xml | 258 ++++
.../main/resources/mybatis/mybatis-config.xml | 61 +
pom.xml | 1 +
.../java/com/ccsens/util/Base64FileUtil.java | 1 +
.../main/java/com/ccsens/util/CodeEnum.java | 2 +
.../main/java/com/ccsens/util/QrCodeUtil.java | 34 +-
.../java/com/ccsens/util/WebConstant.java | 1 +
.../test/java/com/ccsens/util/Base64Test.java | 28 +-
.../test/java/com/ccsens/util/TestQrCord.java | 34 +
60 files changed, 7129 insertions(+), 19 deletions(-)
create mode 100644 ct/pom.xml
create mode 100644 ct/src/main/java/com/ccsens/ct/CtApplication.java
create mode 100644 ct/src/main/java/com/ccsens/ct/api/BusinessController.java
create mode 100644 ct/src/main/java/com/ccsens/ct/api/ClockController.java
create mode 100644 ct/src/main/java/com/ccsens/ct/api/DebugController.java
create mode 100644 ct/src/main/java/com/ccsens/ct/api/SiteController.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/dto/BusinessDto.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/dto/ClockDto.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/dto/SiteDto.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/Business.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/BusinessExample.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/Site.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/SiteClockIn.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/SiteClockInExample.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/SiteExample.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcode.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcodeExample.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/vo/BusinessVo.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/vo/ClockVo.java
create mode 100644 ct/src/main/java/com/ccsens/ct/bean/vo/SiteVo.java
create mode 100644 ct/src/main/java/com/ccsens/ct/config/BeanConfig.java
create mode 100644 ct/src/main/java/com/ccsens/ct/config/SpringConfig.java
create mode 100644 ct/src/main/java/com/ccsens/ct/config/SwaggerConfigure.java
create mode 100644 ct/src/main/java/com/ccsens/ct/intercept/MybatisInterceptor.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/dao/BusinessDao.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/dao/SiteClockInDao.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/dao/SiteDao.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/dao/SiteQrcodeDao.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/mapper/BusinessMapper.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/mapper/SiteClockInMapper.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/mapper/SiteMapper.java
create mode 100644 ct/src/main/java/com/ccsens/ct/persist/mapper/SiteQrcodeMapper.java
create mode 100644 ct/src/main/java/com/ccsens/ct/service/BusinessService.java
create mode 100644 ct/src/main/java/com/ccsens/ct/service/ClockService.java
create mode 100644 ct/src/main/java/com/ccsens/ct/service/IBusinessService.java
create mode 100644 ct/src/main/java/com/ccsens/ct/service/IClockService.java
create mode 100644 ct/src/main/java/com/ccsens/ct/service/ISiteService.java
create mode 100644 ct/src/main/java/com/ccsens/ct/service/SiteService.java
create mode 100644 ct/src/main/resources/application-common.yml
create mode 100644 ct/src/main/resources/application-dev.yml
create mode 100644 ct/src/main/resources/application-test.yml
create mode 100644 ct/src/main/resources/application.yml
create mode 100644 ct/src/main/resources/druid-dev.yml
create mode 100644 ct/src/main/resources/druid-prod.yml
create mode 100644 ct/src/main/resources/druid-test.yml
create mode 100644 ct/src/main/resources/logback-spring.xml
create mode 100644 ct/src/main/resources/mapper_dao/SiteClockInDao.xml
create mode 100644 ct/src/main/resources/mapper_dao/SiteDao.xml
create mode 100644 ct/src/main/resources/mapper_raw/BusinessMapper.xml
create mode 100644 ct/src/main/resources/mapper_raw/SiteClockInMapper.xml
create mode 100644 ct/src/main/resources/mapper_raw/SiteMapper.xml
create mode 100644 ct/src/main/resources/mapper_raw/SiteQrcodeMapper.xml
create mode 100644 ct/src/main/resources/mybatis/mybatis-config.xml
create mode 100644 util/src/test/java/com/ccsens/util/TestQrCord.java
diff --git a/ct/pom.xml b/ct/pom.xml
new file mode 100644
index 00000000..98d1965c
--- /dev/null
+++ b/ct/pom.xml
@@ -0,0 +1,73 @@
+
+
+
+ ccsenscloud
+ com.ccsens
+ 1.0-SNAPSHOT
+
+ 4.0.0
+
+ ct
+
+
+
+ 1.8
+
+
+
+
+
+
+ cloudutil
+ com.ccsens
+ 1.0-SNAPSHOT
+
+
+
+ util
+ com.ccsens
+ 1.0-SNAPSHOT
+
+
+
+
+
+
+
+
+ org.mybatis.generator
+ mybatis-generator-maven-plugin
+ 1.3.7
+
+ ${basedir}/src/main/resources/mbg.xml
+ true
+
+
+
+ mysql
+ mysql-connector-java
+ 5.1.34
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ com.ccsens.ct.CtApplication
+
+
+
+
+
+ repackage
+
+
+
+
+
+
+
+
+
diff --git a/ct/src/main/java/com/ccsens/ct/CtApplication.java b/ct/src/main/java/com/ccsens/ct/CtApplication.java
new file mode 100644
index 00000000..9dc3b46b
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/CtApplication.java
@@ -0,0 +1,24 @@
+package com.ccsens.ct;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.scheduling.annotation.EnableAsync;
+
+@MapperScan(basePackages = {"com.ccsens.ct.persist.*"})
+@ServletComponentScan
+@EnableAsync
+//开启断路器功能
+@EnableCircuitBreaker
+@EnableFeignClients(basePackages = "com.ccsens.cloudutil.feign")
+@SpringBootApplication(scanBasePackages = "com.ccsens")
+public class CtApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(CtApplication.class, args);
+ }
+
+}
diff --git a/ct/src/main/java/com/ccsens/ct/api/BusinessController.java b/ct/src/main/java/com/ccsens/ct/api/BusinessController.java
new file mode 100644
index 00000000..5023efec
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/api/BusinessController.java
@@ -0,0 +1,54 @@
+package com.ccsens.ct.api;
+
+import com.ccsens.cloudutil.annotation.MustLogin;
+import com.ccsens.ct.bean.dto.BusinessDto;
+import com.ccsens.ct.bean.vo.BusinessVo;
+import com.ccsens.ct.service.IBusinessService;
+import com.ccsens.util.JsonResponse;
+import com.ccsens.util.bean.dto.QueryDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+@Slf4j
+@Api(tags = "商户相关" , description = "")
+@RestController
+@RequestMapping("/business")
+public class BusinessController {
+ @Autowired
+ private IBusinessService businessService;
+
+ @MustLogin
+ @ApiOperation(value = "上传商户信息", notes = "")
+ @RequestMapping(value = "upload", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse uploadBusiness(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("上传商户信息:{}",params);
+ BusinessVo.BusinessInfo businessInfo = businessService.uploadBusiness(params);
+ return JsonResponse.newInstance().ok(businessInfo);
+ }
+
+ @MustLogin
+ @ApiOperation(value = "查询商户信息", notes = "")
+ @RequestMapping(value = "info", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse selectBusiness(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("查询商户信息:{}",params);
+ BusinessVo.BusinessInfo businessInfo = businessService.selectBusiness(params);
+ return JsonResponse.newInstance().ok(businessInfo);
+ }
+
+ @MustLogin
+ @ApiOperation(value = "修改商户信息", notes = "")
+ @RequestMapping(value = "update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse updateBusiness(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("修改商户信息:{}",params);
+ BusinessVo.BusinessInfo businessInfo = businessService.updateBusiness(params);
+
+ return JsonResponse.newInstance().ok(businessInfo);
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/api/ClockController.java b/ct/src/main/java/com/ccsens/ct/api/ClockController.java
new file mode 100644
index 00000000..820b26f6
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/api/ClockController.java
@@ -0,0 +1,51 @@
+package com.ccsens.ct.api;
+
+import com.ccsens.cloudutil.annotation.MustLogin;
+import com.ccsens.ct.bean.dto.BusinessDto;
+import com.ccsens.ct.bean.dto.ClockDto;
+import com.ccsens.ct.bean.dto.SiteDto;
+import com.ccsens.ct.bean.vo.ClockVo;
+import com.ccsens.ct.bean.vo.SiteVo;
+import com.ccsens.ct.service.IClockService;
+import com.ccsens.util.JsonResponse;
+import com.ccsens.util.bean.dto.QueryDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@Api(tags = "打卡相关" , description = "")
+@RestController
+@RequestMapping("/clock")
+public class ClockController {
+ @Autowired
+ private IClockService clockService;
+
+ @MustLogin
+ @ApiOperation(value = "打卡", notes = "")
+ @RequestMapping(value = "", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse clockIn(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("打卡:{}",params);
+ clockService.clockIn(params);
+ return JsonResponse.newInstance().ok();
+ }
+
+ @MustLogin
+ @ApiOperation(value = "统计", notes = "")
+ @RequestMapping(value = "statistics", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse> clockStatistics(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("打卡:{}",params);
+ List clockStatisticsList = clockService.clockStatistics(params.getParam().getId(),params.getUserId());
+ return JsonResponse.newInstance().ok(clockStatisticsList);
+ }
+
+}
diff --git a/ct/src/main/java/com/ccsens/ct/api/DebugController.java b/ct/src/main/java/com/ccsens/ct/api/DebugController.java
new file mode 100644
index 00000000..03b26cb8
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/api/DebugController.java
@@ -0,0 +1,56 @@
+package com.ccsens.ct.api;
+
+import com.ccsens.util.Base64FileUtil;
+import com.ccsens.util.JsonResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Api(tags = "DEBUG" , description = "DebugController | ")
+@RestController
+@RequestMapping("/debug")
+public class DebugController {
+
+
+ @ApiOperation(value = "/测试",notes = "")
+ @ApiImplicitParams({
+ })
+ @RequestMapping(value="",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
+ public JsonResponse debug(HttpServletRequest request) throws Exception {
+
+ return JsonResponse.newInstance().ok("测试");
+ }
+
+
+ @ApiOperation(value = "/测试",notes = "")
+ @ApiImplicitParams({
+ })
+ @RequestMapping(value="base",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
+ public JsonResponse base(HttpServletRequest request) throws Exception {
+ String aaa = Base64FileUtil.base64ToFile("iVBORw0KGgoAAAANSUhEUgAAB4AAAANZCAYAAADu3CMyAAAgAElEQVR4Xuzd26ttWX4X8F/23ud01Ul3p6ra9C1qgiImJgEvREVBieBLK/hiKybaBp9MGlEICvoHKKiIgp34JCZqhCQPviSCDwYFhUggQdsWxVvU9C12dfWlTlXXOUdl1Fmza5199t5rzjVvY/zGZ0NT1XXmmnP8Pr/fPuy1v2vM+Q3hiwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRSCHxDiioUQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIhADYEBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSCIgAE7SSGUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBAAGwGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkERAAJykkcogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAANgMECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIImAADhJI5VBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAbAZIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBIBAXCSRiqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECAmAzQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSQCAuAkjVQGAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBMBmgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkkEBMBJGqkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQICIDNAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJIICICTNFIZBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQEACbAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCQREAAnaaQyCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIAA2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEgiIABO0khlECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQABsBggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJBEQACcpJHKIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgADYDBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCCJgAA4SSOVQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQGwGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEASAQFwkkYqgwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgJgM0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEkAgLgJI1UBgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBATAZoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJJBATASRqpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAiAzQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSSCAiAkzRSGQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBAAmwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgkERAAJ2mkMggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQICAANgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIIiAATtJIZRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQEAAbAYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQREAAnKSRyiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAA2AwQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgiYAAOEkjlUGAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEBsBkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAEgEBcJJGKoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQICYDNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBJAIC4CSNVAYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQEwGaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECSQQEwEkaqQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgIgM0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEkggIgJM0UhkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQAJsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIJBEQACdppDIIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAgADYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSCIgAE7SSGUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBAAGwGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkERAAJykkcogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAANgMECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIImAADhJI5VBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAbAZIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBIBAXCSRiqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECAmAzQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSQCAuAkjVQGAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBMBmgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkkEBMBJGqkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQICIDNAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJIICICTNFIZBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQEACbAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCQREAAnaaQyCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIAA2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEgiIABO0khlECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQABsBggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJBEQACcpJHKIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgADYDBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCCJgAA4SSOVQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQGwGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEASAQFwkkYqgwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgJgM0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEkAgLgJI1UBgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBATAZoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJJBATASRqpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAiAzQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSSCAiAkzRSGQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBAAmwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgkERAAJ2mkMggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQICAANgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIIiAATtJIZRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQEAAbAYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQREAAnKSRyiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAA2AwQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgiYAAOEkjlUGAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEBsBkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAEgEBcJJGKoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQICYDNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBJAIC4CSNVAYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQEwGaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECSQQEwEkaqQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgIgM0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEkggIgJM0UhkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQAJsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIJBEQACdppDIIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAgADYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSCIgAE7SSGUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBAAGwGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkERAAJykkcogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAANgMECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIImAADhJI5VBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAbAZIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBIBAXCSRiqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECAmAzQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSQCAuAkjVQGAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBMBmgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkkEBMBJGqkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQICIDNAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJIICICTNFIZBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQEACbAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCQREAAnaaQyCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIAA2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEgiIABO0khlECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQABsBggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJBEQACcpJHKIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgADYDBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCCJgAA4SSOVQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQGwGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEASAQFwkkYqgwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgJgM0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEkAgLgJI1UBgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBATAZoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJJBATASRqpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAiAzQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSSCAiAkzRSGQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEBAAmwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgkERAAJ2mkMggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQICAANgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBIIiAATtJIZRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQEAAbAYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQREAAnKSRyiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAA2AwQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgiYAAOEkjlUGAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEBsBkgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAEgEBcJJGKoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQICYDNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBJAIC4CSNVAYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQEwGaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECSQQEwEkaqQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgIgM0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEkggIgJM0UhkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQAJsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIJBEQACdppDIIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAgADYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQSCIgAE7SSGUQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBAAGwGCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkERAAJykkcogQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAANgMECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIImAADhJI5VBgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAbAZIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBIBAXCSRiqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECAmAzQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSQCAuAkjVQGAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBMBmgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkkEBMBJGqkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQICIDNAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJIICICTNFIZBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQEACbAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCQREAAnaaQyCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIAA2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEEgiIABO0khlECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAQABsBggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJBEQACcpJHKIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgADYDBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCCJgAA4SSOVQYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQGwGSBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEASAQFwkkYqgwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgJg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AQIECOwucFt4uFWouDtA4wvYOqwfQuDCVmbkzYh40Lih5RMgQIAAAQIECBAgQIAAAQIE7hQQABsQAgQIECBAgACBlgTueg5w+bOLlorpcK173a77OAgewmCz0uEAKpkAAQIECBAgQIAAAQIECPQgIADuoctqJECAAAECBAjkESghb/m6/vYoxuoAACAASURBVHPsXsFiHtltKtni+b93VfIwIl44mh8fGtim765CgAABAgQIECBAgAABAgQIbCggAN4Q26UIECBAgAABAgRmC9wWAJcT7x0uzi4u+QleP9x++Y1KbsPs9tDJB055BAgQIECAAAECBAgQIECgVwEBcK+dVzcBAgQIECBAoE2BuwJgu4Dr7mmt/XF76LrnxuoIECBAgAABAgQIECBAgACBiQIC4IlgDidAgAABAgQIENhV4K4AuCzMLuBd23PnxWvvjdtD1zs7VkaAAAECBAgQIECAAAECBAhMEBAAT8ByKAECBAgQIECAwO4CpwLgWneZ7g638wJKuPpiRNRy++dTHNdvD13+/9WpF/lzAgQIECBAgAABAgQIECBAgEANAgLgGrpgDQQIECBAgAABAmMFTgXAX46I90TEVyLivWNP6rjVBVoN5q/fHrpAlRkUCK8+Mi5AgAABAgQIECBAgAABAgQInCsgAD5XzusIECBAgAABAgT2EDgVAA8BXTnuYo8FuuaNArXf/nlM2x4fZur6eyizNkbPMQQIECBAgAABAgQIECBAgMBmAgLgzahdiAABAgQIECBAYAGBMQFwq7tNF+Cp8hSt3f55LOL1QFgQPFbOcQQIECBAgAABAgQIECBAgMCqAgLgVXmdnAABAgQIECBAYGGBMQFwuWSGHacL0+12uh4Cec8M3m28XJgAAQIECBAgQIAAAQIECBC4LiAANhMECBAgQIAAAQItCUwJgEtdft7dv7s9hfG3PTPY7cj3n0MrIECAAAECBAgQIECAAAEC3Qj4hVg3rVYoAQIECBAgQCCFgAC4vTaWnpXbJd9rb+mzVnx8i2i3h55F6cUECBAgQIAAAQIECBAgQIDAFAEB8BQtxxIgQIAAAQIECOwtMDYAHnZiCt727diTiCi7X3t+32EW951BVydAgAABAgQIECBAgAABAt0J9PyLmO6arWACBAgQIECAQAKBsQFwKVXwtn/Dp/Rr/9Wut4LjWSz/frXepZyZAAECBAgQIECAAAECBAgQ6F1AANz7BKifAAECBAgQINCWwNRAcQje/Ny7T59Lv0oPLve5fFVXve35wG9GxIOqVmoxBAgQIECAAAECBAgQIECAQNMCfhHWdPssngABAgQIECDQncDUAPgLEfFKRLwaEe/rTmvfgh8ddrp6z/F8H46fDzz8aZltYfC+M+vqBAgQIECAAAECBAgQIEAghYBfxqRooyIIECBAgAABAt0ITA2AC0x5jWcBbz8idl+PM389Il689pxk8zrOzlEECBAgQIAAAQIECBAgQIDADQICYGNBgAABAgQIECDQksA5AbAgcp8OC96nuz+MiBeOwmBB8HRDryBAgAABAgQIECBAgAABAt0LCIC7HwEABAgQIECAAIGmBM4JgEuBwsht2yx0n+99/MxgQfB8T2cgQIAAAQIECBAgQIAAAQLdCAiAu2m1QgkQIECAAAECKQTODYCHME2Qtv4YlOfbXkbEk8MzgNe/Yu4rHAfBpVKuufutOgIECBAgQIAAAQIECBAgMFtAADyb0AkIECBAgAABAgQ2FDg3AC5LtCt1m0bZbb2O8xCsD2f3YYZ1nJ2VAAECBAgQIECAAAECBAg0LyAAbr6FCiBAgAABAgQIdCUwJwD+fER8c0T8akS8vyu17YoVsm9j7fbQ2zi7CgECBAgQIECAAAECBAgQaFJAANxk2yyaAAECBAgQINCtwJwAuKDZnbru6PBd1/f62QXB23q7GgECBAgQIECAAAECBAgQaEJAANxEmyySAAECBAgQIEDgIDA3APYs4PVG6dHhmb8fjYifXu8yznyDgCDYWBAgQIAAAQIECBAgQIAAAQJfFxAAGwYCBAgQIECAAIGWBOYGwKVWIfA6HXf753Vcp5z1OAg+fp3nBU9RdCwBAgQIECBAgAABAgQIEGhcQADceAMtnwABAgQIECDQmcASAbAQeJ2hKb0pAeTlOqd31gkCguAJWA4lQIAAAQIECBAgQIAAAQLZBATA2TqqHgIECBAgQIBAboGlAuDjENjPxPNn5klEXEQEy/mWa53h+m2i34yIB2tdzHkJECBAgAABAgQIECBAgACB/QT8gmY/e1cmQIAAAQIECBCYLrBkAPzZiPhARHwuIj44fSlecSRQ+uI2w22MxPXdwfrWRt+skgABAgQIECBAgAABAgQIjBYQAI+mciABAgQI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banaqRgCBAgQIECAQFMCQzBZbgF9v6mV17vYm8JeYVa9/bKy+gTc/rm+nlgRAQIECBAgQIAAAQIECEwUEABPBHM4AQIECBAgQIDAYgKCycUonznRlyLivYf/Up5h6lmm6zg7a04Bt3/O2VdVESBAgAABAgQIECBAoCsBAXBX7VYsAQIECBAgQKAagccRcenWz6v2Y7i9drnIk4i4WvVqTk4gh4APpuTooyoIECBAgAABAgQIECDQtYAAuOv2K54AAQIECBAgsJuAZ/9uQ38cAg9XLP/tYpvLuwqBpgTs/m2qXRZLgAABAgQIECBAgAABArcJCIDNBgECBAgQIECAwB4CJYS0K3Vd+ethVtl1XYLf4T1A+fOyC9sXAQJPBez+NQkECBAgQIAAAQIECBAgkEJAAJyijYogQIAAAQIECDQlYJfd+u16dLjl8227fYcelJV8KiK+c/0luQKBqgX8vVR1eyyOAAECBAgQIECAAAECBKYICICnaDmWAAECBAgQIEBgrsCrEfHyYaed2xDP1bz99WN2Mpbg9zsOp3Bb6PV64cxtCIz5nmmjEqskQIAAAQIECBAgQIAAge4FBMDdjwAAAgQIECBAgMCmAp79uz73VONyK+7rYbxAeP0+uUI9AuX26OV26N4f19MTKyFAgAABAgQIECBAgACBGQLe4M7A81ICBAgQIECAAIFJAsMtVl877AKe9GIHjxIYjMstoO+PesU7Bx3fFnr4r4LgiYgOb1Jg6ocmmizSogkQIECAAAECBAgQIECgHwEBcD+9VikBAgQIECBAYE8Bt35eX38IcJcKbY8D4aXOub6CKxCYLlDmu+yEv5r+Uq8gQIAAAQIECBAgQIAAAQL1CQiA6+uJFREgQIAAAQIEMgrYYbduV5cOf49Xe31n8FsR8a51y3F2ApsJDPPtvfFm5C5EgAABAgQIECBAgAABAmsLeJO7trDzEyBAgAABAgQIuPXz+jNQAva1d+l+7dptpde+3vpqrkDg6feNWTYJBAgQIECAAAECBAgQIJBKQACcqp2KIUCAAAECBAhUKSBgWbcte+xgvH576Dci4hvXLdPZCSwusMf3zuJFOCEBAgQIECBAgAABAgQIELguIAA2EwQIECBAgAABAmsKuPXzmroRjw7PLd1rB+P120OXastafjwifmDd0p2dwGwBH06ZTegEBAgQIECA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IECAAAECBAgQIECAAIFnBQTAJoIAAQIECBAgQOC6gJByvZmwO/F22z8SEf/U86bXG74OzuwDBB00WYkECBAgQIAAAQIECBAgcFpAAHzayBEECBAgQIAAgd4EhJTrdFw4dberW46vM3c9ndXfXT11W60ECBAgQIAAAQIECBAgcKuAANhwECBAgAABAgQIHAsIKdebB+HU7bbD3H00In56vRY4c2KBhxHxots/J+6w0ggQIECAAAECBAgQIEBgtIAAeDSVAwkQIECAAAECXQgIKddps2D9bldzt87c9XRW32M9dVutBAgQIECAAAECBAgQIHCngADYgBAgQIAAAQIECAwCdtCtMwvDrY3LPy/WuUTzZy02n46Ib2m+EgXsJeBDBHvJuy4BAgQIECBAgAABAgQIVCcgAK6uJRZEgAABAgQIENhNwA665emFv6dNfyUiPhwR3puctnLEzQKPI+LSDBkPAgQIECBAgAABAgQIECDwVMAvWUwCAQIECBAgQIBAEXg1Il6OCLtUl52HIQD2c/ftrj54sOzM9Xg232c9dl3NBAgQIECAAAECBAgQIHCrgF9EGQ4CBAgQIECAAIEiIEBZZw6Em3e7Dj4+eLDO/PVy1jI/TyLiqpeC1UmAAAECBAgQIECAAAECBO4SEACbDwIECBAgQIAAgSGEe+2wC5jIsgKeTXqzp/B32Tnr9Ww+ZNFr59VNgAABAgQIECBAgAABArcKCIANBwECBAgQIECAgIBy3RkYAqpylZ+MiD++7uWaObu5a6ZVVS/UHFXdHosjQIAAAQIECBAgQIAAgT0EBMB7qLsmAQIECBAgQKAeAbvntulFCX4/eriU2x0/hSgOX4iIX7NNC1wlqYAAOGljlUWAAAECBAgQIECAAAEC5wsIgM+380oCBAgQIECAQAYB4cm2XXTb46fe/yci3hcR3o9sO38Zr1b+DnsUEfczFqcmAgQIECBAgAABAgQIECBwjoBfuJyj5jUECBAgQIAAgRwCdv/u00chcITZ22f2sl31rYi454ME2dqqHgIECBAgQIAAAQIECBCYKyAAnivo9QQIECBAgACBNgXKjrmrw214L9osoelV9x4C23ne9PhWs3gfJKimFRZCgAABAgQIECBAgAABAjUJCIBr6oa1ECBAgAABAgS2ExDAbWd925V6DYE/ERE/FBE/EhEf378NVtCw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cm+BMo9u5b13F1yfAAECBAgQIECAAAECBNIIZPmFT5qGKIQAAQIECBAgcBAYArryzwsqBBYUyHDr59s4fN8sOCgbnerxYRe696YbgbsMAQIECBAgQIAAAQIECOQX8CY7f49VSIAAAQIECLQr4Na27fau5pVnv92u75uap+/5tWX+QEJbnbBaAgQIECBAgAABAgQIEEgjIABO00qFECBAgAABAkkF3BI6aWN3KquXsO34ltDl31/aydtlTwtk/0DCaQFHECBAgAABAgQIECBAgACBhQUEwAuDOh0BAgQIECBAYCUBt7ZdCbaj0w632u3pWau+b+oe8F4+kFB3F6yOAAECBAgQIECAAAECBNIJCIDTtVRBBAgQIECAQGKBISwpJXo2cOJGr1Rarzstj79vvhgRr6zk67TTBYaA3vvS6XZeQYAAAQIECBAgQIAAAQIEbhXwRttwECBAgAABAgTaExAEt9ezvVdsp+XTD02ULx+e2Hsa37m+ALieXlgJAQIECBAgQIAAAQIECCQSEAAnaqZSCBAgQIAAge4EBMHdtfzsgnvd/XsdrNz++uLwH8v3z+XZol64hIAAeAlF5yBAgAABAgQIECBAgAABAtcEBMBGggABAgQIECDQvsAQBNvZ2H4v16jA7t/nVY8/POE90RpTN+6cAuBxTo4iQIAAAQIECBAgQIAAAQKTBPyyYxKXgwkQIECAAAEC1QoIgattza4L+x8R8a0RYbfr8214NSJePvxnH57YZ0wFwPu4uyoBAgQIECBAgAABAgQIJBcQACdvsPIIECBAgACBrgSEwF21e1SxArbTTL5vThutdYT5XEvWeQkQIECAAAECBAgQIECgawEBcNftVzwBAgQIECCQUECYlbCpZ5Y0PO/2lyPi2848Ry8vO342sPdI23VdALydtSsRIECAAAECBAgQIECAQEcCfrnRUbOVSoAAAQIECHQjcPx80xJsXXVTuUKPBUq45tbG42fiH0fE9x0O/4mI+P7xL3XkmQJm9Ew4LyNAgAABAgQIECBAgAABAncJCIDNBwECBAgQIEAgr4DdwHl7e6qyofd+3j8l9fyfD7tSPTd5ut2UV/xKRHw4Ij4dEd8y5YWOJUCAAAECBAgQIECAAAECBO4W8AshE0KAAAECBAgQyC3wOCIuDyXaDZq718fV2Vk5r9c+PDHPb8yrfUhhjJJj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+Pjw5K/kggQIECBAgAABAgQIECBAgMDZAgrgswldgAABAgQIECBAYMUCU90FfDPJtST/SvLuFXs4OoF7Cfw+yaeTPLP7pP1/qREgQIAAAQIECBAgQIAAAQILElAALygMRyFAgAABAgQIEJhFYIq7gKe4xizDe1ECBAgQIECAAAECBAgQIECAAIEuAQVwV56mIUCAAAECBAgQOF5gfxfwKHHHXbzHfkx1F/Gxr+vzCRAgQIAAAQIECBAgQIAAAQIECLxDQAFsKQgQIECAAAECBAgk55TA7v61QQQIECBAgAABAgQIECBAgAABAosRUAAvJgoHIUCAAAECBAgQmFng1BJYATxzcF6eAAECBAgQIECAAAECBAgQIEDgloAC2DYQIECAAAECBAgQuCVwyuOcRwH8ZpKHQRIgQIAAAQIECBAgQIAAAQIECBCYW0ABPHcCXp8AAQIECBAgQGBpAsfc0ftGkoeS+Ll6aSk6DwECBAgQIECAAAECBAgQIEBgowL+oWqjwRubAAECBAgQIEDgSoFj7gI+5nOREyBAgAABAgQIECBAgAABAgQIELi4gAL44sRegAABAgQIECBAYIUCh94FrABeYbiOTIAAAQIECBAgQIAAAQIECBBoFlAAN6drNgIECBAgQIAAgVMFDi12Dy2KTz2HryNAgAABAgQIECBAgAABAgQIECBwlIAC+Cgun0yAAAECBAgQILAhgfuVu4eWxBsiMyoBAgQIECBAgAABAgQIECBAgMDcAgrguRPw+gQIECBAgAABAksV2Be8owi+dpdD3q8gXupczkWAAAECBAgQIECAAAECBAgQIFAsoAAuDtdoBAgQIECAAAECZwuMknd83Plzs7t/z6Z1AQIECBAgQIAAAQIECBAgQIAAgUsIKIAvoeqaBAgQIECAAAECLQJX3QXs7t+WhM1BgAABAgQIECBAgAABAgQIECgTUACXBWocAgQIECBAgACByQXuvAvY3b+TE7sgAQIECBAgQIAAAQIECBAgQIDAVAIK4KkkXYcAAQIECBAgQKBV4M67gN3925q0uQgQIECAAAECBAgQIECAAAECBQIK4IIQjUCAAAECBAgQIHBxgf1dwOO/42doP0dfnNwLECBAgAABAgQIECBAgAABAgQInCLgH65OUfM1BAgQIECAAAECWxS4vQS+tkUAMxMgQIAAAQIECBAgQIAAAQIECCxfQAG8/IyckAABAgQIECBAYDkC43HQyt/l5OEkBAgQIECAAAECBAgQIECAAAECdwgogK0EAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIKxD0W4AABspSURBVECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRIBBXBJkMYgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAtgOECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoERAAVwSpDEIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCgALYDBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKBFQAJcEaQwCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgogO0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIESgQUwCVBGoMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIKYDtAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEgEFcEmQxiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgIAC2A4QIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgREABXBKkMQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIKAAtgMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoEVAAlwRpDAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECCiA7QABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKBBTAJUEagwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgpgO0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESAQVwSZDGIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAgALYDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEQAFcEqQxCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgoAC2AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECgRUACXBGkMAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIKIDtAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBEoEFMAlQRqDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECCmA7QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgRKB/wJpvi3SoNa7CwAAAABJRU5ErkJggg==\n",
+ "/home","2233552");
+ return JsonResponse.newInstance().ok(aaa);
+ }
+
+// @ApiOperation(value = "/测试二维码",notes = "")
+// @ApiImplicitParams({
+// })
+// @RequestMapping(value="qrcode",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"})
+// public JsonResponse qrcode(HttpServletRequest request) throws Exception {
+// WxXcxUtil.LineColor color = new WxXcxUtil.LineColor();
+// color.r = "243";
+// color.g = "139";
+// color.b = "0";
+// WxXcxUtil.getWxCode("pages/index/index"
+// ,"d=1218855229722857472",color,"/home/cloud/tall/uploads/qrCode/00112.png");
+//// WxXcxUtil.getWxCodeTest("pages/index/index?t=eyJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE1ODM4MDc3MzcsInN1YiI6IjEyMTg4NTUyMjk3MjI4NTc0NzIiLCJhdXRoSWQiOiIxMTc3MDQwNjY"
+//// ,"d=1217647686598135808",color,"/home/cloud/tall/uploads/qrCode/158357267174.png");
+//
+// return JsonResponse.newInstance().ok("完成");
+// }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/api/SiteController.java b/ct/src/main/java/com/ccsens/ct/api/SiteController.java
new file mode 100644
index 00000000..d6403e44
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/api/SiteController.java
@@ -0,0 +1,79 @@
+package com.ccsens.ct.api;
+
+import com.ccsens.cloudutil.annotation.MustLogin;
+import com.ccsens.ct.bean.dto.BusinessDto;
+import com.ccsens.ct.bean.dto.SiteDto;
+import com.ccsens.ct.bean.po.Site;
+import com.ccsens.ct.bean.vo.BusinessVo;
+import com.ccsens.ct.bean.vo.SiteVo;
+import com.ccsens.ct.service.ISiteService;
+import com.ccsens.util.JsonResponse;
+import com.ccsens.util.bean.dto.QueryDto;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Slf4j
+@Api(tags = "场所相关" , description = "")
+@RestController
+@RequestMapping("/sites")
+public class SiteController {
+ @Autowired
+ private ISiteService siteService;
+
+ @MustLogin
+ @ApiOperation(value = "添加场所", notes = "")
+ @RequestMapping(value = "", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse uploadSite(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("添加场所:{}",params);
+ SiteVo.SiteInfoVo siteInfoVo = siteService.addSite(params);
+ return JsonResponse.newInstance().ok(siteInfoVo);
+ }
+
+ @MustLogin
+ @ApiOperation(value = "透过id查看单个场所的信息", notes = "")
+ @RequestMapping(value = "siteId", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse selectSite(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("透过id查看单个场所的信息:{}",params);
+ SiteVo.SiteInfo siteInfo = siteService.selectSiteById(params.getParam().getId());
+ return JsonResponse.newInstance().ok(siteInfo);
+ }
+
+ @MustLogin
+ @ApiOperation(value = "修改场所信息", notes = "")
+ @RequestMapping(value = "update", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse updateSiteInfo(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("修改场所信息:{}",params);
+ SiteVo.SiteInfo siteInfoVo = siteService.updateSiteInfo(params);
+ return JsonResponse.newInstance().ok(siteInfoVo);
+ }
+
+
+
+ @MustLogin
+ @ApiOperation(value = "透过商户id查看所有场所的信息", notes = "")
+ @RequestMapping(value = "siteAll", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+ public JsonResponse selectSiteAllByBusinessId(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+ log.info("透过商户id查看所有场所的信息:{}",params);
+ SiteVo.SiteInfoVo siteInfoVo = siteService.selectSiteAllByBusinessId(params);
+ return JsonResponse.newInstance().ok(siteInfoVo);
+ }
+
+// @MustLogin
+// @ApiOperation(value = "下载二维码", notes = "")
+// @RequestMapping(value = "qrcode", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"})
+// public JsonResponse downloadQrCode(@ApiParam @Validated @RequestBody QueryDto params) throws Exception {
+// log.info("下载二维码:{}",params);
+// String path = siteService.downloadQrCode(params.getParam().getId());
+// return JsonResponse.newInstance().ok(path);
+// }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/bean/dto/BusinessDto.java b/ct/src/main/java/com/ccsens/ct/bean/dto/BusinessDto.java
new file mode 100644
index 00000000..2fa886bd
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/dto/BusinessDto.java
@@ -0,0 +1,57 @@
+package com.ccsens.ct.bean.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class BusinessDto {
+
+ @Data
+ @ApiModel("上传商户信息")
+ public static class BusinessInfo{
+ @ApiModelProperty("商户名称")
+ private String name;
+ @ApiModelProperty("详细地址")
+ private String address;
+ @ApiModelProperty("申请人姓名")
+ private String applicantName;
+ @ApiModelProperty("身份证号")
+ private String idCard;
+ @ApiModelProperty("手机号")
+ private String phone;
+ @ApiModelProperty("营业执照")
+ private String businessLicense;
+ @ApiModelProperty("公众号二维码")
+ private String qrCode;
+ }
+
+ @Data
+ @ApiModel("商户id")
+ public static class BusinessId{
+ @ApiModelProperty("商户id")
+ private Long id;
+ }
+
+
+ @Data
+ @ApiModel("修改商户信息")
+ public static class UpdateBusiness{
+ @ApiModelProperty("商户id")
+ private Long id;
+ @ApiModelProperty("商户名称")
+ private String name;
+ @ApiModelProperty("详细地址")
+ private String address;
+ @ApiModelProperty("申请人姓名")
+ private String applicantName;
+ @ApiModelProperty("身份证号")
+ private String idCard;
+ @ApiModelProperty("手机号")
+ private String phone;
+ @ApiModelProperty("营业执照")
+ private String businessLicense;
+ @ApiModelProperty("公众号二维码")
+ private String qrCode;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/bean/dto/ClockDto.java b/ct/src/main/java/com/ccsens/ct/bean/dto/ClockDto.java
new file mode 100644
index 00000000..73f99406
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/dto/ClockDto.java
@@ -0,0 +1,22 @@
+package com.ccsens.ct.bean.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class ClockDto {
+
+ @Data
+ @ApiModel("打卡")
+ public static class ClockIn{
+ @ApiModelProperty("二维码的id")
+ private Long id;
+ @ApiModelProperty("经度")
+ private BigDecimal longitude;
+ @ApiModelProperty("纬度")
+ private BigDecimal latitude;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/bean/dto/SiteDto.java b/ct/src/main/java/com/ccsens/ct/bean/dto/SiteDto.java
new file mode 100644
index 00000000..0b29541e
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/dto/SiteDto.java
@@ -0,0 +1,56 @@
+package com.ccsens.ct.bean.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class SiteDto {
+ @Data
+ @ApiModel("添加场所")
+ public static class SiteInfoDto{
+ @ApiModelProperty("所属商户id")
+ @NotNull(message = "商户id不能为空")
+ private Long id;
+ @ApiModelProperty("场所信息")
+ private List siteInfo;
+ }
+
+ @Data
+ @ApiModel("添加场所")
+ public static class SiteInfo{
+ @ApiModelProperty("场所名")
+ @NotEmpty(message = "场所名不能为空")
+ private String siteName;
+ @ApiModelProperty("经度")
+ private BigDecimal longitude;
+ @ApiModelProperty("纬度")
+ private BigDecimal latitude;
+ }
+
+ @Data
+ @ApiModel("修改场所信息")
+ public static class UpdateSite{
+ @ApiModelProperty("场所id")
+ private Long id;
+ @ApiModelProperty("场所名")
+ private String siteName;
+ @ApiModelProperty("经度")
+ private BigDecimal longitude;
+ @ApiModelProperty("纬度")
+ private BigDecimal latitude;
+ }
+
+
+ @Data
+ @ApiModel("场所id")
+ public static class SiteId{
+ @ApiModelProperty("场所id")
+ private Long id;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/bean/po/Business.java b/ct/src/main/java/com/ccsens/ct/bean/po/Business.java
new file mode 100644
index 00000000..4e1c9af4
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/Business.java
@@ -0,0 +1,161 @@
+package com.ccsens.ct.bean.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class Business implements Serializable {
+ private Long id;
+
+ private String name;
+
+ private String address;
+
+ private String applicantName;
+
+ private String applicantIdCard;
+
+ private String applicantPhone;
+
+ private String businessLicense;
+
+ private String qrCord;
+
+ private Long userId;
+
+ private Byte passed;
+
+ private Date createdAt;
+
+ private Date updatedAt;
+
+ private Byte recStatus;
+
+ private static final long serialVersionUID = 1L;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name == null ? null : name.trim();
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address == null ? null : address.trim();
+ }
+
+ public String getApplicantName() {
+ return applicantName;
+ }
+
+ public void setApplicantName(String applicantName) {
+ this.applicantName = applicantName == null ? null : applicantName.trim();
+ }
+
+ public String getApplicantIdCard() {
+ return applicantIdCard;
+ }
+
+ public void setApplicantIdCard(String applicantIdCard) {
+ this.applicantIdCard = applicantIdCard == null ? null : applicantIdCard.trim();
+ }
+
+ public String getApplicantPhone() {
+ return applicantPhone;
+ }
+
+ public void setApplicantPhone(String applicantPhone) {
+ this.applicantPhone = applicantPhone == null ? null : applicantPhone.trim();
+ }
+
+ public String getBusinessLicense() {
+ return businessLicense;
+ }
+
+ public void setBusinessLicense(String businessLicense) {
+ this.businessLicense = businessLicense == null ? null : businessLicense.trim();
+ }
+
+ public String getQrCord() {
+ return qrCord;
+ }
+
+ public void setQrCord(String qrCord) {
+ this.qrCord = qrCord == null ? null : qrCord.trim();
+ }
+
+ public Long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+ public Byte getPassed() {
+ return passed;
+ }
+
+ public void setPassed(Byte passed) {
+ this.passed = passed;
+ }
+
+ public Date getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(Date createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public Date getUpdatedAt() {
+ return updatedAt;
+ }
+
+ public void setUpdatedAt(Date updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public Byte getRecStatus() {
+ return recStatus;
+ }
+
+ public void setRecStatus(Byte recStatus) {
+ this.recStatus = recStatus;
+ }
+
+ @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(", address=").append(address);
+ sb.append(", applicantName=").append(applicantName);
+ sb.append(", applicantIdCard=").append(applicantIdCard);
+ sb.append(", applicantPhone=").append(applicantPhone);
+ sb.append(", businessLicense=").append(businessLicense);
+ sb.append(", qrCord=").append(qrCord);
+ sb.append(", userId=").append(userId);
+ sb.append(", passed=").append(passed);
+ sb.append(", createdAt=").append(createdAt);
+ sb.append(", updatedAt=").append(updatedAt);
+ sb.append(", recStatus=").append(recStatus);
+ sb.append("]");
+ return sb.toString();
+ }
+}
\ No newline at end of file
diff --git a/ct/src/main/java/com/ccsens/ct/bean/po/BusinessExample.java b/ct/src/main/java/com/ccsens/ct/bean/po/BusinessExample.java
new file mode 100644
index 00000000..fa1a8862
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/BusinessExample.java
@@ -0,0 +1,1051 @@
+package com.ccsens.ct.bean.po;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class BusinessExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public BusinessExample() {
+ 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(Long value) {
+ addCriterion("id =", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotEqualTo(Long value) {
+ addCriterion("id <>", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThan(Long value) {
+ addCriterion("id >", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("id >=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThan(Long value) {
+ addCriterion("id <", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThanOrEqualTo(Long 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(Long value1, Long value2) {
+ addCriterion("id between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotBetween(Long value1, Long 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 andAddressIsNull() {
+ addCriterion("address is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressIsNotNull() {
+ addCriterion("address is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressEqualTo(String value) {
+ addCriterion("address =", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressNotEqualTo(String value) {
+ addCriterion("address <>", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressGreaterThan(String value) {
+ addCriterion("address >", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressGreaterThanOrEqualTo(String value) {
+ addCriterion("address >=", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressLessThan(String value) {
+ addCriterion("address <", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressLessThanOrEqualTo(String value) {
+ addCriterion("address <=", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressLike(String value) {
+ addCriterion("address like", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressNotLike(String value) {
+ addCriterion("address not like", value, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressIn(List values) {
+ addCriterion("address in", values, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressNotIn(List values) {
+ addCriterion("address not in", values, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressBetween(String value1, String value2) {
+ addCriterion("address between", value1, value2, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andAddressNotBetween(String value1, String value2) {
+ addCriterion("address not between", value1, value2, "address");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameIsNull() {
+ addCriterion("applicant_name is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameIsNotNull() {
+ addCriterion("applicant_name is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameEqualTo(String value) {
+ addCriterion("applicant_name =", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameNotEqualTo(String value) {
+ addCriterion("applicant_name <>", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameGreaterThan(String value) {
+ addCriterion("applicant_name >", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameGreaterThanOrEqualTo(String value) {
+ addCriterion("applicant_name >=", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameLessThan(String value) {
+ addCriterion("applicant_name <", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameLessThanOrEqualTo(String value) {
+ addCriterion("applicant_name <=", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameLike(String value) {
+ addCriterion("applicant_name like", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameNotLike(String value) {
+ addCriterion("applicant_name not like", value, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameIn(List values) {
+ addCriterion("applicant_name in", values, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameNotIn(List values) {
+ addCriterion("applicant_name not in", values, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameBetween(String value1, String value2) {
+ addCriterion("applicant_name between", value1, value2, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantNameNotBetween(String value1, String value2) {
+ addCriterion("applicant_name not between", value1, value2, "applicantName");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardIsNull() {
+ addCriterion("applicant_id_card is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardIsNotNull() {
+ addCriterion("applicant_id_card is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardEqualTo(String value) {
+ addCriterion("applicant_id_card =", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardNotEqualTo(String value) {
+ addCriterion("applicant_id_card <>", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardGreaterThan(String value) {
+ addCriterion("applicant_id_card >", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardGreaterThanOrEqualTo(String value) {
+ addCriterion("applicant_id_card >=", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardLessThan(String value) {
+ addCriterion("applicant_id_card <", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardLessThanOrEqualTo(String value) {
+ addCriterion("applicant_id_card <=", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardLike(String value) {
+ addCriterion("applicant_id_card like", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardNotLike(String value) {
+ addCriterion("applicant_id_card not like", value, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardIn(List values) {
+ addCriterion("applicant_id_card in", values, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardNotIn(List values) {
+ addCriterion("applicant_id_card not in", values, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardBetween(String value1, String value2) {
+ addCriterion("applicant_id_card between", value1, value2, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantIdCardNotBetween(String value1, String value2) {
+ addCriterion("applicant_id_card not between", value1, value2, "applicantIdCard");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneIsNull() {
+ addCriterion("applicant_phone is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneIsNotNull() {
+ addCriterion("applicant_phone is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneEqualTo(String value) {
+ addCriterion("applicant_phone =", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneNotEqualTo(String value) {
+ addCriterion("applicant_phone <>", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneGreaterThan(String value) {
+ addCriterion("applicant_phone >", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneGreaterThanOrEqualTo(String value) {
+ addCriterion("applicant_phone >=", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneLessThan(String value) {
+ addCriterion("applicant_phone <", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneLessThanOrEqualTo(String value) {
+ addCriterion("applicant_phone <=", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneLike(String value) {
+ addCriterion("applicant_phone like", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneNotLike(String value) {
+ addCriterion("applicant_phone not like", value, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneIn(List values) {
+ addCriterion("applicant_phone in", values, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneNotIn(List values) {
+ addCriterion("applicant_phone not in", values, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneBetween(String value1, String value2) {
+ addCriterion("applicant_phone between", value1, value2, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andApplicantPhoneNotBetween(String value1, String value2) {
+ addCriterion("applicant_phone not between", value1, value2, "applicantPhone");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseIsNull() {
+ addCriterion("business_license is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseIsNotNull() {
+ addCriterion("business_license is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseEqualTo(String value) {
+ addCriterion("business_license =", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseNotEqualTo(String value) {
+ addCriterion("business_license <>", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseGreaterThan(String value) {
+ addCriterion("business_license >", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseGreaterThanOrEqualTo(String value) {
+ addCriterion("business_license >=", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseLessThan(String value) {
+ addCriterion("business_license <", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseLessThanOrEqualTo(String value) {
+ addCriterion("business_license <=", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseLike(String value) {
+ addCriterion("business_license like", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseNotLike(String value) {
+ addCriterion("business_license not like", value, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseIn(List values) {
+ addCriterion("business_license in", values, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseNotIn(List values) {
+ addCriterion("business_license not in", values, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseBetween(String value1, String value2) {
+ addCriterion("business_license between", value1, value2, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessLicenseNotBetween(String value1, String value2) {
+ addCriterion("business_license not between", value1, value2, "businessLicense");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordIsNull() {
+ addCriterion("qr_cord is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordIsNotNull() {
+ addCriterion("qr_cord is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordEqualTo(String value) {
+ addCriterion("qr_cord =", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordNotEqualTo(String value) {
+ addCriterion("qr_cord <>", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordGreaterThan(String value) {
+ addCriterion("qr_cord >", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordGreaterThanOrEqualTo(String value) {
+ addCriterion("qr_cord >=", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordLessThan(String value) {
+ addCriterion("qr_cord <", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordLessThanOrEqualTo(String value) {
+ addCriterion("qr_cord <=", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordLike(String value) {
+ addCriterion("qr_cord like", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordNotLike(String value) {
+ addCriterion("qr_cord not like", value, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordIn(List values) {
+ addCriterion("qr_cord in", values, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordNotIn(List values) {
+ addCriterion("qr_cord not in", values, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordBetween(String value1, String value2) {
+ addCriterion("qr_cord between", value1, value2, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrCordNotBetween(String value1, String value2) {
+ addCriterion("qr_cord not between", value1, value2, "qrCord");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdIsNull() {
+ addCriterion("user_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdIsNotNull() {
+ addCriterion("user_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdEqualTo(Long value) {
+ addCriterion("user_id =", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdNotEqualTo(Long value) {
+ addCriterion("user_id <>", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdGreaterThan(Long value) {
+ addCriterion("user_id >", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("user_id >=", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdLessThan(Long value) {
+ addCriterion("user_id <", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdLessThanOrEqualTo(Long value) {
+ addCriterion("user_id <=", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdIn(List values) {
+ addCriterion("user_id in", values, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdNotIn(List values) {
+ addCriterion("user_id not in", values, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdBetween(Long value1, Long value2) {
+ addCriterion("user_id between", value1, value2, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdNotBetween(Long value1, Long value2) {
+ addCriterion("user_id not between", value1, value2, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedIsNull() {
+ addCriterion("passed is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedIsNotNull() {
+ addCriterion("passed is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedEqualTo(Byte value) {
+ addCriterion("passed =", value, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedNotEqualTo(Byte value) {
+ addCriterion("passed <>", value, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedGreaterThan(Byte value) {
+ addCriterion("passed >", value, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedGreaterThanOrEqualTo(Byte value) {
+ addCriterion("passed >=", value, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedLessThan(Byte value) {
+ addCriterion("passed <", value, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedLessThanOrEqualTo(Byte value) {
+ addCriterion("passed <=", value, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedIn(List values) {
+ addCriterion("passed in", values, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedNotIn(List values) {
+ addCriterion("passed not in", values, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedBetween(Byte value1, Byte value2) {
+ addCriterion("passed between", value1, value2, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andPassedNotBetween(Byte value1, Byte value2) {
+ addCriterion("passed not between", value1, value2, "passed");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNull() {
+ addCriterion("created_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNotNull() {
+ addCriterion("created_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtEqualTo(Date value) {
+ addCriterion("created_at =", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotEqualTo(Date value) {
+ addCriterion("created_at <>", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThan(Date value) {
+ addCriterion("created_at >", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("created_at >=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThan(Date value) {
+ addCriterion("created_at <", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("created_at <=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIn(List values) {
+ addCriterion("created_at in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotIn(List values) {
+ addCriterion("created_at not in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtBetween(Date value1, Date value2) {
+ addCriterion("created_at between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("created_at not between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNull() {
+ addCriterion("updated_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNotNull() {
+ addCriterion("updated_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtEqualTo(Date value) {
+ addCriterion("updated_at =", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotEqualTo(Date value) {
+ addCriterion("updated_at <>", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThan(Date value) {
+ addCriterion("updated_at >", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("updated_at >=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThan(Date value) {
+ addCriterion("updated_at <", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("updated_at <=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIn(List values) {
+ addCriterion("updated_at in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotIn(List values) {
+ addCriterion("updated_at not in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtBetween(Date value1, Date value2) {
+ addCriterion("updated_at between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("updated_at not between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNull() {
+ addCriterion("rec_status is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNotNull() {
+ addCriterion("rec_status is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusEqualTo(Byte value) {
+ addCriterion("rec_status =", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotEqualTo(Byte value) {
+ addCriterion("rec_status <>", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThan(Byte value) {
+ addCriterion("rec_status >", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
+ addCriterion("rec_status >=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThan(Byte value) {
+ addCriterion("rec_status <", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
+ addCriterion("rec_status <=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIn(List values) {
+ addCriterion("rec_status in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotIn(List values) {
+ addCriterion("rec_status not in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status between", value1, value2, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status not between", value1, value2, "recStatus");
+ 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 a/ct/src/main/java/com/ccsens/ct/bean/po/Site.java b/ct/src/main/java/com/ccsens/ct/bean/po/Site.java
new file mode 100644
index 00000000..ccf9998d
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/Site.java
@@ -0,0 +1,118 @@
+package com.ccsens.ct.bean.po;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class Site implements Serializable {
+ private Long id;
+
+ private Long businessId;
+
+ private String siteName;
+
+ private String siteCode;
+
+ private BigDecimal longitude;
+
+ private BigDecimal latitude;
+
+ private Date createdAt;
+
+ private Date updatedAt;
+
+ private Byte recStatus;
+
+ private static final long serialVersionUID = 1L;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getBusinessId() {
+ return businessId;
+ }
+
+ public void setBusinessId(Long businessId) {
+ this.businessId = businessId;
+ }
+
+ public String getSiteName() {
+ return siteName;
+ }
+
+ public void setSiteName(String siteName) {
+ this.siteName = siteName == null ? null : siteName.trim();
+ }
+
+ public String getSiteCode() {
+ return siteCode;
+ }
+
+ public void setSiteCode(String siteCode) {
+ this.siteCode = siteCode == null ? null : siteCode.trim();
+ }
+
+ public BigDecimal getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(BigDecimal longitude) {
+ this.longitude = longitude;
+ }
+
+ public BigDecimal getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(BigDecimal latitude) {
+ this.latitude = latitude;
+ }
+
+ public Date getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(Date createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public Date getUpdatedAt() {
+ return updatedAt;
+ }
+
+ public void setUpdatedAt(Date updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public Byte getRecStatus() {
+ return recStatus;
+ }
+
+ public void setRecStatus(Byte recStatus) {
+ this.recStatus = recStatus;
+ }
+
+ @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(", businessId=").append(businessId);
+ sb.append(", siteName=").append(siteName);
+ sb.append(", siteCode=").append(siteCode);
+ sb.append(", longitude=").append(longitude);
+ sb.append(", latitude=").append(latitude);
+ sb.append(", createdAt=").append(createdAt);
+ sb.append(", updatedAt=").append(updatedAt);
+ sb.append(", recStatus=").append(recStatus);
+ sb.append("]");
+ return sb.toString();
+ }
+}
\ No newline at end of file
diff --git a/ct/src/main/java/com/ccsens/ct/bean/po/SiteClockIn.java b/ct/src/main/java/com/ccsens/ct/bean/po/SiteClockIn.java
new file mode 100644
index 00000000..7fd026a0
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/SiteClockIn.java
@@ -0,0 +1,118 @@
+package com.ccsens.ct.bean.po;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class SiteClockIn implements Serializable {
+ private Long id;
+
+ private Long qrcodeId;
+
+ private Long time;
+
+ private BigDecimal longitude;
+
+ private BigDecimal latitude;
+
+ private Long userId;
+
+ private Date createdAt;
+
+ private Date updatedAt;
+
+ private Byte recStatus;
+
+ private static final long serialVersionUID = 1L;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getQrcodeId() {
+ return qrcodeId;
+ }
+
+ public void setQrcodeId(Long qrcodeId) {
+ this.qrcodeId = qrcodeId;
+ }
+
+ public Long getTime() {
+ return time;
+ }
+
+ public void setTime(Long time) {
+ this.time = time;
+ }
+
+ public BigDecimal getLongitude() {
+ return longitude;
+ }
+
+ public void setLongitude(BigDecimal longitude) {
+ this.longitude = longitude;
+ }
+
+ public BigDecimal getLatitude() {
+ return latitude;
+ }
+
+ public void setLatitude(BigDecimal latitude) {
+ this.latitude = latitude;
+ }
+
+ public Long getUserId() {
+ return userId;
+ }
+
+ public void setUserId(Long userId) {
+ this.userId = userId;
+ }
+
+ public Date getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(Date createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public Date getUpdatedAt() {
+ return updatedAt;
+ }
+
+ public void setUpdatedAt(Date updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public Byte getRecStatus() {
+ return recStatus;
+ }
+
+ public void setRecStatus(Byte recStatus) {
+ this.recStatus = recStatus;
+ }
+
+ @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(", qrcodeId=").append(qrcodeId);
+ sb.append(", time=").append(time);
+ sb.append(", longitude=").append(longitude);
+ sb.append(", latitude=").append(latitude);
+ sb.append(", userId=").append(userId);
+ sb.append(", createdAt=").append(createdAt);
+ sb.append(", updatedAt=").append(updatedAt);
+ sb.append(", recStatus=").append(recStatus);
+ sb.append("]");
+ return sb.toString();
+ }
+}
\ No newline at end of file
diff --git a/ct/src/main/java/com/ccsens/ct/bean/po/SiteClockInExample.java b/ct/src/main/java/com/ccsens/ct/bean/po/SiteClockInExample.java
new file mode 100644
index 00000000..3e09cad5
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/SiteClockInExample.java
@@ -0,0 +1,742 @@
+package com.ccsens.ct.bean.po;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SiteClockInExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public SiteClockInExample() {
+ 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(Long value) {
+ addCriterion("id =", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotEqualTo(Long value) {
+ addCriterion("id <>", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThan(Long value) {
+ addCriterion("id >", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("id >=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThan(Long value) {
+ addCriterion("id <", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThanOrEqualTo(Long 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(Long value1, Long value2) {
+ addCriterion("id between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotBetween(Long value1, Long value2) {
+ addCriterion("id not between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdIsNull() {
+ addCriterion("qrcode_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdIsNotNull() {
+ addCriterion("qrcode_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdEqualTo(Long value) {
+ addCriterion("qrcode_id =", value, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdNotEqualTo(Long value) {
+ addCriterion("qrcode_id <>", value, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdGreaterThan(Long value) {
+ addCriterion("qrcode_id >", value, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("qrcode_id >=", value, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdLessThan(Long value) {
+ addCriterion("qrcode_id <", value, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdLessThanOrEqualTo(Long value) {
+ addCriterion("qrcode_id <=", value, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdIn(List values) {
+ addCriterion("qrcode_id in", values, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdNotIn(List values) {
+ addCriterion("qrcode_id not in", values, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdBetween(Long value1, Long value2) {
+ addCriterion("qrcode_id between", value1, value2, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodeIdNotBetween(Long value1, Long value2) {
+ addCriterion("qrcode_id not between", value1, value2, "qrcodeId");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeIsNull() {
+ addCriterion("time is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeIsNotNull() {
+ addCriterion("time is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeEqualTo(Long value) {
+ addCriterion("time =", value, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeNotEqualTo(Long value) {
+ addCriterion("time <>", value, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeGreaterThan(Long value) {
+ addCriterion("time >", value, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeGreaterThanOrEqualTo(Long value) {
+ addCriterion("time >=", value, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeLessThan(Long value) {
+ addCriterion("time <", value, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeLessThanOrEqualTo(Long value) {
+ addCriterion("time <=", value, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeIn(List values) {
+ addCriterion("time in", values, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeNotIn(List values) {
+ addCriterion("time not in", values, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeBetween(Long value1, Long value2) {
+ addCriterion("time between", value1, value2, "time");
+ return (Criteria) this;
+ }
+
+ public Criteria andTimeNotBetween(Long value1, Long value2) {
+ addCriterion("time not between", value1, value2, "time");
+ 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(BigDecimal value) {
+ addCriterion("longitude =", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeNotEqualTo(BigDecimal value) {
+ addCriterion("longitude <>", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeGreaterThan(BigDecimal value) {
+ addCriterion("longitude >", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeGreaterThanOrEqualTo(BigDecimal value) {
+ addCriterion("longitude >=", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeLessThan(BigDecimal value) {
+ addCriterion("longitude <", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeLessThanOrEqualTo(BigDecimal value) {
+ addCriterion("longitude <=", 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(BigDecimal value1, BigDecimal value2) {
+ addCriterion("longitude between", value1, value2, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeNotBetween(BigDecimal value1, BigDecimal 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(BigDecimal value) {
+ addCriterion("latitude =", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeNotEqualTo(BigDecimal value) {
+ addCriterion("latitude <>", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeGreaterThan(BigDecimal value) {
+ addCriterion("latitude >", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeGreaterThanOrEqualTo(BigDecimal value) {
+ addCriterion("latitude >=", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeLessThan(BigDecimal value) {
+ addCriterion("latitude <", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeLessThanOrEqualTo(BigDecimal value) {
+ addCriterion("latitude <=", 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(BigDecimal value1, BigDecimal value2) {
+ addCriterion("latitude between", value1, value2, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeNotBetween(BigDecimal value1, BigDecimal value2) {
+ addCriterion("latitude not between", value1, value2, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdIsNull() {
+ addCriterion("user_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdIsNotNull() {
+ addCriterion("user_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdEqualTo(Long value) {
+ addCriterion("user_id =", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdNotEqualTo(Long value) {
+ addCriterion("user_id <>", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdGreaterThan(Long value) {
+ addCriterion("user_id >", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("user_id >=", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdLessThan(Long value) {
+ addCriterion("user_id <", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdLessThanOrEqualTo(Long value) {
+ addCriterion("user_id <=", value, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdIn(List values) {
+ addCriterion("user_id in", values, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdNotIn(List values) {
+ addCriterion("user_id not in", values, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdBetween(Long value1, Long value2) {
+ addCriterion("user_id between", value1, value2, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andUserIdNotBetween(Long value1, Long value2) {
+ addCriterion("user_id not between", value1, value2, "userId");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNull() {
+ addCriterion("created_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNotNull() {
+ addCriterion("created_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtEqualTo(Date value) {
+ addCriterion("created_at =", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotEqualTo(Date value) {
+ addCriterion("created_at <>", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThan(Date value) {
+ addCriterion("created_at >", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("created_at >=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThan(Date value) {
+ addCriterion("created_at <", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("created_at <=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIn(List values) {
+ addCriterion("created_at in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotIn(List values) {
+ addCriterion("created_at not in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtBetween(Date value1, Date value2) {
+ addCriterion("created_at between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("created_at not between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNull() {
+ addCriterion("updated_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNotNull() {
+ addCriterion("updated_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtEqualTo(Date value) {
+ addCriterion("updated_at =", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotEqualTo(Date value) {
+ addCriterion("updated_at <>", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThan(Date value) {
+ addCriterion("updated_at >", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("updated_at >=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThan(Date value) {
+ addCriterion("updated_at <", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("updated_at <=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIn(List values) {
+ addCriterion("updated_at in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotIn(List values) {
+ addCriterion("updated_at not in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtBetween(Date value1, Date value2) {
+ addCriterion("updated_at between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("updated_at not between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNull() {
+ addCriterion("rec_status is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNotNull() {
+ addCriterion("rec_status is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusEqualTo(Byte value) {
+ addCriterion("rec_status =", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotEqualTo(Byte value) {
+ addCriterion("rec_status <>", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThan(Byte value) {
+ addCriterion("rec_status >", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
+ addCriterion("rec_status >=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThan(Byte value) {
+ addCriterion("rec_status <", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
+ addCriterion("rec_status <=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIn(List values) {
+ addCriterion("rec_status in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotIn(List values) {
+ addCriterion("rec_status not in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status between", value1, value2, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status not between", value1, value2, "recStatus");
+ 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 a/ct/src/main/java/com/ccsens/ct/bean/po/SiteExample.java b/ct/src/main/java/com/ccsens/ct/bean/po/SiteExample.java
new file mode 100644
index 00000000..4a53111b
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/SiteExample.java
@@ -0,0 +1,762 @@
+package com.ccsens.ct.bean.po;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SiteExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public SiteExample() {
+ 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(Long value) {
+ addCriterion("id =", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotEqualTo(Long value) {
+ addCriterion("id <>", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThan(Long value) {
+ addCriterion("id >", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("id >=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThan(Long value) {
+ addCriterion("id <", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThanOrEqualTo(Long 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(Long value1, Long value2) {
+ addCriterion("id between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotBetween(Long value1, Long value2) {
+ addCriterion("id not between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdIsNull() {
+ addCriterion("business_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdIsNotNull() {
+ addCriterion("business_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdEqualTo(Long value) {
+ addCriterion("business_id =", value, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdNotEqualTo(Long value) {
+ addCriterion("business_id <>", value, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdGreaterThan(Long value) {
+ addCriterion("business_id >", value, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("business_id >=", value, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdLessThan(Long value) {
+ addCriterion("business_id <", value, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdLessThanOrEqualTo(Long value) {
+ addCriterion("business_id <=", value, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdIn(List values) {
+ addCriterion("business_id in", values, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdNotIn(List values) {
+ addCriterion("business_id not in", values, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdBetween(Long value1, Long value2) {
+ addCriterion("business_id between", value1, value2, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andBusinessIdNotBetween(Long value1, Long value2) {
+ addCriterion("business_id not between", value1, value2, "businessId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameIsNull() {
+ addCriterion("site_name is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameIsNotNull() {
+ addCriterion("site_name is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameEqualTo(String value) {
+ addCriterion("site_name =", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameNotEqualTo(String value) {
+ addCriterion("site_name <>", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameGreaterThan(String value) {
+ addCriterion("site_name >", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameGreaterThanOrEqualTo(String value) {
+ addCriterion("site_name >=", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameLessThan(String value) {
+ addCriterion("site_name <", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameLessThanOrEqualTo(String value) {
+ addCriterion("site_name <=", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameLike(String value) {
+ addCriterion("site_name like", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameNotLike(String value) {
+ addCriterion("site_name not like", value, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameIn(List values) {
+ addCriterion("site_name in", values, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameNotIn(List values) {
+ addCriterion("site_name not in", values, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameBetween(String value1, String value2) {
+ addCriterion("site_name between", value1, value2, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteNameNotBetween(String value1, String value2) {
+ addCriterion("site_name not between", value1, value2, "siteName");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeIsNull() {
+ addCriterion("site_code is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeIsNotNull() {
+ addCriterion("site_code is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeEqualTo(String value) {
+ addCriterion("site_code =", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeNotEqualTo(String value) {
+ addCriterion("site_code <>", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeGreaterThan(String value) {
+ addCriterion("site_code >", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeGreaterThanOrEqualTo(String value) {
+ addCriterion("site_code >=", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeLessThan(String value) {
+ addCriterion("site_code <", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeLessThanOrEqualTo(String value) {
+ addCriterion("site_code <=", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeLike(String value) {
+ addCriterion("site_code like", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeNotLike(String value) {
+ addCriterion("site_code not like", value, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeIn(List values) {
+ addCriterion("site_code in", values, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeNotIn(List values) {
+ addCriterion("site_code not in", values, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeBetween(String value1, String value2) {
+ addCriterion("site_code between", value1, value2, "siteCode");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteCodeNotBetween(String value1, String value2) {
+ addCriterion("site_code not between", value1, value2, "siteCode");
+ 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(BigDecimal value) {
+ addCriterion("longitude =", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeNotEqualTo(BigDecimal value) {
+ addCriterion("longitude <>", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeGreaterThan(BigDecimal value) {
+ addCriterion("longitude >", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeGreaterThanOrEqualTo(BigDecimal value) {
+ addCriterion("longitude >=", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeLessThan(BigDecimal value) {
+ addCriterion("longitude <", value, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeLessThanOrEqualTo(BigDecimal value) {
+ addCriterion("longitude <=", 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(BigDecimal value1, BigDecimal value2) {
+ addCriterion("longitude between", value1, value2, "longitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLongitudeNotBetween(BigDecimal value1, BigDecimal 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(BigDecimal value) {
+ addCriterion("latitude =", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeNotEqualTo(BigDecimal value) {
+ addCriterion("latitude <>", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeGreaterThan(BigDecimal value) {
+ addCriterion("latitude >", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeGreaterThanOrEqualTo(BigDecimal value) {
+ addCriterion("latitude >=", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeLessThan(BigDecimal value) {
+ addCriterion("latitude <", value, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeLessThanOrEqualTo(BigDecimal value) {
+ addCriterion("latitude <=", 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(BigDecimal value1, BigDecimal value2) {
+ addCriterion("latitude between", value1, value2, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andLatitudeNotBetween(BigDecimal value1, BigDecimal value2) {
+ addCriterion("latitude not between", value1, value2, "latitude");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNull() {
+ addCriterion("created_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNotNull() {
+ addCriterion("created_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtEqualTo(Date value) {
+ addCriterion("created_at =", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotEqualTo(Date value) {
+ addCriterion("created_at <>", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThan(Date value) {
+ addCriterion("created_at >", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("created_at >=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThan(Date value) {
+ addCriterion("created_at <", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("created_at <=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIn(List values) {
+ addCriterion("created_at in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotIn(List values) {
+ addCriterion("created_at not in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtBetween(Date value1, Date value2) {
+ addCriterion("created_at between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("created_at not between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNull() {
+ addCriterion("updated_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNotNull() {
+ addCriterion("updated_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtEqualTo(Date value) {
+ addCriterion("updated_at =", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotEqualTo(Date value) {
+ addCriterion("updated_at <>", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThan(Date value) {
+ addCriterion("updated_at >", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("updated_at >=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThan(Date value) {
+ addCriterion("updated_at <", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("updated_at <=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIn(List values) {
+ addCriterion("updated_at in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotIn(List values) {
+ addCriterion("updated_at not in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtBetween(Date value1, Date value2) {
+ addCriterion("updated_at between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("updated_at not between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNull() {
+ addCriterion("rec_status is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNotNull() {
+ addCriterion("rec_status is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusEqualTo(Byte value) {
+ addCriterion("rec_status =", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotEqualTo(Byte value) {
+ addCriterion("rec_status <>", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThan(Byte value) {
+ addCriterion("rec_status >", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
+ addCriterion("rec_status >=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThan(Byte value) {
+ addCriterion("rec_status <", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
+ addCriterion("rec_status <=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIn(List values) {
+ addCriterion("rec_status in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotIn(List values) {
+ addCriterion("rec_status not in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status between", value1, value2, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status not between", value1, value2, "recStatus");
+ 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 a/ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcode.java b/ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcode.java
new file mode 100644
index 00000000..f3bc6467
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcode.java
@@ -0,0 +1,106 @@
+package com.ccsens.ct.bean.po;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class SiteQrcode implements Serializable {
+ private Long id;
+
+ private Long siteId;
+
+ private Byte outOrIn;
+
+ private String qrcodePath;
+
+ private String bigQrcodePath;
+
+ private Date createdAt;
+
+ private Date updatedAt;
+
+ private Byte recStatus;
+
+ private static final long serialVersionUID = 1L;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getSiteId() {
+ return siteId;
+ }
+
+ public void setSiteId(Long siteId) {
+ this.siteId = siteId;
+ }
+
+ public Byte getOutOrIn() {
+ return outOrIn;
+ }
+
+ public void setOutOrIn(Byte outOrIn) {
+ this.outOrIn = outOrIn;
+ }
+
+ public String getQrcodePath() {
+ return qrcodePath;
+ }
+
+ public void setQrcodePath(String qrcodePath) {
+ this.qrcodePath = qrcodePath == null ? null : qrcodePath.trim();
+ }
+
+ public String getBigQrcodePath() {
+ return bigQrcodePath;
+ }
+
+ public void setBigQrcodePath(String bigQrcodePath) {
+ this.bigQrcodePath = bigQrcodePath == null ? null : bigQrcodePath.trim();
+ }
+
+ public Date getCreatedAt() {
+ return createdAt;
+ }
+
+ public void setCreatedAt(Date createdAt) {
+ this.createdAt = createdAt;
+ }
+
+ public Date getUpdatedAt() {
+ return updatedAt;
+ }
+
+ public void setUpdatedAt(Date updatedAt) {
+ this.updatedAt = updatedAt;
+ }
+
+ public Byte getRecStatus() {
+ return recStatus;
+ }
+
+ public void setRecStatus(Byte recStatus) {
+ this.recStatus = recStatus;
+ }
+
+ @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(", siteId=").append(siteId);
+ sb.append(", outOrIn=").append(outOrIn);
+ sb.append(", qrcodePath=").append(qrcodePath);
+ sb.append(", bigQrcodePath=").append(bigQrcodePath);
+ sb.append(", createdAt=").append(createdAt);
+ sb.append(", updatedAt=").append(updatedAt);
+ sb.append(", recStatus=").append(recStatus);
+ sb.append("]");
+ return sb.toString();
+ }
+}
\ No newline at end of file
diff --git a/ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcodeExample.java b/ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcodeExample.java
new file mode 100644
index 00000000..1d441323
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/po/SiteQrcodeExample.java
@@ -0,0 +1,701 @@
+package com.ccsens.ct.bean.po;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class SiteQrcodeExample {
+ protected String orderByClause;
+
+ protected boolean distinct;
+
+ protected List oredCriteria;
+
+ public SiteQrcodeExample() {
+ 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(Long value) {
+ addCriterion("id =", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotEqualTo(Long value) {
+ addCriterion("id <>", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThan(Long value) {
+ addCriterion("id >", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("id >=", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThan(Long value) {
+ addCriterion("id <", value, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdLessThanOrEqualTo(Long 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(Long value1, Long value2) {
+ addCriterion("id between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andIdNotBetween(Long value1, Long value2) {
+ addCriterion("id not between", value1, value2, "id");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdIsNull() {
+ addCriterion("site_id is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdIsNotNull() {
+ addCriterion("site_id is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdEqualTo(Long value) {
+ addCriterion("site_id =", value, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdNotEqualTo(Long value) {
+ addCriterion("site_id <>", value, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdGreaterThan(Long value) {
+ addCriterion("site_id >", value, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdGreaterThanOrEqualTo(Long value) {
+ addCriterion("site_id >=", value, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdLessThan(Long value) {
+ addCriterion("site_id <", value, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdLessThanOrEqualTo(Long value) {
+ addCriterion("site_id <=", value, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdIn(List values) {
+ addCriterion("site_id in", values, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdNotIn(List values) {
+ addCriterion("site_id not in", values, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdBetween(Long value1, Long value2) {
+ addCriterion("site_id between", value1, value2, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andSiteIdNotBetween(Long value1, Long value2) {
+ addCriterion("site_id not between", value1, value2, "siteId");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInIsNull() {
+ addCriterion("out_or_in is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInIsNotNull() {
+ addCriterion("out_or_in is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInEqualTo(Byte value) {
+ addCriterion("out_or_in =", value, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInNotEqualTo(Byte value) {
+ addCriterion("out_or_in <>", value, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInGreaterThan(Byte value) {
+ addCriterion("out_or_in >", value, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInGreaterThanOrEqualTo(Byte value) {
+ addCriterion("out_or_in >=", value, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInLessThan(Byte value) {
+ addCriterion("out_or_in <", value, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInLessThanOrEqualTo(Byte value) {
+ addCriterion("out_or_in <=", value, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInIn(List values) {
+ addCriterion("out_or_in in", values, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInNotIn(List values) {
+ addCriterion("out_or_in not in", values, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInBetween(Byte value1, Byte value2) {
+ addCriterion("out_or_in between", value1, value2, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andOutOrInNotBetween(Byte value1, Byte value2) {
+ addCriterion("out_or_in not between", value1, value2, "outOrIn");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathIsNull() {
+ addCriterion("qrcode_path is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathIsNotNull() {
+ addCriterion("qrcode_path is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathEqualTo(String value) {
+ addCriterion("qrcode_path =", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathNotEqualTo(String value) {
+ addCriterion("qrcode_path <>", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathGreaterThan(String value) {
+ addCriterion("qrcode_path >", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathGreaterThanOrEqualTo(String value) {
+ addCriterion("qrcode_path >=", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathLessThan(String value) {
+ addCriterion("qrcode_path <", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathLessThanOrEqualTo(String value) {
+ addCriterion("qrcode_path <=", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathLike(String value) {
+ addCriterion("qrcode_path like", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathNotLike(String value) {
+ addCriterion("qrcode_path not like", value, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathIn(List values) {
+ addCriterion("qrcode_path in", values, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathNotIn(List values) {
+ addCriterion("qrcode_path not in", values, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathBetween(String value1, String value2) {
+ addCriterion("qrcode_path between", value1, value2, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andQrcodePathNotBetween(String value1, String value2) {
+ addCriterion("qrcode_path not between", value1, value2, "qrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathIsNull() {
+ addCriterion("big_qrcode_path is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathIsNotNull() {
+ addCriterion("big_qrcode_path is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathEqualTo(String value) {
+ addCriterion("big_qrcode_path =", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathNotEqualTo(String value) {
+ addCriterion("big_qrcode_path <>", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathGreaterThan(String value) {
+ addCriterion("big_qrcode_path >", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathGreaterThanOrEqualTo(String value) {
+ addCriterion("big_qrcode_path >=", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathLessThan(String value) {
+ addCriterion("big_qrcode_path <", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathLessThanOrEqualTo(String value) {
+ addCriterion("big_qrcode_path <=", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathLike(String value) {
+ addCriterion("big_qrcode_path like", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathNotLike(String value) {
+ addCriterion("big_qrcode_path not like", value, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathIn(List values) {
+ addCriterion("big_qrcode_path in", values, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathNotIn(List values) {
+ addCriterion("big_qrcode_path not in", values, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathBetween(String value1, String value2) {
+ addCriterion("big_qrcode_path between", value1, value2, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andBigQrcodePathNotBetween(String value1, String value2) {
+ addCriterion("big_qrcode_path not between", value1, value2, "bigQrcodePath");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNull() {
+ addCriterion("created_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIsNotNull() {
+ addCriterion("created_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtEqualTo(Date value) {
+ addCriterion("created_at =", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotEqualTo(Date value) {
+ addCriterion("created_at <>", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThan(Date value) {
+ addCriterion("created_at >", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("created_at >=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThan(Date value) {
+ addCriterion("created_at <", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("created_at <=", value, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtIn(List values) {
+ addCriterion("created_at in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotIn(List values) {
+ addCriterion("created_at not in", values, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtBetween(Date value1, Date value2) {
+ addCriterion("created_at between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andCreatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("created_at not between", value1, value2, "createdAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNull() {
+ addCriterion("updated_at is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIsNotNull() {
+ addCriterion("updated_at is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtEqualTo(Date value) {
+ addCriterion("updated_at =", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotEqualTo(Date value) {
+ addCriterion("updated_at <>", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThan(Date value) {
+ addCriterion("updated_at >", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) {
+ addCriterion("updated_at >=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThan(Date value) {
+ addCriterion("updated_at <", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtLessThanOrEqualTo(Date value) {
+ addCriterion("updated_at <=", value, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtIn(List values) {
+ addCriterion("updated_at in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotIn(List values) {
+ addCriterion("updated_at not in", values, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtBetween(Date value1, Date value2) {
+ addCriterion("updated_at between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andUpdatedAtNotBetween(Date value1, Date value2) {
+ addCriterion("updated_at not between", value1, value2, "updatedAt");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNull() {
+ addCriterion("rec_status is null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIsNotNull() {
+ addCriterion("rec_status is not null");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusEqualTo(Byte value) {
+ addCriterion("rec_status =", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotEqualTo(Byte value) {
+ addCriterion("rec_status <>", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThan(Byte value) {
+ addCriterion("rec_status >", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) {
+ addCriterion("rec_status >=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThan(Byte value) {
+ addCriterion("rec_status <", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusLessThanOrEqualTo(Byte value) {
+ addCriterion("rec_status <=", value, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusIn(List values) {
+ addCriterion("rec_status in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotIn(List values) {
+ addCriterion("rec_status not in", values, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status between", value1, value2, "recStatus");
+ return (Criteria) this;
+ }
+
+ public Criteria andRecStatusNotBetween(Byte value1, Byte value2) {
+ addCriterion("rec_status not between", value1, value2, "recStatus");
+ 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 a/ct/src/main/java/com/ccsens/ct/bean/vo/BusinessVo.java b/ct/src/main/java/com/ccsens/ct/bean/vo/BusinessVo.java
new file mode 100644
index 00000000..aa4593a8
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/vo/BusinessVo.java
@@ -0,0 +1,29 @@
+package com.ccsens.ct.bean.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class BusinessVo {
+ @Data
+ @ApiModel("返回商户的信息")
+ public static class BusinessInfo{
+ @ApiModelProperty("id")
+ private Long id;
+ @ApiModelProperty("商户名称")
+ private String name;
+ @ApiModelProperty("详细地址")
+ private String address;
+ @ApiModelProperty("申请人姓名")
+ private String applicantName;
+ @ApiModelProperty("身份证号")
+ private String idCard;
+ @ApiModelProperty("手机号")
+ private String phone;
+ @ApiModelProperty("营业执照")
+ private String businessLicense;
+ @ApiModelProperty("公众号二维码")
+ private String qrCode;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/bean/vo/ClockVo.java b/ct/src/main/java/com/ccsens/ct/bean/vo/ClockVo.java
new file mode 100644
index 00000000..4c90784b
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/vo/ClockVo.java
@@ -0,0 +1,19 @@
+package com.ccsens.ct.bean.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ClockVo {
+ @Data
+ @ApiModel("打卡统计")
+ public static class ClockStatistics{
+ @ApiModelProperty("场所名称")
+ private String siteName;
+ @ApiModelProperty("进or出 0进 1出")
+ private Integer type;
+ @ApiModelProperty("打卡时间")
+ private Long time;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/bean/vo/SiteVo.java b/ct/src/main/java/com/ccsens/ct/bean/vo/SiteVo.java
new file mode 100644
index 00000000..567d7014
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/bean/vo/SiteVo.java
@@ -0,0 +1,44 @@
+package com.ccsens.ct.bean.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class SiteVo {
+
+ @Data
+ @ApiModel("返回场所信息")
+ public static class SiteInfoVo{
+ @ApiModelProperty("所属商户id")
+ private Long businessId;
+ @ApiModelProperty("所属商户名称")
+ private String businessName;
+ @ApiModelProperty("统计页面的链接")
+ private String path;
+ @ApiModelProperty("打包下载二维码路径")
+ private String downloadPath;
+ @ApiModelProperty("场所信息")
+ private List site;
+ }
+
+ @Data
+ @ApiModel("场所信息")
+ public static class SiteInfo{
+ @ApiModelProperty("场所id")
+ private Long id;
+ @ApiModelProperty("场所名称")
+ private String name;
+ @ApiModelProperty("进二维码")
+ private String outQrCode;
+ @ApiModelProperty("出二维码")
+ private String inQrCode;
+ @ApiModelProperty("经度")
+ private BigDecimal longitude;
+ @ApiModelProperty("纬度")
+ private BigDecimal latitude;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/config/BeanConfig.java b/ct/src/main/java/com/ccsens/ct/config/BeanConfig.java
new file mode 100644
index 00000000..c4434c3c
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/config/BeanConfig.java
@@ -0,0 +1,31 @@
+package com.ccsens.ct.config;
+
+import com.ccsens.ct.intercept.MybatisInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @description:
+ * @author: wuHuiJuan
+ * @create: 2019/12/03 18:01
+ */
+@Configuration
+public class BeanConfig {
+// @Bean
+// public static PropertySourcesPlaceholderConfigurer properties(){
+// PropertySourcesPlaceholderConfigurer conf = new PropertySourcesPlaceholderConfigurer();
+// YamlPropertiesFactoryBean yml = new YamlPropertiesFactoryBean();
+// yml.setResources(new ClassPathResource("business.yml"));
+// conf.setProperties(yml.getObject());
+// return conf;
+// }
+
+ /**
+ * 注册拦截器
+ */
+ @Bean
+ public MybatisInterceptor mybatisInterceptor() {
+ MybatisInterceptor interceptor = new MybatisInterceptor();
+ return interceptor;
+ }
+}
diff --git a/ct/src/main/java/com/ccsens/ct/config/SpringConfig.java b/ct/src/main/java/com/ccsens/ct/config/SpringConfig.java
new file mode 100644
index 00000000..bd24e547
--- /dev/null
+++ b/ct/src/main/java/com/ccsens/ct/config/SpringConfig.java
@@ -0,0 +1,164 @@
+package com.ccsens.ct.config;
+
+
+import cn.hutool.core.lang.Snowflake;
+import cn.hutool.core.util.IdUtil;
+import com.ccsens.util.config.DruidProps;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.web.servlet.config.annotation.*;
+
+import javax.sql.DataSource;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+//public class SpringConfig extends WebMvcConfigurationSupport {
+public class SpringConfig implements WebMvcConfigurer {
+ @Autowired
+ private DruidProps druidPropsUtil;
+ @Value("${spring.snowflake.workerId}")
+ private String workerId;
+ @Value("${spring.snowflake.datacenterId}")
+ private String datacenterId;
+
+ /**
+ * 配置Converter
+ * @return
+ */
+ @Bean
+ public HttpMessageConverter responseStringConverter() {
+ StringHttpMessageConverter converter = new StringHttpMessageConverter(
+ Charset.forName("UTF-8"));
+ return converter;
+ }
+
+ @Bean
+ public HttpMessageConverter