Commit a076131a7e8f71a8adc446e96b31f3333508b889
0 parents
Exists in
master
初始化提交
Showing
22 changed files
with
2375 additions
and
0 deletions
Show diff stats
1 | +++ a/pom.xml | |
... | ... | @@ -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 @@ |
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 @@ |
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 | +} | ... | ... |
1 | +++ a/src/main/java/com/songshu/mongo/model/dto/Accounts.java | |
... | ... | @@ -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 @@ |
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 | +} | ... | ... |
1 | +++ a/src/main/java/com/songshu/mongo/model/dto/BookDTO.java | |
... | ... | @@ -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 @@ |
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 @@ |
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 @@ |
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 | +} | ... | ... |
1 | +++ a/src/main/java/com/songshu/mongo/model/dto/Room.java | |
... | ... | @@ -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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 @@ |
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 | +} | ... | ... |
1 | +++ a/src/main/java/com/songshu/mongo/tools/JDBCUtil.java | |
... | ... | @@ -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 @@ |
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 | + | ... | ... |
1 | +++ a/src/main/java/com/songshu/mongo/tools/MapFactory.java | |
... | ... | @@ -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 | +} | ... | ... |
1 | +++ a/src/main/resources/application.properties | |
... | ... | @@ -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 | ... | ... |