Commit c8395069a185768a51395d63546f0bd284c46b2f

Authored by 潘钊
2 parents c5d6b4e6 a716be64

Merge branch 'minhang' into qingpu

# Conflicts:
#	src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
#	src/main/resources/application-dev.properties
#	src/main/resources/static/index.html
#	src/main/resources/static/login.html
#	src/main/resources/static/real_control_v2/css/line_schedule.css
#	src/main/resources/static/real_control_v2/main.html
Showing 64 changed files with 2210 additions and 1157 deletions

Too many changes to show.

To preserve performance only 64 of 508 files are displayed.

1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 2 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3 3
4 <modelVersion>4.0.0</modelVersion> 4 <modelVersion>4.0.0</modelVersion>
5 <groupId>com.bsth</groupId> 5 <groupId>com.bsth</groupId>
@@ -237,6 +237,33 @@ @@ -237,6 +237,33 @@
237 <version>1.13</version> 237 <version>1.13</version>
238 </dependency> 238 </dependency>
239 239
  240 + <dependency>
  241 + <groupId>org.dbunit</groupId>
  242 + <artifactId>dbunit</artifactId>
  243 + <version>2.4.9</version>
  244 + <scope>test</scope>
  245 +
  246 + <exclusions>
  247 + <exclusion>
  248 + <groupId>org.slf4j</groupId>
  249 + <artifactId>slf4j-api</artifactId>
  250 + </exclusion>
  251 + </exclusions>
  252 + </dependency>
  253 +
  254 + <dependency>
  255 + <groupId>com.h2database</groupId>
  256 + <artifactId>h2</artifactId>
  257 + <version>1.2.132</version>
  258 + <scope>test</scope>
  259 + </dependency>
  260 +
  261 +
  262 + <dependency>
  263 + <groupId>ojdbc</groupId>
  264 + <artifactId>ojdbc</artifactId>
  265 + <version>14</version>
  266 + </dependency>
240 </dependencies> 267 </dependencies>
241 268
242 <dependencyManagement> 269 <dependencyManagement>
src/main/java/com/bsth/Application.java
@@ -2,10 +2,6 @@ package com.bsth; @@ -2,10 +2,6 @@ package com.bsth;
2 2
3 import com.fasterxml.jackson.databind.ObjectMapper; 3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import com.fasterxml.jackson.databind.SerializationFeature; 4 import com.fasterxml.jackson.databind.SerializationFeature;
5 -  
6 -import java.util.concurrent.Executors;  
7 -import java.util.concurrent.ScheduledExecutorService;  
8 -  
9 import org.springframework.boot.SpringApplication; 5 import org.springframework.boot.SpringApplication;
10 import org.springframework.boot.autoconfigure.SpringBootApplication; 6 import org.springframework.boot.autoconfigure.SpringBootApplication;
11 import org.springframework.boot.builder.SpringApplicationBuilder; 7 import org.springframework.boot.builder.SpringApplicationBuilder;
@@ -13,10 +9,13 @@ import org.springframework.boot.context.web.SpringBootServletInitializer; @@ -13,10 +9,13 @@ import org.springframework.boot.context.web.SpringBootServletInitializer;
13 import org.springframework.context.annotation.Bean; 9 import org.springframework.context.annotation.Bean;
14 import org.springframework.context.annotation.Primary; 10 import org.springframework.context.annotation.Primary;
15 11
  12 +import java.util.concurrent.Executors;
  13 +import java.util.concurrent.ScheduledExecutorService;
  14 +
16 @SpringBootApplication 15 @SpringBootApplication
17 public class Application extends SpringBootServletInitializer { 16 public class Application extends SpringBootServletInitializer {
18 17
19 - public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(12); 18 + public static ScheduledExecutorService mainServices = Executors.newScheduledThreadPool(13);
20 19
21 @Override 20 @Override
22 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { 21 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
src/main/java/com/bsth/common/Constants.java
@@ -36,4 +36,14 @@ public class Constants { @@ -36,4 +36,14 @@ public class Constants {
36 36
37 public static final String SESSION_USERNAME = "sessionUserName"; 37 public static final String SESSION_USERNAME = "sessionUserName";
38 public static final String COMPANY_AUTHORITYS = "cmyAuths"; 38 public static final String COMPANY_AUTHORITYS = "cmyAuths";
  39 +
  40 + /**
  41 + * 解除调度指令和班次的外键约束
  42 + */
  43 + public static final String REMOVE_DIRECTIVE_SCH_FK = "update bsth_v_directive_60 set sch=NULL where sch=?";
  44 +
  45 + /**
  46 + * 批量解除调度指令和班次的外键约束
  47 + */
  48 + public static final String MULTI_REMOVE_DIRECTIVE_SCH_FK = "update bsth_v_directive_60 set sch=NULL where sch in ";
39 } 49 }
src/main/java/com/bsth/controller/BaseController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
3 -import com.bsth.common.ResponseCode;  
4 import com.bsth.service.BaseService; 3 import com.bsth.service.BaseService;
5 -import com.bsth.service.schedule.utils.DataImportExportService;  
6 import com.google.common.base.Splitter; 4 import com.google.common.base.Splitter;
7 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.data.domain.Page; 6 import org.springframework.data.domain.Page;
9 import org.springframework.data.domain.PageRequest; 7 import org.springframework.data.domain.PageRequest;
10 import org.springframework.data.domain.Sort; 8 import org.springframework.data.domain.Sort;
11 import org.springframework.data.domain.Sort.Direction; 9 import org.springframework.data.domain.Sort.Direction;
12 -import org.springframework.util.CollectionUtils;  
13 import org.springframework.web.bind.annotation.PathVariable; 10 import org.springframework.web.bind.annotation.PathVariable;
14 import org.springframework.web.bind.annotation.RequestMapping; 11 import org.springframework.web.bind.annotation.RequestMapping;
15 import org.springframework.web.bind.annotation.RequestMethod; 12 import org.springframework.web.bind.annotation.RequestMethod;
16 import org.springframework.web.bind.annotation.RequestParam; 13 import org.springframework.web.bind.annotation.RequestParam;
17 -import org.springframework.web.multipart.MultipartFile;  
18 14
19 -import javax.servlet.http.HttpServletResponse;  
20 -import java.io.*; 15 +import java.io.Serializable;
21 import java.util.ArrayList; 16 import java.util.ArrayList;
22 -import java.util.HashMap;  
23 import java.util.List; 17 import java.util.List;
24 import java.util.Map; 18 import java.util.Map;
25 19
@@ -35,8 +29,6 @@ public class BaseController&lt;T, ID extends Serializable&gt; { @@ -35,8 +29,6 @@ public class BaseController&lt;T, ID extends Serializable&gt; {
35 29
36 @Autowired 30 @Autowired
37 protected BaseService<T, ID> baseService; 31 protected BaseService<T, ID> baseService;
38 - @Autowired  
39 - DataImportExportService dataImportExportService;  
40 32
41 /** 33 /**
42 * @param @param map 查询条件 34 * @param @param map 查询条件
@@ -126,115 +118,4 @@ public class BaseController&lt;T, ID extends Serializable&gt; { @@ -126,115 +118,4 @@ public class BaseController&lt;T, ID extends Serializable&gt; {
126 return baseService.delete(id); 118 return baseService.delete(id);
127 } 119 }
128 120
129 - /**  
130 - * 上传数据文件,并使用ktr转换文件导入数据。  
131 - *  
132 - * @param file  
133 - * @return  
134 - * @throws Exception  
135 - */  
136 - @RequestMapping(value = "/dataImport", method = RequestMethod.POST)  
137 - public Map<String, Object> uploadDataAndImport(MultipartFile file) throws Exception {  
138 - Map<String, Object> resultMap = new HashMap<>();  
139 -  
140 - try {  
141 - // 获取ktr转换文件绝对路径  
142 - File ktrfile = new File(this.getClass().getResource(getDataImportKtrClasspath()).toURI());  
143 - System.out.println(ktrfile.getAbsolutePath());  
144 - // 导入数据  
145 - dataImportExportService.fileDataImport(file, ktrfile);  
146 -  
147 - resultMap.put("status", ResponseCode.SUCCESS);  
148 - resultMap.put("msg", "导入成功");  
149 - } catch (Exception exp) {  
150 - exp.printStackTrace();  
151 - resultMap.put("status", ResponseCode.ERROR);  
152 - resultMap.put("msg", exp.getLocalizedMessage());  
153 - }  
154 -  
155 - return resultMap;  
156 - }  
157 -  
158 - /**  
159 - * 使用ktr导出数据。  
160 - *  
161 - * @param response  
162 - * @throws Exception  
163 - */  
164 - @RequestMapping(value = "/dataExport", method = RequestMethod.GET)  
165 - public void dataExport(HttpServletResponse response) throws Exception {  
166 - dataExport(response, null);  
167 - }  
168 -  
169 - @RequestMapping(value = "/dataExportExt", method = RequestMethod.GET)  
170 - public void dataExport(HttpServletResponse response, @RequestParam Map<String, Object> param) throws Exception {  
171 - // 1、使用ktr转换获取输出文件  
172 - File ktrfile = new File(this.getClass().getResource(getDataExportKtrClasspath()).toURI());  
173 - File outputfile = null;  
174 - if (!CollectionUtils.isEmpty(param)) {  
175 - outputfile = dataImportExportService.fileDataOutput(  
176 - getDataExportFilename(),  
177 - ktrfile,  
178 - param);  
179 - } else {  
180 - outputfile = dataImportExportService.fileDataOutput(  
181 - getDataExportFilename(),  
182 - ktrfile);  
183 - }  
184 -  
185 - System.out.println(outputfile.getName());  
186 - String filePath = outputfile.getAbsolutePath();  
187 - String fp[] = filePath.split(File.separator);  
188 - String fileName = fp[fp.length - 1];  
189 -  
190 - // TODO:使用ktr获取导出数据  
191 -  
192 - response.setHeader("conent-type", "application/octet-stream");  
193 - response.setContentType("application/octet-stream");  
194 - response.setHeader("Content-Disposition", "attachment; filename=" + "东东");  
195 -  
196 - OutputStream os = response.getOutputStream();  
197 - BufferedOutputStream bos = new BufferedOutputStream(os);  
198 -  
199 - InputStream is = null;  
200 -  
201 - is = new FileInputStream(filePath);  
202 - BufferedInputStream bis = new BufferedInputStream(is);  
203 -  
204 - int length = 0;  
205 - byte[] temp = new byte[1 * 1024 * 10];  
206 -  
207 - while ((length = bis.read(temp)) != -1) {  
208 - bos.write(temp, 0, length);  
209 - }  
210 - bos.flush();  
211 - bis.close();  
212 - bos.close();  
213 - is.close();  
214 - }  
215 -  
216 - /**  
217 - * @return 数据导出的ktr转换文件类路径。  
218 - */  
219 - protected String getDataExportKtrClasspath() {  
220 - // 默认返回异常,子类如果要使用导出功能,必须覆写此方法,指定ktr文件类路径  
221 - throw new RuntimeException("必须override,并指定ktr classpath");  
222 - }  
223 -  
224 - /**  
225 - * @return 导出文件名。  
226 - */  
227 - protected String getDataExportFilename() {  
228 - // 默认返回异常,子类如果要使用导出功能,必须覆写此方法,指定导出的文件路径名  
229 - throw new RuntimeException("必须override,并指定导出文件名");  
230 - }  
231 -  
232 - /**  
233 - * @return 数据导入的ktr转换文件类路径。  
234 - */  
235 - protected String getDataImportKtrClasspath() {  
236 - // 默认返回异常,子类如果要使用导入功能,必须覆写此方法,指定ktr文件类路径  
237 - throw new RuntimeException("必须override,并指定ktr classpath");  
238 - }  
239 -  
240 } 121 }
src/main/java/com/bsth/controller/BaseController2.java deleted 100644 → 0
1 -package com.bsth.controller;  
2 -  
3 -  
4 -import com.bsth.common.ResponseCode;  
5 -import com.bsth.service.BaseService;  
6 -import com.bsth.service.schedule.utils.DataImportExportService;  
7 -import com.google.common.base.Splitter;  
8 -import jxl.Sheet;  
9 -import jxl.Workbook;  
10 -import org.springframework.beans.factory.annotation.Autowired;  
11 -import org.springframework.data.domain.Page;  
12 -import org.springframework.data.domain.PageRequest;  
13 -import org.springframework.data.domain.Sort;  
14 -import org.springframework.util.CollectionUtils;  
15 -import org.springframework.web.bind.annotation.*;  
16 -import org.springframework.web.multipart.MultipartFile;  
17 -  
18 -import javax.servlet.http.HttpServletResponse;  
19 -import java.io.*;  
20 -import java.util.ArrayList;  
21 -import java.util.HashMap;  
22 -import java.util.List;  
23 -import java.util.Map;  
24 -  
25 -/**  
26 - * Created by xu on 16/11/3.  
27 - */  
28 -public class BaseController2<T, ID extends Serializable> {  
29 -  
30 - @Autowired  
31 - protected BaseService<T, ID> baseService;  
32 - @Autowired  
33 - DataImportExportService dataImportExportService;  
34 -  
35 - /**  
36 - *  
37 - * @Title: list  
38 - * @Description: TODO(多条件分页查询)  
39 - * @param @param map 查询条件  
40 - * @param @param page 页码  
41 - * @param @param size 每页显示数量  
42 - * @throws  
43 - */  
44 - @RequestMapping(method = RequestMethod.GET)  
45 - public Page<T> list(@RequestParam Map<String, Object> map,  
46 - @RequestParam(defaultValue = "0") int page,  
47 - @RequestParam(defaultValue = "10") int size,  
48 - @RequestParam(defaultValue = "id") String order,  
49 - @RequestParam(defaultValue = "DESC") String direction){  
50 -  
51 - // 允许多个字段排序,order可以写单个字段,也可以写多个字段  
52 - // 多个字段格式:{col1},{col2},{col3},....,{coln}  
53 - List<String> order_columns = Splitter.on(",").trimResults().splitToList(order);  
54 - // 多字段排序:DESC,ASC...  
55 - List<String> order_dirs = Splitter.on(",").trimResults().splitToList(direction);  
56 -  
57 - if (order_dirs.size() == 1) { // 所有字段采用一种排序  
58 - if (null != order_dirs.get(0) && order_dirs.get(0).equals("ASC")) {  
59 - return baseService.list(map, new PageRequest(page, size, new Sort(Sort.Direction.ASC, order_columns)));  
60 - } else {  
61 - return baseService.list(map, new PageRequest(page, size, new Sort(Sort.Direction.DESC, order_columns)));  
62 - }  
63 - } else if (order_columns.size() == order_dirs.size()) {  
64 - List<Sort.Order> orderList = new ArrayList<>();  
65 - for (int i = 0; i < order_columns.size(); i++) {  
66 - if (null != order_dirs.get(i) && order_dirs.get(i).equals("ASC")) {  
67 - orderList.add(new Sort.Order(Sort.Direction.ASC, order_columns.get(i)));  
68 - } else {  
69 - orderList.add(new Sort.Order(Sort.Direction.DESC, order_columns.get(i)));  
70 - }  
71 - }  
72 - return baseService.list(map, new PageRequest(page, size, new Sort(orderList)));  
73 - } else {  
74 - throw new RuntimeException("多字段排序参数格式问题,排序顺序和字段数不一致");  
75 - }  
76 - }  
77 -  
78 - /**  
79 - *  
80 - * @Title: list  
81 - * @Description: TODO(多条件查询)  
82 - * @param @param map  
83 - * @throws  
84 - */  
85 - @RequestMapping(value = "/all", method = RequestMethod.GET)  
86 - public Iterable<T> list(@RequestParam Map<String, Object> map){  
87 - return baseService.list(map);  
88 - }  
89 -  
90 - /**  
91 - * 这里保存直接返回保存后的对象,不自己定义Map返回了,和前端angularjs配合。  
92 - * form也可以提交,但是页面参数可能不全,  
93 - * json的化比较灵活,但是貌似有多余属性也会报错,或者碰到lazy属性值,也有问题  
94 - * 不论form,还是json提交都能解决问题,就看哪个方便哪个来  
95 - *  
96 - * @param t 参数需要使用@RequestBody转换json成对象  
97 - * @return  
98 - */  
99 - @RequestMapping(method = RequestMethod.POST)  
100 - public T save(@RequestBody T t) {  
101 - baseService.save(t);  
102 - return t;  
103 - }  
104 -  
105 - @RequestMapping(value="/{id}", method = RequestMethod.POST)  
106 - public T update(@RequestBody T t) {  
107 - baseService.save(t);  
108 - return t;  
109 - }  
110 -  
111 - /**  
112 - *  
113 - * @Title: findById  
114 - * @Description: TODO(根据主键获取单个对象)  
115 - * @param @param id  
116 - * @throws  
117 - */  
118 - @RequestMapping(value="/{id}",method = RequestMethod.GET)  
119 - public T findById(@PathVariable("id") ID id){  
120 - return baseService.findById(id);  
121 - }  
122 -  
123 - /**  
124 - *  
125 - * @Title: delete  
126 - * @Description: TODO(根据主键删除对象)  
127 - * @param @param id  
128 - * @throws  
129 - */  
130 - @RequestMapping(value="/{id}",method = RequestMethod.DELETE)  
131 - public Map<String, Object> delete(@PathVariable("id") ID id){  
132 - return baseService.delete(id);  
133 - }  
134 -  
135 - /**  
136 - * 上传数据文件,并使用ktr转换文件导入数据。  
137 - * @param file  
138 - * @return  
139 - * @throws Exception  
140 - */  
141 - @RequestMapping(value = "/dataImport", method = RequestMethod.POST)  
142 - public Map<String, Object> uploadDataAndImport(MultipartFile file) throws Exception {  
143 - Map<String, Object> resultMap = new HashMap<>();  
144 -  
145 - try {  
146 - // 获取ktr转换文件绝对路径  
147 - File ktrfile = new File(this.getClass().getResource(getDataImportKtrClasspath()).toURI());  
148 - System.out.println(ktrfile.getAbsolutePath());  
149 - // 导入数据  
150 - dataImportExportService.fileDataImport(file, ktrfile);  
151 -  
152 - resultMap.put("status", ResponseCode.SUCCESS);  
153 - resultMap.put("msg", "导入成功");  
154 - } catch (Exception exp) {  
155 - exp.printStackTrace();  
156 - resultMap.put("status", ResponseCode.ERROR);  
157 - resultMap.put("msg", exp.getLocalizedMessage());  
158 - }  
159 -  
160 - return resultMap;  
161 - }  
162 -  
163 - /**  
164 - * 使用ktr导出数据。  
165 - * @param response  
166 - * @throws Exception  
167 - */  
168 - @RequestMapping(value = "/dataExport", method = RequestMethod.GET)  
169 - public void dataExport(HttpServletResponse response) throws Exception {  
170 - dataExport(response, null);  
171 - }  
172 -  
173 - @RequestMapping(value = "/dataExportExt", method = RequestMethod.GET)  
174 - public void dataExport(HttpServletResponse response, @RequestParam Map<String, Object> param) throws Exception {  
175 - // 1、使用ktr转换获取输出文件  
176 - File ktrfile = new File(this.getClass().getResource(getDataExportKtrClasspath()).toURI());  
177 - File outputfile = null;  
178 - if (!CollectionUtils.isEmpty(param)) {  
179 - outputfile = dataImportExportService.fileDataOutput(  
180 - getDataExportFilename(),  
181 - ktrfile,  
182 - param);  
183 - } else {  
184 - outputfile = dataImportExportService.fileDataOutput(  
185 - getDataExportFilename(),  
186 - ktrfile);  
187 - }  
188 -  
189 - System.out.println(outputfile.getName());  
190 - System.out.println(outputfile.getAbsolutePath());  
191 -  
192 - String filePath = outputfile.getAbsolutePath();  
193 -// String fp[] = filePath.split(File.separator);  
194 -// String fileName = fp[fp.length - 1];  
195 -  
196 - // TODO:使用ktr获取导出数据  
197 -  
198 - response.setHeader("conent-type", "application/octet-stream");  
199 - response.setContentType("application/octet-stream");  
200 - response.setHeader("Content-Disposition", "attachment; filename=" + "东东");  
201 -  
202 - OutputStream os = response.getOutputStream();  
203 - BufferedOutputStream bos = new BufferedOutputStream(os);  
204 -  
205 - InputStream is = null;  
206 -  
207 - is = new FileInputStream(filePath);  
208 - BufferedInputStream bis = new BufferedInputStream(is);  
209 -  
210 - int length = 0;  
211 - byte[] temp = new byte[1 * 1024 * 10];  
212 -  
213 - while ((length = bis.read(temp)) != -1) {  
214 - bos.write(temp, 0, length);  
215 - }  
216 - bos.flush();  
217 - bis.close();  
218 - bos.close();  
219 - is.close();  
220 - }  
221 -  
222 - /**  
223 - * @return 数据导出的ktr转换文件类路径。  
224 - */  
225 - protected String getDataExportKtrClasspath() {  
226 - // 默认返回异常,子类如果要使用导出功能,必须覆写此方法,指定ktr文件类路径  
227 - throw new RuntimeException("必须override,并指定ktr classpath");  
228 - }  
229 -  
230 - /**  
231 - * @return 导出文件名。  
232 - */  
233 - protected String getDataExportFilename() {  
234 - // 默认返回异常,子类如果要使用导出功能,必须覆写此方法,指定导出的文件路径名  
235 - throw new RuntimeException("必须override,并指定导出文件名");  
236 - }  
237 -  
238 - /**  
239 - * @return 数据导入的ktr转换文件类路径。  
240 - */  
241 - protected String getDataImportKtrClasspath() {  
242 - // 默认返回异常,子类如果要使用导入功能,必须覆写此方法,指定ktr文件类路径  
243 - throw new RuntimeException("必须override,并指定ktr classpath");  
244 - }  
245 -  
246 -  
247 - public static class ExcelFileOutput {  
248 - private String fileName;  
249 - private List<Map<String, Object>> sheetnames = new ArrayList<>();  
250 -  
251 - public String getFileName() {  
252 - return fileName;  
253 - }  
254 -  
255 - public void setFileName(String fileName) {  
256 - this.fileName = fileName;  
257 - }  
258 -  
259 - public List<Map<String, Object>> getSheetnames() {  
260 - return sheetnames;  
261 - }  
262 -  
263 - public void setSheetnames(List<Map<String, Object>> sheetnames) {  
264 - this.sheetnames = sheetnames;  
265 - }  
266 - }  
267 -  
268 - /**  
269 - * 上传Excel文件,返回文件全路径名,工作区名称列表。  
270 - * @param file  
271 - * @return  
272 - * @throws Exception  
273 - */  
274 - @RequestMapping(value = "/uploadFile", method = RequestMethod.POST)  
275 - public ExcelFileOutput fileUpload(MultipartFile file) throws Exception {  
276 - // 返回对象  
277 - ExcelFileOutput rs = new ExcelFileOutput();  
278 -  
279 - // 上传文件  
280 - File file1 = dataImportExportService.uploadFile(file);  
281 - // 获取文件的sheet  
282 - Workbook book = Workbook.getWorkbook(file1);  
283 - for (Sheet sheet : book.getSheets()) {  
284 - String sheetname = sheet.getName();  
285 - Map<String, Object> s = new HashMap<>();  
286 - s.put("name", sheetname);  
287 - rs.getSheetnames().add(s);  
288 - }  
289 -  
290 - rs.setFileName(file1.getAbsolutePath());  
291 - return rs;  
292 - }  
293 -  
294 -}  
src/main/java/com/bsth/controller/BusinessController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
  3 +import org.springframework.beans.factory.annotation.Autowired;
3 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RequestMapping;
  5 +import org.springframework.web.bind.annotation.RequestMethod;
4 import org.springframework.web.bind.annotation.RestController; 6 import org.springframework.web.bind.annotation.RestController;
5 7
6 import com.bsth.entity.Business; 8 import com.bsth.entity.Business;
  9 +import com.bsth.service.BusinessService;
  10 +import com.bsth.util.GetUIDAndCode;
7 11
8 /** 12 /**
9 * 13 *
@@ -23,5 +27,11 @@ import com.bsth.entity.Business; @@ -23,5 +27,11 @@ import com.bsth.entity.Business;
23 @RestController 27 @RestController
24 @RequestMapping("business") 28 @RequestMapping("business")
25 public class BusinessController extends BaseController<Business, Integer> { 29 public class BusinessController extends BaseController<Business, Integer> {
26 - 30 + @Autowired
  31 + private BusinessService businessService;
  32 +
  33 + @RequestMapping(value = "getCompCode", method = RequestMethod.GET)
  34 + public long getLineCode() {
  35 + return businessService.getCompCode();
  36 + }
27 } 37 }
src/main/java/com/bsth/controller/CarsController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
3 -import com.bsth.common.ResponseCode;  
4 import com.bsth.entity.Cars; 3 import com.bsth.entity.Cars;
5 -import com.bsth.service.schedule.utils.DataImportExportService;  
6 -import com.bsth.service.schedule.utils.DataToolsProperties;  
7 -import org.springframework.beans.factory.annotation.Autowired;  
8 -import org.springframework.boot.context.properties.EnableConfigurationProperties;  
9 import org.springframework.web.bind.annotation.RequestMapping; 4 import org.springframework.web.bind.annotation.RequestMapping;
10 -import org.springframework.web.bind.annotation.RequestMethod;  
11 -import org.springframework.web.bind.annotation.RequestParam;  
12 import org.springframework.web.bind.annotation.RestController; 5 import org.springframework.web.bind.annotation.RestController;
13 6
14 -import java.io.File;  
15 -import java.util.HashMap;  
16 -import java.util.Map;  
17 -  
18 /** 7 /**
19 * Created by xu on 16/5/31. 8 * Created by xu on 16/5/31.
20 */ 9 */
21 @RestController 10 @RestController
22 @RequestMapping("cars") 11 @RequestMapping("cars")
23 -@EnableConfigurationProperties(DataToolsProperties.class)  
24 -public class CarsController extends BaseController2<Cars, Integer> {  
25 -  
26 - @Autowired  
27 - private DataToolsProperties dataToolsProperties;  
28 - @Autowired  
29 - private DataImportExportService dataImportExportService;  
30 -  
31 - /**  
32 - * 验证。  
33 - * @param map  
34 - * @return  
35 - */  
36 - @RequestMapping(value = "/validate/equale", method = RequestMethod.GET)  
37 - public Map<String, Object> validateData(@RequestParam Map<String, Object> map) {  
38 - // 一般比较自编号是否重复  
39 - return baseService.validateEquale(map);  
40 - }  
41 -  
42 - // uploadFile post  
43 -  
44 - // 验证excel sheet  
45 - @RequestMapping(value = "/validate/sheet", method = RequestMethod.GET)  
46 - public Map<String, Object> validateSheet() throws Exception {  
47 - Map<String, Object> rtn = new HashMap<>();  
48 -  
49 - // TODO:  
50 -  
51 - rtn.put("status", ResponseCode.SUCCESS);  
52 - return rtn;  
53 - }  
54 -  
55 - @RequestMapping(value = "/importfile", method = RequestMethod.POST)  
56 - public Map<String, Object> importData(  
57 - @RequestParam Map<String, Object> form)  
58 - throws Exception {  
59 - Map<String, Object> rtn = new HashMap<>();  
60 -  
61 - // TODO:  
62 - String filename = (String) form.get("filename");  
63 -  
64 -  
65 - try {  
66 - // 获取ktr转换文件绝对路径  
67 - File ktrfile = new File(this.getClass().getResource(getDataImportKtrClasspath()).toURI());  
68 - System.out.println(ktrfile.getAbsolutePath());  
69 - // 导入数据  
70 - dataImportExportService.fileDataImport(new File(filename), ktrfile);  
71 -  
72 - rtn.put("status", ResponseCode.SUCCESS);  
73 - rtn.put("msg", "导入成功");  
74 - } catch (Exception exp) {  
75 - exp.printStackTrace();  
76 - rtn.put("status", ResponseCode.ERROR);  
77 - rtn.put("msg", exp.getLocalizedMessage());  
78 - }  
79 -  
80 - return rtn;  
81 - }  
82 -  
83 -  
84 - @Override  
85 - protected String getDataImportKtrClasspath() {  
86 - return dataToolsProperties.getCarsDatainputktr();  
87 - }  
88 -  
89 - @Override  
90 - protected String getDataExportKtrClasspath() {  
91 - return dataToolsProperties.getCarsDataoutputktr();  
92 - } 12 +public class CarsController extends BaseController<Cars, Integer> {
93 13
94 - @Override  
95 - protected String getDataExportFilename() {  
96 - return "车辆基础数据";  
97 - }  
98 } 14 }
src/main/java/com/bsth/controller/DownloadController.java
@@ -100,4 +100,29 @@ public class DownloadController @@ -100,4 +100,29 @@ public class DownloadController
100 os.close(); 100 os.close();
101 file.delete(); 101 file.delete();
102 } 102 }
  103 +
  104 +
  105 + @RequestMapping("downloadModel")
  106 + public void downloadModel(HttpServletResponse response,String fileName)
  107 + throws IOException {
  108 +// String fileNames=URLDecoder.decode(fileName,"UTF-8");
  109 + fileName =fileName + ".xls";
  110 + String moudelPath = this.getClass().getResource("/").getPath()+ "static/pages/forms/export/"+fileName;
  111 + File file = new File(moudelPath);// path是根据日志路径和文件名拼接出来的
  112 +// String filename = file.getName();// 获取日志文件名称
  113 + InputStream fis = new BufferedInputStream(new FileInputStream(moudelPath));
  114 + byte[] buffer = new byte[fis.available()];
  115 + fis.read(buffer);
  116 + fis.close();
  117 + response.reset();
  118 + response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
  119 + response.addHeader("Content-Length", "" + file.length());
  120 + OutputStream os = new BufferedOutputStream(response.getOutputStream());
  121 + response.setContentType("application/octet-stream");
  122 + os.write(buffer);// 输出文件
  123 + os.flush();
  124 + os.close();
  125 + }
  126 +
  127 +
103 } 128 }
src/main/java/com/bsth/controller/PersonnelController.java
@@ -2,10 +2,11 @@ package com.bsth.controller; @@ -2,10 +2,11 @@ package com.bsth.controller;
2 2
3 import com.bsth.entity.Personnel; 3 import com.bsth.entity.Personnel;
4 import com.bsth.service.PersonnelService; 4 import com.bsth.service.PersonnelService;
5 -import com.bsth.service.schedule.utils.DataToolsProperties;  
6 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.beans.factory.annotation.Autowired;
7 -import org.springframework.boot.context.properties.EnableConfigurationProperties;  
8 -import org.springframework.web.bind.annotation.*; 6 +import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestMethod;
  8 +import org.springframework.web.bind.annotation.RequestParam;
  9 +import org.springframework.web.bind.annotation.RestController;
9 10
10 import java.util.List; 11 import java.util.List;
11 import java.util.Map; 12 import java.util.Map;
@@ -15,54 +16,11 @@ import java.util.Map; @@ -15,54 +16,11 @@ import java.util.Map;
15 */ 16 */
16 @RestController 17 @RestController
17 @RequestMapping("personnel") 18 @RequestMapping("personnel")
18 -@EnableConfigurationProperties(DataToolsProperties.class)  
19 public class PersonnelController extends BaseController<Personnel, Integer> { 19 public class PersonnelController extends BaseController<Personnel, Integer> {
20 20
21 @Autowired 21 @Autowired
22 - private DataToolsProperties dataToolsProperties;  
23 -  
24 - @Autowired  
25 private PersonnelService service; 22 private PersonnelService service;
26 - /**  
27 - * 覆写方法,因为form提交的方式参数不全,改用 json形式提交 @RequestBody  
28 - * @Title: save  
29 - * @Description: TODO(持久化对象)  
30 - * @param @param t  
31 - * @param @return 设定文件  
32 - * @return Map<String,Object> {status: 1(成功),-1(失败)}  
33 - * @throws  
34 - */  
35 - @RequestMapping(method = RequestMethod.POST)  
36 - public Map<String, Object> save(@RequestBody Personnel t){  
37 - return baseService.save(t);  
38 - }  
39 -  
40 - /**  
41 - * 验证。  
42 - * @param map  
43 - * @return  
44 - */  
45 - @RequestMapping(value = "/validate/equale", method = RequestMethod.GET)  
46 - public Map<String, Object> validateData(@RequestParam Map<String, Object> map) {  
47 - // 一般比较相同公司下工号是否相同  
48 - return baseService.validateEquale(map);  
49 - }  
50 -  
51 - @Override  
52 - protected String getDataImportKtrClasspath() {  
53 - return dataToolsProperties.getEmployeesDatainputktr();  
54 - }  
55 -  
56 - @Override  
57 - protected String getDataExportKtrClasspath() {  
58 - return dataToolsProperties.getEmployeesDataoutputktr();  
59 - }  
60 23
61 - @Override  
62 - protected String getDataExportFilename() {  
63 - return "人员基础信息";  
64 - }  
65 -  
66 @RequestMapping(value = "/sreachPersonnel", method = RequestMethod.GET) 24 @RequestMapping(value = "/sreachPersonnel", method = RequestMethod.GET)
67 public List<Map<String, String>> sreachPersonnel(@RequestParam String jobCode) { 25 public List<Map<String, String>> sreachPersonnel(@RequestParam String jobCode) {
68 return service.sreachPersonnel(jobCode); 26 return service.sreachPersonnel(jobCode);
src/main/java/com/bsth/controller/SectionController.java
@@ -48,13 +48,9 @@ public class SectionController extends BaseController&lt;Section, Integer&gt; { @@ -48,13 +48,9 @@ public class SectionController extends BaseController&lt;Section, Integer&gt; {
48 */ 48 */
49 @RequestMapping(value="sectionSave" , method = RequestMethod.POST) 49 @RequestMapping(value="sectionSave" , method = RequestMethod.POST)
50 public Map<String, Object> sectionSave(@RequestParam Map<String, Object> map) { 50 public Map<String, Object> sectionSave(@RequestParam Map<String, Object> map) {
51 -  
52 map.put("createBy", ""); 51 map.put("createBy", "");
53 -  
54 map.put("updateBy", ""); 52 map.put("updateBy", "");
55 -  
56 return service.sectionSave(map); 53 return service.sectionSave(map);
57 -  
58 } 54 }
59 55
60 /** 56 /**
src/main/java/com/bsth/controller/SectionRouteController.java
@@ -35,6 +35,17 @@ public class SectionRouteController extends BaseController&lt;SectionRoute, Integer @@ -35,6 +35,17 @@ public class SectionRouteController extends BaseController&lt;SectionRoute, Integer
35 @Autowired 35 @Autowired
36 SectionRouteService routeService; 36 SectionRouteService routeService;
37 37
  38 + /**
  39 + * @param @param map
  40 + * @throws
  41 + * @Title: list
  42 + * @Description: TODO(多条件查询)
  43 + */
  44 + @RequestMapping(value = "/all", method = RequestMethod.GET)
  45 + public Iterable<SectionRoute> list(@RequestParam Map<String, Object> map) {
  46 + return routeService.list(map);
  47 + }
  48 +
38 /** 49 /**
39 * @Description :TODO(查询路段信息) 50 * @Description :TODO(查询路段信息)
40 * 51 *
@@ -57,7 +68,6 @@ public class SectionRouteController extends BaseController&lt;SectionRoute, Integer @@ -57,7 +68,6 @@ public class SectionRouteController extends BaseController&lt;SectionRoute, Integer
57 */ 68 */
58 @RequestMapping(value = "/findSectionRouteInfoFormId",method = RequestMethod.GET) 69 @RequestMapping(value = "/findSectionRouteInfoFormId",method = RequestMethod.GET)
59 public List<Map<String, Object>> findSectionRouteInfoFormId(@RequestParam Map<String, Object> map) { 70 public List<Map<String, Object>> findSectionRouteInfoFormId(@RequestParam Map<String, Object> map) {
60 -  
61 return routeService.findSectionRouteInfoFormId(map); 71 return routeService.findSectionRouteInfoFormId(map);
62 } 72 }
63 73
@@ -72,4 +82,14 @@ public class SectionRouteController extends BaseController&lt;SectionRoute, Integer @@ -72,4 +82,14 @@ public class SectionRouteController extends BaseController&lt;SectionRoute, Integer
72 public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) { 82 public List<Map<String, Object>> findUpStationRouteCode(@RequestParam Map<String, Object> map) {
73 return routeService.findUpSectionRouteCode(map); 83 return routeService.findUpSectionRouteCode(map);
74 } 84 }
  85 +
  86 + /**
  87 + * @Description :TODO(引用路段)
  88 + *
  89 + * @return List<Map<String, Object>>
  90 + */
  91 + @RequestMapping(value = "/quoteSection" , method = RequestMethod.POST)
  92 + public Map<String, Object> quoteSection(@RequestParam Map<String, Object> map) {
  93 + return routeService.quoteSection(map);
  94 + }
75 } 95 }
src/main/java/com/bsth/controller/StationController.java
@@ -60,16 +60,12 @@ public class StationController extends BaseController&lt;Station, Integer&gt; { @@ -60,16 +60,12 @@ public class StationController extends BaseController&lt;Station, Integer&gt; {
60 */ 60 */
61 @RequestMapping(value="collectionSave" , method = RequestMethod.POST) 61 @RequestMapping(value="collectionSave" , method = RequestMethod.POST)
62 public Map<String, Object> collectionSave(@RequestParam Map<String, Object> map) { 62 public Map<String, Object> collectionSave(@RequestParam Map<String, Object> map) {
63 -  
64 return service.systemSaveStations(map); 63 return service.systemSaveStations(map);
65 -  
66 } 64 }
67 65
68 @RequestMapping(value="manualSave" , method = RequestMethod.POST) 66 @RequestMapping(value="manualSave" , method = RequestMethod.POST)
69 public Map<String, Object> manualSave(@RequestParam Map<String, Object> map) { 67 public Map<String, Object> manualSave(@RequestParam Map<String, Object> map) {
70 -  
71 return service.manualSave(map); 68 return service.manualSave(map);
72 -  
73 } 69 }
74 70
75 /** 71 /**
@@ -89,13 +85,9 @@ public class StationController extends BaseController&lt;Station, Integer&gt; { @@ -89,13 +85,9 @@ public class StationController extends BaseController&lt;Station, Integer&gt; {
89 */ 85 */
90 @RequestMapping(value="stationSave" , method = RequestMethod.POST) 86 @RequestMapping(value="stationSave" , method = RequestMethod.POST)
91 public Map<String, Object> stationSave(@RequestParam Map<String, Object> map) { 87 public Map<String, Object> stationSave(@RequestParam Map<String, Object> map) {
92 -  
93 map.put("createBy", ""); 88 map.put("createBy", "");
94 -  
95 map.put("updateBy", ""); 89 map.put("updateBy", "");
96 -  
97 return service.stationSaveMap(map); 90 return service.stationSaveMap(map);
98 -  
99 } 91 }
100 92
101 /** 93 /**
src/main/java/com/bsth/controller/StationRouteController.java
@@ -36,6 +36,17 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer @@ -36,6 +36,17 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
36 @Autowired 36 @Autowired
37 StationRouteRepository stationRouteRepository; 37 StationRouteRepository stationRouteRepository;
38 38
  39 + /**
  40 + * @param @param map
  41 + * @throws
  42 + * @Title: list
  43 + * @Description: TODO(多条件查询)
  44 + */
  45 + @RequestMapping(value = "/all", method = RequestMethod.GET)
  46 + public Iterable<StationRoute> list(@RequestParam Map<String, Object> map) {
  47 + return service.list(map);
  48 + }
  49 +
39 /** 50 /**
40 * @Description :TODO(查询树站点与路段数据) 51 * @Description :TODO(查询树站点与路段数据)
41 * 52 *
@@ -111,7 +122,6 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer @@ -111,7 +122,6 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
111 */ 122 */
112 @RequestMapping(value = "/findStationRouteInfo",method = RequestMethod.GET) 123 @RequestMapping(value = "/findStationRouteInfo",method = RequestMethod.GET)
113 public List<Map<String, Object>> findStationRouteInfo(@RequestParam Map<String, Object> map) { 124 public List<Map<String, Object>> findStationRouteInfo(@RequestParam Map<String, Object> map) {
114 -  
115 return service.findStationRouteInfo(map); 125 return service.findStationRouteInfo(map);
116 } 126 }
117 127
@@ -127,8 +137,26 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer @@ -127,8 +137,26 @@ public class StationRouteController extends BaseController&lt;StationRoute, Integer
127 */ 137 */
128 @RequestMapping(value = "/multiLine", method = RequestMethod.GET) 138 @RequestMapping(value = "/multiLine", method = RequestMethod.GET)
129 public Map<String, Object> findByMultiLine(@RequestParam String lineIds){ 139 public Map<String, Object> findByMultiLine(@RequestParam String lineIds){
130 -  
131 return service.findByMultiLine(lineIds); 140 return service.findByMultiLine(lineIds);
132 } 141 }
133 142
  143 + /**
  144 + *
  145 + * @Title: updSwitchDir
  146 + * @Description: TODO(上下行切换)
  147 + */
  148 + @RequestMapping(value = "/updSwitchDir", method = RequestMethod.POST)
  149 + public Map<String, Object> updSwitchDir(@RequestParam String lineIds){
  150 + return service.updSwitchDir(lineIds);
  151 + }
  152 +
  153 + /**
  154 + *
  155 + * @Title: upddis
  156 + * @Description: TODO(更新站距)
  157 + */
  158 + @RequestMapping(value = "/upddis",method = RequestMethod.POST)
  159 + public Map<String, Object> upddis(@RequestParam Map<String, Object> map) {
  160 + return service.upddis(map);
  161 + }
134 } 162 }
src/main/java/com/bsth/controller/forms/ExportController.java
@@ -28,6 +28,7 @@ import com.bsth.entity.mcy_forms.Vehicleloading; @@ -28,6 +28,7 @@ import com.bsth.entity.mcy_forms.Vehicleloading;
28 import com.bsth.entity.mcy_forms.Waybillday; 28 import com.bsth.entity.mcy_forms.Waybillday;
29 import com.bsth.service.forms.ExportService; 29 import com.bsth.service.forms.ExportService;
30 import com.bsth.service.forms.FormsService; 30 import com.bsth.service.forms.FormsService;
  31 +import com.bsth.util.Arith;
31 import com.bsth.util.ReportUtils; 32 import com.bsth.util.ReportUtils;
32 33
33 @RestController 34 @RestController
@@ -82,7 +83,7 @@ public class ExportController { @@ -82,7 +83,7 @@ public class ExportController {
82 } 83 }
83 84
84 // 班次车辆人员日统计 85 // 班次车辆人员日统计
85 - @RequestMapping(value = "/shifdayExport", method = RequestMethod.POST) 86 + @RequestMapping(value = "/shifdayExport", method = RequestMethod.GET)
86 public List<Map<String, Object>> shifdayExport(@RequestParam Map<String, Object> map) { 87 public List<Map<String, Object>> shifdayExport(@RequestParam Map<String, Object> map) {
87 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 88 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
88 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 89 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
@@ -122,7 +123,7 @@ public class ExportController { @@ -122,7 +123,7 @@ public class ExportController {
122 } 123 }
123 124
124 // 班次车辆人员月统计 125 // 班次车辆人员月统计
125 - @RequestMapping(value = "/shiftuehiclemanthExport", method = RequestMethod.POST) 126 + @RequestMapping(value = "/shiftuehiclemanthExport", method = RequestMethod.GET)
126 public List<Map<String, Object>> shiftuehiclemanthExport(@RequestParam Map<String, Object> map) { 127 public List<Map<String, Object>> shiftuehiclemanthExport(@RequestParam Map<String, Object> map) {
127 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 128 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
128 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 129 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
@@ -147,12 +148,18 @@ public class ExportController { @@ -147,12 +148,18 @@ public class ExportController {
147 } 148 }
148 149
149 try { 150 try {
  151 + String mouldurl = null;
  152 + if(map.get("empnames").equals("驾驶员")){
  153 + mouldurl="mould/shiftuehiclemanth.xls";
  154 + }else if(map.get("empnames").equals("售票员")){
  155 + mouldurl="mould/shiftuehiclemanthspy.xls";
  156 + }else if(map.get("empnames").equals("车辆自编号")){
  157 + mouldurl="mould/shiftuehiclemanthclzbh.xls";
  158 + }
150 listI.add(resList.iterator()); 159 listI.add(resList.iterator());
151 -  
152 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/"; 160 String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
153 - ee.excelReplace(listI, new Object[] { map }, path + "mould/shiftuehiclemanth.xls", path  
154 - + "export/班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");  
155 - 161 + ee.excelReplace(listI, new Object[] { map }, path +mouldurl,
  162 + path + "export/班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
156 } catch (Exception e) { 163 } catch (Exception e) {
157 e.printStackTrace(); 164 e.printStackTrace();
158 } 165 }
@@ -161,7 +168,7 @@ public class ExportController { @@ -161,7 +168,7 @@ public class ExportController {
161 } 168 }
162 169
163 // 路单数据报表 170 // 路单数据报表
164 - @RequestMapping(value = "/singledataExport", method = RequestMethod.POST) 171 + @RequestMapping(value = "/singledataExport", method = RequestMethod.GET)
165 public List<Map<String, Object>> singledataExport(@RequestParam Map<String, Object> map) { 172 public List<Map<String, Object>> singledataExport(@RequestParam Map<String, Object> map) {
166 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 173 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
167 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 174 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
@@ -207,12 +214,12 @@ public class ExportController { @@ -207,12 +214,12 @@ public class ExportController {
207 } 214 }
208 215
209 // 车辆加注 216 // 车辆加注
210 - @RequestMapping(value = "/vehicleloadingExport", method = RequestMethod.POST) 217 + @RequestMapping(value = "/vehicleloadingExport", method = RequestMethod.GET)
211 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) { 218 public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map) {
212 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 219 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
213 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 220 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
214 ReportUtils ee = new ReportUtils(); 221 ReportUtils ee = new ReportUtils();
215 - List<Vehicleloading> vehicleloading = formsService.vehicleloading(map.get("gsdmVehic").toString(),map.get("fgsdmVehic").toString(),map.get("line").toString(), 222 + List<Vehicleloading> vehicleloading = formsService.vehicleloading(map.get("line").toString(),
216 map.get("data").toString()); 223 map.get("data").toString());
217 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 224 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
218 int i = 1; 225 int i = 1;
@@ -246,7 +253,7 @@ public class ExportController { @@ -246,7 +253,7 @@ public class ExportController {
246 } 253 }
247 254
248 // 运营服务阶段报表 255 // 运营服务阶段报表
249 - @RequestMapping(value = "/operationserviceExport", method = RequestMethod.POST) 256 + @RequestMapping(value = "/operationserviceExport", method = RequestMethod.GET)
250 public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map) { 257 public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map) {
251 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd"); 258 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), sdfSimple = new SimpleDateFormat("yyyyMMdd");
252 List<Iterator<?>> listI = new ArrayList<Iterator<?>>(); 259 List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
@@ -552,17 +559,13 @@ public class ExportController { @@ -552,17 +559,13 @@ public class ExportController {
552 List<Daily> allline = formsService.daily(map); 559 List<Daily> allline = formsService.daily(map);
553 560
554 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>(); 561 List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
555 - Float zgl=0f;  
556 - Float ks=0f;  
557 - Float yh=0f;  
558 - Float bc=0f; 562 + double zgl=0.0;
  563 + double ks=0.0;
  564 + double yh=0.0;
  565 + int bc=0;
559 Map<String, Object> m ; 566 Map<String, Object> m ;
560 for (Daily d : allline) { 567 for (Daily d : allline) {
561 m = new HashMap<String, Object>(); 568 m = new HashMap<String, Object>();
562 - zgl +=d.getZlc()==""?0f:Float.valueOf(d.getZlc());  
563 - ks +=d.getJzl1()==""?0f:Float.valueOf(d.getJzl1());  
564 - yh +=d.getYh()==""?0f:Float.valueOf(d.getYh());  
565 - bc +=d.getBc()==""?0f:Float.valueOf(d.getBc());  
566 m.put("zbh", d.getZbh()); 569 m.put("zbh", d.getZbh());
567 m.put("jgh",d.getJgh()); 570 m.put("jgh",d.getJgh());
568 m.put("jName", d.getjName()); 571 m.put("jName", d.getjName());
@@ -570,9 +573,13 @@ public class ExportController { @@ -570,9 +573,13 @@ public class ExportController {
570 m.put("jzl1", d.getJzl1()); 573 m.put("jzl1", d.getJzl1());
571 m.put("yh", d.getYh()); 574 m.put("yh", d.getYh());
572 m.put("bc", d.getBc()); 575 m.put("bc", d.getBc());
  576 + zgl =Arith.add(zgl, d.getZlc());
  577 + ks =Arith.add(ks, d.getJzl1());
  578 + yh =Arith.add(yh, d.getYh());
  579 + bc +=Integer.parseInt(d.getBc());
573 580
574 resList.add(m); 581 resList.add(m);
575 - } 582 + }
576 583
577 m=new HashMap<String,Object>(); 584 m=new HashMap<String,Object>();
578 m.put("total_zgl", zgl); 585 m.put("total_zgl", zgl);
src/main/java/com/bsth/controller/forms/MCY_FormsController.java
@@ -52,14 +52,14 @@ public class MCY_FormsController { @@ -52,14 +52,14 @@ public class MCY_FormsController {
52 } 52 }
53 53
54 // 班次车辆人员月报表 54 // 班次车辆人员月报表
55 - @RequestMapping(value = "/shiftuehiclemanth", method = RequestMethod.POST) 55 + @RequestMapping(value = "/shiftuehiclemanth", method = RequestMethod.GET)
56 public List<Shiftuehiclemanth> shiftuehiclemanth(@RequestParam Map<String, Object> map) { 56 public List<Shiftuehiclemanth> shiftuehiclemanth(@RequestParam Map<String, Object> map) {
57 57
58 return formsService.shiftuehiclemanth(map); 58 return formsService.shiftuehiclemanth(map);
59 } 59 }
60 60
61 // 班次车辆人员日统计 61 // 班次车辆人员日统计
62 - @RequestMapping(value = "/shifday", method = RequestMethod.POST) 62 + @RequestMapping(value = "/shifday", method = RequestMethod.GET)
63 public List<Shifday> shifday(@RequestParam Map<String, Object> map) { 63 public List<Shifday> shifday(@RequestParam Map<String, Object> map) {
64 64
65 return formsService.shifday(map); 65 return formsService.shifday(map);
@@ -73,21 +73,20 @@ public class MCY_FormsController { @@ -73,21 +73,20 @@ public class MCY_FormsController {
73 } 73 }
74 74
75 // 路单数据 75 // 路单数据
76 - @RequestMapping(value = "/singledata", method = RequestMethod.POST) 76 + @RequestMapping(value = "/singledata", method = RequestMethod.GET)
77 public List<Singledata> singledata(@RequestParam Map<String, Object> map) { 77 public List<Singledata> singledata(@RequestParam Map<String, Object> map) {
78 78
79 return formsService.singledata(map); 79 return formsService.singledata(map);
80 } 80 }
81 81
82 // 车辆加注 82 // 车辆加注
83 - @RequestMapping(value = "/vehicleloading", method = RequestMethod.POST)  
84 - public List<Vehicleloading> vehicleloading(@RequestParam String gsdmVehic, @RequestParam String fgsdmVehic,  
85 - @RequestParam String line, @RequestParam String data) {  
86 - return formsService.vehicleloading(gsdmVehic, fgsdmVehic, line, data); 83 + @RequestMapping(value = "/vehicleloading", method = RequestMethod.GET)
  84 + public List<Vehicleloading> vehicleloading(@RequestParam String line, @RequestParam String data) {
  85 + return formsService.vehicleloading(line, data);
87 } 86 }
88 87
89 // 运营服务阶段报表 88 // 运营服务阶段报表
90 - @RequestMapping(value = "/operationservice", method = RequestMethod.POST) 89 + @RequestMapping(value = "/operationservice", method = RequestMethod.GET)
91 public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) { 90 public List<Operationservice> operationservice(@RequestParam Map<String, Object> map) {
92 91
93 return formsService.operationservice(map); 92 return formsService.operationservice(map);
src/main/java/com/bsth/controller/gps/GpsController.java
@@ -96,4 +96,34 @@ public class GpsController { @@ -96,4 +96,34 @@ public class GpsController {
96 public Map<String, Object> gpsCompletion(@RequestParam long schId) { 96 public Map<String, Object> gpsCompletion(@RequestParam long schId) {
97 return gpsService.gpsCompletion(schId); 97 return gpsService.gpsCompletion(schId);
98 } 98 }
  99 +
  100 + /**
  101 + * 历史GPS查询 ,第二版轨迹回放用
  102 + * @param nbbm
  103 + * @param st
  104 + * @param et
  105 + * @return
  106 + */
  107 + @RequestMapping(value = "/history_v2/{nbbm}")
  108 + public Map<String, Object> history_v2(@PathVariable("nbbm") String nbbm, @RequestParam long st, @RequestParam long et){
  109 + return gpsService.history_v2(nbbm, st, et);
  110 + }
  111 +
  112 + /**
  113 + * 安全驾驶数据 分页查询
  114 + * @param map
  115 + * @param page
  116 + * @param size
  117 + * @param order
  118 + * @param direction
  119 + * @return
  120 + */
  121 + @RequestMapping(value = "/safeDriv")
  122 + public Map<String, Object> safeDrivList(@RequestParam Map<String, Object> map,
  123 + @RequestParam(defaultValue = "0") int page,
  124 + @RequestParam(defaultValue = "15") int size,
  125 + @RequestParam(defaultValue = "timestamp") String order,
  126 + @RequestParam(defaultValue = "DESC") String direction){
  127 + return gpsService.safeDrivList(map , page, size, order, direction);
  128 + }
99 } 129 }
src/main/java/com/bsth/controller/oil/DlbController.java
1 package com.bsth.controller.oil; 1 package com.bsth.controller.oil;
2 2
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
3 import java.util.HashMap; 5 import java.util.HashMap;
  6 +import java.util.Iterator;
4 import java.util.List; 7 import java.util.List;
5 import java.util.Map; 8 import java.util.Map;
6 9
@@ -17,6 +20,7 @@ import com.bsth.controller.BaseController; @@ -17,6 +20,7 @@ import com.bsth.controller.BaseController;
17 import com.bsth.entity.oil.Dlb; 20 import com.bsth.entity.oil.Dlb;
18 import com.bsth.entity.oil.Ylb; 21 import com.bsth.entity.oil.Ylb;
19 import com.bsth.service.oil.DlbService; 22 import com.bsth.service.oil.DlbService;
  23 +import com.bsth.util.ReportUtils;
20 import com.google.common.base.Splitter; 24 import com.google.common.base.Splitter;
21 25
22 @RestController 26 @RestController
@@ -124,4 +128,57 @@ public class DlbController extends BaseController&lt;Dlb, Integer&gt;{ @@ -124,4 +128,57 @@ public class DlbController extends BaseController&lt;Dlb, Integer&gt;{
124 } 128 }
125 return list; 129 return list;
126 } 130 }
  131 +
  132 +
  133 + @RequestMapping(value = "/listExport",method = RequestMethod.POST)
  134 + public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){
  135 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  136 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  137 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  138 + ReportUtils ee = new ReportUtils();
  139 + List<Dlb> dlb= service.listDlb(map);
  140 +// (new CustomerSpecs<Ylb>(map)).iterator();
  141 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  142 + for (Dlb y : dlb) {
  143 + Map<String, Object> m = new HashMap<String, Object>();
  144 + m.put("rq", y.getRq());
  145 + m.put("gsname",y.getGsname() );
  146 + m.put("xlname", y.getXlname());
  147 + m.put("nbbm", y.getNbbm());
  148 + m.put("jsy", y.getJsy());
  149 + m.put("cdl", y.getCdl());
  150 + m.put("czcd", y.getCzcd()+"%");
  151 + m.put("jzcd", y.getJzcd()+"%");
  152 + m.put("hd", y.getHd());
  153 + String shyy ="无";
  154 + if(y.getShyy()!=null){
  155 + if(shyy.equals("1")){shyy="票务用油";}
  156 + else if(shyy.equals("2")){shyy="保养用油";}
  157 + else if(shyy.equals("3")){shyy="报废车用油";}
  158 + else if(shyy.equals("4")){shyy="其它用油";}
  159 + else if(shyy.equals("5")){shyy="人保部";}
  160 + else if(shyy.equals("6")){shyy="车队";}
  161 + else if(shyy.equals("7")){shyy="车间(高保)";}
  162 + else if(shyy.equals("8")){shyy="车间(小修)";}
  163 + else{shyy ="无";}
  164 + }
  165 + m.put("shyy", shyy);
  166 + m.put("sh", y.getSh());
  167 + m.put("zlc", y.getZlc());
  168 + m.put("bglyh", y.getBglyh());
  169 + resList.add(m);
  170 + }
  171 + try {
  172 + listI.add(resList.iterator());
  173 + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
  174 + ee.excelReplace(listI, new Object[] { map }, path+"mould/listDl.xls",
  175 + path+"export/"+map.get("rq").toString()+ "进出场存电量.xls");
  176 + } catch (Exception e) {
  177 + e.printStackTrace();
  178 + }
  179 +
  180 + return resList;
  181 +
  182 + }
  183 +
127 } 184 }
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -238,9 +238,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -238,9 +238,11 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
238 Map<String, Object> m = new HashMap<String, Object>(); 238 Map<String, Object> m = new HashMap<String, Object>();
239 m.put("rq", y.getRq()); 239 m.put("rq", y.getRq());
240 m.put("gsname",y.getGsname() ); 240 m.put("gsname",y.getGsname() );
  241 + m.put("fgsname", y.getFgsname());
241 m.put("xlname", y.getXlname()); 242 m.put("xlname", y.getXlname());
242 m.put("nbbm", y.getNbbm()); 243 m.put("nbbm", y.getNbbm());
243 m.put("jsy", y.getJsy()); 244 m.put("jsy", y.getJsy());
  245 + m.put("name", y.getName());
244 m.put("jzl", y.getJzl()); 246 m.put("jzl", y.getJzl());
245 m.put("czlc", y.getCzlc()); 247 m.put("czlc", y.getCzlc());
246 m.put("jzlc", y.getJzlc()); 248 m.put("jzlc", y.getJzlc());
src/main/java/com/bsth/controller/realcontrol/BasicDataController.java
@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON; @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON;
4 import com.alibaba.fastjson.serializer.PropertyFilter; 4 import com.alibaba.fastjson.serializer.PropertyFilter;
5 import com.bsth.common.ResponseCode; 5 import com.bsth.common.ResponseCode;
6 import com.bsth.data.BasicData; 6 import com.bsth.data.BasicData;
  7 +import com.bsth.entity.Line;
  8 +import com.google.common.collect.ArrayListMultimap;
7 import org.slf4j.Logger; 9 import org.slf4j.Logger;
8 import org.slf4j.LoggerFactory; 10 import org.slf4j.LoggerFactory;
9 import org.springframework.beans.factory.annotation.Autowired; 11 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,9 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -11,9 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
11 import org.springframework.web.bind.annotation.RequestMethod; 13 import org.springframework.web.bind.annotation.RequestMethod;
12 import org.springframework.web.bind.annotation.RestController; 14 import org.springframework.web.bind.annotation.RestController;
13 15
14 -import java.util.HashMap;  
15 -import java.util.List;  
16 -import java.util.Map; 16 +import java.util.*;
17 17
18 @RestController 18 @RestController
19 @RequestMapping("/basic") 19 @RequestMapping("/basic")
@@ -126,4 +126,23 @@ public class BasicDataController { @@ -126,4 +126,23 @@ public class BasicDataController {
126 public Map<String, String> nbbm2PlateNo(){ 126 public Map<String, String> nbbm2PlateNo(){
127 return basicData.getNbbm2PlateNo(); 127 return basicData.getNbbm2PlateNo();
128 } 128 }
  129 +
  130 +
  131 + /**
  132 + * 获取线路配车信息
  133 + * @return
  134 + */
  135 + @RequestMapping("/ccInfo")
  136 + public Map<String, Collection<String>> ccInfo(){
  137 +
  138 + ArrayListMultimap<String, String> listMultimap = ArrayListMultimap.create();
  139 + Set<String> ks = BasicData.nbbm2LineMap.keySet();
  140 +
  141 + Line line;
  142 + for(String nbbm : ks){
  143 + line = BasicData.nbbm2LineMap.get(nbbm);
  144 + listMultimap.put(line.getLineCode(), nbbm);
  145 + }
  146 + return listMultimap.asMap();
  147 + }
129 } 148 }
src/main/java/com/bsth/controller/realcontrol/DataManagerController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol;
  2 +
  3 +import com.bsth.service.realcontrol.DataManagerService;
  4 +import org.apache.commons.lang3.StringEscapeUtils;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.web.bind.annotation.RequestMapping;
  7 +import org.springframework.web.bind.annotation.RequestParam;
  8 +import org.springframework.web.bind.annotation.RestController;
  9 +
  10 +import java.util.Map;
  11 +
  12 +/**
  13 + * 数据管理,包括从老系统的数据迁移。新系统的数据校验等
  14 + * Created by panzhao on 2017/4/17.
  15 + */
  16 +@RestController
  17 +@RequestMapping("dataManager")
  18 +public class DataManagerController {
  19 +
  20 + @Autowired
  21 + DataManagerService dataManagerService;
  22 +
  23 + @RequestMapping("cars/old_now")
  24 + public Map<String, Object> carInfos(@RequestParam Integer lineId){
  25 + return dataManagerService.carInfos(lineId);
  26 + }
  27 +
  28 + @RequestMapping("car/updateDevices")
  29 + public Map<String, Object> updateDevices(@RequestParam String jsonStr){
  30 + jsonStr = StringEscapeUtils.unescapeHtml4(jsonStr);
  31 + return dataManagerService.updateDevices(jsonStr);
  32 + }
  33 +}
src/main/java/com/bsth/controller/realcontrol/LineConfigController.java
@@ -14,39 +14,91 @@ public class LineConfigController extends BaseController&lt;LineConfig, Integer&gt;{ @@ -14,39 +14,91 @@ public class LineConfigController extends BaseController&lt;LineConfig, Integer&gt;{
14 14
15 @Autowired 15 @Autowired
16 LineConfigService lineConfigService; 16 LineConfigService lineConfigService;
17 - 17 +
  18 + /**
  19 + * 检查是否有线路配置信息
  20 + * @param codeArray
  21 + * @return
  22 + */
18 @RequestMapping("/check") 23 @RequestMapping("/check")
19 public Map<String, Object> check(@RequestParam String[] codeArray){ 24 public Map<String, Object> check(@RequestParam String[] codeArray){
20 return lineConfigService.check(codeArray); 25 return lineConfigService.check(codeArray);
21 } 26 }
22 - 27 +
  28 + /**
  29 + * 初始化线路配置
  30 + * @param lineCode
  31 + * @return
  32 + * @throws Exception
  33 + */
23 @RequestMapping("/init/{lineCode}") 34 @RequestMapping("/init/{lineCode}")
24 public Integer init(@PathVariable("lineCode") String lineCode) throws Exception{ 35 public Integer init(@PathVariable("lineCode") String lineCode) throws Exception{
25 return lineConfigService.init(lineCode); 36 return lineConfigService.init(lineCode);
26 } 37 }
27 - 38 +
  39 + /**
  40 + * 修改班次刷新时间
  41 + * @param time
  42 + * @param lineCode
  43 + * @return
  44 + */
28 @RequestMapping(value = "/editTime", method = RequestMethod.POST) 45 @RequestMapping(value = "/editTime", method = RequestMethod.POST)
29 public Map<String, Object> editStartOptTime(@RequestParam String time,@RequestParam String lineCode){ 46 public Map<String, Object> editStartOptTime(@RequestParam String time,@RequestParam String lineCode){
30 return lineConfigService.editStartOptTime(time, lineCode); 47 return lineConfigService.editStartOptTime(time, lineCode);
31 } 48 }
32 - 49 +
  50 + /**
  51 + * 修改出场时间类型
  52 + * @param lineCode
  53 + * @param type
  54 + * @return
  55 + */
33 @RequestMapping(value = "/editOutTimeType", method = RequestMethod.POST) 56 @RequestMapping(value = "/editOutTimeType", method = RequestMethod.POST)
34 - public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type){  
35 - return lineConfigService.editOutTimeType(lineCode, type); 57 + public Map<String, Object> editOutTimeType(@RequestParam String lineCode, @RequestParam int type,@RequestParam String parkCode,@RequestParam String stationCode){
  58 + return lineConfigService.editOutTimeType(lineCode, type, parkCode, stationCode);
36 } 59 }
37 60
  61 + /**
  62 + * 启用原线路回场
  63 + * @param lineCode
  64 + * @param enable
  65 + * @return
  66 + */
38 @RequestMapping(value = "/enableInParkForSource", method = RequestMethod.POST) 67 @RequestMapping(value = "/enableInParkForSource", method = RequestMethod.POST)
39 public Map<String, Object> enableInParkForSource(@RequestParam String lineCode, @RequestParam int enable){ 68 public Map<String, Object> enableInParkForSource(@RequestParam String lineCode, @RequestParam int enable){
40 return lineConfigService.enableInParkForSource(lineCode, enable); 69 return lineConfigService.enableInParkForSource(lineCode, enable);
41 } 70 }
42 71
  72 + /**
  73 + * 根据线路编码获取配置信息
  74 + * @param lineCode
  75 + * @return
  76 + */
43 @RequestMapping(value = "/getByLineCode") 77 @RequestMapping(value = "/getByLineCode")
44 public LineConfig getByLineCode(@RequestParam String lineCode){ 78 public LineConfig getByLineCode(@RequestParam String lineCode){
45 return lineConfigService.getByLineCode(lineCode); 79 return lineConfigService.getByLineCode(lineCode);
46 } 80 }
47 81
  82 + /**
  83 + * 到站缓冲区设置
  84 + * @param lineCode
  85 + * @param field
  86 + * @param value
  87 + * @return
  88 + */
48 @RequestMapping(value = "/bufferTimeDiff", method = RequestMethod.POST) 89 @RequestMapping(value = "/bufferTimeDiff", method = RequestMethod.POST)
49 public Map<String, Object> bufferTimeDiff(@RequestParam String lineCode, @RequestParam String field,@RequestParam String value){ 90 public Map<String, Object> bufferTimeDiff(@RequestParam String lineCode, @RequestParam String field,@RequestParam String value){
50 return lineConfigService.bufferTimeDiff(lineCode, field, value); 91 return lineConfigService.bufferTimeDiff(lineCode, field, value);
51 } 92 }
  93 +
  94 + /**
  95 + * 应急停靠设置
  96 + * @param map
  97 + * @return
  98 + */
  99 + @RequestMapping(value = "/yjtkSet", method = RequestMethod.POST)
  100 + public Map<String, Object> yjtkSet(@RequestParam Map<String, String> map){
  101 + //System.out.println(map);
  102 + return lineConfigService.yjtkSet(map);
  103 + }
52 } 104 }
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
1 package com.bsth.controller.realcontrol; 1 package com.bsth.controller.realcontrol;
2 2
3 import com.alibaba.fastjson.JSONArray; 3 import com.alibaba.fastjson.JSONArray;
  4 +import com.bsth.common.ResponseCode;
4 import com.bsth.controller.BaseController; 5 import com.bsth.controller.BaseController;
5 import com.bsth.controller.realcontrol.dto.ChangePersonCar; 6 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
6 import com.bsth.controller.realcontrol.dto.DfsjChange; 7 import com.bsth.controller.realcontrol.dto.DfsjChange;
@@ -185,16 +186,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -185,16 +186,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
185 186
186 /** 187 /**
187 * 188 *
188 - * @Title: trustStatus @Description: TODO(线路托管状态) @param @param lineCodes  
189 - * 线路编码 @throws  
190 - */  
191 - @RequestMapping(value = "/trustStatus")  
192 - public Map<Integer, Integer> trustStatus(@RequestParam String lineCodes) {  
193 - return scheduleRealInfoService.trustStatus(lineCodes);  
194 - }  
195 -  
196 - /**  
197 - *  
198 * @Title: outgoAdjustAll 189 * @Title: outgoAdjustAll
199 * @Description: TODO(批量待发调整) 190 * @Description: TODO(批量待发调整)
200 * @param @param list 191 * @param @param list
@@ -206,17 +197,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -206,17 +197,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
206 params = StringEscapeUtils.unescapeHtml4(params); 197 params = StringEscapeUtils.unescapeHtml4(params);
207 return scheduleRealInfoService.outgoAdjustAll(params); 198 return scheduleRealInfoService.outgoAdjustAll(params);
208 } 199 }
209 -  
210 - /**  
211 - *  
212 - * @Title: changeTrustStatus @Description: TODO(切换线路托管状态) @param @param  
213 - * lineCode 线路编码 @param @param status 托管状态 @throws  
214 - */  
215 - @RequestMapping(value = "/trustStatus/change", method = RequestMethod.POST)  
216 - public int changeTrustStatus(@RequestParam Integer lineCode, @RequestParam Integer status) {  
217 - //ScheduleBuffer.trustMap.put(lineCode, status);  
218 - return 200;  
219 - }  
220 200
221 /** 201 /**
222 * 202 *
@@ -242,12 +222,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -242,12 +222,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
242 return scheduleRealInfoService.findRouteByLine(lineCode); 222 return scheduleRealInfoService.findRouteByLine(lineCode);
243 } 223 }
244 224
245 - @RequestMapping(value = "/test/getSch")  
246 - public int getSch(){  
247 - //getSchedulePlanThread.start();  
248 - return 1;  
249 - }  
250 -  
251 /** 225 /**
252 * 226 *
253 * @Title: removeChildTask 227 * @Title: removeChildTask
@@ -268,7 +242,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -268,7 +242,6 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
268 */ 242 */
269 @RequestMapping(value = "/lineCode/{lineCode}") 243 @RequestMapping(value = "/lineCode/{lineCode}")
270 public List<ScheduleRealInfo> findByLineCode(@PathVariable("lineCode") String lineCode){ 244 public List<ScheduleRealInfo> findByLineCode(@PathVariable("lineCode") String lineCode){
271 - //return ScheduleBuffer.realSchedulListMap.get(lineCode);  
272 return dayOfSchedule.findByLineCode(lineCode); 245 return dayOfSchedule.findByLineCode(lineCode);
273 } 246 }
274 247
@@ -368,9 +341,36 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -368,9 +341,36 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
368 } 341 }
369 342
370 @RequestMapping(value="/statisticsDailyTj") 343 @RequestMapping(value="/statisticsDailyTj")
371 - public List<Map<String,Object>> statisticsDailyTj(@RequestParam String line, @RequestParam String date,  
372 - @RequestParam String date2,@RequestParam String xlName, @RequestParam String type){  
373 - return scheduleRealInfoService.statisticsDailyTj(line, date,date2, xlName, type); 344 + public List<Map<String,Object>> statisticsDailyTj(@RequestParam Map<String, Object> map){
  345 + String gsdm="";
  346 + if(map.get("gsdm")!=null){
  347 + gsdm=map.get("gsdm").toString();
  348 + }
  349 + String fgsdm="";
  350 + if(map.get("fgsdm")!=null){
  351 + fgsdm=map.get("fgsdm").toString();
  352 + }
  353 + String line="";
  354 + if(map.get("line")!=null){
  355 + line=map.get("line").toString();
  356 + }
  357 + String date="";
  358 + if(map.get("date")!=null){
  359 + date=map.get("date").toString();
  360 + }
  361 + String date2="";
  362 + if(map.get("date2")!=null){
  363 + date2=map.get("date2").toString();
  364 + }
  365 + String xlName="";
  366 + if(map.get("xlName")!=null){
  367 + xlName=map.get("xlName").toString();
  368 + }
  369 + String type="";
  370 + if(map.get("type")!=null){
  371 + type=map.get("type").toString();
  372 + }
  373 + return scheduleRealInfoService.statisticsDailyTj(gsdm,fgsdm,line, date,date2, xlName, type);
374 } 374 }
375 375
376 @RequestMapping(value="/MapById",method = RequestMethod.GET) 376 @RequestMapping(value="/MapById",method = RequestMethod.GET)
@@ -419,10 +419,10 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -419,10 +419,10 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
419 return scheduleRealInfoService.changeBcType(id, bcType, remarks); 419 return scheduleRealInfoService.changeBcType(id, bcType, remarks);
420 } 420 }
421 421
422 - @RequestMapping(value="/history", method=RequestMethod.POST) 422 +/* @RequestMapping(value="/history", method=RequestMethod.POST)
423 public Map<String,Object> historySave(ScheduleRealInfo sch){ 423 public Map<String,Object> historySave(ScheduleRealInfo sch){
424 return scheduleRealInfoService.historySave(sch); 424 return scheduleRealInfoService.historySave(sch);
425 - } 425 + }*/
426 426
427 427
428 private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"); 428 private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd");
@@ -486,4 +486,54 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -486,4 +486,54 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
486 public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx,@RequestParam int type){ 486 public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx,@RequestParam int type){
487 return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx, type); 487 return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx, type);
488 } 488 }
  489 +
  490 + /**
  491 + * 删除当日实际排班
  492 + * @return
  493 + */
  494 + @RequestMapping(value = "deleteRealSchedule", method = RequestMethod.POST)
  495 + public Map<String, Object> deleteRealSchedule(@RequestParam String lineCode){
  496 + return dayOfSchedule.deleteRealSchedule(lineCode);
  497 + }
  498 +
  499 + /**
  500 + * 从计划表重新加载当日排班
  501 + * @param lineCode
  502 + * @return
  503 + */
  504 + @RequestMapping(value = "reLoadRealSchedule", method = RequestMethod.POST)
  505 + public Map<String, Object> reLoadRealSchedule(@RequestParam String lineCode){
  506 + Map<String, Object> rs = new HashMap<>();
  507 + List<ScheduleRealInfo> list = dayOfSchedule.findByLineCode(lineCode);
  508 + if(list != null && list.size() > 0){
  509 + rs.put("status", ResponseCode.ERROR);
  510 + rs.put("msg", "失败," + list.get(0).getXlName() + "当日存在实际排班,无法重新加载。");
  511 + return rs;
  512 + }
  513 +
  514 + int code = dayOfSchedule.reloadSch(lineCode);
  515 + rs.put("status", code==0? ResponseCode.SUCCESS: ResponseCode.ERROR);
  516 + return rs;
  517 + }
  518 +
  519 + /**
  520 + * 误点调整
  521 + * @param idx
  522 + * @param minute
  523 + * @return
  524 + */
  525 + @RequestMapping(value = "lateAdjust", method = RequestMethod.POST)
  526 + public Map<String, Object> lateAdjust(@RequestParam String idx,@RequestParam float minute ){
  527 + return scheduleRealInfoService.lateAdjust(idx, minute);
  528 + }
  529 +
  530 + /**
  531 + * 获取所有应发未到的班次
  532 + * @param idx
  533 + * @return
  534 + */
  535 + @RequestMapping(value = "allLate2")
  536 + public List<ScheduleRealInfo> allLate2(@RequestParam String idx){
  537 + return scheduleRealInfoService.allLate2(idx);
  538 + }
489 } 539 }
src/main/java/com/bsth/controller/realcontrol/anomalyCheckController.java 0 → 100644
  1 +package com.bsth.controller.realcontrol;
  2 +
  3 +import com.bsth.data.schedule.DayOfSchedule;
  4 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.web.bind.annotation.RequestMapping;
  9 +import org.springframework.web.bind.annotation.RequestMethod;
  10 +import org.springframework.web.bind.annotation.RequestParam;
  11 +import org.springframework.web.bind.annotation.RestController;
  12 +
  13 +import java.util.HashSet;
  14 +import java.util.List;
  15 +import java.util.Set;
  16 +
  17 +/**
  18 + * 相关数据异常检测
  19 + * Created by panzhao on 2017/4/14.
  20 + */
  21 +@RestController
  22 +@RequestMapping("anomalyCheck")
  23 +public class anomalyCheckController {
  24 +
  25 +
  26 + Logger logger = LoggerFactory.getLogger(this.getClass());
  27 +
  28 + @Autowired
  29 + DayOfSchedule dayOfSchedule;
  30 + /**
  31 + * 出现重复班次的车辆
  32 + * @param nbbm
  33 + */
  34 + @RequestMapping(value = "/schRepeat", method = RequestMethod.POST)
  35 + public void schRepeat(@RequestParam String nbbm){
  36 + logger.info("前端通知,车辆 " + nbbm + "出现重复班次,开始检测...");
  37 + List<ScheduleRealInfo> list = dayOfSchedule.findByNbbm(nbbm);
  38 +
  39 + Set<ScheduleRealInfo> set = new HashSet<>();
  40 + for(ScheduleRealInfo sch : list){
  41 + if(!set.add(sch)){
  42 + logger.info("出现一次重复班次,班次ID:" + sch.getId());
  43 + }
  44 + }
  45 +
  46 + if(set.size() > 0){
  47 + dayOfSchedule.replaceByNbbm(nbbm, set);
  48 + }
  49 + }
  50 +}
src/main/java/com/bsth/controller/report/ReportController.java
1 package com.bsth.controller.report; 1 package com.bsth.controller.report;
2 2
  3 +import java.util.ArrayList;
3 import java.util.HashMap; 4 import java.util.HashMap;
  5 +import java.util.Iterator;
4 import java.util.List; 6 import java.util.List;
5 import java.util.Map; 7 import java.util.Map;
6 8
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController; @@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
13 import com.bsth.entity.excep.ArrivalInfo; 15 import com.bsth.entity.excep.ArrivalInfo;
14 import com.bsth.entity.realcontrol.ScheduleRealInfo; 16 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 import com.bsth.service.report.ReportService; 17 import com.bsth.service.report.ReportService;
  18 +import com.bsth.util.ReportUtils;
16 19
17 @RestController 20 @RestController
18 @RequestMapping("report") 21 @RequestMapping("report")
@@ -21,22 +24,152 @@ public class ReportController { @@ -21,22 +24,152 @@ public class ReportController {
21 @Autowired 24 @Autowired
22 ReportService service; 25 ReportService service;
23 26
24 - @RequestMapping(value="/queryListBczx" ,method = RequestMethod.POST) 27 + @RequestMapping(value="/queryListBczx" ,method = RequestMethod.GET)
25 public List<ScheduleRealInfo> queryListBczx(@RequestParam String clzbh,@RequestParam String line,@RequestParam String date){ 28 public List<ScheduleRealInfo> queryListBczx(@RequestParam String clzbh,@RequestParam String line,@RequestParam String date){
26 return service.queryListBczx(line,date,clzbh); 29 return service.queryListBczx(line,date,clzbh);
27 } 30 }
28 31
29 - @RequestMapping(value="/queryListZdxx" ,method = RequestMethod.POST) 32 + @RequestMapping(value="/queryListZdxx" ,method = RequestMethod.GET)
30 public List<ArrivalInfo> queryListZdxx(@RequestParam String clzbh,@RequestParam String line, 33 public List<ArrivalInfo> queryListZdxx(@RequestParam String clzbh,@RequestParam String line,
31 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){ 34 @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
32 return service.queryListZdxx(line,date,clzbh,fcsj,ddsj); 35 return service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
33 } 36 }
34 - @RequestMapping(value="/queryListClzd" ,method = RequestMethod.POST) 37 +
  38 + @RequestMapping(value="/exportQueryListZdxx" ,method = RequestMethod.GET)
  39 + public List<Map<String, Object>> exportQueryListZdxx(@RequestParam String clzbh,@RequestParam String line,
  40 + @RequestParam String date,@RequestParam String fcsj,@RequestParam String ddsj){
  41 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  42 + ReportUtils ee = new ReportUtils();
  43 + List<ArrivalInfo> list=service.queryListZdxx(line,date,clzbh,fcsj,ddsj);
  44 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  45 + int i=1;
  46 + for (ArrivalInfo a:list ) {
  47 + Map<String, Object> m = new HashMap<String, Object>();
  48 + m.put("i", i);
  49 + m.put("nbbm", a.getNbbm());
  50 + m.put("stopName", a.getStopName());
  51 + m.put("jzsj", a.getJzsj());
  52 + m.put("czsj", a.getCzsj());
  53 + m.put("kgm", "");
  54 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  55 + m.put("kmsd", "");
  56 + m.put("bufa", "");
  57 + m.put("skcs", "");
  58 + m.put("skje", "");
  59 + m.put("mfskcs", "");
  60 + m.put("mfskje", "");
  61 + resList.add(m);
  62 + i++;
  63 + }
  64 +
  65 + try {
  66 + Map<String, Object> map=new HashMap<String, Object>();
  67 + listI.add(resList.iterator());
  68 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  69 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  70 + path + "export/班次到离站.xls");
  71 + } catch (Exception e) {
  72 + e.printStackTrace();
  73 + }
  74 + return resList;
  75 + }
  76 +
  77 +
  78 + @RequestMapping(value="/queryListClzd" ,method = RequestMethod.GET)
35 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line, 79 public List<ArrivalInfo> queryListClzd(@RequestParam String zd,@RequestParam String line,
36 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){ 80 @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
37 return service.queryListClzd(line,zd,zdlx,fcsj,ddsj); 81 return service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
38 } 82 }
39 83
  84 +
  85 +
  86 +
  87 + @RequestMapping(value="/exportQueryListClzd" ,method = RequestMethod.GET)
  88 + public List<Map<String, Object>> exportQueryListClzd(@RequestParam String zd,@RequestParam String line,
  89 + @RequestParam String zdlx,@RequestParam String fcsj,@RequestParam String ddsj){
  90 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  91 + ReportUtils ee = new ReportUtils();
  92 + List<ArrivalInfo> list=service.queryListClzd(line,zd,zdlx,fcsj,ddsj);
  93 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  94 + int i=1;
  95 + for (ArrivalInfo a:list ) {
  96 + Map<String, Object> m = new HashMap<String, Object>();
  97 + m.put("i", i);
  98 + m.put("nbbm", a.getNbbm());
  99 + m.put("stopName", a.getStopName());
  100 + m.put("jzsj", a.getJzsj());
  101 + m.put("czsj", a.getCzsj());
  102 + m.put("kgm", "");
  103 + m.put("upDown", a.getUpDown()==0?"上行":"下行");
  104 + m.put("kmsd", "");
  105 + m.put("bufa", "");
  106 + m.put("skcs", "");
  107 + m.put("skje", "");
  108 + m.put("mfskcs", "");
  109 + m.put("mfskje", "");
  110 + resList.add(m);
  111 + i++;
  112 + }
  113 +
  114 + try {
  115 + Map<String, Object> map=new HashMap<String, Object>();
  116 + listI.add(resList.iterator());
  117 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  118 + ee.excelReplace(listI, new Object[] { map }, path + "mould/inoutstation.xls",
  119 + path + "export/班次到离站.xls");
  120 + } catch (Exception e) {
  121 + e.printStackTrace();
  122 + }
  123 + return resList;
  124 + }
  125 +
  126 +
  127 + @RequestMapping(value="/jobSummaryExport" ,method = RequestMethod.GET)
  128 + public List<Map<String, Object>> jobSummaryExport(@RequestParam Map<String, Object> map){
  129 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  130 + String lineName=map.get("lineName").toString();
  131 + String date=map.get("date").toString();
  132 + ReportUtils ee = new ReportUtils();
  133 + List<Map<String,Object>> fwqlList= service.jobFwqk(map);
  134 + List<Map<String, Object>> lgqlList=service.jobLjqk(map);
  135 + map=service.jobHzxx(map);
  136 + map.put("lineName", lineName);
  137 + map.put("date",date);
  138 + if(fwqlList.size()<=0){
  139 + Map<String, Object> newMap=new HashMap<String,Object>();
  140 + newMap.put("nr", " ");
  141 + newMap.put("lp", " ");
  142 + newMap.put("nbbm", " ");
  143 + newMap.put("jgh", " ");
  144 + newMap.put("dz", " ");
  145 + newMap.put("sj", " ");
  146 + newMap.put("lbbc", " ");
  147 + newMap.put("lblc", " ");
  148 + newMap.put("jyqp", " ");
  149 + fwqlList.add(newMap);
  150 + }
  151 + if(lgqlList.size()<=0){
  152 + Map<String, Object> newMap=new HashMap<String,Object>();
  153 + newMap.put("lp", " ");
  154 + newMap.put("nbbm", " ");
  155 + newMap.put("jgh", " ");
  156 + newMap.put("dz", " ");
  157 + newMap.put("sj", " ");
  158 + newMap.put("ljlc"," ");
  159 + newMap.put("jyqp", " ");
  160 + lgqlList.add(newMap);
  161 + }
  162 + try {
  163 + listI.add(fwqlList.iterator());
  164 + listI.add(lgqlList.iterator());
  165 + String path = this.getClass().getResource("/").getPath() + "static/pages/forms/";
  166 + ee.excelReplace(listI, new Object[] { map }, path + "mould/jobSummary.xls",
  167 + path + "export/调度员工作汇总日报.xls");
  168 + } catch (Exception e) {
  169 + e.printStackTrace();
  170 + }
  171 + return new ArrayList<Map<String, Object>>();
  172 + }
40 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET) 173 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)
41 public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) { 174 public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) {
42 return service.sreachZd(line,zdlx, zd); 175 return service.sreachZd(line,zdlx, zd);
src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
@@ -5,11 +5,7 @@ import com.bsth.controller.schedule.BController; @@ -5,11 +5,7 @@ import com.bsth.controller.schedule.BController;
5 import com.bsth.entity.schedule.TTInfoDetail; 5 import com.bsth.entity.schedule.TTInfoDetail;
6 import com.bsth.service.schedule.TTInfoDetailService; 6 import com.bsth.service.schedule.TTInfoDetailService;
7 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
8 -import org.springframework.web.bind.annotation.PathVariable;  
9 -import org.springframework.web.bind.annotation.RequestMapping;  
10 -import org.springframework.web.bind.annotation.RequestMethod;  
11 -import org.springframework.web.bind.annotation.RequestParam;  
12 -import org.springframework.web.bind.annotation.RestController; 8 +import org.springframework.web.bind.annotation.*;
13 9
14 import java.util.HashMap; 10 import java.util.HashMap;
15 import java.util.List; 11 import java.util.List;
@@ -88,6 +84,20 @@ public class TTInfoDetailController extends BController&lt;TTInfoDetail, Long&gt; { @@ -88,6 +84,20 @@ public class TTInfoDetailController extends BController&lt;TTInfoDetail, Long&gt; {
88 } 84 }
89 return rtn; 85 return rtn;
90 } 86 }
  87 +
  88 + @RequestMapping(value = "/zd_tcc", method = RequestMethod.GET)
  89 + public Map<String, Object> getZdAndTccInfo(Integer lineid, Integer xldir) {
  90 + Map<String, Object> rtn = new HashMap<>();
  91 + try {
  92 + List<Map<String, Object>> list = ttInfoDetailService.findZdAndTcc(lineid, xldir);
  93 + rtn.put("status", ResponseCode.SUCCESS);
  94 + rtn.put("data", list);
  95 + } catch (Exception exp) {
  96 + rtn.put("status", ResponseCode.ERROR);
  97 + rtn.put("msg", exp.getMessage());
  98 + }
  99 + return rtn;
  100 + }
91 101
92 /** 102 /**
93 * 时刻表明细批量插入 103 * 时刻表明细批量插入
src/main/java/com/bsth/controller/sys/UserController.java
@@ -237,4 +237,9 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; { @@ -237,4 +237,9 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; {
237 } 237 }
238 return msg; 238 return msg;
239 } 239 }
  240 +
  241 + @RequestMapping(value = "/register" ,method = RequestMethod.POST)
  242 + public Map<String, Object> register(SysUser u){
  243 + return sysUserService.register(u);
  244 + }
240 } 245 }
src/main/java/com/bsth/data/BasicData.java
@@ -31,7 +31,7 @@ public class BasicData implements CommandLineRunner { @@ -31,7 +31,7 @@ public class BasicData implements CommandLineRunner {
31 //公司代码和公司名对照(K: 公司编码,V:公司名) 31 //公司代码和公司名对照(K: 公司编码,V:公司名)
32 public static Map<String, String> businessCodeNameMap; 32 public static Map<String, String> businessCodeNameMap;
33 33
34 - //分公司公司代码和分公司公司名对照(K: 公司编码+分公司编码,V:分公司公司名) 34 + //分公司公司代码和分公司公司名对照(K: 公司编码_分公司编码,V:分公司公司名)
35 public static Map<String, String> businessFgsCodeNameMap; 35 public static Map<String, String> businessFgsCodeNameMap;
36 36
37 //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号) 37 //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号)
@@ -332,6 +332,7 @@ public class BasicData implements CommandLineRunner { @@ -332,6 +332,7 @@ public class BasicData implements CommandLineRunner {
332 } 332 }
333 333
334 perTempMap.put(jobCode, p); 334 perTempMap.put(jobCode, p);
  335 +
335 allPersonMap.put(jobCode, p.getPersonnelName()); 336 allPersonMap.put(jobCode, p.getPersonnelName());
336 } 337 }
337 338
src/main/java/com/bsth/data/LineConfigData.java
1 package com.bsth.data; 1 package com.bsth.data;
2 2
  3 +import com.bsth.Application;
3 import com.bsth.entity.Line; 4 import com.bsth.entity.Line;
4 import com.bsth.entity.realcontrol.D80ReplyTemp; 5 import com.bsth.entity.realcontrol.D80ReplyTemp;
5 import com.bsth.entity.realcontrol.LineConfig; 6 import com.bsth.entity.realcontrol.LineConfig;
6 -import com.bsth.oplog.normal.OpLogger; 7 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
7 import com.bsth.service.LineService; 8 import com.bsth.service.LineService;
8 import com.bsth.service.realcontrol.LineConfigService; 9 import com.bsth.service.realcontrol.LineConfigService;
9 import org.slf4j.Logger; 10 import org.slf4j.Logger;
@@ -14,101 +15,151 @@ import org.springframework.core.annotation.Order; @@ -14,101 +15,151 @@ import org.springframework.core.annotation.Order;
14 import org.springframework.stereotype.Component; 15 import org.springframework.stereotype.Component;
15 16
16 import java.util.*; 17 import java.util.*;
  18 +import java.util.concurrent.TimeUnit;
17 19
18 /** 20 /**
19 - * 21 + * @author PanZhao
20 * @ClassName: LineConfigData 22 * @ClassName: LineConfigData
21 * @Description: TODO(线路配置数据管理) 23 * @Description: TODO(线路配置数据管理)
22 - * @author PanZhao  
23 * @date 2016年8月15日 下午2:50:19 24 * @date 2016年8月15日 下午2:50:19
24 - *  
25 */ 25 */
26 @Component 26 @Component
27 @Order(value = 2) 27 @Order(value = 2)
28 public class LineConfigData implements CommandLineRunner { 28 public class LineConfigData implements CommandLineRunner {
29 -  
30 - Logger logger = LoggerFactory.getLogger(this.getClass());  
31 -  
32 - // 线路编码和配置  
33 - private Map<String, LineConfig> lineConfMap;  
34 -  
35 - @Autowired  
36 - LineConfigService lineConfigService;  
37 -  
38 - @Autowired  
39 - LineService lineService;  
40 -  
41 - @Autowired  
42 - OpLogger opLog;  
43 -  
44 - @Override  
45 - public void run(String... arg0) throws Exception {  
46 - lineConfMap = new HashMap<>();  
47 -  
48 - Iterator<LineConfig> itr = lineConfigService.findAll().iterator();  
49 - while (itr.hasNext())  
50 - setBuffer(itr.next());  
51 -  
52 - opLog.info("Line_config_data");  
53 - }  
54 -  
55 - public LineConfig get(String lineCode){  
56 - return lineConfMap.get(lineCode);  
57 - }  
58 -  
59 - public Collection<LineConfig> getAll(){  
60 - return lineConfMap.values();  
61 - }  
62 -  
63 - public void set(LineConfig conf){  
64 - lineConfigService.save(conf);  
65 - setBuffer(conf);  
66 - }  
67 -  
68 - public void setBuffer(LineConfig conf){  
69 - lineConfMap.put(conf.getLine().getLineCode(), conf);  
70 - }  
71 -  
72 - /**  
73 - *  
74 - * @Title: init  
75 - * @Description: TODO(初始化配置信息)  
76 - */  
77 - public void init(String lineCode) throws Exception{  
78 - LineConfig conf = new LineConfig();  
79 - //线路  
80 - Line line = lineService.findByLineCode(lineCode);  
81 - if(null == line)  
82 - throw new NullPointerException("异常的lineCode");  
83 -  
84 - conf.setLine(line);  
85 - //开始运营时间  
86 - conf.setStartOpt("02:00");  
87 - //托管状态  
88 - conf.setTrust(true);  
89 - //出场时间类型  
90 - conf.setOutConfig(0);  
91 - //进场时间类型  
92 - //conf.setInConfig(1);  
93 - //短语模板  
94 - conf.setPhraseTemps("");  
95 - //调度指令模板  
96 - conf.setSchDirectiveTemp("");  
97 -  
98 - //80指令回复  
99 - D80ReplyTemp t50 = new D80ReplyTemp(conf, (short)0x50, "同意,回电详谈", "不同意,请回电")  
100 - ,t60 = new D80ReplyTemp(conf, (short)0x60, "同意,回电详谈", "不同意,请回电")  
101 - ,tA2 = new D80ReplyTemp(conf, (short)0xA2, "同意,回电详谈", "不同意,请回电")  
102 - ,t70 = new D80ReplyTemp(conf, (short)0x70, "同意,回电详谈", "不同意,请回电")  
103 - ,t11 = new D80ReplyTemp(conf, (short)0x11, "同意,回电详谈", "不同意,请回电");  
104 -  
105 - Set<D80ReplyTemp> temps = conf.getD80Temps();  
106 - temps.add(t50);  
107 - temps.add(t60);  
108 - temps.add(tA2);  
109 - temps.add(t70);  
110 - temps.add(t11);  
111 -  
112 - set(conf);  
113 - } 29 +
  30 + static Logger logger = LoggerFactory.getLogger(LineConfigData.class);
  31 +
  32 + // 线路编码和配置
  33 + private Map<String, LineConfig> lineConfMap;
  34 +
  35 + @Autowired
  36 + LineConfigService lineConfigService;
  37 +
  38 + @Autowired
  39 + LineService lineService;
  40 +
  41 + //入库缓冲
  42 + static LinkedList<LineConfig> saveBuffers = new LinkedList<>();
  43 +
  44 + @Autowired
  45 + LineConfigPersistThread configPersistThread;
  46 +
  47 + @Override
  48 + public void run(String... arg0) throws Exception {
  49 + lineConfMap = new HashMap<>();
  50 +
  51 + Iterator<LineConfig> itr = lineConfigService.findAll().iterator();
  52 + while (itr.hasNext())
  53 + setBuffer(itr.next());
  54 +
  55 + //异步入库
  56 + Application.mainServices.scheduleWithFixedDelay(configPersistThread, 60, 60, TimeUnit.SECONDS);
  57 + }
  58 +
  59 + /**
  60 + * 起点发出,应用缓冲区设置参数
  61 + * @param sch
  62 + * @param timestamp
  63 + * @return
  64 + */
  65 + public long applyOut(ScheduleRealInfo sch, Long timestamp) {
  66 + LineConfig config = lineConfMap.get(sch.getXlBm());
  67 + int diff = sch.getXlDir()=="0"?config.getUpOutDiff():config.getDownOutDiff();
  68 + return timestamp - (diff * 1000);
  69 + }
  70 +
  71 + /**
  72 + * 终点到达,应用缓冲区设置参数
  73 + * @param sch
  74 + * @param timestamp
  75 + * @return
  76 + */
  77 + public long applyIn(ScheduleRealInfo sch, Long timestamp){
  78 + LineConfig config = lineConfMap.get(sch.getXlBm());
  79 + int diff = sch.getXlDir()=="0"?config.getUpInDiff():config.getDownInDiff();
  80 + return timestamp - (diff * 1000);
  81 + }
  82 +
  83 + @Component
  84 + private static class LineConfigPersistThread extends Thread {
  85 +
  86 + @Autowired
  87 + LineConfigService lineConfigService;
  88 +
  89 + @Override
  90 + public void run() {
  91 + LineConfig config;
  92 + for (int i = 0; i < 800; i++) {
  93 + config = saveBuffers.poll();
  94 + if (config == null)
  95 + break;
  96 +
  97 + try {
  98 + lineConfigService.save(config);
  99 + }catch (Exception e){
  100 + logger.error("", e);
  101 + }
  102 + }
  103 + }
  104 + }
  105 +
  106 + public LineConfig get(String lineCode) {
  107 + return lineConfMap.get(lineCode);
  108 + }
  109 +
  110 + public Collection<LineConfig> getAll() {
  111 + return lineConfMap.values();
  112 + }
  113 +
  114 + public void set(LineConfig conf) {
  115 + //lineConfigService.save(conf);
  116 + saveBuffers.add(conf);
  117 + setBuffer(conf);
  118 + }
  119 +
  120 + public void setBuffer(LineConfig conf) {
  121 + lineConfMap.put(conf.getLine().getLineCode(), conf);
  122 + }
  123 +
  124 + /**
  125 + * @Title: init
  126 + * @Description: TODO(初始化配置信息)
  127 + */
  128 + public void init(String lineCode) throws Exception {
  129 + LineConfig conf = new LineConfig();
  130 + //线路
  131 + Line line = lineService.findByLineCode(lineCode);
  132 + if (null == line)
  133 + throw new NullPointerException("异常的lineCode");
  134 +
  135 + conf.setLine(line);
  136 + //开始运营时间
  137 + conf.setStartOpt("02:00");
  138 + //托管状态
  139 + conf.setTrust(true);
  140 + //出场时间类型
  141 + conf.setOutConfig(0);
  142 + //进场时间类型
  143 + //conf.setInConfig(1);
  144 + //短语模板
  145 + conf.setPhraseTemps("");
  146 + //调度指令模板
  147 + conf.setSchDirectiveTemp("");
  148 +
  149 + //80指令回复 闵行用
  150 + D80ReplyTemp t50 = new D80ReplyTemp(conf, (short) 0x50, "同意,回电详谈", "不同意,请回电"), t60 = new D80ReplyTemp(conf, (short) 0x60, "同意,回电详谈", "不同意,请回电"), tA2 = new D80ReplyTemp(conf, (short) 0xA2, "同意,回电详谈", "不同意,请回电"), t70 = new D80ReplyTemp(conf, (short) 0x70, "同意,回电详谈", "不同意,请回电"), t11 = new D80ReplyTemp(conf, (short) 0x11, "同意,回电详谈", "不同意,请回电");
  151 +
  152 + //应急停靠默认值
  153 + conf.setYjtkStart("00:00");
  154 + conf.setYjtkEnd("23:59");
  155 +
  156 + Set<D80ReplyTemp> temps = conf.getD80Temps();
  157 + temps.add(t50);
  158 + temps.add(t60);
  159 + temps.add(tA2);
  160 + temps.add(t70);
  161 + temps.add(t11);
  162 +
  163 + set(conf);
  164 + }
114 } 165 }
src/main/java/com/bsth/data/gpsdata/arrival/SignalHandle.java
@@ -85,7 +85,7 @@ public abstract class SignalHandle { @@ -85,7 +85,7 @@ public abstract class SignalHandle {
85 gps.setStopNo(station.getCode()); 85 gps.setStopNo(station.getCode());
86 } 86 }
87 87
88 - logger.info(fmtHHmm.print(gps.getTimestamp()) + " 车辆 :" + gps.getNbbm() + " 切换到走向 : " + updown); 88 + logger.info(gps.getTimestamp() + " -" + fmtHHmm.print(gps.getTimestamp()) + " 车辆 :" + gps.getNbbm() + " 切换到走向 : " + updown);
89 } 89 }
90 90
91 /** 91 /**
src/main/java/com/bsth/data/gpsdata/arrival/handlers/CorrectSignalHandle.java
@@ -48,12 +48,6 @@ public class CorrectSignalHandle extends SignalHandle { @@ -48,12 +48,6 @@ public class CorrectSignalHandle extends SignalHandle {
48 gps.setState(0); 48 gps.setState(0);
49 } 49 }
50 50
51 - /*if(gps.getState() != 0){  
52 - logger.info(gps.getNbbm() + " 纠正状态到营运");  
53 - //切换到营运状态  
54 - directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "纠正@系统");  
55 - }*/  
56 -  
57 return true; 51 return true;
58 } 52 }
59 } 53 }
src/main/java/com/bsth/data/gpsdata/arrival/handlers/InOutStationSignalHandle.java
@@ -8,6 +8,7 @@ import com.bsth.data.gpsdata.arrival.utils.ScheduleSignalState; @@ -8,6 +8,7 @@ import com.bsth.data.gpsdata.arrival.utils.ScheduleSignalState;
8 import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher; 8 import com.bsth.data.gpsdata.arrival.utils.SignalSchPlanMatcher;
9 import com.bsth.data.schedule.DayOfSchedule; 9 import com.bsth.data.schedule.DayOfSchedule;
10 import com.bsth.data.schedule.ScheduleComparator; 10 import com.bsth.data.schedule.ScheduleComparator;
  11 +import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
11 import com.bsth.entity.realcontrol.LineConfig; 12 import com.bsth.entity.realcontrol.LineConfig;
12 import com.bsth.entity.realcontrol.ScheduleRealInfo; 13 import com.bsth.entity.realcontrol.ScheduleRealInfo;
13 import com.bsth.service.directive.DirectiveService; 14 import com.bsth.service.directive.DirectiveService;
@@ -135,13 +136,19 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -135,13 +136,19 @@ public class InOutStationSignalHandle extends SignalHandle{
135 if(StringUtils.isNotEmpty(sch.getFcsjActual())) 136 if(StringUtils.isNotEmpty(sch.getFcsjActual()))
136 return; 137 return;
137 138
  139 + //应用到离站缓冲区设置参数
  140 + long rsT = lineConfigData.applyOut(sch, gps.getTimestamp());
  141 +
138 //实发时间 142 //实发时间
139 - sch.setFcsjActualAll(gps.getTimestamp()); 143 + sch.setFcsjActualAll(rsT);
140 //通知客户端 144 //通知客户端
141 sendUtils.sendFcsj(sch); 145 sendUtils.sendFcsj(sch);
142 //持久化 146 //持久化
143 dayOfSchedule.save(sch); 147 dayOfSchedule.save(sch);
144 148
  149 + //清理应发未发标记
  150 + LateAdjustHandle.remove(sch);
  151 +
145 if(sch.getBcType().equals("out")){ 152 if(sch.getBcType().equals("out")){
146 //出场时,切换成营运状态 153 //出场时,切换成营运状态
147 directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "出场@系统"); 154 directiveService.send60Operation(sch.getClZbh(), 0, Integer.parseInt(sch.getXlDir()), null, "出场@系统");
@@ -152,12 +159,32 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -152,12 +159,32 @@ public class InOutStationSignalHandle extends SignalHandle{
152 } 159 }
153 else if(sch.getBcType().equals("out")){ 160 else if(sch.getBcType().equals("out")){
154 ScheduleRealInfo next = dayOfSchedule.nextSame(sch); 161 ScheduleRealInfo next = dayOfSchedule.nextSame(sch);
  162 + //如果下一个班次是区间,并且是环线
  163 + if(next != null && next.getBcType().equals("region")){
  164 + next = dayOfSchedule.nextSame(next);
  165 + if(next == null || !next.getQdzName().equals(next.getZdzName())){
  166 + return;
  167 + }
  168 + }
155 if(next != null && prev.getStopNo().equals(next.getQdzCode())){ 169 if(next != null && prev.getStopNo().equals(next.getQdzCode())){
156 //发下一个班次 170 //发下一个班次
157 dayOfSchedule.addExecPlan(next); 171 dayOfSchedule.addExecPlan(next);
158 outStation(gps, prev); 172 outStation(gps, prev);
159 } 173 }
160 } 174 }
  175 + //当前班次是区间
  176 + else if(sch.getBcType().equals("region")){
  177 + ScheduleRealInfo next = dayOfSchedule.nextSame(sch);
  178 + if(next==null || !next.getQdzName().equals(next.getZdzName())){
  179 + return;
  180 + }
  181 + //是环线
  182 + if(prev.getStopNo().equals(next.getQdzCode())){
  183 + //发下一个班次
  184 + dayOfSchedule.addExecPlan(next);
  185 + outStation(gps, prev);
  186 + }
  187 + }
161 } 188 }
162 189
163 190
@@ -215,24 +242,39 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -215,24 +242,39 @@ public class InOutStationSignalHandle extends SignalHandle{
215 if(StringUtils.isNotEmpty(sch.getZdsjActual())) 242 if(StringUtils.isNotEmpty(sch.getZdsjActual()))
216 return; 243 return;
217 244
218 - sch.setZdsjActualAll(gps.getTimestamp()); 245 + //应用到离站缓冲区设置参数
  246 + long rsT = lineConfigData.applyIn(sch, gps.getTimestamp());
  247 +
  248 + sch.setZdsjActualAll(rsT);
  249 +
  250 + //通知误点停靠程序,有车辆到站
  251 + LateAdjustHandle.carArrive(gps);
  252 +
219 //已完成班次数 253 //已完成班次数
220 int doneSum = dayOfSchedule.doneSum(sch.getClZbh()); 254 int doneSum = dayOfSchedule.doneSum(sch.getClZbh());
221 ScheduleRealInfo next = dayOfSchedule.next(sch); 255 ScheduleRealInfo next = dayOfSchedule.next(sch);
222 - //通知客户端  
223 - sendUtils.sendZdsj(sch, next, doneSum);  
224 //持久化 256 //持久化
225 dayOfSchedule.save(sch); 257 dayOfSchedule.save(sch);
226 258
227 - //准备执行下一个班次  
228 - if (next != null) {  
229 - next.setQdzArrDatesj(sch.getZdsjActual()); 259 + if(next != null){
230 dayOfSchedule.addExecPlan(next); 260 dayOfSchedule.addExecPlan(next);
231 //进站既进场 261 //进站既进场
232 inStationAndInPark(sch, next); 262 inStationAndInPark(sch, next);
  263 + }
  264 +
  265 + //该路牌的下一个班次,起点实际到达时间
  266 + ScheduleRealInfo lpNext = dayOfSchedule.nextByLp(sch);
  267 + if(lpNext != null){
  268 + lpNext.setQdzArrDatesj(sch.getZdsjActual());
  269 + }
  270 +
  271 + //通知客户端
  272 + sendUtils.sendZdsj(sch, lpNext, doneSum);
  273 +
  274 + //准备执行下一个班次
  275 + if (next != null) {
233 //将gps转换为下一个班次走向的站内信号 276 //将gps转换为下一个班次走向的站内信号
234 transformUpdown(gps, next); 277 transformUpdown(gps, next);
235 -  
236 //下发调度指令 278 //下发调度指令
237 directiveService.send60Dispatch(next, doneSum, "到站@系统"); 279 directiveService.send60Dispatch(next, doneSum, "到站@系统");
238 280
@@ -254,7 +296,7 @@ public class InOutStationSignalHandle extends SignalHandle{ @@ -254,7 +296,7 @@ public class InOutStationSignalHandle extends SignalHandle{
254 //如果当前班次是出场,并且进的是下一个班次的终点 296 //如果当前班次是出场,并且进的是下一个班次的终点
255 if(sch.getBcType().equals("out")){ 297 if(sch.getBcType().equals("out")){
256 ScheduleRealInfo next = dayOfSchedule.next(sch); 298 ScheduleRealInfo next = dayOfSchedule.next(sch);
257 - if(next.getZdzCode().equals(gps.getStopNo())){ 299 + if(next != null && next.getZdzCode().equals(gps.getStopNo())){
258 List<ScheduleRealInfo> halfList = dayOfSchedule.findByNbbm(sch.getClZbh()); 300 List<ScheduleRealInfo> halfList = dayOfSchedule.findByNbbm(sch.getClZbh());
259 //和当前进站信号最匹配的一个班次 301 //和当前进站信号最匹配的一个班次
260 ScheduleRealInfo nearSch = nearScheduleByGpsIn(gps, halfList); 302 ScheduleRealInfo nearSch = nearScheduleByGpsIn(gps, halfList);
src/main/java/com/bsth/data/gpsdata/arrival/handlers/OfflineSignalHandle.java
@@ -30,7 +30,8 @@ public class OfflineSignalHandle extends SignalHandle{ @@ -30,7 +30,8 @@ public class OfflineSignalHandle extends SignalHandle{
30 30
31 if(isNotEmpty(prevs)){ 31 if(isNotEmpty(prevs)){
32 GpsEntity prev = prevs.getTail(); 32 GpsEntity prev = prevs.getTail();
33 - int space = (int) (gps.getTimestamp() - prev.getTimestamp()); 33 + //间隔太大就丢弃,不管之前还是之后
  34 + int space = Math.abs((int) (gps.getTimestamp() - prev.getTimestamp()));
34 if(space > OFFLINE_TIME) 35 if(space > OFFLINE_TIME)
35 gps.setSignalState("reconnection"); 36 gps.setSignalState("reconnection");
36 37
src/main/java/com/bsth/data/gpsdata/recovery/GpsDataRecovery.java
@@ -60,7 +60,7 @@ public class GpsDataRecovery implements ApplicationContextAware { @@ -60,7 +60,7 @@ public class GpsDataRecovery implements ApplicationContextAware {
60 for (String nbbm : keys) { 60 for (String nbbm : keys) {
61 Collections.sort(listMap.get(nbbm), comp); 61 Collections.sort(listMap.get(nbbm), comp);
62 threadPool.execute(new RecoveryThread(listMap.get(nbbm), count)); 62 threadPool.execute(new RecoveryThread(listMap.get(nbbm), count));
63 - /*if(nbbm.equals("SXC-YD012")) 63 + /*if(nbbm.equals("W7C-001"))
64 new RecoveryThread(listMap.get(nbbm), count).run();*/ 64 new RecoveryThread(listMap.get(nbbm), count).run();*/
65 } 65 }
66 66
src/main/java/com/bsth/data/safe_driv/SafeDriv.java 0 → 100644
  1 +package com.bsth.data.safe_driv;
  2 +
  3 +/**
  4 + * 安全驾驶
  5 + * Created by panzhao on 2017/4/6.
  6 + */
  7 +public class SafeDriv {
  8 +
  9 + /**
  10 + * 时间
  11 + * 2017-04-06 08:00:00.0
  12 + */
  13 + private String Startime;
  14 +
  15 + /**
  16 + * 时间戳
  17 + */
  18 + private Long ts;
  19 +
  20 + /**
  21 + * 设备编号
  22 + */
  23 + private String sbbh;
  24 +
  25 + /**
  26 + * 线路名称
  27 + */
  28 + private String xlmc;
  29 +
  30 + private String xlbm;
  31 +
  32 + /**
  33 + * 车辆自编号
  34 + */
  35 + private String clzbh;
  36 +
  37 + /**
  38 + * 车牌号
  39 + */
  40 + private String cph;
  41 +
  42 + /**
  43 + * 检查属性
  44 + * 双脱手 0 单脱手 1 其他为0都是异常
  45 + */
  46 + private String jctype;
  47 +
  48 + /**
  49 + * 异常种类
  50 + * 手部检测: 1
  51 + * 脸部检测: 5
  52 + * 摄像头检测: 2
  53 + * 安全带检测: 3
  54 + * 袖章检测: 4
  55 + */
  56 + private String yczltype;
  57 +
  58 + @Override
  59 + public int hashCode() {
  60 + return ("safe_" + (this.getClzbh() + this.getStartime())).hashCode();
  61 + }
  62 +
  63 + @Override
  64 + public boolean equals(Object obj) {
  65 + SafeDriv s2 = (SafeDriv)obj;
  66 + return (this.getClzbh() + this.getStartime()).equals(s2.getClzbh() + s2.getStartime());
  67 + }
  68 +
  69 + public String getStartime() {
  70 + return Startime;
  71 + }
  72 +
  73 + public void setStartime(String startime) {
  74 + Startime = startime;
  75 + }
  76 +
  77 + public String getSbbh() {
  78 + return sbbh;
  79 + }
  80 +
  81 + public void setSbbh(String sbbh) {
  82 + this.sbbh = sbbh;
  83 + }
  84 +
  85 + public String getXlmc() {
  86 + return xlmc;
  87 + }
  88 +
  89 + public void setXlmc(String xlmc) {
  90 + this.xlmc = xlmc;
  91 + }
  92 +
  93 + public String getClzbh() {
  94 + return clzbh;
  95 + }
  96 +
  97 + public void setClzbh(String clzbh) {
  98 + this.clzbh = clzbh;
  99 + }
  100 +
  101 + public String getCph() {
  102 + return cph;
  103 + }
  104 +
  105 + public void setCph(String cph) {
  106 + this.cph = cph;
  107 + }
  108 +
  109 + public String getJctype() {
  110 + return jctype;
  111 + }
  112 +
  113 + public void setJctype(String jctype) {
  114 + this.jctype = jctype;
  115 + }
  116 +
  117 + public String getYczltype() {
  118 + return yczltype;
  119 + }
  120 +
  121 + public void setYczltype(String yczltype) {
  122 + this.yczltype = yczltype;
  123 + }
  124 +
  125 + public Long getTs() {
  126 + return ts;
  127 + }
  128 +
  129 + public void setTs(Long ts) {
  130 + this.ts = ts;
  131 + }
  132 +
  133 + public String getXlbm() {
  134 + return xlbm;
  135 + }
  136 +
  137 + public void setXlbm(String xlbm) {
  138 + this.xlbm = xlbm;
  139 + }
  140 +}
src/main/java/com/bsth/data/safe_driv/SafeDrivCenter.java 0 → 100644
  1 +package com.bsth.data.safe_driv;
  2 +
  3 +import com.bsth.websocket.handler.SendUtils;
  4 +import org.joda.time.format.DateTimeFormat;
  5 +import org.joda.time.format.DateTimeFormatter;
  6 +import org.springframework.beans.BeansException;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.boot.CommandLineRunner;
  9 +import org.springframework.context.ApplicationContext;
  10 +import org.springframework.context.ApplicationContextAware;
  11 +import org.springframework.stereotype.Component;
  12 +
  13 +import java.util.HashMap;
  14 +import java.util.HashSet;
  15 +import java.util.Map;
  16 +import java.util.Set;
  17 +
  18 +/**
  19 + * 安全驾驶
  20 + * Created by panzhao on 2017/4/6.
  21 + */
  22 +@Component
  23 +public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware {
  24 +
  25 + private static Set<SafeDriv> data;
  26 +
  27 + @Autowired
  28 + SafeDrivDataLoadThread safeDrivDataLoadThread;
  29 +
  30 + static SendUtils sendUtils;
  31 +
  32 + /**
  33 + * 车辆自编号 和 最新一条数据对照
  34 + */
  35 + private static Map<String, SafeDriv> safeMap;
  36 +
  37 + static {
  38 + data = new HashSet<>();
  39 + safeMap = new HashMap<>();
  40 + }
  41 +
  42 + private static DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
  43 + public static void put(SafeDriv sd){
  44 + sd.setTs(fmt.parseMillis(sd.getStartime()));
  45 +
  46 + if(sd.getYczltype().indexOf("A") == -1)
  47 + sd.setYczltype("A" + sd.getYczltype());
  48 +
  49 + //SafeDriv old = safeMap.get(sd.getClzbh());
  50 + if(!data.contains(sd)){
  51 + //通知客户端
  52 + sendUtils.sendSafeDriv(sd);
  53 + data.add(sd);
  54 + safeMap.put(sd.getClzbh(), sd);
  55 + }
  56 + }
  57 +
  58 + public static Set<SafeDriv> findAll(){
  59 + return data;
  60 + }
  61 +
  62 + public static void clear(){
  63 + data = new HashSet<>();
  64 + safeMap = new HashMap<>();
  65 + }
  66 +
  67 + @Override
  68 + public void run(String... strings) throws Exception {
  69 + //定时加载安全驾驶数据
  70 + //Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 60, 4, TimeUnit.SECONDS);
  71 + }
  72 +
  73 + @Override
  74 + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  75 + sendUtils = applicationContext.getBean(SendUtils.class);
  76 + }
  77 +}
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java 0 → 100644
  1 +package com.bsth.data.safe_driv;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import org.apache.http.HttpEntity;
  5 +import org.apache.http.client.methods.CloseableHttpResponse;
  6 +import org.apache.http.client.methods.HttpGet;
  7 +import org.apache.http.impl.client.CloseableHttpClient;
  8 +import org.apache.http.impl.client.HttpClients;
  9 +import org.slf4j.Logger;
  10 +import org.slf4j.LoggerFactory;
  11 +import org.springframework.stereotype.Component;
  12 +
  13 +import java.io.BufferedReader;
  14 +import java.io.InputStreamReader;
  15 +import java.util.List;
  16 +
  17 +/**
  18 + * 安全驾驶数据加载线程
  19 + * Created by panzhao on 2017/4/6.
  20 + */
  21 +@Component
  22 +public class SafeDrivDataLoadThread extends Thread{
  23 +
  24 + private final static String url = "http://180.166.5.82:9988//bsth-safedriving/Crlcxb/realtimeInterface.do";
  25 +
  26 + Logger logger = LoggerFactory.getLogger(this.getClass());
  27 +
  28 + @Override
  29 + public void run() {
  30 + List<SafeDriv> list = null;
  31 + CloseableHttpClient httpClient = null;
  32 + CloseableHttpResponse response = null;
  33 + try {
  34 + httpClient = HttpClients.createDefault();
  35 + HttpGet get = new HttpGet(url);
  36 +
  37 + response = httpClient.execute(get);
  38 +
  39 + HttpEntity entity = response.getEntity();
  40 + if (null != entity) {
  41 + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  42 + StringBuffer stringBuffer = new StringBuffer();
  43 + String str = "";
  44 + while ((str = br.readLine()) != null)
  45 + stringBuffer.append(str);
  46 +
  47 +
  48 + list = JSON.parseArray(stringBuffer.toString(), SafeDriv.class);
  49 + /**
  50 + * 模拟数据
  51 +
  52 + SafeDriv sd1 = new SafeDriv();
  53 + sd1.setYczltype("1");
  54 + sd1.setClzbh("W2B-001");
  55 + sd1.setStartime("2017-04-07 08:00:00.0");
  56 +
  57 + SafeDriv sd2 = new SafeDriv();
  58 + sd2.setYczltype("2");
  59 + sd2.setClzbh("W2B-002");
  60 + sd2.setStartime("2017-04-07 08:02:00.0");
  61 +
  62 + SafeDriv sd3 = new SafeDriv();
  63 + sd3.setYczltype("3");
  64 + sd3.setClzbh("W2B-003");
  65 + sd3.setStartime("2017-04-07 08:03:00.0");
  66 +
  67 + SafeDriv sd4 = new SafeDriv();
  68 + sd4.setYczltype("4");
  69 + sd4.setClzbh("W2B-004");
  70 + sd4.setStartime("2017-04-07 08:04:00.0");
  71 +
  72 + SafeDriv sd5 = new SafeDriv();
  73 + sd5.setYczltype("5");
  74 + sd5.setClzbh("W2B-005");
  75 + sd5.setStartime("2017-04-07 08:05:00.0");
  76 +
  77 + list.add(sd1);
  78 + list.add(sd2);
  79 + list.add(sd3);
  80 + list.add(sd4);
  81 + list.add(sd5);
  82 + */
  83 + for(SafeDriv sd : list){
  84 + SafeDrivCenter.put(sd);
  85 + }
  86 + }
  87 +
  88 + httpClient.close();
  89 + response.close();
  90 + } catch (Exception e) {
  91 + logger.error(e.getMessage());
  92 + }
  93 + }
  94 +}
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -3,12 +3,18 @@ package com.bsth.data.schedule; @@ -3,12 +3,18 @@ package com.bsth.data.schedule;
3 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
4 import com.alibaba.fastjson.JSONArray; 4 import com.alibaba.fastjson.JSONArray;
5 import com.bsth.Application; 5 import com.bsth.Application;
  6 +import com.bsth.common.Constants;
  7 +import com.bsth.common.ResponseCode;
6 import com.bsth.data.BasicData; 8 import com.bsth.data.BasicData;
7 import com.bsth.data.LineConfigData; 9 import com.bsth.data.LineConfigData;
8 import com.bsth.data.directive.DirectivesPstThread; 10 import com.bsth.data.directive.DirectivesPstThread;
9 import com.bsth.data.gpsdata.GpsRealData; 11 import com.bsth.data.gpsdata.GpsRealData;
10 import com.bsth.data.gpsdata.recovery.GpsDataRecovery; 12 import com.bsth.data.gpsdata.recovery.GpsDataRecovery;
11 -import com.bsth.data.schedule.thread.*; 13 +import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
  14 +import com.bsth.data.schedule.thread.CalcOilThread;
  15 +import com.bsth.data.schedule.thread.SchedulePstThread;
  16 +import com.bsth.data.schedule.thread.ScheduleRefreshThread;
  17 +import com.bsth.data.schedule.thread.SubmitToTrafficManage;
12 import com.bsth.entity.realcontrol.LineConfig; 18 import com.bsth.entity.realcontrol.LineConfig;
13 import com.bsth.entity.realcontrol.ScheduleRealInfo; 19 import com.bsth.entity.realcontrol.ScheduleRealInfo;
14 import com.bsth.entity.schedule.SchedulePlanInfo; 20 import com.bsth.entity.schedule.SchedulePlanInfo;
@@ -17,8 +23,9 @@ import com.bsth.service.schedule.SchedulePlanInfoService; @@ -17,8 +23,9 @@ import com.bsth.service.schedule.SchedulePlanInfoService;
17 import com.bsth.util.BatchSaveUtils; 23 import com.bsth.util.BatchSaveUtils;
18 import com.bsth.util.DateUtils; 24 import com.bsth.util.DateUtils;
19 import com.bsth.websocket.handler.SendUtils; 25 import com.bsth.websocket.handler.SendUtils;
  26 +import com.google.common.base.Predicate;
20 import com.google.common.collect.ArrayListMultimap; 27 import com.google.common.collect.ArrayListMultimap;
21 -import com.google.common.collect.TreeMultimap; 28 +import com.google.common.collect.Collections2;
22 import org.apache.commons.lang3.StringUtils; 29 import org.apache.commons.lang3.StringUtils;
23 import org.joda.time.format.DateTimeFormat; 30 import org.joda.time.format.DateTimeFormat;
24 import org.joda.time.format.DateTimeFormatter; 31 import org.joda.time.format.DateTimeFormatter;
@@ -27,6 +34,8 @@ import org.slf4j.LoggerFactory; @@ -27,6 +34,8 @@ import org.slf4j.LoggerFactory;
27 import org.springframework.beans.factory.annotation.Autowired; 34 import org.springframework.beans.factory.annotation.Autowired;
28 import org.springframework.boot.CommandLineRunner; 35 import org.springframework.boot.CommandLineRunner;
29 import org.springframework.core.annotation.Order; 36 import org.springframework.core.annotation.Order;
  37 +import org.springframework.dao.DataIntegrityViolationException;
  38 +import org.springframework.jdbc.core.JdbcTemplate;
30 import org.springframework.stereotype.Component; 39 import org.springframework.stereotype.Component;
31 40
32 import java.text.ParseException; 41 import java.text.ParseException;
@@ -52,16 +61,16 @@ public class DayOfSchedule implements CommandLineRunner { @@ -52,16 +61,16 @@ public class DayOfSchedule implements CommandLineRunner {
52 // 按车辆分组的班次数据 61 // 按车辆分组的班次数据
53 private static ArrayListMultimap<String, ScheduleRealInfo> nbbmScheduleMap; 62 private static ArrayListMultimap<String, ScheduleRealInfo> nbbmScheduleMap;
54 63
  64 + //按路牌分组的班次数据 线路编码_路牌名称 ——> 班次list
  65 + private static ArrayListMultimap<String, ScheduleRealInfo> lpScheduleMap;
  66 +
55 // 班次主键映射 67 // 班次主键映射
56 private static Map<Long, ScheduleRealInfo> id2SchedulMap; 68 private static Map<Long, ScheduleRealInfo> id2SchedulMap;
57 69
58 - // 车辆和排班起终点站对照(包括进出的停车场,区间起终点)  
59 - private static TreeMultimap<String, String> nbbm2SEStationMap;  
60 -  
61 //车辆 ——> 当前执行班次 70 //车辆 ——> 当前执行班次
62 private static Map<String, ScheduleRealInfo> carExecutePlanMap; 71 private static Map<String, ScheduleRealInfo> carExecutePlanMap;
63 72
64 - // 持久化缓冲区 73 + // 持久化
65 public static LinkedList<ScheduleRealInfo> pstBuffer; 74 public static LinkedList<ScheduleRealInfo> pstBuffer;
66 75
67 // 排序器 76 // 排序器
@@ -95,11 +104,12 @@ public class DayOfSchedule implements CommandLineRunner { @@ -95,11 +104,12 @@ public class DayOfSchedule implements CommandLineRunner {
95 104
96 static { 105 static {
97 nbbmScheduleMap = ArrayListMultimap.create(); 106 nbbmScheduleMap = ArrayListMultimap.create();
  107 + lpScheduleMap = ArrayListMultimap.create();
  108 +
98 id2SchedulMap = new HashMap<>(); 109 id2SchedulMap = new HashMap<>();
99 pstBuffer = new LinkedList<>(); 110 pstBuffer = new LinkedList<>();
100 schFCSJComparator = new ScheduleComparator.FCSJ(); 111 schFCSJComparator = new ScheduleComparator.FCSJ();
101 currSchDateMap = new HashMap<>(); 112 currSchDateMap = new HashMap<>();
102 - nbbm2SEStationMap = TreeMultimap.create();  
103 carExecutePlanMap = new HashMap<>(); 113 carExecutePlanMap = new HashMap<>();
104 114
105 schedulePlanMap = new HashMap<>(); 115 schedulePlanMap = new HashMap<>();
@@ -138,11 +148,11 @@ public class DayOfSchedule implements CommandLineRunner { @@ -138,11 +148,11 @@ public class DayOfSchedule implements CommandLineRunner {
138 //dataRecovery(); 148 //dataRecovery();
139 149
140 //翻班线程 150 //翻班线程
141 - Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS); 151 +// Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
142 //入库 152 //入库
143 // Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS); 153 // Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
144 //班次误点扫描 154 //班次误点扫描
145 -// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 60, TimeUnit.SECONDS); 155 +// Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS);
146 156
147 //每天凌晨2点20提交数据到运管处 157 //每天凌晨2点20提交数据到运管处
148 long diff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis(); 158 long diff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();
@@ -150,10 +160,10 @@ public class DayOfSchedule implements CommandLineRunner { @@ -150,10 +160,10 @@ public class DayOfSchedule implements CommandLineRunner {
150 diff += (1000 * 60 * 60 * 24); 160 diff += (1000 * 60 * 60 * 24);
151 161
152 logger.info(diff / 1000 / 60 + "分钟之后提交到运管处"); 162 logger.info(diff / 1000 / 60 + "分钟之后提交到运管处");
153 - //Application.mainServices.scheduleWithFixedDelay(submitToTrafficManage, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 163 + //Application.mainServices.scheduleAtFixedRate(submitToTrafficManage, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
154 164
155 //计算油、公里加注 165 //计算油、公里加注
156 - Application.mainServices.scheduleWithFixedDelay(calcOilThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS); 166 + Application.mainServices.scheduleAtFixedRate(calcOilThread, diff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
157 167
158 //指令持久化线程 168 //指令持久化线程
159 Application.mainServices.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS); 169 Application.mainServices.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);
@@ -226,10 +236,14 @@ public class DayOfSchedule implements CommandLineRunner { @@ -226,10 +236,14 @@ public class DayOfSchedule implements CommandLineRunner {
226 //添加到缓存 236 //添加到缓存
227 putAll(list); 237 putAll(list);
228 238
  239 +
  240 + Set<String> lps = searchAllLP(list);
  241 + for(String lp : lps){
  242 + //计算“起点站应到”时间
  243 + schAttrCalculator.calcQdzTimePlan(lpScheduleMap.get(lineCode + "_" + lp));
  244 + }
229 Set<String> cars = searchAllCars(list); 245 Set<String> cars = searchAllCars(list);
230 for (String nbbm : cars) { 246 for (String nbbm : cars) {
231 - //计算“起点站应到”时间  
232 - schAttrCalculator.calcQdzTimePlan(nbbmScheduleMap.get(nbbm));  
233 //车辆 ——> 要执行的班次对照 247 //车辆 ——> 要执行的班次对照
234 reCalcExecPlan(nbbm); 248 reCalcExecPlan(nbbm);
235 } 249 }
@@ -244,10 +258,14 @@ public class DayOfSchedule implements CommandLineRunner { @@ -244,10 +258,14 @@ public class DayOfSchedule implements CommandLineRunner {
244 return 0; 258 return 0;
245 } 259 }
246 260
  261 + public int reloadSch(String lineCode){
  262 + return reloadSch(lineCode, calcSchDate(lineCode), true);
  263 + }
  264 +
247 /** 265 /**
248 * @Title: searchAllCars 266 * @Title: searchAllCars
249 * @Description: TODO(搜索班次集合中的车辆) 267 * @Description: TODO(搜索班次集合中的车辆)
250 - */ 268 + */
251 private Set<String> searchAllCars(List<ScheduleRealInfo> list) { 269 private Set<String> searchAllCars(List<ScheduleRealInfo> list) {
252 Set<String> cars = new HashSet<>(); 270 Set<String> cars = new HashSet<>();
253 for (ScheduleRealInfo sch : list) 271 for (ScheduleRealInfo sch : list)
@@ -256,6 +274,18 @@ public class DayOfSchedule implements CommandLineRunner { @@ -256,6 +274,18 @@ public class DayOfSchedule implements CommandLineRunner {
256 return cars; 274 return cars;
257 } 275 }
258 276
  277 + /**
  278 + * @Title: searchAllCars
  279 + * @Description: TODO(搜索班次集合中的路牌)
  280 + */
  281 + private Set<String> searchAllLP(List<ScheduleRealInfo> list) {
  282 + Set<String> lps = new HashSet<>();
  283 + for (ScheduleRealInfo sch : list)
  284 + lps.add(sch.getLpName());
  285 +
  286 + return lps;
  287 + }
  288 +
259 private void putAll(List<ScheduleRealInfo> list) { 289 private void putAll(List<ScheduleRealInfo> list) {
260 for (ScheduleRealInfo sch : list) 290 for (ScheduleRealInfo sch : list)
261 put(sch); 291 put(sch);
@@ -301,6 +331,17 @@ public class DayOfSchedule implements CommandLineRunner { @@ -301,6 +331,17 @@ public class DayOfSchedule implements CommandLineRunner {
301 } 331 }
302 } 332 }
303 333
  334 + //清理路牌对照
  335 + List<String> lprms = new ArrayList<>();
  336 + Set<String> lps = lpScheduleMap.keySet();
  337 + for(String lp : lps){
  338 + if(lp.indexOf(lineCode + "_") != -1)
  339 + lprms.add(lp);
  340 + }
  341 +
  342 + for(String lp : lprms)
  343 + lpScheduleMap.removeAll(lp);
  344 +
304 logger.info(lineCode + "排班清理 " + count); 345 logger.info(lineCode + "排班清理 " + count);
305 } 346 }
306 347
@@ -379,10 +420,15 @@ public class DayOfSchedule implements CommandLineRunner { @@ -379,10 +420,15 @@ public class DayOfSchedule implements CommandLineRunner {
379 sch.setLate(false); 420 sch.setLate(false);
380 } 421 }
381 422
  423 + //售票员为空设置为""字符串
  424 + if(StringUtils.isEmpty(sch.getsGh())){
  425 + sch.setsGh("");
  426 + sch.setsName("");
  427 + }
382 sch.setJhlcOrig(sch.getJhlc()); 428 sch.setJhlcOrig(sch.getJhlc());
383 - //计划里程为0,设置NULL  
384 - //if (sch.getJhlc() != null && sch.getJhlc() == 0)  
385 - // sch.setJhlc(null); 429 + //保留备注
  430 + if(StringUtils.isNotEmpty(sch.getRemark()))
  431 + sch.setRemarks(sch.getRemark());
386 } 432 }
387 } catch (Exception e) { 433 } catch (Exception e) {
388 logger.error("", e); 434 logger.error("", e);
@@ -480,18 +526,31 @@ public class DayOfSchedule implements CommandLineRunner { @@ -480,18 +526,31 @@ public class DayOfSchedule implements CommandLineRunner {
480 return id2SchedulMap.get(id); 526 return id2SchedulMap.get(id);
481 } 527 }
482 528
483 - public Set<String> getSEStationList(String nbbm) {  
484 - return nbbm2SEStationMap.get(nbbm);  
485 - }  
486 529
487 /** 530 /**
488 * @Title: next 531 * @Title: next
489 * @Description: TODO(下一个班次) 532 * @Description: TODO(下一个班次)
490 */ 533 */
491 public ScheduleRealInfo next(ScheduleRealInfo sch) { 534 public ScheduleRealInfo next(ScheduleRealInfo sch) {
  535 + List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());
  536 + return next(list, sch);
  537 + }
492 538
  539 + /**
  540 + * 下一个相同走向的班次
  541 + * @param sch
  542 + * @return
  543 + */
  544 + public ScheduleRealInfo nextSame(final ScheduleRealInfo sch){
493 List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh()); 545 List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());
494 - int outConfig = -1; 546 + Collection<ScheduleRealInfo> subList = Collections2.filter(list, new Predicate<ScheduleRealInfo>(){
  547 +
  548 + @Override
  549 + public boolean apply(ScheduleRealInfo item) {
  550 + return item.getXlDir().equals(sch.getXlDir());
  551 + }
  552 + });
  553 + /*int outConfig = -1;
495 LineConfig config = lineConfigData.get(sch.getXlBm()); 554 LineConfig config = lineConfigData.get(sch.getXlBm());
496 if (config != null) 555 if (config != null)
497 outConfig = config.getOutConfig(); 556 outConfig = config.getOutConfig();
@@ -515,21 +574,22 @@ public class DayOfSchedule implements CommandLineRunner { @@ -515,21 +574,22 @@ public class DayOfSchedule implements CommandLineRunner {
515 && (!limitPark || park.equals(temp.getQdzCode()))) 574 && (!limitPark || park.equals(temp.getQdzCode())))
516 continue; 575 continue;
517 576
518 - if (flag) { 577 + if (flag && temp.getXlDir().equals(sch.getXlDir())) {
519 next = temp; 578 next = temp;
520 break; 579 break;
521 } 580 }
522 - }  
523 - return next; 581 + }*/
  582 + return next(subList, sch);
524 } 583 }
525 584
  585 +
526 /** 586 /**
527 - * 下一个相同走向的班次  
528 - * @param sch 587 + * 下一个班次
  588 + * @param list 班次集合
  589 + * @param sch 当前班次
529 * @return 590 * @return
530 */ 591 */
531 - public ScheduleRealInfo nextSame(ScheduleRealInfo sch){  
532 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh()); 592 + private ScheduleRealInfo next(Collection<ScheduleRealInfo> list , ScheduleRealInfo sch){
533 int outConfig = -1; 593 int outConfig = -1;
534 LineConfig config = lineConfigData.get(sch.getXlBm()); 594 LineConfig config = lineConfigData.get(sch.getXlBm());
535 if (config != null) 595 if (config != null)
@@ -554,7 +614,7 @@ public class DayOfSchedule implements CommandLineRunner { @@ -554,7 +614,7 @@ public class DayOfSchedule implements CommandLineRunner {
554 && (!limitPark || park.equals(temp.getQdzCode()))) 614 && (!limitPark || park.equals(temp.getQdzCode())))
555 continue; 615 continue;
556 616
557 - if (flag && temp.getXlDir().equals(sch.getXlDir())) { 617 + if (flag) {
558 next = temp; 618 next = temp;
559 break; 619 break;
560 } 620 }
@@ -610,16 +670,21 @@ public class DayOfSchedule implements CommandLineRunner { @@ -610,16 +670,21 @@ public class DayOfSchedule implements CommandLineRunner {
610 670
611 String nbbm = sch.getClZbh(); 671 String nbbm = sch.getClZbh();
612 nbbmScheduleMap.put(nbbm, sch); 672 nbbmScheduleMap.put(nbbm, sch);
613 - nbbm2SEStationMap.put(nbbm, sch.getQdzCode());  
614 - nbbm2SEStationMap.put(nbbm, sch.getZdzCode());  
615 673
616 //主键索引 674 //主键索引
617 id2SchedulMap.put(sch.getId(), sch); 675 id2SchedulMap.put(sch.getId(), sch);
  676 + //路牌对照表
  677 + addLPMapp(sch);
  678 +
618 //跨24点的,再save一次 679 //跨24点的,再save一次
619 if (!sch.getRealExecDate().equals(sch.getScheduleDateStr())) 680 if (!sch.getRealExecDate().equals(sch.getScheduleDateStr()))
620 save(sch); 681 save(sch);
621 } 682 }
622 683
  684 + public void addLPMapp(ScheduleRealInfo sch){
  685 + lpScheduleMap.put(sch.getXlBm() + "_" + sch.getLpName(), sch);
  686 + }
  687 +
623 public void delete(ScheduleRealInfo sch) { 688 public void delete(ScheduleRealInfo sch) {
624 //ScheduleRealInfo sch = id2SchedulMap.get(id); 689 //ScheduleRealInfo sch = id2SchedulMap.get(id);
625 if (!sch.isSflj()) 690 if (!sch.isSflj())
@@ -627,38 +692,25 @@ public class DayOfSchedule implements CommandLineRunner { @@ -627,38 +692,25 @@ public class DayOfSchedule implements CommandLineRunner {
627 692
628 nbbmScheduleMap.remove(sch.getClZbh(), sch); 693 nbbmScheduleMap.remove(sch.getClZbh(), sch);
629 id2SchedulMap.remove(sch.getId()); 694 id2SchedulMap.remove(sch.getId());
  695 + lpScheduleMap.remove(sch.getXlBm() + "_" + sch.getLpName(), sch);
630 //return sch; 696 //return sch;
631 } 697 }
632 698
633 -// public void calcQdzTimePlan(String nbbm){  
634 -// schAttrCalculator.calcQdzTimePlan(nbbmScheduleMap.get(nbbm));  
635 -// }  
636 699
637 - public List<ScheduleRealInfo> updateQdzTimePlan(String nbbm) { 700 +/* public List<ScheduleRealInfo> updateQdzTimePlan(String nbbm) {
638 Collections.sort(nbbmScheduleMap.get(nbbm), schFCSJComparator); 701 Collections.sort(nbbmScheduleMap.get(nbbm), schFCSJComparator);
639 return schAttrCalculator.updateQdzTimePlan(nbbmScheduleMap.get(nbbm)); 702 return schAttrCalculator.updateQdzTimePlan(nbbmScheduleMap.get(nbbm));
640 - }  
641 -  
642 - /**  
643 - *  
644 - * @Title: nextAll  
645 - * @Description: TODO(之后的所有班次)  
646 - */  
647 -/* public List<ScheduleRealInfo> nextAll(ScheduleRealInfo sch) {  
648 - List<ScheduleRealInfo> list = nbbmScheduleMap.get(sch.getClZbh());  
649 - // 排序  
650 - Collections.sort(list, schFCSJComparator); 703 + }*/
651 704
652 - List<ScheduleRealInfo> rs = new ArrayList<>();  
653 - ScheduleRealInfo temp;  
654 - for (int i = 0; i < list.size() - 1; i++) {  
655 - temp = list.get(i);  
656 - if(temp.getFcsjT() > sch.getFcsjT())  
657 - rs.add(temp); 705 + public List<ScheduleRealInfo> updateQdzTimePlan(String lpName) {
  706 + List<ScheduleRealInfo> list = lpScheduleMap.get(lpName);
  707 + Collections.sort(list, schFCSJComparator);
  708 + return schAttrCalculator.updateQdzTimePlan(list);
  709 + }
658 710
659 - }  
660 - return rs;  
661 - }*/ 711 + public List<ScheduleRealInfo> updateQdzTimePlan(ScheduleRealInfo sch) {
  712 + return updateQdzTimePlan(sch.getXlBm() + "_" + sch.getLpName());
  713 + }
662 714
663 /** 715 /**
664 * @Title: doneSum 716 * @Title: doneSum
@@ -818,9 +870,9 @@ public class DayOfSchedule implements CommandLineRunner { @@ -818,9 +870,9 @@ public class DayOfSchedule implements CommandLineRunner {
818 */ 870 */
819 public List<ScheduleRealInfo> changeCar(ScheduleRealInfo sch, String newClZbh) { 871 public List<ScheduleRealInfo> changeCar(ScheduleRealInfo sch, String newClZbh) {
820 List<ScheduleRealInfo> ups = new ArrayList<>(); 872 List<ScheduleRealInfo> ups = new ArrayList<>();
821 - String oldClzbh = sch.getClZbh(); 873 + /*String oldClzbh = sch.getClZbh();
822 if (oldClzbh.equals(newClZbh)) 874 if (oldClzbh.equals(newClZbh))
823 - return ups; 875 + return ups;*/
824 876
825 877
826 //变更相关映射信息 878 //变更相关映射信息
@@ -828,12 +880,10 @@ public class DayOfSchedule implements CommandLineRunner { @@ -828,12 +880,10 @@ public class DayOfSchedule implements CommandLineRunner {
828 880
829 sch.setClZbh(newClZbh); 881 sch.setClZbh(newClZbh);
830 nbbmScheduleMap.put(newClZbh, sch); 882 nbbmScheduleMap.put(newClZbh, sch);
831 - nbbm2SEStationMap.put(newClZbh, sch.getQdzCode());  
832 - nbbm2SEStationMap.put(newClZbh, sch.getZdzCode());  
833 883
834 //重新计算班次应到时间 884 //重新计算班次应到时间
835 - ups.addAll(updateQdzTimePlan(oldClzbh));  
836 - ups.addAll(updateQdzTimePlan(newClZbh)); 885 + //ups.addAll(updateQdzTimePlan(oldClzbh));
  886 + //ups.addAll(updateQdzTimePlan(newClZbh));
837 887
838 //重新计算车辆当前执行班次 888 //重新计算车辆当前执行班次
839 reCalcExecPlan(newClZbh); 889 reCalcExecPlan(newClZbh);
@@ -850,7 +900,9 @@ public class DayOfSchedule implements CommandLineRunner { @@ -850,7 +900,9 @@ public class DayOfSchedule implements CommandLineRunner {
850 } 900 }
851 901
852 public void reCalcExecPlan(String nbbm){ 902 public void reCalcExecPlan(String nbbm){
853 - carExecutePlanMap.put(nbbm, schAttrCalculator.calcCurrentExecSch(nbbmScheduleMap.get(nbbm))); 903 + List<ScheduleRealInfo> list = nbbmScheduleMap.get(nbbm);
  904 + Collections.sort(list, schFCSJComparator);
  905 + carExecutePlanMap.put(nbbm, schAttrCalculator.calcCurrentExecSch(list));
854 } 906 }
855 907
856 /** 908 /**
@@ -875,44 +927,90 @@ public class DayOfSchedule implements CommandLineRunner { @@ -875,44 +927,90 @@ public class DayOfSchedule implements CommandLineRunner {
875 return false; 927 return false;
876 } 928 }
877 929
  930 +
  931 + @Autowired
  932 + JdbcTemplate jdbcTemplate;
878 /** 933 /**
879 - * 获取班次的计划停站时间  
880 - * @param sch 934 + * 删除实际排班
  935 + * @param lineCode
881 * @return 936 * @return
  937 + */
  938 + public Map<String, Object> deleteRealSchedule(String lineCode) {
  939 + Map<String, Object> rs = new HashMap<>();
882 940
883 - public int stopTimePlan(Object task) { 941 + try {
  942 + String rq = currSchDateMap.get(lineCode);
  943 + if(StringUtils.isNotEmpty(rq)){
  944 + List<ScheduleRealInfo> all = findByLineCode(lineCode);
  945 + //解除gps 和班次之间的关联
  946 + List<ScheduleRealInfo> unions = calcUnion(all, carExecutePlanMap.values());
  947 + for(ScheduleRealInfo sch : unions){
  948 + removeExecPlan(sch.getClZbh());
  949 + }
  950 + //解除调度指令和班次的外键约束
  951 + StringBuilder inStr = new StringBuilder("(");
  952 + for(ScheduleRealInfo sch : all){
  953 + inStr.append(sch.getId() + ",");
  954 + }
  955 + inStr.deleteCharAt(inStr.length() - 1).append(")");
  956 + jdbcTemplate.update(Constants.MULTI_REMOVE_DIRECTIVE_SCH_FK + " " + inStr.toString());
884 957
885 - ScheduleRealInfo sch = prev((ScheduleRealInfo) task); 958 + //删除班次数据
  959 + removeRealSch(lineCode, rq);
  960 + //删除相关班次修正记录
886 961
887 - sch.getzdsj  
888 - return -1;  
889 - }*/ 962 + }
  963 + rs.put("status", ResponseCode.SUCCESS);
  964 + }catch (Exception e){
  965 + logger.error("", e);
  966 + rs.put("status", ResponseCode.ERROR);
  967 + if(e instanceof DataIntegrityViolationException)
  968 + rs.put("msg", "失败,违反数据约束!!");
  969 + else
  970 + rs.put("msg", e.getMessage());
  971 + }
  972 +
  973 + return rs;
  974 + }
890 975
891 /** 976 /**
  977 + * 计算并集
892 * 978 *
893 - * @Title: linkToSchPlan  
894 - * @Description: TODO(车辆关联到班次) 979 + * @param all
  980 + * @param sub
  981 + * @return
895 */ 982 */
896 -/* public void linkToSchPlan(String nbbm) {  
897 - //当前GPS状态  
898 - GpsEntity gps = gpsRealData.get(BasicData.deviceId2NbbmMap.inverse().get(nbbm));  
899 - if(null == gps)  
900 - return;  
901 -  
902 - //班次集合  
903 - List<ScheduleRealInfo> schArr = nbbmScheduleMap.get(nbbm);  
904 -  
905 - for(ScheduleRealInfo sch : schArr){  
906 - if(sch.getStatus() == 2)  
907 - continue;  
908 - if(sch.isDestroy())  
909 - continue;  
910 - if(!sch.getXlBm().equals(gps.getLineId())  
911 - || Integer.parseInt(sch.getXlDir()) != gps.getUpDown().intValue())  
912 - continue;  
913 -  
914 - addExecPlan(sch);  
915 - break;  
916 - }  
917 - }*/ 983 + public List<ScheduleRealInfo> calcUnion(Collection<ScheduleRealInfo> c1, Collection<ScheduleRealInfo> c2) {
  984 + List<ScheduleRealInfo> rs = new ArrayList<>();
  985 +
  986 + for (ScheduleRealInfo sch : c1) {
  987 + if(c2.contains(sch)){
  988 + rs.add(sch);
  989 + }
  990 + }
  991 + return rs;
  992 + }
  993 +
  994 + /**
  995 + * 覆盖一辆车的所有班次
  996 + * @param nbbm
  997 + * @param sets
  998 + */
  999 + public void replaceByNbbm(String nbbm, Set<ScheduleRealInfo> sets){
  1000 + nbbmScheduleMap.removeAll(nbbm);
  1001 + nbbmScheduleMap.putAll(nbbm, sets);
  1002 + //重新计算班次应到时间
  1003 + updateQdzTimePlan(nbbm);
  1004 + }
  1005 +
  1006 + /**
  1007 + * 获取该班次所在路牌的下一个班次
  1008 + * @param sch
  1009 + * @return
  1010 + */
  1011 + public ScheduleRealInfo nextByLp(ScheduleRealInfo sch) {
  1012 + List<ScheduleRealInfo> list = lpScheduleMap.get(sch.getXlBm() + "_" + sch.getLpName());
  1013 + Collections.sort(list, schFCSJComparator);
  1014 + return next(list, sch);
  1015 + }
918 } 1016 }
919 \ No newline at end of file 1017 \ No newline at end of file
src/main/java/com/bsth/data/schedule/SchAttrCalculator.java
@@ -104,7 +104,7 @@ public class SchAttrCalculator { @@ -104,7 +104,7 @@ public class SchAttrCalculator {
104 /** 104 /**
105 * 105 *
106 * @Title: calcQdzTimePlan 106 * @Title: calcQdzTimePlan
107 - * @Description: TODO(计算班次的起点应到时间,list 必须是同一辆车的班次) 107 + * @Description: TODO(计算班次的起点应到时间)
108 */ 108 */
109 public void calcQdzTimePlan(List<ScheduleRealInfo> list){ 109 public void calcQdzTimePlan(List<ScheduleRealInfo> list){
110 Collections.sort(list, new ScheduleComparator.FCSJ()); 110 Collections.sort(list, new ScheduleComparator.FCSJ());
@@ -116,12 +116,13 @@ public class SchAttrCalculator { @@ -116,12 +116,13 @@ public class SchAttrCalculator {
116 ScheduleRealInfo prve = list.get(0), curr; 116 ScheduleRealInfo prve = list.get(0), curr;
117 for(int i = 1; i < len; i ++){ 117 for(int i = 1; i < len; i ++){
118 curr = list.get(i); 118 curr = list.get(i);
119 - if(prve.getZdzName().equals(curr.getQdzName())){ 119 +
  120 + if(prve.getZdzName().equals(curr.getQdzName())
  121 + || prve.getZdzCode().equals(curr.getQdzCode())){
120 curr.setQdzArrDateJH(prve.getZdsj()); 122 curr.setQdzArrDateJH(prve.getZdsj());
121 - if(StringUtils.isNotEmpty(prve.getZdsjActual()) && StringUtils.isEmpty(curr.getQdzArrDatesj())) 123 + if(StringUtils.isNotEmpty(prve.getZdsjActual()))
122 curr.setQdzArrDatesj(prve.getZdsjActual()); 124 curr.setQdzArrDatesj(prve.getZdsjActual());
123 } 125 }
124 -  
125 prve = curr; 126 prve = curr;
126 } 127 }
127 } 128 }
@@ -129,7 +130,7 @@ public class SchAttrCalculator { @@ -129,7 +130,7 @@ public class SchAttrCalculator {
129 /** 130 /**
130 * 131 *
131 * @Title: updateQdzTimePlan 132 * @Title: updateQdzTimePlan
132 - * @Description: TODO(更新班次的起点应到时间,list 必须是同一辆车的班次) 并返回被更新的班次 133 + * @Description: TODO(更新班次的起点应到时间) 并返回被更新的班次
133 */ 134 */
134 public List<ScheduleRealInfo> updateQdzTimePlan(List<ScheduleRealInfo> list){ 135 public List<ScheduleRealInfo> updateQdzTimePlan(List<ScheduleRealInfo> list){
135 Collections.sort(list, new ScheduleComparator.FCSJ()); 136 Collections.sort(list, new ScheduleComparator.FCSJ());
@@ -143,7 +144,8 @@ public class SchAttrCalculator { @@ -143,7 +144,8 @@ public class SchAttrCalculator {
143 for(int i = 1; i < len; i ++){ 144 for(int i = 1; i < len; i ++){
144 curr = list.get(i); 145 curr = list.get(i);
145 146
146 - if(prve.getZdzName().equals(curr.getQdzName())){ 147 + if(prve.getZdzName().equals(curr.getQdzName())
  148 + || prve.getZdzCode().equals(curr.getQdzCode())){
147 149
148 if(curr.getQdzArrDateJH() != null && prve.getZdsj().equals(curr.getQdzArrDateJH())){ 150 if(curr.getQdzArrDateJH() != null && prve.getZdsj().equals(curr.getQdzArrDateJH())){
149 prve = curr; 151 prve = curr;
src/main/java/com/bsth/data/schedule/late_adjust/LateAdjustHandle.java 0 → 100644
  1 +
  2 +package com.bsth.data.schedule.late_adjust;
  3 +
  4 +import com.bsth.data.BasicData;
  5 +import com.bsth.data.LineConfigData;
  6 +import com.bsth.data.gpsdata.GpsEntity;
  7 +import com.bsth.entity.realcontrol.LineConfig;
  8 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  9 +import com.bsth.util.Arith;
  10 +import com.bsth.websocket.handler.SendUtils;
  11 +import org.slf4j.Logger;
  12 +import org.slf4j.LoggerFactory;
  13 +import org.springframework.beans.BeansException;
  14 +import org.springframework.context.ApplicationContext;
  15 +import org.springframework.context.ApplicationContextAware;
  16 +import org.springframework.stereotype.Component;
  17 +
  18 +import java.util.Collection;
  19 +import java.util.HashMap;
  20 +import java.util.Map;
  21 +
  22 +/**
  23 + * 误点自动调整待发 处理程序
  24 + *
  25 + * 注意 :这里的误点是指应发未到
  26 + * Created by panzhao on 2017/4/16.
  27 + */
  28 +@Component
  29 +public class LateAdjustHandle implements ApplicationContextAware{
  30 +
  31 + static LineConfigData lineConfigData;
  32 + static SendUtils sendUtils;
  33 +
  34 + static Logger logger = LoggerFactory.getLogger(LateAdjustHandle.class);
  35 +
  36 + /**
  37 + * 应发未到车辆 和 班次
  38 + */
  39 + private static Map<String, ScheduleRealInfo> lateSchMap;
  40 +
  41 +
  42 + static {
  43 + lateSchMap = new HashMap<>();
  44 + }
  45 +
  46 + /**
  47 + * 新增一个误点班次
  48 + * @param sch
  49 + */
  50 + public static void putLate(ScheduleRealInfo sch){
  51 + try {
  52 + //进出场班次不需要
  53 + if(sch.getBcType().equals("in") || sch.getBcType().equals("out"))
  54 + return;
  55 + //线路配置
  56 + LineConfig config = lineConfigData.get(sch.getXlBm());
  57 + if(sch.getLateMinute() == 0){
  58 + if(config.isEnableYjtk()){
  59 + sch.setLateMinute(sch.getXlDir().equals("0")?config.getUpStopMinute():config.getDownStopMinute());
  60 + }
  61 + else
  62 + return;
  63 + }
  64 +
  65 + if(sch.getDfsj().compareTo(config.getYjtkStart()) > 0
  66 + && sch.getDfsj().compareTo(config.getYjtkEnd()) <= 0){
  67 +
  68 + ScheduleRealInfo cancel = null;
  69 + //之前存在误点班次没有发出
  70 + ScheduleRealInfo old = lateSchMap.get(sch.getClZbh());
  71 + if(old != null && old.getDfsjT() < sch.getDfsjT()){
  72 + remove(old);
  73 + cancel = old;
  74 + logger.info("【应发未到】old 班次 " + old.getId() + " -被覆盖!");
  75 + }
  76 +
  77 + lateSchMap.put(sch.getClZbh(), sch);
  78 + //通知客户端
  79 + sch.setLate2(true);
  80 + sendUtils.sendAutoWdtz(sch, cancel);
  81 +
  82 + logger.info("【应发未到】班次 " + sch.getClZbh() + " -" + sch.getDfsj() + " -id: " + sch.getId() + " -加入误点调整!");
  83 + }
  84 + }catch (Exception e){
  85 + logger.error("", e);
  86 + }
  87 + }
  88 +
  89 +
  90 + /**
  91 + * 获取所有应发未到的班次
  92 + * @return
  93 + */
  94 + public static Collection<ScheduleRealInfo> allLateSch(){
  95 + return lateSchMap.values();
  96 + }
  97 +
  98 + public static void remove(ScheduleRealInfo sch){
  99 + try {
  100 + if(lateSchMap.get(sch.getClZbh()) == sch){
  101 + lateSchMap.remove(sch.getClZbh());
  102 + sch.setLate2(false);
  103 + sch.setLateMinute(0);
  104 + }
  105 + }catch (Exception e){
  106 + logger.error("", e);
  107 + }
  108 + }
  109 +
  110 + /**
  111 + * 车辆到站
  112 + * @param gps
  113 + */
  114 + public static void carArrive(GpsEntity gps){
  115 + try{
  116 + if(gps.getInstation() != 1)
  117 + return;
  118 +
  119 + ScheduleRealInfo sch = lateSchMap.get(gps.getNbbm());
  120 + if(sch == null)
  121 + return;
  122 +
  123 + //进的是班次起点(名称一样即可)
  124 + gps.setStationName(BasicData.stationCode2NameMap.get(gps.getLineId() + "_" + gps.getUpDown() + "_" + gps.getStopNo()));
  125 + if(gps.getStationName().equals(sch.getQdzName())
  126 + && sch.getLateMinute() > 0){
  127 + //自动调整待发 到达时间 + 停靠时间
  128 + long dt = Arith.addLong(gps.getTimestamp(), (sch.getLateMinute() * 60 * 1000));
  129 + sch.setDfsjAll(dt);
  130 + sch.setDfAuto(true);
  131 + //取消应发未到标记
  132 + sch.setLate2(false);
  133 +
  134 + lateSchMap.remove(sch.getClZbh());
  135 + logger.info("【应发未到】车辆到站 " + sch.getClZbh() + " -" + sch.getDfsj() + " -到站时间:" + gps.getTimestamp() + " -停靠时间:" + sch.getLateMinute() + " -自动设置的待发时间:" + dt);
  136 + }
  137 + }catch (Exception e){
  138 + e.printStackTrace();
  139 + logger.error("", e);
  140 + }
  141 + }
  142 +
  143 + @Override
  144 + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
  145 + lineConfigData = applicationContext.getBean(LineConfigData.class);
  146 + sendUtils = applicationContext.getBean(SendUtils.class);
  147 + }
  148 +}
0 \ No newline at end of file 149 \ No newline at end of file
src/main/java/com/bsth/data/schedule/thread/ScheduleLateThread.java renamed to src/main/java/com/bsth/data/schedule/late_adjust/ScheduleLateThread.java
1 -package com.bsth.data.schedule.thread; 1 +package com.bsth.data.schedule.late_adjust;
2 2
3 3
4 -import java.util.ArrayList;  
5 -import java.util.Collections;  
6 -import java.util.Comparator;  
7 -import java.util.List;  
8 -  
9 -import org.springframework.beans.factory.annotation.Autowired;  
10 -import org.springframework.stereotype.Component;  
11 -  
12 import com.bsth.data.schedule.DayOfSchedule; 4 import com.bsth.data.schedule.DayOfSchedule;
13 import com.bsth.data.schedule.ScheduleComparator; 5 import com.bsth.data.schedule.ScheduleComparator;
14 import com.bsth.entity.realcontrol.ScheduleRealInfo; 6 import com.bsth.entity.realcontrol.ScheduleRealInfo;
15 import com.bsth.websocket.handler.SendUtils; 7 import com.bsth.websocket.handler.SendUtils;
  8 +import org.apache.commons.lang3.StringUtils;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.Collections;
  14 +import java.util.Comparator;
  15 +import java.util.List;
16 16
17 /** 17 /**
18 - *  
19 - * @ClassName: ScheduleLateThread  
20 - * @Description: TODO(班次误点扫描线程)  
21 - * @author PanZhao  
22 - * @date 2016年8月31日 下午3:09:02 18 + *
  19 + * @ClassName: ScheduleLateThread
  20 + * @Description: TODO(班次误点扫描线程)
  21 + * @author PanZhao
  22 + * @date 2016年8月31日 下午3:09:02
23 * 23 *
24 */ 24 */
25 @Component 25 @Component
@@ -27,29 +27,42 @@ public class ScheduleLateThread extends Thread{ @@ -27,29 +27,42 @@ public class ScheduleLateThread extends Thread{
27 27
28 @Autowired 28 @Autowired
29 DayOfSchedule dayOfSchedule; 29 DayOfSchedule dayOfSchedule;
30 - 30 +
31 @Autowired 31 @Autowired
32 SendUtils sendUtils; 32 SendUtils sendUtils;
33 - 33 +
34 private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.FCSJ(); 34 private static Comparator<ScheduleRealInfo> cpm = new ScheduleComparator.FCSJ();
35 - 35 +
36 @Override 36 @Override
37 public void run() { 37 public void run() {
38 List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll()); 38 List<ScheduleRealInfo> all = new ArrayList<>(dayOfSchedule.findAll());
39 Collections.sort(all, cpm); 39 Collections.sort(all, cpm);
40 - 40 +
41 long t = System.currentTimeMillis(); 41 long t = System.currentTimeMillis();
42 int size = all.size(); 42 int size = all.size();
43 - 43 +
44 ScheduleRealInfo sch; 44 ScheduleRealInfo sch;
45 for(int i = 0; i < size; i ++){ 45 for(int i = 0; i < size; i ++){
46 sch = all.get(i); 46 sch = all.get(i);
47 if(sch.getDfsjT() > t) 47 if(sch.getDfsjT() > t)
48 break; 48 break;
49 -  
50 - if(sch.isLate() == false  
51 - && sch.getStatus() == 0  
52 - && sch.getFcsjActual() == null){ 49 +
  50 + if(sch.isLate())
  51 + continue;
  52 +
  53 + if(sch.getStatus() == 0
  54 + && StringUtils.isEmpty(sch.getFcsjActual())){
  55 +
  56 + //检查应发未到 当前班次无起点到达时间
  57 + if(StringUtils.isEmpty(sch.getQdzArrDateSJ())){
  58 + ScheduleRealInfo prev = dayOfSchedule.prev(sch);
  59 + //上一个班次也没有实际终点到达时间
  60 + if(prev != null && StringUtils.isEmpty(prev.getZdsjActual())){
  61 + //进入误点调整程序
  62 + LateAdjustHandle.putLate(sch);
  63 + }
  64 + }
  65 +
53 //应发未发 66 //应发未发
54 sch.setLate(true); 67 sch.setLate(true);
55 //通知客户端 68 //通知客户端
@@ -57,4 +70,4 @@ public class ScheduleLateThread extends Thread{ @@ -57,4 +70,4 @@ public class ScheduleLateThread extends Thread{
57 } 70 }
58 } 71 }
59 } 72 }
60 -} 73 +}
61 \ No newline at end of file 74 \ No newline at end of file
src/main/java/com/bsth/data/schedule/thread/CalcOilThread.java
1 package com.bsth.data.schedule.thread; 1 package com.bsth.data.schedule.thread;
2 2
  3 +import com.bsth.service.oil.DlbService;
  4 +import com.bsth.data.safe_driv.SafeDrivCenter;
3 import com.bsth.service.oil.YlbService; 5 import com.bsth.service.oil.YlbService;
4 import org.slf4j.Logger; 6 import org.slf4j.Logger;
5 import org.slf4j.LoggerFactory; 7 import org.slf4j.LoggerFactory;
@@ -15,7 +17,8 @@ public class CalcOilThread extends Thread{ @@ -15,7 +17,8 @@ public class CalcOilThread extends Thread{
15 17
16 @Autowired 18 @Autowired
17 YlbService ylbService; 19 YlbService ylbService;
18 - 20 + @Autowired
  21 + DlbService dlbService;
19 Logger logger = LoggerFactory.getLogger(this.getClass()); 22 Logger logger = LoggerFactory.getLogger(this.getClass());
20 23
21 @Override 24 @Override
@@ -23,7 +26,11 @@ public class CalcOilThread extends Thread{ @@ -23,7 +26,11 @@ public class CalcOilThread extends Thread{
23 try{ 26 try{
24 logger.info("开始计算路单里程加注量...."); 27 logger.info("开始计算路单里程加注量....");
25 ylbService.obtainDsq(); 28 ylbService.obtainDsq();
  29 + dlbService.obtainDsq();
26 logger.info("计算路单里程加注量结束!"); 30 logger.info("计算路单里程加注量结束!");
  31 +
  32 + //清除安全驾驶数据 先临时蹭这个线程
  33 + SafeDrivCenter.clear();
27 } catch(Exception e){ 34 } catch(Exception e){
28 logger.error("计算路单里程加注量失败",e); 35 logger.error("计算路单里程加注量失败",e);
29 } 36 }
src/main/java/com/bsth/data/schedule/thread/ScheduleRefreshThread.java
@@ -2,7 +2,6 @@ package com.bsth.data.schedule.thread; @@ -2,7 +2,6 @@ package com.bsth.data.schedule.thread;
2 2
3 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
4 import com.bsth.data.LineConfigData; 4 import com.bsth.data.LineConfigData;
5 -import com.bsth.data.arrival.ArrivalData_GPS;  
6 import com.bsth.data.directive.DayOfDirectives; 5 import com.bsth.data.directive.DayOfDirectives;
7 import com.bsth.data.pilot80.PilotReport; 6 import com.bsth.data.pilot80.PilotReport;
8 import com.bsth.data.schedule.DayOfSchedule; 7 import com.bsth.data.schedule.DayOfSchedule;
@@ -29,8 +28,8 @@ public class ScheduleRefreshThread extends Thread{ @@ -29,8 +28,8 @@ public class ScheduleRefreshThread extends Thread{
29 @Autowired 28 @Autowired
30 DayOfSchedule dayOfSchedule; 29 DayOfSchedule dayOfSchedule;
31 30
32 - @Autowired  
33 - ArrivalData_GPS arrivalData; 31 + /*@Autowired
  32 + ArrivalData_GPS arrivalData;*/
34 33
35 @Autowired 34 @Autowired
36 LineConfigData lineConfs; 35 LineConfigData lineConfs;
@@ -58,8 +57,6 @@ public class ScheduleRefreshThread extends Thread{ @@ -58,8 +57,6 @@ public class ScheduleRefreshThread extends Thread{
58 if(oldSchDate == null || !oldSchDate.equals(currSchDate)){ 57 if(oldSchDate == null || !oldSchDate.equals(currSchDate)){
59 58
60 logger.info(lineCode + "开始翻班, " + currSchDate); 59 logger.info(lineCode + "开始翻班, " + currSchDate);
61 - //清除进出站数据  
62 - arrivalData.clearRAMData(lineCode);  
63 //清除指令数据 60 //清除指令数据
64 Set<String> cars = dayOfSchedule.findCarByLineCode(lineCode); 61 Set<String> cars = dayOfSchedule.findCarByLineCode(lineCode);
65 for(String car : cars) 62 for(String car : cars)
src/main/java/com/bsth/entity/Business.java
1 package com.bsth.entity; 1 package com.bsth.entity;
2 2
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.Column;
3 import javax.persistence.Entity; 6 import javax.persistence.Entity;
4 import javax.persistence.GeneratedValue; 7 import javax.persistence.GeneratedValue;
5 import javax.persistence.GenerationType; 8 import javax.persistence.GenerationType;
@@ -40,6 +43,29 @@ public class Business { @@ -40,6 +43,29 @@ public class Business {
40 43
41 // 描述 44 // 描述
42 private String descriptions; 45 private String descriptions;
  46 +
  47 + // 创建日期
  48 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  49 + private Date createDate;
  50 +
  51 + // 修改日期
  52 + @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  53 + private Date updateDate;
  54 + public Date getCreateDate() {
  55 + return createDate;
  56 + }
  57 +
  58 + public void setCreateDate(Date createDate) {
  59 + this.createDate = createDate;
  60 + }
  61 +
  62 + public Date getUpdateDate() {
  63 + return updateDate;
  64 + }
  65 +
  66 + public void setUpdateDate(Date updateDate) {
  67 + this.updateDate = updateDate;
  68 + }
43 69
44 public Integer getId() { 70 public Integer getId() {
45 return id; 71 return id;
src/main/java/com/bsth/entity/LineInformation.java
@@ -64,6 +64,12 @@ public class LineInformation { @@ -64,6 +64,12 @@ public class LineInformation {
64 // 晚高峰结束时间 00:00 64 // 晚高峰结束时间 00:00
65 private String lateEndTime; 65 private String lateEndTime;
66 66
  67 + // 小夜高峰开始时间 00:00
  68 + private String xygfkssj;
  69 +
  70 + // 小夜高峰结束时间 00:00
  71 + private String xygfjssj;
  72 +
67 // 早高峰上行行驶时间 73 // 早高峰上行行驶时间
68 private Double earlyUpTime; 74 private Double earlyUpTime;
69 75
@@ -91,15 +97,6 @@ public class LineInformation { @@ -91,15 +97,6 @@ public class LineInformation {
91 // 停车场 97 // 停车场
92 private String carPark; 98 private String carPark;
93 99
94 - // 进场时间  
95 - private Double paradeTime;  
96 -  
97 - // 出场时间  
98 - private Double outTime;  
99 -  
100 - // 进场里程  
101 - private Double paradeMileage;  
102 -  
103 // 上行进场时间 100 // 上行进场时间
104 private Double upInTimer; 101 private Double upInTimer;
105 102
@@ -123,7 +120,82 @@ public class LineInformation { @@ -123,7 +120,82 @@ public class LineInformation {
123 120
124 // 下行出场里程 121 // 下行出场里程
125 private Double downOutMileage; 122 private Double downOutMileage;
  123 +
  124 + // 早高峰大间隔(分钟)老调度系统字段,暂时保留
  125 + private Double earlyIntervalLg;
  126 +
  127 + // 晚高峰大间隔(分钟)老调度系统字段,暂时保留
  128 + private Double lateIntervalLg;
  129 +
  130 + // 平时大间隔(分钟)老调度系统字段,暂时保留
  131 + private Double intervalLg;
  132 +
  133 + // 限速(平时)老调度系统字段,暂时保留
  134 + private Double speedLimit;
  135 +
  136 + // 限速(雨天)老调度系统字段,暂时保留
  137 + private Double rainLimit;
  138 +
  139 + // 限速(大雾)老调度系统字段,暂时保留
  140 + private Double fogLimit;
126 141
  142 + // 限速(冰雪)老调度系统字段,暂时保留
  143 + private Double snowLimit;
  144 +
  145 + // 限速(节庆)老调度系统字段,暂时保留
  146 + private Double festivalSpeedLimit;
  147 +
  148 + // 滞站
  149 + private Integer lagStation;
  150 +
  151 + // 越站
  152 + private Integer skip;
  153 +
  154 + // 超速
  155 + private Integer speeding;
  156 +
  157 + // 串线
  158 + private Integer crossedLine;
  159 +
  160 + // 越界
  161 + private Integer overflights;
  162 +
  163 + // 描述
  164 + private String descriptions;
  165 +
  166 + // 创建人
  167 + private Integer createBy;
  168 +
  169 + // 修改人
  170 + private Integer updateBy;
  171 +
  172 + // 创建日期
  173 + @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
  174 + private Date createDate;
  175 +
  176 + // 修改日期
  177 + @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
  178 + private Date updateDate;
  179 +
  180 + @ManyToOne
  181 + private Line line;
  182 +
  183 + public String getXygfkssj() {
  184 + return xygfkssj;
  185 + }
  186 +
  187 + public void setXygfkssj(String xygfkssj) {
  188 + this.xygfkssj = xygfkssj;
  189 + }
  190 +
  191 + public String getXygfjssj() {
  192 + return xygfjssj;
  193 + }
  194 +
  195 + public void setXygfjssj(String xygfjssj) {
  196 + this.xygfjssj = xygfjssj;
  197 + }
  198 +
127 public Double getUpInTimer() { 199 public Double getUpInTimer() {
128 return upInTimer; 200 return upInTimer;
129 } 201 }
@@ -188,68 +260,6 @@ public class LineInformation { @@ -188,68 +260,6 @@ public class LineInformation {
188 this.downOutMileage = downOutMileage; 260 this.downOutMileage = downOutMileage;
189 } 261 }
190 262
191 - // 出场里程  
192 - private Double outMileage;  
193 -  
194 - // 早高峰大间隔(分钟)  
195 - private Double earlyIntervalLg;  
196 -  
197 - // 晚高峰大间隔(分钟)  
198 - private Double lateIntervalLg;  
199 -  
200 - // 平时大间隔(分钟)  
201 - private Double intervalLg;  
202 -  
203 - // 限速(平时)  
204 - private Double speedLimit;  
205 -  
206 - // 限速(雨天)  
207 - private Double rainLimit;  
208 -  
209 - // 限速(大雾)  
210 - private Double fogLimit;  
211 -  
212 - // 限速(冰雪)  
213 - private Double snowLimit;  
214 -  
215 - // 限速(节庆)  
216 - private Double festivalSpeedLimit;  
217 -  
218 - // 滞站  
219 - private Integer lagStation;  
220 -  
221 - // 越站  
222 - private Integer skip;  
223 -  
224 - // 超速  
225 - private Integer speeding;  
226 -  
227 - // 串线  
228 - private Integer crossedLine;  
229 -  
230 - // 越界  
231 - private Integer overflights;  
232 -  
233 - // 描述  
234 - private String descriptions;  
235 -  
236 - // 创建人  
237 - private Integer createBy;  
238 -  
239 - // 修改人  
240 - private Integer updateBy;  
241 -  
242 - // 创建日期  
243 - @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")  
244 - private Date createDate;  
245 -  
246 - // 修改日期  
247 - @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")  
248 - private Date updateDate;  
249 -  
250 - @ManyToOne  
251 - private Line line;  
252 -  
253 public Integer getId() { 263 public Integer getId() {
254 return id; 264 return id;
255 } 265 }
@@ -416,39 +426,6 @@ public class LineInformation { @@ -416,39 +426,6 @@ public class LineInformation {
416 public void setCarPark(String carPark) { 426 public void setCarPark(String carPark) {
417 this.carPark = carPark; 427 this.carPark = carPark;
418 } 428 }
419 -  
420 - public Double getParadeTime() {  
421 - return paradeTime;  
422 - }  
423 -  
424 - public void setParadeTime(Double paradeTime) {  
425 - this.paradeTime = paradeTime;  
426 - }  
427 -  
428 - public Double getOutTime() {  
429 - return outTime;  
430 - }  
431 -  
432 - public void setOutTime(Double outTime) {  
433 - this.outTime = outTime;  
434 - }  
435 -  
436 - public Double getParadeMileage() {  
437 - return paradeMileage;  
438 - }  
439 -  
440 - public void setParadeMileage(Double paradeMileage) {  
441 - this.paradeMileage = paradeMileage;  
442 - }  
443 -  
444 - public Double getOutMileage() {  
445 - return outMileage;  
446 - }  
447 -  
448 - public void setOutMileage(Double outMileage) {  
449 - this.outMileage = outMileage;  
450 - }  
451 -  
452 public Double getEarlyIntervalLg() { 429 public Double getEarlyIntervalLg() {
453 return earlyIntervalLg; 430 return earlyIntervalLg;
454 } 431 }
src/main/java/com/bsth/entity/SectionRoute.java
@@ -52,7 +52,7 @@ public class SectionRoute { @@ -52,7 +52,7 @@ public class SectionRoute {
52 // 是否撤销 52 // 是否撤销
53 private Integer destroy; 53 private Integer destroy;
54 54
55 - /** 是否有路段限速数据 <0:未分段;1:分段>*/ 55 + /** 是否有路段限速数据 <0:分段;1:未分段>*/
56 private Integer isRoadeSpeed; 56 private Integer isRoadeSpeed;
57 57
58 // 描述 58 // 描述
src/main/java/com/bsth/entity/excep/Offline.java
@@ -6,6 +6,7 @@ import javax.persistence.Entity; @@ -6,6 +6,7 @@ import javax.persistence.Entity;
6 import javax.persistence.GeneratedValue; 6 import javax.persistence.GeneratedValue;
7 import javax.persistence.Id; 7 import javax.persistence.Id;
8 import javax.persistence.Table; 8 import javax.persistence.Table;
  9 +import javax.persistence.Transient;
9 10
10 /** 11 /**
11 * 掉线 12 * 掉线
@@ -65,7 +66,46 @@ public class Offline { @@ -65,7 +66,46 @@ public class Offline {
65 */ 66 */
66 private Date createDate; 67 private Date createDate;
67 68
68 - 69 + @Transient
  70 + private String nbbm;
  71 + @Transient
  72 + private String jsy;
  73 + @Transient
  74 + private String lpname;
  75 + @Transient
  76 + private Long ts;
  77 +
  78 + @Transient
  79 + private String tsdate;
  80 + @Transient
  81 + private String deviceid;
  82 +
  83 + public String getDeviceid() {
  84 + return deviceid;
  85 + }
  86 +
  87 + public void setDeviceid(String deviceid) {
  88 + this.deviceid = deviceid;
  89 + }
  90 +
  91 +
  92 +
  93 + public String getTsdate() {
  94 + return tsdate;
  95 + }
  96 +
  97 + public void setTsdate(String tsdate) {
  98 + this.tsdate = tsdate;
  99 + }
  100 +
  101 + public Long getTs() {
  102 + return ts;
  103 + }
  104 +
  105 + public void setTs(Long ts) {
  106 + this.ts = ts;
  107 + }
  108 +
69 public Integer getId() { 109 public Integer getId() {
70 return id; 110 return id;
71 } 111 }
@@ -146,5 +186,29 @@ public class Offline { @@ -146,5 +186,29 @@ public class Offline {
146 this.timestampDate = timestampDate; 186 this.timestampDate = timestampDate;
147 } 187 }
148 188
  189 + public String getNbbm() {
  190 + return nbbm;
  191 + }
  192 +
  193 + public void setNbbm(String nbbm) {
  194 + this.nbbm = nbbm;
  195 + }
149 196
  197 + public String getJsy() {
  198 + return jsy;
  199 + }
  200 +
  201 + public void setJsy(String jsy) {
  202 + this.jsy = jsy;
  203 + }
  204 +
  205 + public String getLpname() {
  206 + return lpname;
  207 + }
  208 +
  209 + public void setLpname(String lpname) {
  210 + this.lpname = lpname;
  211 + }
  212 +
  213 +
150 } 214 }
src/main/java/com/bsth/entity/excep/Outbound.java
@@ -6,6 +6,7 @@ import javax.persistence.Entity; @@ -6,6 +6,7 @@ import javax.persistence.Entity;
6 import javax.persistence.GeneratedValue; 6 import javax.persistence.GeneratedValue;
7 import javax.persistence.Id; 7 import javax.persistence.Id;
8 import javax.persistence.Table; 8 import javax.persistence.Table;
  9 +import javax.persistence.Transient;
9 10
10 /** 11 /**
11 * 越界 12 * 越界
@@ -72,7 +73,12 @@ public class Outbound { @@ -72,7 +73,12 @@ public class Outbound {
72 * 时间 73 * 时间
73 */ 74 */
74 private Date createDate; 75 private Date createDate;
75 - 76 + @Transient
  77 + private String nbbm;
  78 + @Transient
  79 + private String jsy;
  80 + @Transient
  81 + private String lpname;
76 82
77 public Integer getId() { 83 public Integer getId() {
78 return id; 84 return id;
@@ -162,5 +168,29 @@ public class Outbound { @@ -162,5 +168,29 @@ public class Outbound {
162 this.timestampDate = timestampDate; 168 this.timestampDate = timestampDate;
163 } 169 }
164 170
  171 + public String getNbbm() {
  172 + return nbbm;
  173 + }
  174 +
  175 + public void setNbbm(String nbbm) {
  176 + this.nbbm = nbbm;
  177 + }
  178 +
  179 + public String getJsy() {
  180 + return jsy;
  181 + }
  182 +
  183 + public void setJsy(String jsy) {
  184 + this.jsy = jsy;
  185 + }
  186 +
  187 + public String getLpname() {
  188 + return lpname;
  189 + }
  190 +
  191 + public void setLpname(String lpname) {
  192 + this.lpname = lpname;
  193 + }
  194 +
165 195
166 } 196 }
src/main/java/com/bsth/entity/excep/Speeding.java
@@ -6,6 +6,7 @@ import javax.persistence.Entity; @@ -6,6 +6,7 @@ import javax.persistence.Entity;
6 import javax.persistence.GeneratedValue; 6 import javax.persistence.GeneratedValue;
7 import javax.persistence.Id; 7 import javax.persistence.Id;
8 import javax.persistence.Table; 8 import javax.persistence.Table;
  9 +import javax.persistence.Transient;
9 10
10 /** 11 /**
11 * 超速 12 * 超速
@@ -66,6 +67,13 @@ public class Speeding { @@ -66,6 +67,13 @@ public class Speeding {
66 private String timestampDate; 67 private String timestampDate;
67 68
68 69
  70 + @Transient
  71 + private String nbbm;
  72 + @Transient
  73 + private String jsy;
  74 + @Transient
  75 + private String lpname;
  76 +
69 /** 77 /**
70 * 创建时间 78 * 创建时间
71 */ 79 */
@@ -161,6 +169,30 @@ public class Speeding { @@ -161,6 +169,30 @@ public class Speeding {
161 this.timestampDate = timestampDate; 169 this.timestampDate = timestampDate;
162 } 170 }
163 171
  172 + public String getNbbm() {
  173 + return nbbm;
  174 + }
  175 +
  176 + public void setNbbm(String nbbm) {
  177 + this.nbbm = nbbm;
  178 + }
  179 +
  180 + public String getJsy() {
  181 + return jsy;
  182 + }
  183 +
  184 + public void setJsy(String jsy) {
  185 + this.jsy = jsy;
  186 + }
  187 +
  188 + public String getLpname() {
  189 + return lpname;
  190 + }
  191 +
  192 + public void setLpname(String lpname) {
  193 + this.lpname = lpname;
  194 + }
  195 +
164 196
165 197
166 } 198 }
src/main/java/com/bsth/entity/mcy_forms/Operationservice.java
@@ -3,7 +3,7 @@ package com.bsth.entity.mcy_forms; @@ -3,7 +3,7 @@ package com.bsth.entity.mcy_forms;
3 public class Operationservice { 3 public class Operationservice {
4 4
5 private String xlName;//线路 5 private String xlName;//线路
6 - 6 + private String xlBm;//线路编码
7 private String jzl;//加注量 7 private String jzl;//加注量
8 8
9 private String xhl;//消耗量 9 private String xhl;//消耗量
@@ -81,6 +81,14 @@ public class Operationservice { @@ -81,6 +81,14 @@ public class Operationservice {
81 public void setSjbc(String sjbc) { 81 public void setSjbc(String sjbc) {
82 this.sjbc = sjbc; 82 this.sjbc = sjbc;
83 } 83 }
  84 +
  85 + public String getXlBm() {
  86 + return xlBm;
  87 + }
  88 +
  89 + public void setXlBm(String xlBm) {
  90 + this.xlBm = xlBm;
  91 + }
84 92
85 93
86 } 94 }
src/main/java/com/bsth/entity/mcy_forms/Shiftuehiclemanth.java
@@ -22,6 +22,17 @@ public class Shiftuehiclemanth { @@ -22,6 +22,17 @@ public class Shiftuehiclemanth {
22 22
23 private String jgh; 23 private String jgh;
24 private String zbh; 24 private String zbh;
  25 + public String getSgh() {
  26 + return sgh;
  27 + }
  28 +
  29 + public void setSgh(String sgh) {
  30 + this.sgh = sgh;
  31 + }
  32 +
  33 + private String sgh;
  34 +
  35 +
25 public String getJgh() { 36 public String getJgh() {
26 return jgh; 37 return jgh;
27 } 38 }
src/main/java/com/bsth/entity/mcy_forms/Waybillday.java
@@ -20,6 +20,8 @@ public class Waybillday { @@ -20,6 +20,8 @@ public class Waybillday {
20 20
21 private String zlc;//里程 21 private String zlc;//里程
22 22
  23 + private String sh;//损耗
  24 +
23 public String getJgh() { 25 public String getJgh() {
24 return jgh; 26 return jgh;
25 } 27 }
@@ -110,6 +112,15 @@ public class Waybillday { @@ -110,6 +112,15 @@ public class Waybillday {
110 public void setYl(String yl) { 112 public void setYl(String yl) {
111 this.yl = yl; 113 this.yl = yl;
112 } 114 }
  115 +
  116 + public String getSh() {
  117 + return sh;
  118 + }
  119 +
  120 + public void setSh(String sh) {
  121 + this.sh = sh;
  122 + }
  123 +
113 124
114 125
115 } 126 }
src/main/java/com/bsth/entity/oil/Ylb.java
@@ -63,6 +63,11 @@ public class Ylb { @@ -63,6 +63,11 @@ public class Ylb {
63 @Transient 63 @Transient
64 private String gsname; 64 private String gsname;
65 65
  66 + @Transient
  67 + private String fgsname;
  68 +
  69 + @Transient
  70 + private String name;
66 71
67 public Integer getId() { 72 public Integer getId() {
68 return id; 73 return id;
@@ -299,6 +304,22 @@ public class Ylb { @@ -299,6 +304,22 @@ public class Ylb {
299 } 304 }
300 305
301 306
  307 + public String getFgsname() {
  308 + return BasicData.businessFgsCodeNameMap.get(this.fgsdm+"_"+this.ssgsdm);
  309 + }
  310 +
  311 + public void setFgsname(String fgsname) {
  312 + this.fgsname = fgsname;
  313 + }
  314 +
  315 + public String getName() {
  316 + return BasicData.allPerson.get(this.jsy);
  317 + }
  318 +
  319 + public void setName(String name) {
  320 + this.name = name;
  321 + }
  322 +
302 323
303 324
304 325
src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
@@ -223,7 +223,7 @@ public class ChildTaskPlan { @@ -223,7 +223,7 @@ public class ChildTaskPlan {
223 223
224 @Override 224 @Override
225 public int hashCode() { 225 public int hashCode() {
226 - return ("" + this.getId() + this.getSchedule().getId()).hashCode(); 226 + return ("cTask" + this.getId() + this.getSchedule().getId()).hashCode();
227 } 227 }
228 228
229 @Override 229 @Override
src/main/java/com/bsth/entity/realcontrol/LineConfig.java
@@ -50,6 +50,9 @@ public class LineConfig { @@ -50,6 +50,9 @@ public class LineConfig {
50 /** 出站既出场 对应的停车场 */ 50 /** 出站既出场 对应的停车场 */
51 private String twinsPark; 51 private String twinsPark;
52 52
  53 + /** 出站既出场 对应的起点站 */
  54 + private String twinsStation;
  55 +
53 /** 短语模板 , 号分隔多个 */ 56 /** 短语模板 , 号分隔多个 */
54 private String phraseTemps; 57 private String phraseTemps;
55 58
@@ -79,7 +82,9 @@ public class LineConfig { @@ -79,7 +82,9 @@ public class LineConfig {
79 * 应急停靠 82 * 应急停靠
80 */ 83 */
81 private boolean enableYjtk; 84 private boolean enableYjtk;
  85 + /** HH:mm */
82 private String yjtkStart; 86 private String yjtkStart;
  87 + /** HH:mm */
83 private String yjtkEnd; 88 private String yjtkEnd;
84 private int upStopMinute; 89 private int upStopMinute;
85 private int downStopMinute; 90 private int downStopMinute;
@@ -268,4 +273,12 @@ public class LineConfig { @@ -268,4 +273,12 @@ public class LineConfig {
268 public void setEnableYjtk(boolean enableYjtk) { 273 public void setEnableYjtk(boolean enableYjtk) {
269 this.enableYjtk = enableYjtk; 274 this.enableYjtk = enableYjtk;
270 } 275 }
  276 +
  277 + public String getTwinsStation() {
  278 + return twinsStation;
  279 + }
  280 +
  281 + public void setTwinsStation(String twinsStation) {
  282 + this.twinsStation = twinsStation;
  283 + }
271 } 284 }
src/main/java/com/bsth/entity/realcontrol/OilStationSociety.java
@@ -21,6 +21,11 @@ public class OilStationSociety { @@ -21,6 +21,11 @@ public class OilStationSociety {
21 private String stationName; 21 private String stationName;
22 22
23 /** 23 /**
  24 + * 加油站编码(为空则默认社会加油站)
  25 + */
  26 + private String stationCode;
  27 +
  28 + /**
24 * 上行进场距离 29 * 上行进场距离
25 */ 30 */
26 private Double upInMile; 31 private Double upInMile;
@@ -137,4 +142,12 @@ public class OilStationSociety { @@ -137,4 +142,12 @@ public class OilStationSociety {
137 public void setDownOutTime(int downOutTime) { 142 public void setDownOutTime(int downOutTime) {
138 this.downOutTime = downOutTime; 143 this.downOutTime = downOutTime;
139 } 144 }
  145 +
  146 + public String getStationCode() {
  147 + return stationCode;
  148 + }
  149 +
  150 + public void setStationCode(String stationCode) {
  151 + this.stationCode = stationCode;
  152 + }
140 } 153 }
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
@@ -139,12 +139,22 @@ public class ScheduleRealInfo { @@ -139,12 +139,22 @@ public class ScheduleRealInfo {
139 /** 是否是临加班次 */ 139 /** 是否是临加班次 */
140 private boolean sflj; 140 private boolean sflj;
141 141
142 - /** 是否误点*/ 142 + /** 是否误点 (应发未发)*/
143 @Transient 143 @Transient
144 private boolean late; 144 private boolean late;
145 145
  146 + /** 是否误点 (应发未到) */
  147 + @Transient
  148 + private boolean late2;
  149 + /** 误点停靠时间 */
  150 + @Transient
  151 + private float lateMinute;
  152 +
146 /** 备注*/ 153 /** 备注*/
147 private String remarks; 154 private String remarks;
  155 +
  156 + /** 原计划排班备注 */
  157 + private String remark;
148 158
149 /**待发时间(格式 HH:mm) */ 159 /**待发时间(格式 HH:mm) */
150 private String dfsj; 160 private String dfsj;
@@ -168,7 +178,7 @@ public class ScheduleRealInfo { @@ -168,7 +178,7 @@ public class ScheduleRealInfo {
168 private String qdzArrDatesj; 178 private String qdzArrDatesj;
169 179
170 /** 子任务 */ 180 /** 子任务 */
171 - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 181 + @OneToMany(fetch = FetchType.LAZY, mappedBy = "schedule")
172 private Set<ChildTaskPlan> cTasks = new HashSet<>(); 182 private Set<ChildTaskPlan> cTasks = new HashSet<>();
173 183
174 /** 关联的公司名称 */ 184 /** 关联的公司名称 */
@@ -769,7 +779,10 @@ public class ScheduleRealInfo { @@ -769,7 +779,10 @@ public class ScheduleRealInfo {
769 779
770 public void destroy(){ 780 public void destroy(){
771 this.jhlc = 0.0; 781 this.jhlc = 0.0;
  782 + if(this.isSflj())
  783 + this.jhlcOrig = 0.0;
772 this.status = -1; 784 this.status = -1;
  785 + this.clearFcsjActual();
773 } 786 }
774 787
775 public boolean isDestroy(){ 788 public boolean isDestroy(){
@@ -875,4 +888,28 @@ public class ScheduleRealInfo { @@ -875,4 +888,28 @@ public class ScheduleRealInfo {
875 else 888 else
876 this.setLate(false); 889 this.setLate(false);
877 } 890 }
  891 +
  892 + public String getRemark() {
  893 + return remark;
  894 + }
  895 +
  896 + public void setRemark(String remark) {
  897 + this.remark = remark;
  898 + }
  899 +
  900 + public float getLateMinute() {
  901 + return lateMinute;
  902 + }
  903 +
  904 + public void setLateMinute(float lateMinute) {
  905 + this.lateMinute = lateMinute;
  906 + }
  907 +
  908 + public boolean isLate2() {
  909 + return late2;
  910 + }
  911 +
  912 + public void setLate2(boolean late2) {
  913 + this.late2 = late2;
  914 + }
878 } 915 }
src/main/java/com/bsth/entity/schedule/SchedulePlan.java
@@ -2,8 +2,11 @@ package com.bsth.entity.schedule; @@ -2,8 +2,11 @@ package com.bsth.entity.schedule;
2 2
3 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
4 import com.fasterxml.jackson.annotation.JsonIgnore; 4 import com.fasterxml.jackson.annotation.JsonIgnore;
  5 +import org.apache.commons.lang3.BooleanUtils;
5 6
6 import javax.persistence.*; 7 import javax.persistence.*;
  8 +import java.sql.PreparedStatement;
  9 +import java.sql.SQLException;
7 import java.util.ArrayList; 10 import java.util.ArrayList;
8 import java.util.Date; 11 import java.util.Date;
9 import java.util.List; 12 import java.util.List;
@@ -53,6 +56,30 @@ public class SchedulePlan extends BEntity { @@ -53,6 +56,30 @@ public class SchedulePlan extends BEntity {
53 @OneToMany(mappedBy = "schedulePlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY) 56 @OneToMany(mappedBy = "schedulePlan", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
54 private List<SchedulePlanInfo> schedulePlanInfoList = new ArrayList<>(); 57 private List<SchedulePlanInfo> schedulePlanInfoList = new ArrayList<>();
55 58
  59 +
  60 + public static String generateInsertSql() {
  61 + String sql = "insert into bsth_c_s_sp " +
  62 + " (xl, schedule_from_time, schedule_to_time, " +
  63 + "tt_info_names, tt_info_ids, is_history_plan_first, plan_result, " +
  64 + "create_by, update_by, create_date, update_date) " +
  65 + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  66 + return sql;
  67 + }
  68 +
  69 + public void preparedStatementSet(PreparedStatement ps) throws SQLException {
  70 + ps.setInt(1, this.xl.getId());
  71 + ps.setDate(2, new java.sql.Date(this.scheduleFromTime.getTime()));
  72 + ps.setDate(3, new java.sql.Date(this.scheduleToTime.getTime()));
  73 + ps.setString(4, this.ttInfoNames);
  74 + ps.setString(5, this.ttInfoIds);
  75 + ps.setInt(6, BooleanUtils.isTrue(this.isHistoryPlanFirst) ? 1 : 0);
  76 + ps.setString(7, this.planResult);
  77 + ps.setInt(8, this.getCreateBy().getId());
  78 + ps.setInt(9, this.getUpdateBy().getId());
  79 + ps.setTimestamp(10, new java.sql.Timestamp(this.getCreateDate().getTime()));
  80 + ps.setTimestamp(11, new java.sql.Timestamp(this.getUpdateDate().getTime()));
  81 + }
  82 +
56 public Long getId() { 83 public Long getId() {
57 return id; 84 return id;
58 } 85 }
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
@@ -6,6 +6,9 @@ import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output; @@ -6,6 +6,9 @@ import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output;
6 import org.apache.commons.lang3.StringUtils; 6 import org.apache.commons.lang3.StringUtils;
7 7
8 import javax.persistence.*; 8 import javax.persistence.*;
  9 +import java.sql.PreparedStatement;
  10 +import java.sql.SQLException;
  11 +import java.sql.Types;
9 import java.util.Date; 12 import java.util.Date;
10 import java.util.List; 13 import java.util.List;
11 14
@@ -88,16 +91,18 @@ public class SchedulePlanInfo { @@ -88,16 +91,18 @@ public class SchedulePlanInfo {
88 @Column(nullable = false) 91 @Column(nullable = false)
89 private String xlDir; 92 private String xlDir;
90 /** 起点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */ 93 /** 起点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */
91 - @Column(nullable = false)  
92 - private Integer qdz; 94 + // 这个字段以后不用了
  95 +// @Column(nullable = false)
  96 +// private Integer qdz;
93 /** 起点站code */ 97 /** 起点站code */
94 private String qdzCode; 98 private String qdzCode;
95 /** 起点站名字 */ 99 /** 起点站名字 */
96 @Column(nullable = false) 100 @Column(nullable = false)
97 private String qdzName; 101 private String qdzName;
98 /** 终点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */ 102 /** 终点站id,根据班次类型,会关联 bsth_c_station,或 bsth_c_car_park,不做mapping */
99 - @Column(nullable = false)  
100 - private Integer zdz; 103 + // 这个字段以后不用了
  104 +// @Column(nullable = false)
  105 +// private Integer zdz;
101 /** 终点站code */ 106 /** 终点站code */
102 private String zdzCode; 107 private String zdzCode;
103 /** 终点站名字 */ 108 /** 终点站名字 */
@@ -128,6 +133,9 @@ public class SchedulePlanInfo { @@ -128,6 +133,9 @@ public class SchedulePlanInfo {
128 /** 关联的时刻表名字 */ 133 /** 关联的时刻表名字 */
129 private String ttInfoName; 134 private String ttInfoName;
130 135
  136 + /** 时刻表的明细备注 */
  137 + private String remark;
  138 +
131 139
132 /** 创建人 */ 140 /** 创建人 */
133 @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 141 @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@@ -143,12 +151,15 @@ public class SchedulePlanInfo { @@ -143,12 +151,15 @@ public class SchedulePlanInfo {
143 private Date updateDate; 151 private Date updateDate;
144 152
145 153
  154 +// @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
  155 +// @JoinTable(
  156 +// name = "bsth_c_s_sp_r_info",
  157 +// joinColumns = @JoinColumn(name = "sp_info_id"),
  158 +// inverseJoinColumns = @JoinColumn(name = "sp_id")
  159 +// )
  160 +// private SchedulePlan schedulePlan;
  161 +
146 @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY) 162 @ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
147 - @JoinTable(  
148 - name = "bsth_c_s_sp_r_info",  
149 - joinColumns = @JoinColumn(name = "sp_info_id"),  
150 - inverseJoinColumns = @JoinColumn(name = "sp_id")  
151 - )  
152 private SchedulePlan schedulePlan; 163 private SchedulePlan schedulePlan;
153 164
154 public SchedulePlanInfo() {} 165 public SchedulePlanInfo() {}
@@ -235,28 +246,10 @@ public class SchedulePlanInfo { @@ -235,28 +246,10 @@ public class SchedulePlanInfo {
235 // 时刻明细数据 246 // 时刻明细数据
236 this.xlDir = ttInfoDetail.getXlDir(); // 线路上下行 247 this.xlDir = ttInfoDetail.getXlDir(); // 线路上下行
237 this.bcType = ttInfoDetail.getBcType(); // 班次类型 248 this.bcType = ttInfoDetail.getBcType(); // 班次类型
238 - if ("out".equals(this.bcType)) { // 出场班次  
239 - this.qdz = ttInfoDetail.getTcc().getId(); // 起点站-停车场id  
240 - this.qdzCode = ttInfoDetail.getTcc().getParkCode(); // 起点站-停车场code  
241 - this.qdzName = ttInfoDetail.getTcc().getParkName(); // 起点站-停车场name  
242 - this.zdz = ttInfoDetail.getZdz().getId(); // 终点站id  
243 - this.zdzCode = ttInfoDetail.getZdz().getStationCod(); // 终点站code  
244 - this.zdzName = ttInfoDetail.getZdz().getStationName(); // 终点站name  
245 - } else if ("in".equals(this.bcType)) { // 进场班次  
246 - this.qdz = ttInfoDetail.getQdz().getId(); // 起点站id  
247 - this.qdzCode = ttInfoDetail.getQdz().getStationCod(); // 起点站code  
248 - this.qdzName = ttInfoDetail.getQdz().getStationName(); // 起点站name  
249 - this.zdz = ttInfoDetail.getTcc().getId(); // 终点站-停车场id  
250 - this.zdzCode = ttInfoDetail.getTcc().getParkCode(); // 终点站-停车场code  
251 - this.zdzName = ttInfoDetail.getTcc().getParkName(); // 终点站-停车场name  
252 - } else { // 其他班次  
253 - this.qdz = ttInfoDetail.getQdz().getId(); // 起点站id  
254 - this.qdzCode = ttInfoDetail.getQdz().getStationCod(); // 起点站code  
255 - this.qdzName = ttInfoDetail.getQdz().getStationName(); // 起点站name  
256 - this.zdz = ttInfoDetail.getZdz().getId(); // 终点站id  
257 - this.zdzCode = ttInfoDetail.getZdz().getStationCod(); // 终点站code  
258 - this.zdzName = ttInfoDetail.getZdz().getStationName(); // 终点站name  
259 - } 249 + this.qdzCode = ttInfoDetail.getQdzCode(); // 起点站code
  250 + this.qdzName = ttInfoDetail.getQdzName(); // 起点站name
  251 + this.zdzCode = ttInfoDetail.getZdzCode(); // 终点站code
  252 + this.zdzName = ttInfoDetail.getZdzName(); // 终点站name
260 253
261 this.fcsj = ttInfoDetail.getFcsj(); // 发车时间 254 this.fcsj = ttInfoDetail.getFcsj(); // 发车时间
262 this.fcno = ttInfoDetail.getFcno(); // 发车顺序号 255 this.fcno = ttInfoDetail.getFcno(); // 发车顺序号
@@ -269,12 +262,15 @@ public class SchedulePlanInfo { @@ -269,12 +262,15 @@ public class SchedulePlanInfo {
269 // 使用的时刻表名字 262 // 使用的时刻表名字
270 this.ttInfoName = ttInfoDetail.getTtinfo().getName(); 263 this.ttInfoName = ttInfoDetail.getTtinfo().getName();
271 264
  265 + // 备注信息
  266 + this.remark = ttInfoDetail.getRemark();
  267 +
272 // 使用车辆配置的停车场信息 268 // 使用车辆配置的停车场信息
273 String pzType = carConfigInfo.getPzType(); // 配置类型 269 String pzType = carConfigInfo.getPzType(); // 配置类型
274 if (pzType != null && !pzType.equals("BSY")) { 270 if (pzType != null && !pzType.equals("BSY")) {
275 if ("ZW".equals(pzType)) { // 只看早晚进出场 271 if ("ZW".equals(pzType)) { // 只看早晚进出场
276 if (isFirstBc) { // 第一个班次是出场 272 if (isFirstBc) { // 第一个班次是出场
277 - this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id 273 +// this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
278 this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code 274 this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code
279 this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name 275 this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name
280 276
@@ -282,7 +278,7 @@ public class SchedulePlanInfo { @@ -282,7 +278,7 @@ public class SchedulePlanInfo {
282 this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue(); 278 this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue();
283 279
284 } else if (isLastBc) { // 最后一个班次是进场 280 } else if (isLastBc) { // 最后一个班次是进场
285 - this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id 281 +// this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
286 this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code 282 this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code
287 this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name 283 this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name
288 284
@@ -292,7 +288,7 @@ public class SchedulePlanInfo { @@ -292,7 +288,7 @@ public class SchedulePlanInfo {
292 288
293 } else if ("FS".equals(pzType)) { // 所有进出场 289 } else if ("FS".equals(pzType)) { // 所有进出场
294 if ("out".equals(this.bcType)) { // 出场班次 290 if ("out".equals(this.bcType)) { // 出场班次
295 - this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id 291 +// this.qdz = carConfigInfo.getTcc().getId(); // 起点站-停车场id
296 this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code 292 this.qdzCode = carConfigInfo.getTcc().getParkCode(); // 起点站-停车场code
297 this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name 293 this.qdzName = carConfigInfo.getTcc().getParkName(); // 起点站-停车场name
298 294
@@ -300,7 +296,7 @@ public class SchedulePlanInfo { @@ -300,7 +296,7 @@ public class SchedulePlanInfo {
300 this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue(); 296 this.bcsj = "0".equals(this.xlDir) ? carConfigInfo.getUpOutSj().intValue() : carConfigInfo.getDownOutSj().intValue();
301 297
302 } else if ("in".equals(this.bcType)) { 298 } else if ("in".equals(this.bcType)) {
303 - this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id 299 +// this.zdz = carConfigInfo.getTcc().getId(); // 终点站-停车场id
304 this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code 300 this.zdzCode = carConfigInfo.getTcc().getParkCode(); // 终点站-停车场code
305 this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name 301 this.zdzName = carConfigInfo.getTcc().getParkName(); // 终点站-停车场name
306 302
@@ -312,13 +308,61 @@ public class SchedulePlanInfo { @@ -312,13 +308,61 @@ public class SchedulePlanInfo {
312 308
313 } 309 }
314 310
315 -  
316 - public Integer getS() {  
317 - return s;  
318 - }  
319 -  
320 - public void setS(Integer s) {  
321 - this.s = s; 311 + public static String generateInsertSql() {
  312 + String sql = "insert into bsth_c_s_sp_info " +
  313 + " (schedule_date, gs_name, gs_bm, fgs_name, fgs_bm, ccno, " +
  314 + "xl, xl_name, xl_bm, lp, lp_name, cl, cl_zbh, bd_time, cc_time, " +
  315 + "j, j_gh, j_name, s, s_gh, s_name, " +
  316 + "xl_dir, qdz_code, qdz_name, zdz_code, zdz_name, " +
  317 + "fcsj, fcno, bcs, jhlc, bcsj, bc_type, " +
  318 + "tt_info, tt_info_name, remark, schedule_plan, " +
  319 + "create_by, update_by, create_date, update_date) " +
  320 + "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?," +
  321 + "?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
  322 + return sql;
  323 + }
  324 +
  325 + public void preparedStatementSet(PreparedStatement ps) throws SQLException {
  326 + if (this.scheduleDate != null) ps.setDate(1, new java.sql.Date(this.scheduleDate.getTime())); else ps.setNull(1, Types.DATE);
  327 + if (this.gsName != null) ps.setString(2, this.gsName); else ps.setNull(2, Types.VARCHAR);
  328 + if (this.gsBm != null) ps.setString(3, this.gsBm); else ps.setNull(3, Types.VARCHAR);
  329 + if (this.fgsName != null) ps.setString(4, this.fgsName); else ps.setNull(4, Types.VARCHAR);
  330 + if (this.fgsBm != null) ps.setString(5, this.fgsBm); else ps.setNull(5, Types.VARCHAR);
  331 + if (this.ccno != null) ps.setInt(6, this.ccno); else ps.setNull(6, Types.INTEGER);
  332 + if (this.xl != null) ps.setInt(7, this.xl); else ps.setNull(7, Types.INTEGER);
  333 + if (this.xlName != null) ps.setString(8, this.xlName); else ps.setNull(8, Types.VARCHAR);
  334 + if (this.xlBm != null) ps.setString(9, this.xlBm); else ps.setNull(9, Types.VARCHAR);
  335 + if (this.lp != null) ps.setLong(10, this.lp); else ps.setNull(10, Types.BIGINT);
  336 + if (this.lpName != null) ps.setString(11, this.lpName); else ps.setNull(11, Types.VARCHAR);
  337 + if (this.cl != null) ps.setInt(12, this.cl); else ps.setNull(12, Types.INTEGER);
  338 + if (this.clZbh != null) ps.setString(13, this.clZbh); else ps.setNull(13, Types.VARCHAR);
  339 + if (this.bdTime != null) ps.setString(14, this.bdTime); else ps.setNull(14, Types.VARCHAR);
  340 + if (this.ccTime != null) ps.setString(15, this.ccTime); else ps.setNull(15, Types.VARCHAR);
  341 + if (this.j != null) ps.setInt(16, this.j); else ps.setNull(16, Types.INTEGER);
  342 + if (this.jGh != null) ps.setString(17, this.jGh); else ps.setNull(17, Types.VARCHAR);
  343 + if (this.jName != null) ps.setString(18, this.jName); else ps.setNull(18, Types.VARCHAR);
  344 + if (this.s != null) ps.setInt(19, this.s); else ps.setNull(19, Types.INTEGER);
  345 + if (this.sGh != null) ps.setString(20, this.sGh); else ps.setNull(20, Types.VARCHAR);
  346 + if (this.sName != null) ps.setString(21, this.sName); else ps.setNull(21, Types.VARCHAR);
  347 + if (this.xlDir != null) ps.setString(22, this.xlDir); else ps.setNull(22, Types.VARCHAR);
  348 + if (this.qdzCode != null) ps.setString(23, this.qdzCode); else ps.setNull(23, Types.VARCHAR);
  349 + if (this.qdzName != null) ps.setString(24, this.qdzName); else ps.setNull(24, Types.VARCHAR);
  350 + if (this.zdzCode != null) ps.setString(25, this.zdzCode); else ps.setNull(25, Types.VARCHAR);
  351 + if (this.zdzName != null) ps.setString(26, this.zdzName); else ps.setNull(26, Types.VARCHAR);
  352 + if (this.fcsj != null) ps.setString(27, this.fcsj); else ps.setNull(27, Types.VARCHAR);
  353 + if (this.fcno != null) ps.setInt(28, this.fcno); else ps.setNull(28, Types.INTEGER);
  354 + if (this.bcs != null) ps.setInt(29, this.bcs); else ps.setNull(29, Types.INTEGER);
  355 + if (this.jhlc != null) ps.setDouble(30, this.jhlc); else ps.setNull(30, Types.DOUBLE);
  356 + if (this.bcsj != null) ps.setInt(31, this.bcsj); else ps.setNull(31, Types.INTEGER);
  357 + if (this.bcType != null) ps.setString(32, this.bcType); else ps.setNull(32, Types.VARCHAR);
  358 + if (this.ttInfo != null) ps.setLong(33, this.ttInfo); else ps.setNull(33, Types.BIGINT);
  359 + if (this.ttInfoName != null) ps.setString(34, this.ttInfoName); else ps.setNull(34, Types.VARCHAR);
  360 + if (this.remark != null) ps.setString(35, this.remark); else ps.setNull(35, Types.VARCHAR);
  361 + if (this.schedulePlan != null) ps.setLong(36, this.schedulePlan.getId()); else ps.setNull(36, Types.BIGINT);
  362 + if (this.createBy != null) ps.setInt(37, this.createBy.getId()); else ps.setNull(37, Types.INTEGER);
  363 + if (this.updateBy != null) ps.setInt(38, this.updateBy.getId()); else ps.setNull(38, Types.INTEGER);
  364 + if (this.createDate != null) ps.setTimestamp(39, new java.sql.Timestamp(this.createDate.getTime())); else ps.setNull(39, Types.TIMESTAMP);
  365 + if (this.updateDate != null) ps.setTimestamp(40, new java.sql.Timestamp(this.updateDate.getTime())); else ps.setNull(40, Types.TIMESTAMP);
322 } 366 }
323 367
324 public Long getId() { 368 public Long getId() {
@@ -337,6 +381,46 @@ public class SchedulePlanInfo { @@ -337,6 +381,46 @@ public class SchedulePlanInfo {
337 this.scheduleDate = scheduleDate; 381 this.scheduleDate = scheduleDate;
338 } 382 }
339 383
  384 + public String getGsName() {
  385 + return gsName;
  386 + }
  387 +
  388 + public void setGsName(String gsName) {
  389 + this.gsName = gsName;
  390 + }
  391 +
  392 + public String getGsBm() {
  393 + return gsBm;
  394 + }
  395 +
  396 + public void setGsBm(String gsBm) {
  397 + this.gsBm = gsBm;
  398 + }
  399 +
  400 + public String getFgsName() {
  401 + return fgsName;
  402 + }
  403 +
  404 + public void setFgsName(String fgsName) {
  405 + this.fgsName = fgsName;
  406 + }
  407 +
  408 + public String getFgsBm() {
  409 + return fgsBm;
  410 + }
  411 +
  412 + public void setFgsBm(String fgsBm) {
  413 + this.fgsBm = fgsBm;
  414 + }
  415 +
  416 + public Integer getCcno() {
  417 + return ccno;
  418 + }
  419 +
  420 + public void setCcno(Integer ccno) {
  421 + this.ccno = ccno;
  422 + }
  423 +
340 public Integer getXl() { 424 public Integer getXl() {
341 return xl; 425 return xl;
342 } 426 }
@@ -433,6 +517,14 @@ public class SchedulePlanInfo { @@ -433,6 +517,14 @@ public class SchedulePlanInfo {
433 this.jName = jName; 517 this.jName = jName;
434 } 518 }
435 519
  520 + public Integer getS() {
  521 + return s;
  522 + }
  523 +
  524 + public void setS(Integer s) {
  525 + this.s = s;
  526 + }
  527 +
436 public String getsGh() { 528 public String getsGh() {
437 return sGh; 529 return sGh;
438 } 530 }
@@ -457,12 +549,12 @@ public class SchedulePlanInfo { @@ -457,12 +549,12 @@ public class SchedulePlanInfo {
457 this.xlDir = xlDir; 549 this.xlDir = xlDir;
458 } 550 }
459 551
460 - public Integer getQdz() {  
461 - return qdz; 552 + public String getQdzCode() {
  553 + return qdzCode;
462 } 554 }
463 555
464 - public void setQdz(Integer qdz) {  
465 - this.qdz = qdz; 556 + public void setQdzCode(String qdzCode) {
  557 + this.qdzCode = qdzCode;
466 } 558 }
467 559
468 public String getQdzName() { 560 public String getQdzName() {
@@ -473,12 +565,12 @@ public class SchedulePlanInfo { @@ -473,12 +565,12 @@ public class SchedulePlanInfo {
473 this.qdzName = qdzName; 565 this.qdzName = qdzName;
474 } 566 }
475 567
476 - public Integer getZdz() {  
477 - return zdz; 568 + public String getZdzCode() {
  569 + return zdzCode;
478 } 570 }
479 571
480 - public void setZdz(Integer zdz) {  
481 - this.zdz = zdz; 572 + public void setZdzCode(String zdzCode) {
  573 + this.zdzCode = zdzCode;
482 } 574 }
483 575
484 public String getZdzName() { 576 public String getZdzName() {
@@ -537,6 +629,30 @@ public class SchedulePlanInfo { @@ -537,6 +629,30 @@ public class SchedulePlanInfo {
537 this.bcType = bcType; 629 this.bcType = bcType;
538 } 630 }
539 631
  632 + public Long getTtInfo() {
  633 + return ttInfo;
  634 + }
  635 +
  636 + public void setTtInfo(Long ttInfo) {
  637 + this.ttInfo = ttInfo;
  638 + }
  639 +
  640 + public String getTtInfoName() {
  641 + return ttInfoName;
  642 + }
  643 +
  644 + public void setTtInfoName(String ttInfoName) {
  645 + this.ttInfoName = ttInfoName;
  646 + }
  647 +
  648 + public String getRemark() {
  649 + return remark;
  650 + }
  651 +
  652 + public void setRemark(String remark) {
  653 + this.remark = remark;
  654 + }
  655 +
540 public SysUser getCreateBy() { 656 public SysUser getCreateBy() {
541 return createBy; 657 return createBy;
542 } 658 }
@@ -569,62 +685,6 @@ public class SchedulePlanInfo { @@ -569,62 +685,6 @@ public class SchedulePlanInfo {
569 this.updateDate = updateDate; 685 this.updateDate = updateDate;
570 } 686 }
571 687
572 - public String getQdzCode() {  
573 - return qdzCode;  
574 - }  
575 -  
576 - public void setQdzCode(String qdzCode) {  
577 - this.qdzCode = qdzCode;  
578 - }  
579 -  
580 - public String getZdzCode() {  
581 - return zdzCode;  
582 - }  
583 -  
584 - public void setZdzCode(String zdzCode) {  
585 - this.zdzCode = zdzCode;  
586 - }  
587 -  
588 - public String getGsName() {  
589 - return gsName;  
590 - }  
591 -  
592 - public void setGsName(String gsName) {  
593 - this.gsName = gsName;  
594 - }  
595 -  
596 - public String getGsBm() {  
597 - return gsBm;  
598 - }  
599 -  
600 - public void setGsBm(String gsBm) {  
601 - this.gsBm = gsBm;  
602 - }  
603 -  
604 - public String getFgsName() {  
605 - return fgsName;  
606 - }  
607 -  
608 - public void setFgsName(String fgsName) {  
609 - this.fgsName = fgsName;  
610 - }  
611 -  
612 - public String getFgsBm() {  
613 - return fgsBm;  
614 - }  
615 -  
616 - public void setFgsBm(String fgsBm) {  
617 - this.fgsBm = fgsBm;  
618 - }  
619 -  
620 - public Integer getCcno() {  
621 - return ccno;  
622 - }  
623 -  
624 - public void setCcno(Integer ccno) {  
625 - this.ccno = ccno;  
626 - }  
627 -  
628 public SchedulePlan getSchedulePlan() { 688 public SchedulePlan getSchedulePlan() {
629 return schedulePlan; 689 return schedulePlan;
630 } 690 }
@@ -632,20 +692,4 @@ public class SchedulePlanInfo { @@ -632,20 +692,4 @@ public class SchedulePlanInfo {
632 public void setSchedulePlan(SchedulePlan schedulePlan) { 692 public void setSchedulePlan(SchedulePlan schedulePlan) {
633 this.schedulePlan = schedulePlan; 693 this.schedulePlan = schedulePlan;
634 } 694 }
635 -  
636 - public Long getTtInfo() {  
637 - return ttInfo;  
638 - }  
639 -  
640 - public void setTtInfo(Long ttInfo) {  
641 - this.ttInfo = ttInfo;  
642 - }  
643 -  
644 - public String getTtInfoName() {  
645 - return ttInfoName;  
646 - }  
647 -  
648 - public void setTtInfoName(String ttInfoName) {  
649 - this.ttInfoName = ttInfoName;  
650 - }  
651 } 695 }
src/main/java/com/bsth/entity/schedule/TTInfoDetail.java
@@ -47,16 +47,28 @@ public class TTInfoDetail extends BEntity { @@ -47,16 +47,28 @@ public class TTInfoDetail extends BEntity {
47 /** 线路方向(TODO:上下行,上行,下行,这个以后用枚举还是字典再议,现在先用文字) */ 47 /** 线路方向(TODO:上下行,上行,下行,这个以后用枚举还是字典再议,现在先用文字) */
48 @Column(nullable = false) 48 @Column(nullable = false)
49 private String xlDir; 49 private String xlDir;
50 - /** 起点站关联 */ 50 +
  51 + /** 起点站关联(以后不用了,暂时留着) */
51 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 52 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
52 private Station qdz; 53 private Station qdz;
53 - /** 终点站关联 */ 54 + /** 终点站关联(以后不用了,暂时留着) */
54 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 55 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
55 private Station zdz; 56 private Station zdz;
56 - /** 停车场关联(出场,进场班次会关联停车场) */ 57 + /** 停车场关联(出场,进场班次会关联停车场)(以后不用了,暂时留着) */
57 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 58 @ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
58 private CarPark tcc; 59 private CarPark tcc;
59 60
  61 + // 站点包括普通站点和停车场(站点编码不同,使用站点编码区分)
  62 + // 以后不需要再区分是站点还是停车场了
  63 + /** 起站点代码(bsth_c_station,bsth_c_car_park 里的编码) */
  64 + private String qdzCode;
  65 + /** 起站点名字(bsth_c_stationroute,bsth_c_car_park里的名字) */
  66 + private String qdzName;
  67 + /** 终点站代码(bsth_c_station,bsth_c_car_park 里的编码) */
  68 + private String zdzCode;
  69 + /** 终点站名字(bsth_c_stationroute,bsth_c_car_park里的名字) */
  70 + private String zdzName;
  71 +
60 /** 发车时间(格式 HH:mm) */ 72 /** 发车时间(格式 HH:mm) */
61 @Column(nullable = false, length = 5) 73 @Column(nullable = false, length = 5)
62 private String fcsj; 74 private String fcsj;
@@ -236,4 +248,36 @@ public class TTInfoDetail extends BEntity { @@ -236,4 +248,36 @@ public class TTInfoDetail extends BEntity {
236 public void setIsFB(Boolean isFB) { 248 public void setIsFB(Boolean isFB) {
237 this.isFB = isFB; 249 this.isFB = isFB;
238 } 250 }
  251 +
  252 + public String getQdzCode() {
  253 + return qdzCode;
  254 + }
  255 +
  256 + public void setQdzCode(String qdzCode) {
  257 + this.qdzCode = qdzCode;
  258 + }
  259 +
  260 + public String getQdzName() {
  261 + return qdzName;
  262 + }
  263 +
  264 + public void setQdzName(String qdzName) {
  265 + this.qdzName = qdzName;
  266 + }
  267 +
  268 + public String getZdzCode() {
  269 + return zdzCode;
  270 + }
  271 +
  272 + public void setZdzCode(String zdzCode) {
  273 + this.zdzCode = zdzCode;
  274 + }
  275 +
  276 + public String getZdzName() {
  277 + return zdzName;
  278 + }
  279 +
  280 + public void setZdzName(String zdzName) {
  281 + this.zdzName = zdzName;
  282 + }
239 } 283 }
src/main/java/com/bsth/entity/schedule/rule/RerunRule.java
@@ -53,6 +53,8 @@ public class RerunRule extends BEntity { @@ -53,6 +53,8 @@ public class RerunRule extends BEntity {
53 private GuideboardInfo rerunLp; 53 private GuideboardInfo rerunLp;
54 /** 套跑班次(时刻表明细ids,使用逗号连接) */ 54 /** 套跑班次(时刻表明细ids,使用逗号连接) */
55 private String rerunTtinfodetailIds; 55 private String rerunTtinfodetailIds;
  56 + /** 套跑班次(对应具体班次的发车时间,使用逗号连接) */
  57 + private String rerunTtinfodetailFcsjs;
56 58
57 59
58 /** 套跑类型(dylp;对应路牌,dybc:对应班车) */ 60 /** 套跑类型(dylp;对应路牌,dybc:对应班车) */
@@ -167,4 +169,11 @@ public class RerunRule extends BEntity { @@ -167,4 +169,11 @@ public class RerunRule extends BEntity {
167 this.isCancel = isCancel; 169 this.isCancel = isCancel;
168 } 170 }
169 171
  172 + public String getRerunTtinfodetailFcsjs() {
  173 + return rerunTtinfodetailFcsjs;
  174 + }
  175 +
  176 + public void setRerunTtinfodetailFcsjs(String rerunTtinfodetailFcsjs) {
  177 + this.rerunTtinfodetailFcsjs = rerunTtinfodetailFcsjs;
  178 + }
170 } 179 }
src/main/java/com/bsth/entity/schedule/rule/ScheduleRule1Flat.java
@@ -57,6 +57,7 @@ public class ScheduleRule1Flat extends BEntity { @@ -57,6 +57,7 @@ public class ScheduleRule1Flat extends BEntity {
57 private String lpNames; 57 private String lpNames;
58 /** 对应的路牌ids(用逗号隔开) */ 58 /** 对应的路牌ids(用逗号隔开) */
59 @NotNull 59 @NotNull
  60 + @Column(length = 1000)
60 private String lpIds; 61 private String lpIds;
61 /** 起始路牌(从0开始) */ 62 /** 起始路牌(从0开始) */
62 @NotNull 63 @NotNull
@@ -66,6 +67,7 @@ public class ScheduleRule1Flat extends BEntity { @@ -66,6 +67,7 @@ public class ScheduleRule1Flat extends BEntity {
66 private String ryDbbms; 67 private String ryDbbms;
67 /** 对应的人员配置ids(用逗号隔开,如果分班,就先-隔开再逗号隔开) */ 68 /** 对应的人员配置ids(用逗号隔开,如果分班,就先-隔开再逗号隔开) */
68 @NotNull 69 @NotNull
  70 + @Column(length = 1000)
69 private String ryConfigIds; 71 private String ryConfigIds;
70 /** 起始人员(从0开始) */ 72 /** 起始人员(从0开始) */
71 @NotNull 73 @NotNull
src/main/java/com/bsth/entity/schedule/temp/SchedulePlanRuleResult.java
@@ -2,10 +2,7 @@ package com.bsth.entity.schedule.temp; @@ -2,10 +2,7 @@ package com.bsth.entity.schedule.temp;
2 2
3 import com.bsth.entity.schedule.SchedulePlan; 3 import com.bsth.entity.schedule.SchedulePlan;
4 4
5 -import javax.persistence.Entity;  
6 -import javax.persistence.GeneratedValue;  
7 -import javax.persistence.Id;  
8 -import javax.persistence.Table; 5 +import javax.persistence.*;
9 import java.util.Date; 6 import java.util.Date;
10 7
11 /** 8 /**
@@ -13,6 +10,7 @@ import java.util.Date; @@ -13,6 +10,7 @@ import java.util.Date;
13 */ 10 */
14 @Entity 11 @Entity
15 @Table(name = "bsth_c_s_sp_rule_rst") 12 @Table(name = "bsth_c_s_sp_rule_rst")
  13 +// TODO:此表以后考虑表分区
16 public class SchedulePlanRuleResult { 14 public class SchedulePlanRuleResult {
17 /** 主键Id */ 15 /** 主键Id */
18 @Id 16 @Id
@@ -20,7 +18,8 @@ public class SchedulePlanRuleResult { @@ -20,7 +18,8 @@ public class SchedulePlanRuleResult {
20 private Long id; 18 private Long id;
21 19
22 /** 线路id */ 20 /** 线路id */
23 - private String xlId; 21 + // 这里要建一个索引 tt1 normal btree
  22 + private Integer xlId;
24 /** 线路名字 */ 23 /** 线路名字 */
25 private String xlName; 24 private String xlName;
26 25
@@ -32,12 +31,14 @@ public class SchedulePlanRuleResult { @@ -32,12 +31,14 @@ public class SchedulePlanRuleResult {
32 private String ccZbh; 31 private String ccZbh;
33 32
34 /** 路牌id列表字符串 */ 33 /** 路牌id列表字符串 */
  34 + @Column(length = 1000)
35 private String gids; 35 private String gids;
36 /** 路牌名字列表字符串 */ 36 /** 路牌名字列表字符串 */
37 private String gnames; 37 private String gnames;
38 /** 翻到哪个路牌索引 */ 38 /** 翻到哪个路牌索引 */
39 private String gidindex; 39 private String gidindex;
40 /** 人员配置id列表字符串 */ 40 /** 人员配置id列表字符串 */
  41 + @Column(length = 1000)
41 private String ecids; 42 private String ecids;
42 /** 人员配置搭班编码列表字符串 */ 43 /** 人员配置搭班编码列表字符串 */
43 private String ecdbbms; 44 private String ecdbbms;
@@ -50,6 +51,7 @@ public class SchedulePlanRuleResult { @@ -50,6 +51,7 @@ public class SchedulePlanRuleResult {
50 private String ttinfoName; 51 private String ttinfoName;
51 52
52 /** 排班日期 */ 53 /** 排班日期 */
  54 + // 这里要建一个索引 tt2 normal btree
53 private Date scheduleDate; 55 private Date scheduleDate;
54 56
55 /** 操作人员id */ 57 /** 操作人员id */
@@ -57,6 +59,7 @@ public class SchedulePlanRuleResult { @@ -57,6 +59,7 @@ public class SchedulePlanRuleResult {
57 /** 操作人员姓名 */ 59 /** 操作人员姓名 */
58 private String sysuserName; 60 private String sysuserName;
59 /** 操作时间 */ 61 /** 操作时间 */
  62 + // 这里要建一个索引 tt3 normal btree
60 private Date createDate; 63 private Date createDate;
61 64
62 public SchedulePlanRuleResult() { 65 public SchedulePlanRuleResult() {
@@ -77,6 +80,22 @@ public class SchedulePlanRuleResult { @@ -77,6 +80,22 @@ public class SchedulePlanRuleResult {
77 this.id = id; 80 this.id = id;
78 } 81 }
79 82
  83 + public Integer getXlId() {
  84 + return xlId;
  85 + }
  86 +
  87 + public void setXlId(Integer xlId) {
  88 + this.xlId = xlId;
  89 + }
  90 +
  91 + public String getXlName() {
  92 + return xlName;
  93 + }
  94 +
  95 + public void setXlName(String xlName) {
  96 + this.xlName = xlName;
  97 + }
  98 +
80 public String getRuleId() { 99 public String getRuleId() {
81 return ruleId; 100 return ruleId;
82 } 101 }
@@ -149,6 +168,22 @@ public class SchedulePlanRuleResult { @@ -149,6 +168,22 @@ public class SchedulePlanRuleResult {
149 this.ecindex = ecindex; 168 this.ecindex = ecindex;
150 } 169 }
151 170
  171 + public String getTtinfoId() {
  172 + return ttinfoId;
  173 + }
  174 +
  175 + public void setTtinfoId(String ttinfoId) {
  176 + this.ttinfoId = ttinfoId;
  177 + }
  178 +
  179 + public String getTtinfoName() {
  180 + return ttinfoName;
  181 + }
  182 +
  183 + public void setTtinfoName(String ttinfoName) {
  184 + this.ttinfoName = ttinfoName;
  185 + }
  186 +
152 public Date getScheduleDate() { 187 public Date getScheduleDate() {
153 return scheduleDate; 188 return scheduleDate;
154 } 189 }
@@ -180,36 +215,4 @@ public class SchedulePlanRuleResult { @@ -180,36 +215,4 @@ public class SchedulePlanRuleResult {
180 public void setCreateDate(Date createDate) { 215 public void setCreateDate(Date createDate) {
181 this.createDate = createDate; 216 this.createDate = createDate;
182 } 217 }
183 -  
184 - public String getXlId() {  
185 - return xlId;  
186 - }  
187 -  
188 - public void setXlId(String xlId) {  
189 - this.xlId = xlId;  
190 - }  
191 -  
192 - public String getXlName() {  
193 - return xlName;  
194 - }  
195 -  
196 - public void setXlName(String xlName) {  
197 - this.xlName = xlName;  
198 - }  
199 -  
200 - public String getTtinfoId() {  
201 - return ttinfoId;  
202 - }  
203 -  
204 - public void setTtinfoId(String ttinfoId) {  
205 - this.ttinfoId = ttinfoId;  
206 - }  
207 -  
208 - public String getTtinfoName() {  
209 - return ttinfoName;  
210 - }  
211 -  
212 - public void setTtinfoName(String ttinfoName) {  
213 - this.ttinfoName = ttinfoName;  
214 - }  
215 } 218 }
src/main/java/com/bsth/repository/BusinessRepository.java
1 package com.bsth.repository; 1 package com.bsth.repository;
2 2
  3 +import org.springframework.data.jpa.repository.Query;
3 import org.springframework.stereotype.Repository; 4 import org.springframework.stereotype.Repository;
4 5
5 import com.bsth.entity.Business; 6 import com.bsth.entity.Business;
@@ -28,5 +29,7 @@ public interface BusinessRepository extends BaseRepository&lt;Business, Integer&gt; { @@ -28,5 +29,7 @@ public interface BusinessRepository extends BaseRepository&lt;Business, Integer&gt; {
28 List<Business> findByBusinessCode(String code); 29 List<Business> findByBusinessCode(String code);
29 30
30 List<Business> findByUpCodeAndBusinessCode(String c1, String c2); 31 List<Business> findByUpCodeAndBusinessCode(String c1, String c2);
31 - 32 +
  33 + @Query(value = "SELECT IFNULL(num,0) as maxId from (SELECT MAX(id) as num FROM bsth_c_business) k" , nativeQuery=true)
  34 + long getMaxId();
32 } 35 }
src/main/java/com/bsth/repository/SectionRepository.java
@@ -72,7 +72,6 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; { @@ -72,7 +72,6 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; {
72 72
73 String descriptions, int versions,int id); 73 String descriptions, int versions,int id);
74 74
75 -  
76 /** 75 /**
77 * @Description :TODO(编辑线路走向) 76 * @Description :TODO(编辑线路走向)
78 * 77 *
@@ -113,5 +112,4 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; { @@ -113,5 +112,4 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; {
113 Double speedLimit,String descriptions,Integer version,Integer createBy,String createDate, 112 Double speedLimit,String descriptions,Integer version,Integer createBy,String createDate,
114 113
115 Integer updateBy,String updateDate); 114 Integer updateBy,String updateDate);
116 -  
117 } 115 }