Commit a076131a7e8f71a8adc446e96b31f3333508b889

Authored by 陈威
0 parents
Exists in master

初始化提交

pom.xml 0 → 100644
  1 +++ a/pom.xml
@@ -0,0 +1,158 @@ @@ -0,0 +1,158 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 + <modelVersion>4.0.0</modelVersion>
  5 +
  6 + <groupId>com.songshu.mongo</groupId>
  7 + <artifactId>mongo-model</artifactId>
  8 + <version>0.0.1-SNAPSHOT</version>
  9 + <packaging>jar</packaging>
  10 +
  11 + <name>mongo-model</name>
  12 + <description>Demo project for Spring Boot</description>
  13 +
  14 + <parent>
  15 + <groupId>org.springframework.boot</groupId>
  16 + <artifactId>spring-boot-starter-parent</artifactId>
  17 + <version>1.5.3.RELEASE</version>
  18 + <relativePath/> <!-- lookup parent from repository -->
  19 + </parent>
  20 +
  21 + <properties>
  22 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  23 + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  24 + <version.jackson>2.8.8</version.jackson>
  25 + <java.version>1.8</java.version>
  26 + </properties>
  27 +
  28 + <dependencies>
  29 + <!---->
  30 + <dependency>
  31 + <groupId>com.alibaba</groupId>
  32 + <artifactId>fastjson</artifactId>
  33 + <version>1.2.31</version>
  34 + </dependency>
  35 + <dependency>
  36 + <groupId>com.mangofactory</groupId>
  37 + <artifactId>swagger-springmvc</artifactId>
  38 + <version>1.0.2</version>
  39 + </dependency>
  40 +
  41 + <dependency>
  42 + <groupId>org.springframework.boot</groupId>
  43 + <artifactId>spring-boot-starter-data-mongodb</artifactId>
  44 + </dependency>
  45 +
  46 + <!--mongodb驱动-->
  47 + <dependency>
  48 + <groupId>org.mongodb</groupId>
  49 + <artifactId>mongodb-driver</artifactId>
  50 + <version>3.4.2</version>
  51 + </dependency>
  52 +
  53 + <dependency>
  54 + <groupId>commons-lang</groupId>
  55 + <artifactId>commons-lang</artifactId>
  56 + <version>2.6</version>
  57 + </dependency>
  58 +
  59 + <!--fatsjson-->
  60 + <dependency>
  61 + <groupId>com.alibaba</groupId>
  62 + <artifactId>fastjson</artifactId>
  63 + <version>1.2.51</version>
  64 + </dependency>
  65 +
  66 +
  67 + <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
  68 + <dependency>
  69 + <groupId>org.projectlombok</groupId>
  70 + <artifactId>lombok</artifactId>
  71 + <version>1.16.16</version>
  72 + </dependency>
  73 +
  74 + <dependency>
  75 + <groupId>com.fasterxml.jackson.core</groupId>
  76 + <artifactId>jackson-annotations</artifactId>
  77 + <version>${version.jackson}</version>
  78 + </dependency>
  79 + <dependency>
  80 + <groupId>com.fasterxml.jackson.core</groupId>
  81 + <artifactId>jackson-databind</artifactId>
  82 + <version>${version.jackson}</version>
  83 + </dependency>
  84 + <dependency>
  85 + <groupId>com.fasterxml.jackson.core</groupId>
  86 + <artifactId>jackson-core</artifactId>
  87 + <version>${version.jackson}</version>
  88 + </dependency>
  89 +
  90 + <dependency>
  91 + <groupId>org.springframework.boot</groupId>
  92 + <artifactId>spring-boot-starter-web</artifactId>
  93 + </dependency>
  94 +
  95 + <dependency>
  96 + <groupId>org.springframework.boot</groupId>
  97 + <artifactId>spring-boot-starter-test</artifactId>
  98 + <scope>test</scope>
  99 + </dependency>
  100 + <dependency>
  101 + <groupId>org.springframework.restdocs</groupId>
  102 + <artifactId>spring-restdocs-mockmvc</artifactId>
  103 + <scope>test</scope>
  104 + </dependency>
  105 + <dependency>
  106 + <groupId>org.springframework.boot</groupId>
  107 + <artifactId>spring-boot-test</artifactId>
  108 + </dependency>
  109 + <dependency>
  110 + <groupId>org.junit.jupiter</groupId>
  111 + <artifactId>junit-jupiter</artifactId>
  112 + <version>RELEASE</version>
  113 + <scope>compile</scope>
  114 + </dependency>
  115 + <dependency>
  116 + <groupId>org.junit.jupiter</groupId>
  117 + <artifactId>junit-jupiter</artifactId>
  118 + <version>RELEASE</version>
  119 + <scope>compile</scope>
  120 + </dependency>
  121 + <dependency>
  122 + <groupId>junit</groupId>
  123 + <artifactId>junit</artifactId>
  124 + </dependency>
  125 + <dependency>
  126 + <groupId>org.springframework</groupId>
  127 + <artifactId>spring-test</artifactId>
  128 + </dependency>
  129 + <dependency>
  130 + <groupId>org.springframework</groupId>
  131 + <artifactId>spring-test</artifactId>
  132 + </dependency>
  133 +<!-- <dependency>-->
  134 +<!-- <groupId>org.projectlombok</groupId>-->
  135 +<!-- <artifactId>lombok</artifactId>-->
  136 +<!-- <version>1.18.22</version>-->
  137 +<!-- <optional>true</optional>-->
  138 +<!-- </dependency>-->
  139 +
  140 + <dependency>
  141 + <groupId>mysql</groupId>
  142 + <artifactId>mysql-connector-java</artifactId>
  143 + <version>5.1.29</version>
  144 + </dependency>
  145 +
  146 + </dependencies>
  147 +
  148 + <build>
  149 + <plugins>
  150 + <plugin>
  151 + <groupId>org.springframework.boot</groupId>
  152 + <artifactId>spring-boot-maven-plugin</artifactId>
  153 + </plugin>
  154 + </plugins>
  155 + </build>
  156 +
  157 +
  158 +</project>
src/main/java/com/songshu/mongo/MongoModelApplication.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/MongoModelApplication.java
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
  1 +package com.songshu.mongo;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.boot.autoconfigure.SpringBootApplication;
  5 +import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
  6 +import org.springframework.context.annotation.ComponentScan;
  7 +
  8 +
  9 +@SpringBootApplication
  10 +@ComponentScan(basePackages = "com.songshu.mongo.*")
  11 +public class MongoModelApplication {
  12 +
  13 + public static void main(String[] args) {
  14 + SpringApplication.run(MongoModelApplication.class, args);
  15 + }
  16 +}
src/main/java/com/songshu/mongo/controller/StaticScheduleTaskController.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/controller/StaticScheduleTaskController.java
@@ -0,0 +1,82 @@ @@ -0,0 +1,82 @@
  1 +package com.songshu.mongo.controller;
  2 +
  3 +
  4 +import com.songshu.mongo.service.StaticScheduleTaskService;
  5 +import com.songshu.mongo.service.UpdateTingcheService;
  6 +import lombok.extern.slf4j.Slf4j;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.context.annotation.Configuration;
  9 +import org.springframework.scheduling.annotation.EnableScheduling;
  10 +import org.springframework.scheduling.annotation.Scheduled;
  11 +
  12 +import java.time.LocalDateTime;
  13 +
  14 +/**
  15 + * cw
  16 + * 定时任务
  17 + */
  18 +@Configuration
  19 +@EnableScheduling
  20 +@Slf4j
  21 +public class StaticScheduleTaskController {
  22 + @Autowired
  23 + private StaticScheduleTaskService staticScheduleTaskService;
  24 +
  25 + @Autowired
  26 + private UpdateTingcheService updateTingcheService;
  27 +
  28 +// /**
  29 +// * @Scheduled-cron : 指定定时任务的执行时间
  30 +// * 或直接指定时间间隔,例如:5秒
  31 +// * @Scheduled(fixedRate=5000) 案例-案例
  32 +// */
  33 +// @Scheduled(cron = "0/5 * * * * ?")
  34 +// private void configureTask() {
  35 +// log.info("执行静态定时任务时间: {}", LocalDateTime.now());
  36 +// }
  37 +
  38 +// 每隔5秒执行一次:*/5 * * * * ?
  39 +// 每隔1分钟执行一次:0 */1 * * * ?
  40 +// 每天23点执行一次:0 0 23 * * ?
  41 +// 每天凌晨1点执行一次:0 0 1 * * ?
  42 +// 每月1号凌晨1点执行一次:0 0 1 1 * ?
  43 +// 每月最后一天23点执行一次:0 0 23 L * ?
  44 +// 每周星期天凌晨1点实行一次:0 0 1 ? * L
  45 +// 在26分、29分、33分执行一次:0 26,29,33 * * * ?
  46 +// 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
  47 +
  48 + /**
  49 + * 租赁合同
  50 + */
  51 + @Scheduled(cron = "0 0 1 * * ?")
  52 + private void ScheduledTask() {
  53 + //room 表
  54 + staticScheduleTaskService.SynchronousDataRoom();
  55 + //buildings 楼宇表
  56 + staticScheduleTaskService.SynchronousDataRuildings();
  57 + //客户合同
  58 + staticScheduleTaskService.SynchronousDataContracts();
  59 + //客户合同-房间
  60 + staticScheduleTaskService.SynchronousDataContractsRoom();
  61 + //客户
  62 + staticScheduleTaskService.SynchronousDataAccounts();
  63 + //合同收款表
  64 + staticScheduleTaskService.SynchronousDataContractReceipts();
  65 + }
  66 +
  67 +
  68 + /***
  69 + * 停车
  70 + */
  71 + @Scheduled(cron = "0 */5 * * * ?")
  72 + private void ScheduledTask2() {
  73 + updateTingcheService.updateTjTcsjtjn();
  74 + updateTingcheService.updateTjCljrsctjn();
  75 + updateTingcheService.updateTjCljrsctjy();
  76 + updateTingcheService.updateTjCljrsctjr();
  77 + updateTingcheService.updateTjParkingPayment();
  78 + updateTingcheService.updateTjVehicleRecords();
  79 + }
  80 +
  81 +
  82 +}
src/main/java/com/songshu/mongo/model/dto/Accounts.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/Accounts.java
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.data.mongodb.core.mapping.Document;
  5 +
  6 +import java.util.Date;
  7 +
  8 +@Data
  9 +@Document(collection = "accounts")
  10 +public class Accounts {
  11 + private String _id;
  12 + private String name;
  13 + private String tax_number;
  14 + private Date in_time;
  15 + private String in_or_out;
  16 + private String invoice_type;
  17 + private String regis_amount;
  18 + private String financing_amount;
  19 + private String space;
  20 + private String owner;
  21 + private Date created;
  22 + private Date modified;
  23 + private String created_by;
  24 + private String modified_by;
  25 + private String company_id;
  26 + private Date regis_time;
  27 + private String regis_location;
  28 + private String Legal_person;
  29 + private Date out_time;
  30 +}
src/main/java/com/songshu/mongo/model/dto/AuditRecords.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/AuditRecords.java
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.data.mongodb.core.mapping.Document;
  5 +
  6 +@Data
  7 +@Document(collection = "audit_records")
  8 +public class AuditRecords {
  9 + private String _id;
  10 +}
src/main/java/com/songshu/mongo/model/dto/BookDTO.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/BookDTO.java
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +import com.wordnik.swagger.annotations.ApiModelProperty;
  4 +import lombok.Data;
  5 +import org.springframework.data.annotation.Id;
  6 +import org.springframework.data.mongodb.core.mapping.Document;
  7 +
  8 +import java.io.Serializable;
  9 +
  10 +/**
  11 + * 案例表demo1
  12 + */
  13 +//@Document如果数据库中使用的表名与实体类不同名必须增加Document注解,一致可省略。
  14 +@Data
  15 +@Document(collection = "demo1")
  16 +public class BookDTO implements Serializable {
  17 +
  18 + //id属性是给mongodb用的,用@Id注解修饰
  19 + @Id
  20 + private String id;
  21 +
  22 + // 书名
  23 + private String name;
  24 +
  25 + // 价格
  26 + private String price;
  27 +
  28 + // 类型
  29 + private String type;
  30 +
  31 + // 阅读量
  32 + private Double readedNum;
  33 +
  34 +}
src/main/java/com/songshu/mongo/model/dto/Buildings.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/Buildings.java
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.data.mongodb.core.mapping.Document;
  5 +
  6 +import java.util.Date;
  7 +
  8 +@Data
  9 +@Document(collection = "buildings")
  10 +public class Buildings {
  11 + private String _id;
  12 + private String name;
  13 + private String place;
  14 + private String register_name1;
  15 + private String area1;
  16 + private String area2;
  17 + private String area3;
  18 + private String area4;
  19 + private String area6;
  20 + private String rentalarea;
  21 + private String selfusearea;
  22 + private String struture;
  23 + private String elevatorNO;
  24 + private String actime;
  25 + private String space;
  26 + private String owner;
  27 + private Date created;
  28 + private Date modified;
  29 + private String created_by;
  30 + private String modified_by;
  31 + private String company_id;
  32 + private String area5;
  33 + private String area7;
  34 + private String electedload;
  35 + private String loadbearing;
  36 + private String moreinfo;
  37 + private String hight;
  38 + private String register_name2;
  39 + //园区
  40 + private String Park_Location;
  41 +}
src/main/java/com/songshu/mongo/model/dto/ContractReceipts.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/ContractReceipts.java
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +
  4 +import lombok.Data;
  5 +import org.springframework.data.mongodb.core.mapping.Document;
  6 +
  7 +import java.util.Date;
  8 +
  9 +/**
  10 + * 合同收款
  11 + */
  12 +@Data
  13 +@Document(collection = "contract_receipts")
  14 +public class ContractReceipts {
  15 + private String _id;
  16 + private String fees_type;
  17 + private String account;
  18 + private String contract;
  19 + private Date contract_start_date;
  20 + private Date contract_end_date;
  21 + private Date fee_period_start;
  22 + private Date fee_period_end;
  23 + private String receipts_contractor;
  24 + private String building;
  25 + private String amount;
  26 + private String paid_amount;
  27 + private String space;
  28 + private String owner;
  29 + private Date created;
  30 + private Date modified;
  31 + private String name;
  32 + private String unpaid_amount;
  33 + private String modified_by;
  34 + private Date paid_date;
  35 + private Date paid_real_date;
  36 + private String fees_finished;
  37 + private String searchFunc;
  38 +}
src/main/java/com/songshu/mongo/model/dto/Contracts.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/Contracts.java
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.data.mongodb.core.mapping.Document;
  5 +
  6 +import java.util.Date;
  7 +import java.util.List;
  8 +
  9 +@Data
  10 +@Document(collection = "contracts")
  11 +public class Contracts {
  12 + private String _id;
  13 + private String contractNO;
  14 + private String clientname;
  15 + private String contractor;
  16 + private String building_select;
  17 + private Date start_date;
  18 + private Date end_date;
  19 + private String bop4;
  20 + private String free_period_fees;
  21 + private String free_period_fees_amount;
  22 + private String contract_type1;
  23 + private String rentalamount;
  24 + private String serviceamount;
  25 + private String depositcycle;
  26 + private String paymentcycle;
  27 + private String bop3;
  28 + private String remark;
  29 + private Date signed_date;
  30 + private String meetingstate;
  31 + private String contract_fulfillment_state;
  32 + private String space;
  33 + private String owner;
  34 + private Date created;
  35 + private Date modified;
  36 + private String created_by;
  37 + private String modified_by;
  38 + private String company_id;
  39 + private String rentalsquare;
  40 + private String name;
  41 + private String contract_type2;
  42 + private Date free_period_start;
  43 + private Date free_period_end;
  44 + private Date contract_end_time;
  45 + private String remark2;
  46 + private String remark3;
  47 + private String subject;
  48 + private List<String> room_number;
  49 +}
src/main/java/com/songshu/mongo/model/dto/Room.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/dto/Room.java
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +package com.songshu.mongo.model.dto;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.data.mongodb.core.mapping.Document;
  5 +
  6 +import java.io.Serializable;
  7 +import java.util.Date;
  8 +import java.util.List;
  9 +
  10 +@Data
  11 +@Document(collection = "room")
  12 +public class Room implements Serializable {
  13 + private String _id;
  14 + //面积
  15 + private String area;
  16 + //所属楼宇
  17 + private String building;
  18 + private List<String> company_ids;
  19 + private Date created;
  20 + private Date modified;
  21 + //房间号
  22 + private String name;
  23 + private String owner;
  24 + //是否空置
  25 + private String rentalstatus;
  26 + private String space;
  27 + //楼层
  28 + private String roomlevel;
  29 +}
  30 +
src/main/java/com/songshu/mongo/model/json/JsonString.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/model/json/JsonString.java
@@ -0,0 +1,41 @@ @@ -0,0 +1,41 @@
  1 +package com.songshu.mongo.model.json;
  2 +
  3 +/**
  4 + * 案例json
  5 + */
  6 +public class JsonString {
  7 +
  8 + // 方便mongo做批量新增得示例json数据
  9 + public static final String jsonString ="[{\n" +
  10 + " \"id\": \"1\",\n" +
  11 + " \"name\": \"盗墓笔记\",\n" +
  12 + " \"price\": \"39.6\",\n" +
  13 + " \"type\": \"盗墓探险\",\n" +
  14 + " \"readedNum\": 16.1\n" +
  15 + " }, {\n" +
  16 + " \"id\": \"2\",\n" +
  17 + " \"name\": \"武神主宰\",\n" +
  18 + " \"price\": \"19.9\",\n" +
  19 + " \"type\": \"仙侠\",\n" +
  20 + " \"readedNum\": 13.2\n" +
  21 + " }, {\n" +
  22 + " \"id\": \"3\",\n" +
  23 + " \"name\": \"笔仙外藩\",\n" +
  24 + " \"price\": \"19.9\",\n" +
  25 + " \"type\": \"惊悚\",\n" +
  26 + " \"readedNum\": 7.6\n" +
  27 + " }, {\n" +
  28 + " \"id\": \"4\",\n" +
  29 + " \"name\": \"千与千寻\",\n" +
  30 + " \"price\": \"26.3\",\n" +
  31 + " \"type\": \"日漫爱情\",\n" +
  32 + " \"readedNum\": 31.5\n" +
  33 + " }, {\n" +
  34 + " \"id\": \"5\",\n" +
  35 + " \"name\": \"万界圣主\",\n" +
  36 + " \"price\": \"17.8\",\n" +
  37 + " \"type\": \"仙侠\",\n" +
  38 + " \"readedNum\": 10.7\n" +
  39 + " }\n" +
  40 + "]\n";
  41 +}
src/main/java/com/songshu/mongo/service/BookMongoService.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/service/BookMongoService.java
@@ -0,0 +1,77 @@ @@ -0,0 +1,77 @@
  1 +package com.songshu.mongo.service;
  2 +
  3 +import com.songshu.mongo.model.dto.BookDTO;
  4 +import com.songshu.mongo.model.dto.Room;
  5 +import org.springframework.data.mongodb.core.query.Query;
  6 +import org.springframework.data.mongodb.core.query.Update;
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * cw
  11 + * 案例
  12 + */
  13 +public interface BookMongoService {
  14 +
  15 + /**
  16 + * 新增
  17 + * @param bookDTO
  18 + * @return
  19 + */
  20 + Boolean inserBookInfo(BookDTO bookDTO);
  21 +
  22 + /**
  23 + * 批量新增
  24 + * @param bookDTOList
  25 + */
  26 + Boolean inserBatchBookInfo(List<BookDTO> bookDTOList);
  27 +
  28 + /**
  29 + * 修改
  30 + * @param query
  31 + * @param update
  32 + * @return
  33 + */
  34 + Boolean updateBookInfo(Query query, Update update);
  35 +
  36 + /**
  37 + * 查所有
  38 + * @return
  39 + */
  40 + List<BookDTO> findAllBookInfo();
  41 +
  42 + /**
  43 + * 根据书名查询:精准
  44 + * @param name
  45 + * @return
  46 + */
  47 + List<BookDTO> findBookInfoByName(String name);
  48 +
  49 + /**
  50 + * 根据书名查询:模糊
  51 + * @param name
  52 + * @return
  53 + */
  54 + List<BookDTO> findBookInfoReName(String name);
  55 +
  56 +
  57 + /**
  58 + * 根据阅读量:范围查
  59 + * @return
  60 + */
  61 + List<BookDTO> findBookInfoReRange(Double minReadedNum, Double maxReadedNum);
  62 +
  63 + /**
  64 + * 分页-排序查询
  65 + * @param minReadedNum
  66 + * @param maxReadedNum
  67 + * @param pageNum
  68 + * @param pageSize
  69 + * @return
  70 + */
  71 + List<BookDTO> findBookInfoPage(Double minReadedNum, Double maxReadedNum, Integer pageNum, Integer pageSize);
  72 +
  73 + List<Room> findAllBookInfo3();
  74 +
  75 +
  76 +
  77 +}
src/main/java/com/songshu/mongo/service/StaticScheduleTaskService.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/service/StaticScheduleTaskService.java
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
  1 +package com.songshu.mongo.service;
  2 +
  3 +public interface StaticScheduleTaskService {
  4 +
  5 + /**
  6 + * 房间
  7 + */
  8 + void SynchronousDataRoom();
  9 +
  10 + /**
  11 + * 楼宇
  12 + */
  13 + void SynchronousDataRuildings();
  14 +
  15 + /**
  16 + * 客户合同
  17 + */
  18 + void SynchronousDataContracts();
  19 +
  20 + /**
  21 + * 合同房间
  22 + */
  23 + void SynchronousDataContractsRoom();
  24 +
  25 +
  26 + /**
  27 + * 客户
  28 + */
  29 + void SynchronousDataAccounts();
  30 +
  31 +
  32 + /**
  33 + * 合同收款表
  34 + */
  35 + void SynchronousDataContractReceipts();
  36 +
  37 +
  38 + /**
  39 + * 测试
  40 + */
  41 + void SynchronousDataContractAuditRecords();
  42 +
  43 +
  44 +}
src/main/java/com/songshu/mongo/service/UpdateTingcheService.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/service/UpdateTingcheService.java
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +package com.songshu.mongo.service;
  2 +
  3 +public interface UpdateTingcheService {
  4 +
  5 +
  6 + void updateTjTcsjtjn();
  7 +
  8 +
  9 + void updateTjCljrsctjn();
  10 +
  11 +
  12 + void updateTjCljrsctjy();
  13 +
  14 +
  15 + void updateTjCljrsctjr();
  16 +
  17 +
  18 + void updateTjJrcrktcsj();
  19 +
  20 +
  21 + void updateTjParkingPayment();
  22 +
  23 +
  24 + void updateTjVehicleRecords();
  25 +
  26 +
  27 +}
src/main/java/com/songshu/mongo/service/impl/BookMongoServiceImpl.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/service/impl/BookMongoServiceImpl.java
@@ -0,0 +1,179 @@ @@ -0,0 +1,179 @@
  1 +package com.songshu.mongo.service.impl;
  2 +
  3 +import com.songshu.mongo.model.dto.BookDTO;
  4 +import com.songshu.mongo.model.dto.Room;
  5 +import com.songshu.mongo.service.BookMongoService;
  6 +import com.songshu.mongo.tools.JDBCUtil;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.data.domain.PageRequest;
  9 +import org.springframework.data.domain.Sort;
  10 +import org.springframework.data.mongodb.core.MongoTemplate;
  11 +import org.springframework.data.mongodb.core.query.Criteria;
  12 +import org.springframework.data.mongodb.core.query.Query;
  13 +import org.springframework.data.mongodb.core.query.Update;
  14 +import org.springframework.stereotype.Service;
  15 +
  16 +import java.sql.Connection;
  17 +import java.sql.PreparedStatement;
  18 +import java.sql.Statement;
  19 +import java.sql.Timestamp;
  20 +import java.util.List;
  21 +import java.util.regex.Pattern;
  22 +
  23 +/**
  24 + * cw
  25 + * 案例
  26 + */
  27 +@Service
  28 +public class BookMongoServiceImpl implements BookMongoService {
  29 +
  30 + @Autowired
  31 + private MongoTemplate mongoTemplate;
  32 +
  33 + /**
  34 + * 新增
  35 + * @param bookDTO
  36 + * @return
  37 + */
  38 + @Override
  39 + public Boolean inserBookInfo(BookDTO bookDTO) {
  40 + mongoTemplate.insert(bookDTO);
  41 + return true;
  42 + }
  43 +
  44 + /**
  45 + * 批量新增
  46 + * @param bookDTOList
  47 + * @return
  48 + */
  49 + @Override
  50 + public Boolean inserBatchBookInfo(List<BookDTO> bookDTOList) {
  51 + mongoTemplate.insert(bookDTOList,BookDTO.class);
  52 + return true;
  53 + }
  54 +
  55 + /**
  56 + * 修改
  57 + * @param query
  58 + * @param update
  59 + * @return
  60 + */
  61 + @Override
  62 + public Boolean updateBookInfo(Query query, Update update) {
  63 + mongoTemplate.updateMulti(query,update,BookDTO.class);
  64 + return true;
  65 + }
  66 +
  67 + /**
  68 + * 查所有
  69 + * @return
  70 + */
  71 + @Override
  72 + public List<BookDTO> findAllBookInfo() {
  73 + List<BookDTO> bookDTOList = mongoTemplate.findAll(BookDTO.class);
  74 + return bookDTOList;
  75 + }
  76 +
  77 + /**
  78 + * 根据书名查询: 精准
  79 + * @param name
  80 + * @return
  81 + */
  82 + @Override
  83 + public List<BookDTO> findBookInfoByName(String name) {
  84 + Query query = Query.query(Criteria.where("name").is(name));
  85 + return mongoTemplate.find(query,BookDTO.class);
  86 + }
  87 +
  88 + /**
  89 + * 根据书名查询: 模糊
  90 + * @param name
  91 + * @return
  92 + */
  93 + @Override
  94 + public List<BookDTO> findBookInfoReName(String name) {
  95 + // ^.*表示字符前面、*$表示字符后面
  96 + Pattern compile = Pattern.compile("^.*" + name + ".*$", Pattern.CASE_INSENSITIVE);
  97 + Query query= Query.query(Criteria.where("name").regex(compile));
  98 + return mongoTemplate.find(query,BookDTO.class);
  99 + }
  100 +
  101 + /**
  102 + * 根据阅读量:范围查询并排序
  103 + * @param minReadedNum
  104 + * @param maxReadedNum
  105 + * @return
  106 + */
  107 + @Override
  108 + public List<BookDTO> findBookInfoReRange(Double minReadedNum, Double maxReadedNum) {
  109 + // query两种方式
  110 + Query query = Query.query(Criteria.where("readedNum").gte(minReadedNum).lte(maxReadedNum))
  111 + .with(new Sort(new Sort.Order(Sort.Direction.ASC,"readedNum")));
  112 + return mongoTemplate.find(query,BookDTO.class);
  113 + }
  114 +
  115 + /**
  116 + * 排序-分页查询
  117 + * @param minReadedNum
  118 + * @param maxReadedNum
  119 + * @param pageNum
  120 + * @param pageSize
  121 + * @return
  122 + */
  123 + @Override
  124 + public List<BookDTO> findBookInfoPage(Double minReadedNum, Double maxReadedNum, Integer pageNum, Integer pageSize) {
  125 + Query query = Query.query(Criteria.where("readedNum").gte(minReadedNum).lte(maxReadedNum))
  126 + .with(new Sort(new Sort.Order(Sort.Direction.ASC,"readedNum")))
  127 + .with(new PageRequest(pageNum-1,pageSize));
  128 + return mongoTemplate.find(query, BookDTO.class);
  129 + }
  130 +
  131 + @Override
  132 + public List<Room> findAllBookInfo3() {
  133 + List<Room> all = mongoTemplate.findAll(Room.class);
  134 + long start = System.currentTimeMillis();
  135 + try {
  136 + Connection conn = JDBCUtil.getConnection();
  137 + Statement stat = JDBCUtil.getStatement();
  138 + JDBCUtil.executeUpdate("DELETE FROM room_company_ids");
  139 + JDBCUtil.executeUpdate("DELETE FROM room");
  140 + String sql = "insert into room(id, _id, building, name, area, rentalstatus, space, owner, created, modified, created_by, modified_by, company_id) " +
  141 + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  142 + PreparedStatement ps = null;
  143 + ps = conn.prepareStatement(sql);
  144 + conn.setAutoCommit(false);//取消自动提交
  145 + int size = all.size();
  146 + int group = 500;
  147 + for (int i = 1; i < size; i++) {
  148 + Room room = all.get(i);
  149 + ps.setObject(1, i);
  150 + ps.setObject(2,room.get_id() );
  151 + ps.setObject(3, room.getBuilding());
  152 + ps.setObject(4, room.getName());
  153 + ps.setObject(5, room.getArea());
  154 + ps.setObject(6, room.getRentalstatus());
  155 + ps.setObject(7, room.getSpace());
  156 + ps.setObject(8, room.getOwner());
  157 + ps.setTimestamp(9, new Timestamp(room.getCreated().getTime()));
  158 + ps.setTimestamp(10, new Timestamp(room.getModified().getTime()));
  159 + ps.setObject(11, null);
  160 + ps.setObject(12, null);
  161 + ps.setObject(13, null);
  162 + ps.addBatch(); // 将sql语句打包到一个容器中
  163 + if (i % group == 0 || i == size-1) {
  164 + ps.executeBatch(); // 将容器中的sql语句提交
  165 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  166 + }
  167 + }
  168 + ps.executeBatch();
  169 + ps.clearBatch();
  170 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  171 + } catch (Exception e) {
  172 + e.printStackTrace();
  173 + } finally {
  174 + JDBCUtil.getClose();
  175 + }
  176 + return all;
  177 + }
  178 +
  179 +}
src/main/java/com/songshu/mongo/service/impl/StaticScheduleTaskServiceImpl.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/service/impl/StaticScheduleTaskServiceImpl.java
@@ -0,0 +1,548 @@ @@ -0,0 +1,548 @@
  1 +package com.songshu.mongo.service.impl;
  2 +
  3 +import com.songshu.mongo.model.dto.*;
  4 +import com.songshu.mongo.service.StaticScheduleTaskService;
  5 +import com.songshu.mongo.tools.JDBCUtil;
  6 +import lombok.extern.slf4j.Slf4j;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.data.domain.PageRequest;
  9 +import org.springframework.data.mongodb.core.MongoTemplate;
  10 +import org.springframework.data.mongodb.core.query.Criteria;
  11 +import org.springframework.data.mongodb.core.query.Query;
  12 +import org.springframework.stereotype.Service;
  13 +
  14 +import java.sql.Connection;
  15 +import java.sql.PreparedStatement;
  16 +import java.sql.Statement;
  17 +import java.sql.Timestamp;
  18 +import java.util.ArrayList;
  19 +import java.util.List;
  20 +import java.util.UUID;
  21 +
  22 +@Slf4j
  23 +@Service
  24 +public class StaticScheduleTaskServiceImpl implements StaticScheduleTaskService {
  25 + @Autowired
  26 + private MongoTemplate mongoTemplate;
  27 + //每次读取mongo条数
  28 + final int pageSize = 10000;
  29 + //批量处理条数
  30 + final int group = 500;
  31 +
  32 + /**
  33 + * 房间
  34 + */
  35 + @Override
  36 + public void SynchronousDataRoom() {
  37 + log.info("房间表同步开始");
  38 + long start = System.currentTimeMillis();
  39 + try {
  40 + Connection conn = JDBCUtil.getConnection();
  41 + Statement stat = JDBCUtil.getStatement();
  42 + JDBCUtil.executeUpdate("DELETE FROM room");
  43 + String sql = "insert into room(_id, building, name, area, rentalstatus, space, owner, created, modified, created_by, modified_by, company_id,roomlevel) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  44 + PreparedStatement ps = null;
  45 + ps = conn.prepareStatement(sql);
  46 + conn.setAutoCommit(false);//取消自动提交
  47 + Query query = new Query();
  48 + long count = mongoTemplate.count(query, Room.class);
  49 + if (count == 0) {
  50 + return;
  51 + }
  52 + //每页条数
  53 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  54 + for (int currPage = 0; currPage < ceil; currPage++) {
  55 + List<Room> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), Room.class);
  56 + int size = all.size();
  57 + for (int i = 1; i < size + 1; i++) {
  58 + Room room = all.get(i - 1);
  59 + ps.setObject(1, room.get_id());
  60 + ps.setObject(2, room.getBuilding());
  61 + ps.setObject(3, room.getName());
  62 + ps.setObject(4, room.getArea());
  63 + ps.setObject(5, room.getRentalstatus());
  64 + ps.setObject(6, room.getSpace());
  65 + ps.setObject(7, room.getOwner());
  66 + ps.setTimestamp(8, new Timestamp(room.getCreated().getTime()));
  67 + ps.setTimestamp(9, new Timestamp(room.getModified().getTime()));
  68 + ps.setObject(10, null);
  69 + ps.setObject(11, null);
  70 + ps.setObject(12, null);
  71 + ps.setObject(13, room.getRoomlevel());
  72 + ps.addBatch();
  73 + if (i % group == 0) {
  74 + ps.executeBatch(); // 将容器中的sql语句提交
  75 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  76 + }
  77 + }
  78 + }
  79 + ps.executeBatch();
  80 + ps.clearBatch();
  81 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  82 + } catch (Exception e) {
  83 + log.info("房间表同步失败: {}", System.currentTimeMillis() - start);
  84 + e.printStackTrace();
  85 + } finally {
  86 + log.info("房间表同步结束: {}", System.currentTimeMillis() - start);
  87 + JDBCUtil.getClose();
  88 + }
  89 + }
  90 +
  91 + /**
  92 + * 楼宇
  93 + */
  94 + @Override
  95 + public void SynchronousDataRuildings() {
  96 + long start = System.currentTimeMillis();
  97 + log.info("楼宇表同步开始");
  98 + try {
  99 + Connection conn = JDBCUtil.getConnection();
  100 + Statement stat = JDBCUtil.getStatement();
  101 + JDBCUtil.executeUpdate("DELETE FROM buildings");
  102 + String sql = "insert into buildings(_id, name, place, register_name1, " +
  103 + "area1, area2, area3, area4, area6, " +
  104 + "rentalarea, selfusearea, struture, elevatorNO, actime, " +
  105 + "space, owner, created, modified, created_by, " +
  106 + "modified_by, company_id, area5, area7, electedload, " +
  107 + "loadbearing, moreinfo, hight, register_name2,park_location) " +
  108 + "VALUES (?, ?, ?, ?," +
  109 + " ?, ?, ?, ?, ?, " +
  110 + "?, ?, ?, ?, ?, " +
  111 + "?, ?, ?, ?, ?, " +
  112 + "?, ?, ?, ?, ?, " +
  113 + "?, ?, ?, ?, ?)";
  114 + PreparedStatement ps = null;
  115 + ps = conn.prepareStatement(sql);
  116 + conn.setAutoCommit(false);//取消自动提交
  117 + List<String> ids=new ArrayList<String>();
  118 + ids.add("2qBN4NFQvCj6zZ35F");
  119 + ids.add("AcmtYXCgPaDqp8KpW");
  120 + ids.add("avKzpXyChidbiJrjo");
  121 + ids.add("FxpPfADw96WfTJwNS");
  122 + ids.add("LciHX7z2fRP4BdyKE");
  123 + ids.add("mg3MHrd9TZozvjmck");
  124 + ids.add("XupuevAF2CTwnd4mf");
  125 + ids.add("yBTHZ9jcNcr3E68NJ");
  126 + ids.add("zz4CCvCErxMaW9kga");
  127 + Query query = new Query(Criteria.where("_id").in(ids));
  128 + long count = mongoTemplate.count(query, Buildings.class);
  129 + if (count == 0) {
  130 + return;
  131 + }
  132 + //每页条数
  133 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  134 + for (int currPage = 0; currPage < ceil; currPage++) {
  135 + List<Buildings> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), Buildings.class);
  136 + int size = all.size();
  137 + for (int i = 1; i < size + 1; i++) {
  138 + Buildings data = all.get(i - 1);
  139 + ps.setObject(1, data.get_id());
  140 + ps.setObject(2, data.getName());
  141 + ps.setObject(3, data.getPlace());
  142 + ps.setObject(4, data.getRegister_name1());
  143 +
  144 + ps.setObject(5, data.getArea1());
  145 + ps.setObject(6, data.getArea2());
  146 + ps.setObject(7, data.getArea3());
  147 + ps.setObject(8, data.getArea4());
  148 + ps.setObject(9, data.getArea6());
  149 +
  150 + ps.setObject(10, data.getRentalarea());
  151 + ps.setObject(11, data.getSelfusearea());
  152 + ps.setObject(12, data.getStruture());
  153 + ps.setObject(13, data.getElevatorNO());
  154 + ps.setObject(14, data.getActime());
  155 +
  156 + ps.setObject(15, data.getSpace());
  157 + ps.setObject(16, data.getOwner());
  158 + ps.setTimestamp(17, new Timestamp(data.getCreated().getTime()));
  159 + ps.setTimestamp(18, new Timestamp(data.getModified().getTime()));
  160 + ps.setObject(19, data.getCreated_by());
  161 + ps.setObject(20, data.getModified_by());
  162 + ps.setObject(21, data.getCompany_id());
  163 + ps.setObject(22, data.getArea5());
  164 + ps.setObject(23, data.getArea7());
  165 + ps.setObject(24, data.getElectedload());
  166 + ps.setObject(25, data.getLoadbearing());
  167 + ps.setObject(26, data.getMoreinfo());
  168 + ps.setObject(27, data.getHight());
  169 + ps.setObject(28, data.getRegister_name2());
  170 + ps.setObject(29, data.getPark_Location());
  171 + ps.addBatch(); // 将sql语句打包到一个容器中
  172 + if (i % group == 0) {
  173 + ps.executeBatch(); // 将容器中的sql语句提交
  174 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  175 + }
  176 + }
  177 + }
  178 + ps.executeBatch();
  179 + ps.clearBatch();
  180 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  181 + } catch (Exception e) {
  182 + log.info("楼宇表同步失败: {}", System.currentTimeMillis() - start);
  183 + e.printStackTrace();
  184 + } finally {
  185 + log.info("楼宇表同步结束: {}", System.currentTimeMillis() - start);
  186 + JDBCUtil.getClose();
  187 + }
  188 + }
  189 +
  190 + /**
  191 + * 客户合同
  192 + */
  193 + @Override
  194 + public void SynchronousDataContracts() {
  195 + long start = System.currentTimeMillis();
  196 + log.info("客户合同表同步开始");
  197 + try {
  198 + Connection conn = JDBCUtil.getConnection();
  199 + Statement stat = JDBCUtil.getStatement();
  200 + JDBCUtil.executeUpdate("DELETE FROM contracts");
  201 + String sql = "insert into contracts( _id, contractNO, clientname, contractor, " +
  202 + "building_select, start_date, end_date, bop4, free_period_fees," +
  203 + " free_period_fees_amount, contract_type1, rentalamount, serviceamount, depositcycle, " +
  204 + "paymentcycle, bop3, remark, signed_date, meetingstate, " +
  205 + "contract_fulfillment_state, space, owner, created, modified, " +
  206 + "created_by, modified_by, company_id, rentalsquare, name, " +
  207 + "contract_type2, free_period_start, free_period_end, contract_end_time, remark2," +
  208 + " remark3, subject) " +
  209 + "VALUES (" +
  210 + "?, ?, ?, ?, ?," +
  211 + " ?, ?, ?, ?, ?," +
  212 + " ?, ?, ?, ?, ?," +
  213 + " ?, ?, ?, ?, ?," +
  214 + " ?, ?, ?, ?, ?," +
  215 + " ?, ?, ?, ?, ?," +
  216 + " ?, ?, ?, ?, ?," +
  217 + " ?)";
  218 + PreparedStatement ps = null;
  219 + ps = conn.prepareStatement(sql);
  220 + conn.setAutoCommit(false);//取消自动提交
  221 + Query query = new Query();
  222 + long count = mongoTemplate.count(query, Contracts.class);
  223 + if (count == 0) {
  224 + return;
  225 + }
  226 + //每页条数
  227 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  228 + for (int currPage = 0; currPage < ceil; currPage++) {
  229 + List<Contracts> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), Contracts.class);
  230 + int size = all.size();
  231 + for (int i = 1; i < size + 1; i++) {
  232 + Contracts data = all.get(i - 1);
  233 + ps.setObject(1, data.get_id());
  234 + ps.setObject(2, data.getContractNO());
  235 + ps.setObject(3, data.getClientname());
  236 + ps.setObject(4, data.getContractor());
  237 + ps.setObject(5, data.getBuilding_select());
  238 + ps.setTimestamp(6, data.getStart_date() == null ? null : new Timestamp(data.getStart_date().getTime()));
  239 + ps.setTimestamp(7, data.getEnd_date() == null ? null : new Timestamp(data.getEnd_date().getTime()));
  240 + ps.setObject(8, data.getBop4());
  241 + ps.setObject(9, data.getFree_period_fees());
  242 + ps.setObject(10, data.getFree_period_fees_amount());
  243 + ps.setObject(11, data.getContract_type1());
  244 + ps.setObject(12, "*");
  245 + ps.setObject(13, data.getServiceamount());
  246 + ps.setObject(14, data.getDepositcycle());
  247 + ps.setObject(15, data.getPaymentcycle());
  248 + ps.setObject(16, data.getBop3());
  249 + ps.setObject(17, data.getRemark());
  250 + ps.setTimestamp(18, data.getSigned_date() == null ? null : new Timestamp(data.getSigned_date().getTime()));
  251 + ps.setObject(19, data.getMeetingstate());
  252 + ps.setObject(20, data.getContract_fulfillment_state());
  253 + ps.setObject(21, data.getSpace());
  254 + ps.setObject(22, data.getOwner());
  255 + ps.setTimestamp(23, data.getCreated() == null ? null : new Timestamp(data.getCreated().getTime()));
  256 + ps.setTimestamp(24, data.getModified() == null ? null : new Timestamp(data.getModified().getTime()));
  257 + ps.setObject(25, data.getCreated_by());
  258 + ps.setObject(26, data.getModified_by());
  259 + ps.setObject(27, data.getCompany_id());
  260 + ps.setObject(28, data.getRentalsquare());
  261 + ps.setObject(29, data.getName());
  262 + ps.setObject(30, data.getContract_type2());
  263 + ps.setTimestamp(31, data.getFree_period_start() == null ? null : new Timestamp(data.getFree_period_start().getTime()));
  264 + ps.setTimestamp(32, data.getFree_period_end() == null ? null : new Timestamp(data.getFree_period_end().getTime()));
  265 + ps.setTimestamp(33, data.getContract_end_time() == null ? null : new Timestamp(data.getContract_end_time().getTime()));
  266 + ps.setObject(34, data.getRemark2());
  267 + ps.setObject(35, data.getRemark3());
  268 + ps.setObject(36, data.getSubject());
  269 + ps.addBatch(); // 将sql语句打包到一个容器中
  270 + if (i % group == 0) {
  271 + ps.executeBatch(); // 将容器中的sql语句提交
  272 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  273 + }
  274 + }
  275 + }
  276 + ps.executeBatch();
  277 + ps.clearBatch();
  278 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  279 + } catch (Exception e) {
  280 + e.printStackTrace();
  281 + log.info("客户合同表同步失败: {}", System.currentTimeMillis() - start);
  282 + } finally {
  283 + log.info("客户合同表同步结束: {}", System.currentTimeMillis() - start);
  284 + JDBCUtil.getClose();
  285 + }
  286 +
  287 + }
  288 +
  289 + /**
  290 + * 客户合同房间
  291 + */
  292 + @Override
  293 + public void SynchronousDataContractsRoom() {
  294 + long start = System.currentTimeMillis();
  295 + log.info("客户合同房间表同步开始");
  296 + try {
  297 + Connection conn = JDBCUtil.getConnection();
  298 + Statement stat = JDBCUtil.getStatement();
  299 + JDBCUtil.executeUpdate("DELETE FROM contracts_room");
  300 + String sql = "insert into contracts_room(id, _id, roomId) VALUES (?, ?, ?)";
  301 + PreparedStatement ps = null;
  302 + ps = conn.prepareStatement(sql);
  303 + conn.setAutoCommit(false);//取消自动提交
  304 + Query query = new Query();
  305 + long count = mongoTemplate.count(query, Contracts.class);
  306 + if (count == 0) {
  307 + return;
  308 + }
  309 + //每页条数
  310 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  311 + for (int currPage = 0; currPage < ceil; currPage++) {
  312 + List<Contracts> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), Contracts.class);
  313 + int size = all.size();
  314 + for (int i = 1; i < size + 1; i++) {
  315 + Contracts data = all.get(i - 1);
  316 + if (data.getRoom_number() !=null && data.getRoom_number().size()>0){
  317 + for (String roomId : data.getRoom_number()) {
  318 + String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
  319 + ps.setObject(1, uuid);
  320 + ps.setObject(2, data.get_id());
  321 + ps.setObject(3, roomId);
  322 + ps.addBatch(); // 将sql语句打包到一个容器中
  323 + if (i % group == 0) {
  324 + ps.executeBatch(); // 将容器中的sql语句提交
  325 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  326 + }
  327 + }
  328 + }
  329 + }
  330 + }
  331 + ps.executeBatch();
  332 + ps.clearBatch();
  333 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  334 + } catch (Exception e) {
  335 + e.printStackTrace();
  336 + log.info("客户合同房间表同步失败: {}", System.currentTimeMillis() - start);
  337 + } finally {
  338 + log.info("客户合同房间表同步结束: {}", System.currentTimeMillis() - start);
  339 + JDBCUtil.getClose();
  340 + }
  341 + }
  342 +
  343 + /**
  344 + * 客户
  345 + */
  346 + @Override
  347 + public void SynchronousDataAccounts() {
  348 + long start = System.currentTimeMillis();
  349 + log.info("客户表同步开始");
  350 + try {
  351 + Connection conn = JDBCUtil.getConnection();
  352 + Statement stat = JDBCUtil.getStatement();
  353 + JDBCUtil.executeUpdate("DELETE FROM accounts");
  354 + String sql = "insert into accounts(" +
  355 + " _id, name, tax_number, in_time, " +
  356 + "in_or_out, invoice_type, regis_amount, financing_amount, space, " +
  357 + "owner, created, modified, created_by, modified_by, " +
  358 + "company_id, regis_time, regis_location, Legal_person, out_time) " +
  359 + "VALUES (" +
  360 + "?, ?, ?, ?, ?, " +
  361 + "?, ?, ?, ?, ?, " +
  362 + "?, ?, ?, ?, ?, " +
  363 + "?, ?, ?, ?)";
  364 + PreparedStatement ps = null;
  365 + ps = conn.prepareStatement(sql);
  366 + conn.setAutoCommit(false);//取消自动提交
  367 + Query query = new Query();
  368 + long count = mongoTemplate.count(query, Accounts.class);
  369 + if (count == 0) {
  370 + return;
  371 + }
  372 + //每页条数
  373 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  374 + for (int currPage = 0; currPage < ceil; currPage++) {
  375 + List<Accounts> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), Accounts.class);
  376 + int size = all.size();
  377 + for (int i = 1; i < size + 1; i++) {
  378 + Accounts data = all.get(i - 1);
  379 + ps.setObject(1, data.get_id());
  380 + ps.setObject(2, data.getName());
  381 + ps.setObject(3, data.getTax_number());
  382 + ps.setTimestamp(4, data.getIn_time() == null ? null : new Timestamp(data.getIn_time().getTime()));
  383 +
  384 +
  385 + ps.setObject(5, data.getIn_or_out());
  386 + ps.setObject(6, data.getInvoice_type());
  387 + ps.setObject(7, data.getRegis_amount());
  388 + ps.setObject(8, data.getFinancing_amount());
  389 + ps.setObject(9, data.getSpace());
  390 +
  391 + ps.setObject(10, data.getOwner());
  392 + ps.setTimestamp(11, data.getCreated() == null ? null : new Timestamp(data.getCreated().getTime()));
  393 + ps.setTimestamp(12, data.getModified() == null ? null : new Timestamp(data.getModified().getTime()));
  394 + ps.setObject(13, data.getCreated_by());
  395 + ps.setObject(14, data.getModified_by());
  396 +
  397 + ps.setObject(15, data.getCompany_id());
  398 + ps.setTimestamp(16, data.getRegis_time() == null ? null : new Timestamp(data.getRegis_time().getTime()));
  399 + ps.setObject(17, data.getRegis_location());
  400 + ps.setObject(18, data.getLegal_person());
  401 + ps.setTimestamp(19, data.getOut_time() == null ? null : new Timestamp(data.getOut_time().getTime()));
  402 + ps.addBatch(); // 将sql语句打包到一个容器中
  403 + if (i % group == 0) {
  404 + ps.executeBatch(); // 将容器中的sql语句提交
  405 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  406 + }
  407 + }
  408 + }
  409 + ps.executeBatch();
  410 + ps.clearBatch();
  411 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  412 + } catch (Exception e) {
  413 + log.info("客户表同步失败: {}", System.currentTimeMillis() - start);
  414 + e.printStackTrace();
  415 + } finally {
  416 + log.info("客户表同步结束: {}", System.currentTimeMillis() - start);
  417 + JDBCUtil.getClose();
  418 + }
  419 + }
  420 +
  421 + /**
  422 + * 合同收款
  423 + */
  424 + @Override
  425 + public void SynchronousDataContractReceipts() {
  426 + long start = System.currentTimeMillis();
  427 + log.info("合同收款表同步开始");
  428 + try {
  429 + Connection conn = JDBCUtil.getConnection();
  430 + Statement stat = JDBCUtil.getStatement();
  431 + JDBCUtil.executeUpdate("DELETE FROM contract_receipts");
  432 + String sql = "insert into contract_receipts(" +
  433 + "_id, fees_type, account, contract, " +
  434 + "contract_start_date, contract_end_date, fee_period_start, fee_period_end, receipts_contractor, " +
  435 + "building, amount, paid_amount, space, owner, " +
  436 + "created, modified, name, unpaid_amount, modified_by, " +
  437 + "paid_date, paid_real_date, fees_finished, searchFunc) " +
  438 + "VALUES (" +
  439 + "?, ?, ?, ?, ?, " +
  440 + "?, ?, ?, ?, ?, " +
  441 + "?, ?, ?, ?, ?, " +
  442 + "?, ?, ?, ?, ?, " +
  443 + "?, ?, ?)";
  444 + PreparedStatement ps = null;
  445 + ps = conn.prepareStatement(sql);
  446 + conn.setAutoCommit(false);//取消自动提交
  447 + Query query = new Query();
  448 + long count = mongoTemplate.count(query, ContractReceipts.class);
  449 + if (count == 0) {
  450 + return;
  451 + }
  452 + //每页条数
  453 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  454 + for (int currPage = 0; currPage < ceil; currPage++) {
  455 + List<ContractReceipts> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), ContractReceipts.class);
  456 + int size = all.size();
  457 + for (int i = 1; i < size + 1; i++) {
  458 + ContractReceipts data = all.get(i - 1);
  459 + ps.setObject(1, data.get_id());
  460 + ps.setObject(2, data.getFees_type());
  461 + ps.setObject(3, data.getAccount());
  462 + ps.setObject(4, data.getContract());
  463 + ps.setTimestamp(5, data.getContract_start_date() == null ? null : new Timestamp(data.getContract_start_date().getTime()));
  464 + ps.setTimestamp(6, data.getContract_end_date() == null ? null : new Timestamp(data.getContract_end_date().getTime()));
  465 + ps.setTimestamp(7, data.getFee_period_start() == null ? null : new Timestamp(data.getFee_period_start().getTime()));
  466 + ps.setTimestamp(8, data.getFee_period_end() == null ? null : new Timestamp(data.getFee_period_end().getTime()));
  467 + ps.setObject(9, data.getReceipts_contractor());
  468 + ps.setObject(10, data.getBuilding());
  469 + ps.setObject(11, data.getAmount());
  470 + ps.setObject(12, data.getPaid_amount());
  471 + ps.setObject(13, data.getSpace());
  472 + ps.setObject(14, data.getOwner());
  473 + ps.setTimestamp(15, data.getCreated() == null ? null : new Timestamp(data.getCreated().getTime()));
  474 + ps.setTimestamp(16, data.getModified() == null ? null : new Timestamp(data.getModified().getTime()));
  475 + ps.setObject(17, data.getName());
  476 + ps.setObject(18, data.getUnpaid_amount());
  477 + ps.setObject(19, data.getModified_by());
  478 + ps.setTimestamp(20, data.getPaid_date() == null ? null : new Timestamp(data.getPaid_date().getTime()));
  479 + ps.setTimestamp(21, data.getPaid_real_date() == null ? null : new Timestamp(data.getPaid_real_date().getTime()));
  480 + ps.setObject(22, data.getFees_finished());
  481 + ps.setObject(23, data.getSearchFunc());
  482 + ps.addBatch(); // 将sql语句打包到一个容器中
  483 + if (i % group == 0) {
  484 + ps.executeBatch(); // 将容器中的sql语句提交
  485 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  486 + }
  487 + }
  488 + }
  489 + ps.executeBatch();
  490 + ps.clearBatch();
  491 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  492 + } catch (Exception e) {
  493 + log.info("合同收款表同步失败: {}", System.currentTimeMillis() - start);
  494 + e.printStackTrace();
  495 + } finally {
  496 + log.info("合同收款表同步结束: {}", System.currentTimeMillis() - start);
  497 + JDBCUtil.getClose();
  498 + }
  499 + }
  500 +
  501 + /**
  502 + * 测试使用
  503 + */
  504 + @Override
  505 + public void SynchronousDataContractAuditRecords() {
  506 + long start = System.currentTimeMillis();
  507 + try {
  508 + Connection conn = JDBCUtil.getConnection();
  509 + Statement stat = JDBCUtil.getStatement();
  510 + JDBCUtil.executeUpdate("DELETE FROM audit_records");
  511 + String sql = "insert into audit_records(id, _id) VALUES (?, ?)";
  512 + PreparedStatement ps = null;
  513 + ps = conn.prepareStatement(sql);
  514 + conn.setAutoCommit(false);//取消自动提交
  515 + Query query = new Query();
  516 + long count = mongoTemplate.count(query, AuditRecords.class);
  517 + if (count == 0) {
  518 + return;
  519 + }
  520 + //每页条数
  521 + int ceil = (int) Math.ceil((double) count / (double) pageSize);
  522 + for (int currPage = 0; currPage < ceil; currPage++) {
  523 + List<AuditRecords> all = mongoTemplate.find(query.with(new PageRequest(currPage, pageSize)), AuditRecords.class);
  524 + int size = all.size();
  525 + for (int i = 1; i < size + 1; i++) {
  526 + AuditRecords data = all.get(i - 1);
  527 + ps.setObject(1, ((currPage * pageSize) + i));
  528 + ps.setObject(2, data.get_id());
  529 + ps.addBatch();
  530 + if (i % group == 0) {
  531 + ps.executeBatch();
  532 + ps.clearBatch();
  533 + }
  534 + }
  535 + ps.executeBatch();
  536 + ps.clearBatch();
  537 + conn.commit();
  538 + }
  539 + } catch (Exception e) {
  540 + log.info("测试表同步失败: {}", System.currentTimeMillis() - start);
  541 + e.printStackTrace();
  542 + } finally {
  543 + log.info("测试表同步结束: {}", System.currentTimeMillis() - start);
  544 + JDBCUtil.getClose();
  545 + }
  546 + }
  547 +
  548 +}
src/main/java/com/songshu/mongo/service/impl/UpdateTingcheServiceImpl.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/service/impl/UpdateTingcheServiceImpl.java
@@ -0,0 +1,425 @@ @@ -0,0 +1,425 @@
  1 +package com.songshu.mongo.service.impl;
  2 +
  3 +import com.songshu.mongo.model.dto.Room;
  4 +import com.songshu.mongo.service.UpdateTingcheService;
  5 +import com.songshu.mongo.tools.JDBCUtil;
  6 +import com.songshu.mongo.tools.JDBCUtilMysql;
  7 +import lombok.extern.slf4j.Slf4j;
  8 +import org.apache.commons.lang.ObjectUtils;
  9 +import org.springframework.data.domain.PageRequest;
  10 +import org.springframework.data.mongodb.core.query.Query;
  11 +import org.springframework.stereotype.Service;
  12 +
  13 +import java.sql.*;
  14 +import java.util.ArrayList;
  15 +import java.util.HashMap;
  16 +import java.util.List;
  17 +import java.util.Map;
  18 +
  19 +@Slf4j
  20 +@Service
  21 +public class UpdateTingcheServiceImpl implements UpdateTingcheService {
  22 +
  23 +
  24 + /**
  25 + * tj_tcsjtjn
  26 + */
  27 + @Override
  28 + public void updateTjTcsjtjn() {
  29 + log.info("tj_tcsjtjn");
  30 + long start = System.currentTimeMillis();
  31 + try {
  32 + Connection conn = JDBCUtilMysql.getConnection();
  33 + Statement stat = JDBCUtilMysql.getStatement();
  34 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_tcsjtjn");
  35 + String sql = "insert into tj_tcsjtjn(threelow,threeToFive,fiveToEight,eightup) VALUES (?, ?, ?, ?)";
  36 + String selectSql = "select " +
  37 + "ifnull(sum(case when TIMESTAMPDIFF(hour,rcsj,ccsj) <= 3 then 1 else 0 end),0) threelow, " +
  38 + "ifnull(sum(case when TIMESTAMPDIFF(hour,rcsj,ccsj) > 3 and TIMESTAMPDIFF(hour,rcsj,ccsj) <= 5 then 1 else 0 end),0) threeToFive, " +
  39 + "ifnull(sum(case when TIMESTAMPDIFF(hour,rcsj,ccsj) > 5 and TIMESTAMPDIFF(hour,rcsj,ccsj) <= 8 then 1 else 0 end),0) fiveToEight, " +
  40 + "ifnull(sum(case when TIMESTAMPDIFF(hour,rcsj,ccsj) > 8 then 1 else 0 end),0) eightup " +
  41 + "from vehicle_records where year(ccsj) = year(SYSDATE())";
  42 + ArrayList<Map> all = getQueryList(conn, selectSql);
  43 + PreparedStatement ps = null;
  44 + ps = conn.prepareStatement(sql);
  45 + conn.setAutoCommit(false);//取消自动提交
  46 + if (all == null || all.size() == 0) {
  47 + return;
  48 + }
  49 + int size = all.size();
  50 + for (int i = 1; i < size + 1; i++) {
  51 + Map data = all.get(i - 1);
  52 + ps.setObject(1, data.get("threelow"));
  53 + ps.setObject(2, data.get("threeToFive"));
  54 + ps.setObject(3, data.get("fiveToEight"));
  55 + ps.setObject(4, data.get("eightup"));
  56 + ps.addBatch();
  57 + if (i % 500 == 0) {
  58 + ps.executeBatch(); // 将容器中的sql语句提交
  59 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  60 + }
  61 + }
  62 + ps.executeBatch();
  63 + ps.clearBatch();
  64 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  65 + } catch (Exception e) {
  66 + log.info("tj_tcsjtjn表同步失败: {}", System.currentTimeMillis() - start);
  67 + e.printStackTrace();
  68 + } finally {
  69 + log.info("tj_tcsjtjn表同步结束: {}", System.currentTimeMillis() - start);
  70 + JDBCUtilMysql.getClose();
  71 + }
  72 + }
  73 +
  74 + /**
  75 + * tj_cljrsctjn
  76 + */
  77 + @Override
  78 + public void updateTjCljrsctjn() {
  79 + log.info("tj_cljrsctjn");
  80 + long start = System.currentTimeMillis();
  81 + try {
  82 + Connection conn = JDBCUtilMysql.getConnection();
  83 + Statement stat = JDBCUtilMysql.getStatement();
  84 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_cljrsctjn");
  85 + String sql = "insert into tj_cljrsctjn(y,rcsl,ccsl) VALUES (?, ?, ?)";
  86 + String selectSql = " SELECT a.y,ifnull(b.sl,0) AS rcsl,ifnull(c.sl,0) AS ccsl FROM ( " +
  87 + "SELECT help_keyword_id y FROM mysql.help_keyword HAVING y BETWEEN 1 AND 12 ORDER BY 1) a LEFT JOIN ( " +
  88 + "SELECT temp.y,sum(temp.sl) AS sl FROM ( " +
  89 + "SELECT MONTH (rcsj) AS y,count(MONTH (rcsj)) sl FROM vehicle_records WHERE YEAR (rcsj)=YEAR (sysdate()) GROUP BY MONTH (rcsj) UNION ALL " +
  90 + "SELECT MONTH (rcsj) AS y,count(MONTH (rcsj)) sl FROM parking_vehicles WHERE YEAR (sysdate())=YEAR (rcsj) GROUP BY MONTH (rcsj)) temp GROUP BY temp.y) b ON a.y=b.y LEFT JOIN ( " +
  91 + "SELECT MONTH (ccsj) AS y,count(*) AS sl FROM vehicle_records WHERE ccsj IS NOT NULL AND YEAR (ccsj)=YEAR (sysdate()) GROUP BY MONTH (ccsj)) c ON a.y=c.y ";
  92 + ArrayList<Map> all = getQueryList(conn, selectSql);
  93 + PreparedStatement ps = null;
  94 + ps = conn.prepareStatement(sql);
  95 + conn.setAutoCommit(false);//取消自动提交
  96 + if (all == null || all.size() == 0) {
  97 + return;
  98 + }
  99 + int size = all.size();
  100 + for (int i = 1; i < size + 1; i++) {
  101 + Map data = all.get(i - 1);
  102 + ps.setObject(1, data.get("y"));
  103 + ps.setObject(2, data.get("rcsl"));
  104 + ps.setObject(3, data.get("ccsl"));
  105 + ps.addBatch();
  106 + if (i % 500 == 0) {
  107 + ps.executeBatch(); // 将容器中的sql语句提交
  108 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  109 + }
  110 + }
  111 + ps.executeBatch();
  112 + ps.clearBatch();
  113 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  114 + } catch (Exception e) {
  115 + log.info("tj_cljrsctjn表同步失败: {}", System.currentTimeMillis() - start);
  116 + e.printStackTrace();
  117 + } finally {
  118 + log.info("tj_cljrsctjn表同步结束: {}", System.currentTimeMillis() - start);
  119 + JDBCUtilMysql.getClose();
  120 + }
  121 + }
  122 +
  123 + /**
  124 + * tj_cljrsctjy
  125 + */
  126 + @Override
  127 + public void updateTjCljrsctjy() {
  128 + log.info("tj_cljrsctjy");
  129 + long start = System.currentTimeMillis();
  130 + try {
  131 + Connection conn = JDBCUtilMysql.getConnection();
  132 + Statement stat = JDBCUtilMysql.getStatement();
  133 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_cljrsctjy");
  134 + String sql = "insert into tj_cljrsctjy(r,rcsl,ccsl) VALUES (?, ?, ?)";
  135 + String selectSql = " SELECT a.r,ifnull(b.sl,0) AS rcsl,ifnull(c.sl,0) AS ccsl FROM (SELECT help_keyword_id r FROM mysql.help_keyword HAVING r BETWEEN 1 AND DAY (last_day(sysdate())) ORDER BY 1) a LEFT JOIN (SELECT temp.r,sum(temp.sl) sl FROM (SELECT DAY (rcsj) AS r,count(DAY (rcsj)) sl FROM vehicle_records WHERE date_format(rcsj,'%y%m')=date_format(sysdate(),'%y%m') GROUP BY DAY (rcsj) UNION ALL SELECT DAY (rcsj) AS r,count(DAY (rcsj)) sl FROM parking_vehicles WHERE date_format(rcsj,'%y%m')=date_format(sysdate(),'%y%m') GROUP BY DAY (rcsj)) temp GROUP BY temp.r) b ON a.r=b.r LEFT JOIN (SELECT date_format(ccsj,'%y%m') AS ny,DAY (ccsj) AS r,count(*) AS sl FROM vehicle_records WHERE rcsj IS NOT NULL AND date_format(ccsj,'%y%m')=date_format(sysdate(),'%y%m') GROUP BY date_format(ccsj,'%y%m'),DAY (ccsj)) c ON a.r=c.r";
  136 + ArrayList<Map> all = getQueryList(conn, selectSql);
  137 + PreparedStatement ps = null;
  138 + ps = conn.prepareStatement(sql);
  139 + conn.setAutoCommit(false);//取消自动提交
  140 + if (all == null || all.size() == 0) {
  141 + return;
  142 + }
  143 + int size = all.size();
  144 + for (int i = 1; i < size + 1; i++) {
  145 + Map data = all.get(i - 1);
  146 + ps.setObject(1, data.get("r"));
  147 + ps.setObject(2, data.get("rcsl"));
  148 + ps.setObject(3, data.get("ccsl"));
  149 + ps.addBatch();
  150 + if (i % 500 == 0) {
  151 + ps.executeBatch(); // 将容器中的sql语句提交
  152 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  153 + }
  154 + }
  155 + ps.executeBatch();
  156 + ps.clearBatch();
  157 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  158 + } catch (Exception e) {
  159 + log.info("tj_cljrsctjy表同步失败: {}", System.currentTimeMillis() - start);
  160 + e.printStackTrace();
  161 + } finally {
  162 + log.info("tj_cljrsctjy表同步结束: {}", System.currentTimeMillis() - start);
  163 + JDBCUtilMysql.getClose();
  164 + }
  165 + }
  166 +
  167 + /**
  168 + * tj_cljrsctjr
  169 + */
  170 + @Override
  171 + public void updateTjCljrsctjr() {
  172 + log.info("tj_cljrsctjr");
  173 + long start = System.currentTimeMillis();
  174 + try {
  175 + Connection conn = JDBCUtilMysql.getConnection();
  176 + Statement stat = JDBCUtilMysql.getStatement();
  177 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_cljrsctjr");
  178 + String sql = "insert into tj_cljrsctjr(x,rcsl,ccsl) VALUES (?, ?, ?)";
  179 + String selectSql = " SELECT a.x,ifnull(sum(b.sl),0) AS rcsl,IFNULL(sum(c.sl),0) AS ccsl FROM ( \n" +
  180 + " SELECT help_keyword_id x FROM mysql.help_keyword HAVING x BETWEEN 0 AND 23 ORDER BY 1) a \n" +
  181 + " LEFT JOIN " +
  182 + " ( " +
  183 + " SELECT temp.x,count(*) AS sl FROM " +
  184 + " (" +
  185 + " SELECT date_format(rcsj,'%H') AS x FROM vehicle_records WHERE rcsj IS NOT NULL AND date_format(rcsj,'%y%m%d')=date_format(SYSDATE(),'%y%m%d') " +
  186 + " UNION ALL " +
  187 + " SELECT date_format(rcsj,'%H') AS x FROM parking_vehicles WHERE rcsj IS NOT NULL AND date_format(rcsj,'%y%m%d')=date_format(SYSDATE(),'%y%m%d')" +
  188 + " ) temp GROUP BY temp.x" +
  189 + " ) b ON a.x=b.x " +
  190 + " LEFT JOIN " +
  191 + " ( " +
  192 + " SELECT date_format(ccsj,'%H') AS x,count(*) AS sl FROM vehicle_records WHERE date_format(ccsj,'%y%m%d')=date_format(SYSDATE(),'%y%m%d') GROUP BY date_format(ccsj,'%H')) c " +
  193 + " ON a.x=c.x GROUP BY a.x ORDER BY a.x ";
  194 + ArrayList<Map> all = getQueryList(conn, selectSql);
  195 + PreparedStatement ps = null;
  196 + ps = conn.prepareStatement(sql);
  197 + conn.setAutoCommit(false);//取消自动提交
  198 + if (all == null || all.size() == 0) {
  199 + return;
  200 + }
  201 + int size = all.size();
  202 + for (int i = 1; i < size + 1; i++) {
  203 + Map data = all.get(i - 1);
  204 + ps.setObject(1, data.get("x"));
  205 + ps.setObject(2, data.get("rcsl"));
  206 + ps.setObject(3, data.get("ccsl"));
  207 + ps.addBatch();
  208 + if (i % 500 == 0) {
  209 + ps.executeBatch(); // 将容器中的sql语句提交
  210 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  211 + }
  212 + }
  213 + ps.executeBatch();
  214 + ps.clearBatch();
  215 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  216 + } catch (Exception e) {
  217 + log.info("tj_cljrsctjr表同步失败: {}", System.currentTimeMillis() - start);
  218 + e.printStackTrace();
  219 + } finally {
  220 + log.info("tj_cljrsctjr表同步结束: {}", System.currentTimeMillis() - start);
  221 + JDBCUtilMysql.getClose();
  222 + }
  223 + }
  224 +
  225 + /**
  226 + * tj_jrcrktcsj
  227 + */
  228 + @Override
  229 + public void updateTjJrcrktcsj() {
  230 + log.info("tj_jrcrktcsj");
  231 + long start = System.currentTimeMillis();
  232 + try {
  233 + Connection conn = JDBCUtilMysql.getConnection();
  234 + Statement stat = JDBCUtilMysql.getStatement();
  235 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_jrcrktcsj");
  236 + String sql = "insert into tj_jrcrktcsj(cphm,zhlx,rcsj,ccsj,tcsj,ssje,rctd,cctd) VALUES (?, ?, ?,?, ?, ?,?, ?)";
  237 + String selectSql = "select \n" +
  238 + "vehicle_records.cphm,\n" +
  239 + "vehicle_records.zhlx,\n" +
  240 + "vehicle_records.rcsj,\n" +
  241 + "vehicle_records.ccsj,\n" +
  242 + "round(timestampdiff(minute,vehicle_records.rcsj,vehicle_records.ccsj)/60,2) as tcsj,\n" +
  243 + "ifnull(parking_payment.ssje,0) ssje,\n" +
  244 + "vehicle_records.rctd as rctd,\n" +
  245 + "vehicle_records.cctd as cctd\n" +
  246 + "from\n" +
  247 + "vehicle_records\n" +
  248 + "left join parking_payment on parking_payment.cphm = vehicle_records.cphm and parking_payment.rcsj = vehicle_records.rcsj\n" +
  249 + "where date_format(vehicle_records.rcsj,'%y%m%d') = date_format(NOW(),'%y%m%d')";
  250 + ArrayList<Map> all = getQueryList(conn, selectSql);
  251 + PreparedStatement ps = null;
  252 + ps = conn.prepareStatement(sql);
  253 + conn.setAutoCommit(false);//取消自动提交
  254 + if (all == null || all.size() == 0) {
  255 + return;
  256 + }
  257 + int size = all.size();
  258 + for (int i = 1; i < size + 1; i++) {
  259 + Map data = all.get(i - 1);
  260 + ps.setObject(1, data.get("cphm"));
  261 + ps.setObject(2, data.get("zhlx"));
  262 + ps.setObject(3, data.get("rcsj"));
  263 + ps.setObject(4, data.get("ccsj"));
  264 + ps.setObject(5, data.get("tcsj"));
  265 + ps.setObject(6, data.get("ssje"));
  266 + ps.setObject(7, data.get("rctd"));
  267 + ps.setObject(8, data.get("cctd"));
  268 + ps.addBatch();
  269 + if (i % 500 == 0) {
  270 + ps.executeBatch(); // 将容器中的sql语句提交
  271 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  272 + }
  273 + }
  274 + ps.executeBatch();
  275 + ps.clearBatch();
  276 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  277 + } catch (Exception e) {
  278 + log.info("tj_jrcrktcsj表同步失败: {}", System.currentTimeMillis() - start);
  279 + e.printStackTrace();
  280 + } finally {
  281 + log.info("tj_jrcrktcsj表同步结束: {}", System.currentTimeMillis() - start);
  282 + JDBCUtilMysql.getClose();
  283 + }
  284 + }
  285 +
  286 +
  287 + /**
  288 + * tj_parking_payment
  289 + */
  290 + @Override
  291 + public void updateTjParkingPayment() {
  292 + log.info("tj_parking_payment");
  293 + long start = System.currentTimeMillis();
  294 + try {
  295 + Connection conn = JDBCUtilMysql.getConnection();
  296 + Statement stat = JDBCUtilMysql.getStatement();
  297 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_parking_payment");
  298 + String sql = "insert into tj_parking_payment(xh,cphm,zhlx,rcsj,sfsj,sfy,gtmc,ysje,ssje,cxye,dzje,mfje,sflx,zflx,ddh) VALUES " +
  299 + "(?, ?, ?,?, ?, " +
  300 + "?,?, ?, ?, ?," +
  301 + "?,?, ?, ?, ?)";
  302 + String selectSql = "SELECT xh,cphm,zhlx,rcsj,sfsj,sfy,gtmc,ysje,ssje,cxye,dzje,mfje,sflx,zflx,ddh FROM parking_payment where date_format(rcsj,'%y%m%d') = date_format(NOW(),'%y%m%d') or date_format(sfsj,'%y%m%d') = date_format(NOW(),'%y%m%d')";
  303 + ArrayList<Map> all = getQueryList(conn, selectSql);
  304 + PreparedStatement ps = null;
  305 + ps = conn.prepareStatement(sql);
  306 + conn.setAutoCommit(false);//取消自动提交
  307 + if (all == null || all.size() == 0) {
  308 + return;
  309 + }
  310 + int size = all.size();
  311 + for (int i = 1; i < size + 1; i++) {
  312 + Map data = all.get(i - 1);
  313 + ps.setObject(1, data.get("xh"));
  314 + ps.setObject(2, data.get("cphm"));
  315 + ps.setObject(3, data.get("zhlx"));
  316 + ps.setObject(4, data.get("rcsj"));
  317 + ps.setObject(5, data.get("sfsj"));
  318 +
  319 + ps.setObject(6, data.get("sfy"));
  320 + ps.setObject(7, data.get("gtmc"));
  321 + ps.setObject(8, data.get("ysje"));
  322 + ps.setObject(9, data.get("ssje"));
  323 + ps.setObject(10, data.get("cxye"));
  324 +
  325 + ps.setObject(11, data.get("dzje"));
  326 + ps.setObject(12, data.get("mfje"));
  327 + ps.setObject(13, data.get("sflx"));
  328 + ps.setObject(14, data.get("zflx"));
  329 + ps.setObject(15, data.get("ddh"));
  330 +
  331 + ps.addBatch();
  332 + if (i % 500 == 0) {
  333 + ps.executeBatch(); // 将容器中的sql语句提交
  334 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  335 + }
  336 + }
  337 + ps.executeBatch();
  338 + ps.clearBatch();
  339 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  340 + } catch (Exception e) {
  341 + log.info("tj_jrcrktcsj表同步失败: {}", System.currentTimeMillis() - start);
  342 + e.printStackTrace();
  343 + } finally {
  344 + log.info("tj_jrcrktcsj表同步结束: {}", System.currentTimeMillis() - start);
  345 + JDBCUtilMysql.getClose();
  346 + }
  347 + }
  348 +
  349 +
  350 + /**
  351 + * tj_vehicle_records
  352 + */
  353 + @Override
  354 + public void updateTjVehicleRecords() {
  355 + log.info("tj_vehicle_records");
  356 + long start = System.currentTimeMillis();
  357 + try {
  358 + Connection conn = JDBCUtilMysql.getConnection();
  359 + Statement stat = JDBCUtilMysql.getStatement();
  360 + JDBCUtilMysql.executeUpdate("DELETE FROM tj_vehicle_records");
  361 + String sql = "insert into tj_vehicle_records(xh,cphm,zhlx,czxm,rcsj,rctd,ccsj,cctd,ccfs) VALUES " +
  362 + "(?, ?, ?,?, ?, " +
  363 + "?,?, ?, ?)";
  364 + String selectSql = "SELECT * FROM vehicle_records where date_format(vehicle_records.rcsj,'%y%m%d') = date_format(NOW(),'%y%m%d')\n" +
  365 + "or date_format(vehicle_records.ccsj,'%y%m%d') = date_format(NOW(),'%y%m%d')";
  366 + ArrayList<Map> all = getQueryList(conn, selectSql);
  367 + PreparedStatement ps = null;
  368 + ps = conn.prepareStatement(sql);
  369 + conn.setAutoCommit(false);//取消自动提交
  370 + if (all == null || all.size() == 0) {
  371 + return;
  372 + }
  373 + int size = all.size();
  374 + for (int i = 1; i < size + 1; i++) {
  375 + Map data = all.get(i - 1);
  376 + ps.setObject(1, data.get("xh"));
  377 + ps.setObject(2, data.get("cphm"));
  378 + ps.setObject(3, data.get("zhlx"));
  379 + ps.setObject(4, data.get("czxm"));
  380 + ps.setObject(5, data.get("rcsj"));
  381 +
  382 + ps.setObject(6, data.get("rctd"));
  383 + ps.setObject(7, data.get("ccsj"));
  384 + ps.setObject(8, data.get("cctd"));
  385 + ps.setObject(9, data.get("ccfs"));
  386 + ps.addBatch();
  387 + if (i % 500 == 0) {
  388 + ps.executeBatch(); // 将容器中的sql语句提交
  389 + ps.clearBatch(); // 清空容器,为下一次打包做准备
  390 + }
  391 + }
  392 + ps.executeBatch();
  393 + ps.clearBatch();
  394 + conn.commit();//所有语句都执行完毕后才手动提交sql语句
  395 + } catch (Exception e) {
  396 + log.info("tj_vehicle_records表同步失败: {}", System.currentTimeMillis() - start);
  397 + e.printStackTrace();
  398 + } finally {
  399 + log.info("tj_vehicle_records表同步结束: {}", System.currentTimeMillis() - start);
  400 + JDBCUtilMysql.getClose();
  401 + }
  402 + }
  403 +
  404 +
  405 + private ArrayList<Map> getQueryList(Connection conn, String selectSql) throws SQLException {
  406 + ArrayList<Map> all = new ArrayList<Map>();
  407 + ArrayList<String> titleNameList = new ArrayList<>();
  408 + Statement st = conn.createStatement();
  409 + ResultSet rs = st.executeQuery(selectSql);
  410 + int columnCount = rs.getMetaData().getColumnCount();
  411 + for (int i = 0; i < columnCount; i++) {
  412 + titleNameList.add(rs.getMetaData().getColumnLabel((i + 1)));
  413 + }
  414 + while (rs.next()) {
  415 + HashMap<String, Object> map = new HashMap<>();
  416 + for (String name : titleNameList) {
  417 + map.put(name, rs.getString(name));
  418 + }
  419 + all.add(map);
  420 + }
  421 + return all;
  422 + }
  423 +
  424 +
  425 +}
src/main/java/com/songshu/mongo/test/BookMongoControllerTest.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/test/BookMongoControllerTest.java
@@ -0,0 +1,175 @@ @@ -0,0 +1,175 @@
  1 +package com.songshu.mongo.test;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.fasterxml.jackson.core.JsonProcessingException;
  5 +import com.songshu.mongo.model.json.JsonString;
  6 +import com.songshu.mongo.model.dto.BookDTO;
  7 +import com.songshu.mongo.service.BookMongoService;
  8 +import com.songshu.mongo.service.StaticScheduleTaskService;
  9 +import com.songshu.mongo.service.UpdateTingcheService;
  10 +import org.junit.Test;
  11 +import org.junit.runner.RunWith;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.boot.test.context.SpringBootTest;
  14 +import org.springframework.data.mongodb.core.query.Criteria;
  15 +import org.springframework.data.mongodb.core.query.Query;
  16 +import org.springframework.data.mongodb.core.query.Update;
  17 +import org.springframework.test.context.junit4.SpringRunner;
  18 +
  19 +import java.util.List;
  20 +
  21 +
  22 +@SpringBootTest
  23 +@RunWith(SpringRunner.class)
  24 +public class BookMongoControllerTest {
  25 +
  26 + @Autowired
  27 + private BookMongoService bookMongoService;
  28 + @Autowired
  29 + private StaticScheduleTaskService staticScheduleTaskService;
  30 + @Autowired
  31 + private UpdateTingcheService updateTingcheService;
  32 +
  33 + /**
  34 + * 测试json转对象(for:拿示例json数据做批量新增)
  35 + *
  36 + * @throws JsonProcessingException
  37 + */
  38 + @Test
  39 + public void jsonToObj() throws JsonProcessingException {
  40 + String jsonString = JsonString.jsonString;
  41 + // json转对象集合
  42 + List<BookDTO> bookDTOList = JSON.parseArray(jsonString, BookDTO.class);
  43 + System.out.println(bookDTOList);
  44 + //集合转对象
  45 + // String json = new ObjectMapper().writeValueAsString(bookDTOList);
  46 + }
  47 +
  48 + /**
  49 + * 新增)(单个新增)
  50 + */
  51 + @Test
  52 + public void insert() {
  53 + BookDTO bookDTO = new BookDTO();
  54 + bookDTO.setId("5");
  55 + bookDTO.setName("万界圣主");
  56 + bookDTO.setPrice("17.8");
  57 + bookDTO.setType("仙侠");
  58 + bookDTO.setReadedNum(Double.parseDouble("10.7"));
  59 + bookMongoService.inserBookInfo(bookDTO);
  60 + }
  61 +
  62 + /**
  63 + * 新增(批量新增)
  64 + */
  65 + @Test
  66 + public void insertBatch() {
  67 + // 拿到示例json数据
  68 + String jsonString = JsonString.jsonString;
  69 + // json转对象集合
  70 + List<BookDTO> bookDTOList = JSON.parseArray(jsonString, BookDTO.class);
  71 + bookMongoService.inserBatchBookInfo(bookDTOList);
  72 + }
  73 +
  74 + /**
  75 + * 修改
  76 + */
  77 + @Test
  78 + public void update() {
  79 + // 条件
  80 + Query query = Query.query(Criteria.where("_id").is("2"));
  81 + // 修改内容
  82 + Update update = Update.update("price", "19.9");
  83 + bookMongoService.updateBookInfo(query, update);
  84 +
  85 + }
  86 +
  87 + /**
  88 + * 查询所有
  89 + */
  90 + @Test
  91 + public void findAll() {
  92 + List<BookDTO> allBookInfo = bookMongoService.findAllBookInfo();
  93 + System.out.println(allBookInfo);
  94 + }
  95 +
  96 + /**
  97 + * 根据书名查询:精准
  98 + */
  99 + @Test
  100 + public void findByName() {
  101 + String name = "盗墓笔记";
  102 + List<BookDTO> allBookInfo = bookMongoService.findBookInfoByName(name);
  103 + System.out.println(allBookInfo);
  104 + }
  105 +
  106 + /**
  107 + * 根据书名查询: 模糊查
  108 + */
  109 + @Test
  110 + public void findReName() {
  111 + String name = "主";
  112 + List<BookDTO> allBookInfo = bookMongoService.findBookInfoReName(name);
  113 + System.out.println(allBookInfo);
  114 + }
  115 +
  116 + /**
  117 + * 根据阅读量:范围查询,排序
  118 + */
  119 + @Test
  120 + public void findReRange() {
  121 + // 注意,这里范围查询得时候,直接用作字符串去查,并不会把字符串里面得数字提取出来然后做范围查询,所以这里改成Double,改成Long坑太多.
  122 + Double minReadedNum = Double.parseDouble("8.3");
  123 + Double maxReadedNum = Double.parseDouble("18.0");
  124 + List<BookDTO> allBookInfo = bookMongoService.findBookInfoReRange(minReadedNum, maxReadedNum);
  125 + System.out.println(allBookInfo);
  126 + }
  127 +
  128 + /**
  129 + * 根据阅读量:范围查询,排序,分页(页码是物理下标,入数是逻辑下标)
  130 + */
  131 + @Test
  132 + public void findPage() {
  133 + // 注意,这里范围查询得时候,直接用作字符串去查,并不会把字符串里面得数字提取出来然后做范围查询,所以这里改成Double,改成Long坑太多.
  134 + Double minReadedNum = Double.parseDouble("7.0");
  135 + Double maxReadedNum = Double.parseDouble("35.9");
  136 + Integer pageNum = 2;
  137 + Integer pageSize = 2;
  138 + List<BookDTO> allBookInfo = bookMongoService.findBookInfoPage(minReadedNum, maxReadedNum, pageNum, pageSize);
  139 + System.out.println(allBookInfo);
  140 + }
  141 +
  142 + // 高级查询待写........
  143 +
  144 + /**
  145 + * 测试用
  146 + */
  147 + @Test
  148 + public void findAll3() {
  149 +
  150 +// staticScheduleTaskService.SynchronousDataRuildings();
  151 +
  152 +// staticScheduleTaskService.SynchronousDataContractsRoom();
  153 +// staticScheduleTaskService.SynchronousDataRuildings();
  154 +// staticScheduleTaskService.SynchronousDataRoom();
  155 +// staticScheduleTaskService.SynchronousDataContracts();
  156 +// staticScheduleTaskService.SynchronousDataAccounts();
  157 +// staticScheduleTaskService.SynchronousDataContractReceipts();
  158 +
  159 +
  160 +// staticScheduleTaskService.SynchronousDataContractAuditRecords();
  161 +// List<Room> allBookInfo = bookMongoService.findAllBookInfo3();
  162 +
  163 +//
  164 +// updateTingcheService.updateTjTcsjtjn();
  165 +// updateTingcheService.updateTjCljrsctjn();
  166 +// updateTingcheService.updateTjCljrsctjy();
  167 +// updateTingcheService.updateTjCljrsctjr();
  168 +
  169 +// updateTingcheService.updateTjJrcrktcsj(); 不用了
  170 +
  171 +
  172 +// updateTingcheService.updateTjParkingPayment();
  173 +// updateTingcheService.updateTjVehicleRecords();
  174 + }
  175 +}
src/main/java/com/songshu/mongo/tools/JDBCUtil.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/tools/JDBCUtil.java
@@ -0,0 +1,164 @@ @@ -0,0 +1,164 @@
  1 +package com.songshu.mongo.tools;
  2 +
  3 +import lombok.extern.slf4j.Slf4j;
  4 +
  5 +import java.sql.*;
  6 +import java.util.ArrayList;
  7 +import java.util.Map;
  8 +
  9 +@Slf4j
  10 +public class JDBCUtil {
  11 + private static Connection connection = null;
  12 + private static Statement statement = null;
  13 + private static ResultSet result = null;
  14 +
  15 +// //测试
  16 +// private static String url = "jdbc:mysql://192.168.145.30:3306/steedos2?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
  17 +// private static String username = "root";
  18 +// private static String password = "Peony@2022";
  19 +// private static String driver="com.mysql.jdbc.Driver";
  20 +
  21 +// //测试
  22 +// private static String url = "jdbc:mysql://192.168.3.5:3306/zulin?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
  23 +// private static String username = "root";
  24 +// private static String password = "Peony@2021";
  25 +// private static String driver="com.mysql.jdbc.Driver";
  26 + //生产
  27 + private static String url = "jdbc:mysql://192.168.145.30:3306/steedos?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
  28 + private static String username = "root";
  29 + private static String password = "Peony@2022";
  30 + private static String driver="com.mysql.jdbc.Driver";
  31 + static {
  32 + try {
  33 + //4.注册驱动
  34 + Class.forName(driver);
  35 + } catch (ClassNotFoundException e) {
  36 + // TODO Auto-generated catch block
  37 + e.printStackTrace();
  38 + } catch (Exception e) {
  39 + e.printStackTrace();
  40 + }
  41 + }
  42 +
  43 + public static Connection getConnection() {
  44 + try {
  45 +// log.info("开始连接mysql");
  46 +// log.info("url----------------》"+url);
  47 +// log.info("username----------------》"+username);
  48 +// log.info("password----------------》"+password);
  49 + connection = DriverManager.getConnection(url, username, password);
  50 + } catch (SQLException e) {
  51 + // TODO: handle exception
  52 + }
  53 +// log.info("连接mysql connection---------》"+connection);
  54 + return connection;
  55 +
  56 + }
  57 +
  58 + public static Statement getStatement() {
  59 + try {
  60 +// log.info("创建Statement 对象");
  61 +// log.info("connection----------------》"+connection);
  62 + statement = connection.createStatement();
  63 + } catch (SQLException e) {
  64 + // TODO Auto-generated catch block
  65 + e.printStackTrace();
  66 + }
  67 +// log.info("创建Statement 对象statement--------》"+statement);
  68 + return statement;
  69 +
  70 + }
  71 +
  72 + /**
  73 + * 查询
  74 + *
  75 + * @param sql
  76 + * @return
  77 + */
  78 + public static ResultSet executeQuery(String sql) {
  79 + try {
  80 + result = statement.executeQuery(sql);
  81 + } catch (SQLException e) {
  82 + // TODO Auto-generated catch block
  83 + e.printStackTrace();
  84 + }
  85 + return result;
  86 + }
  87 +
  88 + /**
  89 + * 修改
  90 + *
  91 + * @param sql
  92 + * @return
  93 + */
  94 + public static int executeUpdate(String sql) {
  95 + try {
  96 + int i = statement.executeUpdate(sql);
  97 + return i;
  98 + } catch (SQLException e) {
  99 + // TODO Auto-generated catch block
  100 + e.printStackTrace();
  101 + }
  102 + return 0;
  103 + }
  104 +
  105 + public static void getClose() {
  106 + if (connection != null) {
  107 + try {
  108 + connection.close();
  109 + } catch (SQLException e) {
  110 + // TODO Auto-generated catch block
  111 + e.printStackTrace();
  112 + }
  113 + connection = null;
  114 + }
  115 + if (statement != null) {
  116 + try {
  117 + statement.close();
  118 + } catch (SQLException e) {
  119 + // TODO Auto-generated catch block
  120 + e.printStackTrace();
  121 + }
  122 + statement = null;
  123 + }
  124 + if (result != null) {
  125 + try {
  126 + result.close();
  127 + } catch (SQLException e) {
  128 + // TODO Auto-generated catch block
  129 + e.printStackTrace();
  130 + result = null;
  131 + }
  132 + }
  133 + }
  134 +
  135 + /**
  136 + * 查询sql
  137 + *
  138 + * @param sql
  139 + * @return
  140 + */
  141 + public static ArrayList<Map> executeQueryList(String sql) {
  142 + ArrayList<String> titleNameList = new ArrayList<>();
  143 + ArrayList<Map> datalist = new ArrayList<Map>();
  144 + try {
  145 + result = statement.executeQuery(sql);
  146 + int columnCount = result.getMetaData().getColumnCount();
  147 + for (int i = 0; i < columnCount; i++) {
  148 + titleNameList.add(result.getMetaData().getColumnLabel((i + 1)));
  149 + }
  150 + while (result.next()) {
  151 + for (String name : titleNameList) {
  152 + datalist.add(MapFactory.create().put(name, result.getString(name)).getData());
  153 + }
  154 + }
  155 + } catch (SQLException e) {
  156 + // TODO Auto-generated catch block
  157 + e.printStackTrace();
  158 + }
  159 + return datalist;
  160 + }
  161 +
  162 +
  163 +}
  164 +
src/main/java/com/songshu/mongo/tools/JDBCUtilMysql.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/tools/JDBCUtilMysql.java
@@ -0,0 +1,167 @@ @@ -0,0 +1,167 @@
  1 +package com.songshu.mongo.tools;
  2 +
  3 +import lombok.extern.slf4j.Slf4j;
  4 +
  5 +import java.sql.*;
  6 +import java.util.ArrayList;
  7 +import java.util.Map;
  8 +
  9 +@Slf4j
  10 +public class JDBCUtilMysql {
  11 + private static Connection connection = null;
  12 + private static Statement statement = null;
  13 + private static ResultSet result = null;
  14 +
  15 +// //测试
  16 +// private static String url = "jdbc:mysql://192.168.145.30:3306/steedos2?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
  17 +// private static String username = "root";
  18 +// private static String password = "Peony@2022";
  19 +// private static String driver="com.mysql.jdbc.Driver";
  20 +
  21 +// //测试
  22 +// private static String url = "jdbc:mysql://192.168.3.5:3306/zulin?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true";
  23 +// private static String username = "root";
  24 +// private static String password = "Peony@2021";
  25 +// private static String driver="com.mysql.jdbc.Driver";
  26 + //生产
  27 + private static String url = "jdbc:mysql://192.168.145.30:3306/tingche?useUnicode=true&characterEncoding=utf-8" +
  28 + "&rewriteBatchedStatements=true" +
  29 + "&loginTimeout=6000000";
  30 + private static String username = "tingchegl";
  31 + private static String password = "tingchegl@123";
  32 + private static String driver="com.mysql.jdbc.Driver";
  33 + static {
  34 + try {
  35 + //4.注册驱动
  36 + Class.forName(driver);
  37 + } catch (ClassNotFoundException e) {
  38 + // TODO Auto-generated catch block
  39 + e.printStackTrace();
  40 + } catch (Exception e) {
  41 + e.printStackTrace();
  42 + }
  43 + }
  44 +
  45 + public static Connection getConnection() {
  46 + try {
  47 +// log.info("开始连接mysql");
  48 +// log.info("url----------------》"+url);
  49 +// log.info("username----------------》"+username);
  50 +// log.info("password----------------》"+password);
  51 + DriverManager.setLoginTimeout(6000000);
  52 + connection = DriverManager.getConnection(url, username, password);
  53 + } catch (SQLException e) {
  54 + // TODO: handle exception
  55 + }
  56 +// log.info("连接mysql connection---------》"+connection);
  57 + return connection;
  58 +
  59 + }
  60 +
  61 + public static Statement getStatement() {
  62 + try {
  63 +// log.info("创建Statement 对象");
  64 +// log.info("connection----------------》"+connection);
  65 + statement = connection.createStatement();
  66 + } catch (SQLException e) {
  67 + // TODO Auto-generated catch block
  68 + e.printStackTrace();
  69 + }
  70 +// log.info("创建Statement 对象statement--------》"+statement);
  71 + return statement;
  72 +
  73 + }
  74 +
  75 + /**
  76 + * 查询
  77 + *
  78 + * @param sql
  79 + * @return
  80 + */
  81 + public static ResultSet executeQuery(String sql) {
  82 + try {
  83 + result = statement.executeQuery(sql);
  84 + } catch (SQLException e) {
  85 + // TODO Auto-generated catch block
  86 + e.printStackTrace();
  87 + }
  88 + return result;
  89 + }
  90 +
  91 + /**
  92 + * 修改
  93 + *
  94 + * @param sql
  95 + * @return
  96 + */
  97 + public static int executeUpdate(String sql) {
  98 + try {
  99 + int i = statement.executeUpdate(sql);
  100 + return i;
  101 + } catch (SQLException e) {
  102 + // TODO Auto-generated catch block
  103 + e.printStackTrace();
  104 + }
  105 + return 0;
  106 + }
  107 +
  108 + public static void getClose() {
  109 + if (connection != null) {
  110 + try {
  111 + connection.close();
  112 + } catch (SQLException e) {
  113 + // TODO Auto-generated catch block
  114 + e.printStackTrace();
  115 + }
  116 + connection = null;
  117 + }
  118 + if (statement != null) {
  119 + try {
  120 + statement.close();
  121 + } catch (SQLException e) {
  122 + // TODO Auto-generated catch block
  123 + e.printStackTrace();
  124 + }
  125 + statement = null;
  126 + }
  127 + if (result != null) {
  128 + try {
  129 + result.close();
  130 + } catch (SQLException e) {
  131 + // TODO Auto-generated catch block
  132 + e.printStackTrace();
  133 + result = null;
  134 + }
  135 + }
  136 + }
  137 +
  138 + /**
  139 + * 查询sql
  140 + *
  141 + * @param sql
  142 + * @return
  143 + */
  144 + public static ArrayList<Map> executeQueryList(String sql) {
  145 + ArrayList<String> titleNameList = new ArrayList<>();
  146 + ArrayList<Map> datalist = new ArrayList<Map>();
  147 + try {
  148 + result = statement.executeQuery(sql);
  149 + int columnCount = result.getMetaData().getColumnCount();
  150 + for (int i = 0; i < columnCount; i++) {
  151 + titleNameList.add(result.getMetaData().getColumnLabel((i + 1)));
  152 + }
  153 + while (result.next()) {
  154 + for (String name : titleNameList) {
  155 + datalist.add(MapFactory.create().put(name, result.getString(name)).getData());
  156 + }
  157 + }
  158 + } catch (SQLException e) {
  159 + // TODO Auto-generated catch block
  160 + e.printStackTrace();
  161 + }
  162 + return datalist;
  163 + }
  164 +
  165 +
  166 +}
  167 +
src/main/java/com/songshu/mongo/tools/MapFactory.java 0 → 100644
  1 +++ a/src/main/java/com/songshu/mongo/tools/MapFactory.java
@@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
  1 +package com.songshu.mongo.tools;
  2 +
  3 +import java.util.HashMap;
  4 +import java.util.Map;
  5 +
  6 +
  7 +public class MapFactory {
  8 +
  9 + private Map data = new HashMap();
  10 + private MapFactory() {}
  11 +
  12 + public static MapFactory create() {
  13 + return new MapFactory();
  14 + }
  15 +
  16 + public static MapFactory create(Object key, Object value) {
  17 + return create().put(key, value);
  18 + }
  19 +
  20 + public MapFactory put(Object key, Object value) {
  21 + data.put(key, value);
  22 + return this;
  23 + }
  24 +
  25 + public Map getData() {
  26 + return data;
  27 + }
  28 +}
src/main/resources/application.properties 0 → 100644
  1 +++ a/src/main/resources/application.properties
@@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
  1 +server.port=8018
  2 +# ²âÊÔ
  3 +#spring.data.mongodb.uri=mongodb://Peony:Peony8228@contract.lichenxuan.top:33300/steedos
  4 +# Éú²ú
  5 +spring.data.mongodb.uri=mongodb://Peony:Peony8228@192.168.145.52:27017/steedos
  6 +#spring.data.mongodb.database=steedos
  7 +#spring.data.mongodb.port=33300
  8 +#spring.data.mongodb.username=Peony
  9 +#spring.data.mongodb.password=Peony8228
  10 +spring.data.mongodb.repositories.enabled=true
  11 +logging.level.org.springframework.data=WARN
  12 +logging.level.org.springframework.web = INFO