Commit 2a6aa1cdd4618c2bf1015d06e2585a3f10a249e0

Authored by 娄高锋
2 parents 91cf2ec5 7821e6c0

Merge branch 'minhang' of 192.168.168.201:panzhaov5/bsth_control into minhang

Showing 52 changed files with 2320 additions and 664 deletions

Too many changes to show.

To preserve performance only 52 of 162 files are displayed.

@@ -220,11 +220,11 @@ @@ -220,11 +220,11 @@
220 <version>1.1</version> 220 <version>1.1</version>
221 </dependency> 221 </dependency>
222 222
223 - <dependency> 223 +<!-- <dependency>
224 <groupId>org.springframework.boot</groupId> 224 <groupId>org.springframework.boot</groupId>
225 <artifactId>spring-boot-devtools</artifactId> 225 <artifactId>spring-boot-devtools</artifactId>
226 <optional>true</optional> 226 <optional>true</optional>
227 - </dependency> 227 + </dependency>-->
228 </dependencies> 228 </dependencies>
229 229
230 <dependencyManagement> 230 <dependencyManagement>
src/main/java/com/bsth/common/Constants.java
@@ -24,11 +24,13 @@ public class Constants { @@ -24,11 +24,13 @@ public class Constants {
24 /** 24 /**
25 * 线调部分子页面不做拦截,便于浏览器缓存 25 * 线调部分子页面不做拦截,便于浏览器缓存
26 */ 26 */
27 - public static final String XD_CHILD_PAGES = "/real_control_v2/**";  
28 - public static final String XD_TEMPS = "/pages/control/line/temps/**"; 27 + public static final String XD_CHILD_PAGES = "/real_control_v2/**";
  28 + public static final String XD_REAL_GPS = "/gps/real/line";
  29 + //public static final String XD_TEMPS = "/pages/control/line/temps/**";
29 30
30 //车载网关上行接口 31 //车载网关上行接口
31 public static final String UPSTREAM_URL = "/control/upstream"; 32 public static final String UPSTREAM_URL = "/control/upstream";
32 33
33 public static final String SESSION_USERNAME = "sessionUserName"; 34 public static final String SESSION_USERNAME = "sessionUserName";
  35 + public static final String COMPANY_AUTHORITYS = "cmyAuths";
34 } 36 }
src/main/java/com/bsth/controller/BaseController.java
@@ -9,6 +9,7 @@ import org.springframework.data.domain.Page; @@ -9,6 +9,7 @@ import org.springframework.data.domain.Page;
9 import org.springframework.data.domain.PageRequest; 9 import org.springframework.data.domain.PageRequest;
10 import org.springframework.data.domain.Sort; 10 import org.springframework.data.domain.Sort;
11 import org.springframework.data.domain.Sort.Direction; 11 import org.springframework.data.domain.Sort.Direction;
  12 +import org.springframework.util.CollectionUtils;
12 import org.springframework.web.bind.annotation.PathVariable; 13 import org.springframework.web.bind.annotation.PathVariable;
13 import org.springframework.web.bind.annotation.RequestMapping; 14 import org.springframework.web.bind.annotation.RequestMapping;
14 import org.springframework.web.bind.annotation.RequestMethod; 15 import org.springframework.web.bind.annotation.RequestMethod;
@@ -167,11 +168,24 @@ public class BaseController&lt;T, ID extends Serializable&gt; { @@ -167,11 +168,24 @@ public class BaseController&lt;T, ID extends Serializable&gt; {
167 */ 168 */
168 @RequestMapping(value = "/dataExport", method = RequestMethod.GET) 169 @RequestMapping(value = "/dataExport", method = RequestMethod.GET)
169 public void dataExport(HttpServletResponse response) throws Exception { 170 public void dataExport(HttpServletResponse response) throws Exception {
  171 + dataExport(response, null);
  172 + }
  173 +
  174 + @RequestMapping(value = "/dataExportExt", method = RequestMethod.GET)
  175 + public void dataExport(HttpServletResponse response, @RequestParam Map<String, Object> param) throws Exception {
170 // 1、使用ktr转换获取输出文件 176 // 1、使用ktr转换获取输出文件
171 File ktrfile = new File(this.getClass().getResource(getDataExportKtrClasspath()).toURI()); 177 File ktrfile = new File(this.getClass().getResource(getDataExportKtrClasspath()).toURI());
172 - File outputfile = dataImportExportService.fileDataOutput(  
173 - getDataExportFilename(),  
174 - ktrfile); 178 + File outputfile = null;
  179 + if (!CollectionUtils.isEmpty(param)) {
  180 + outputfile = dataImportExportService.fileDataOutput(
  181 + getDataExportFilename(),
  182 + ktrfile,
  183 + param);
  184 + } else {
  185 + outputfile = dataImportExportService.fileDataOutput(
  186 + getDataExportFilename(),
  187 + ktrfile);
  188 + }
175 189
176 System.out.println(outputfile.getName()); 190 System.out.println(outputfile.getName());
177 String filePath = outputfile.getAbsolutePath(); 191 String filePath = outputfile.getAbsolutePath();
src/main/java/com/bsth/controller/forms/ExportController.java 0 → 100644
  1 +package com.bsth.controller.forms;
  2 +
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
  5 +import java.util.HashMap;
  6 +import java.util.Iterator;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.web.bind.annotation.RequestMapping;
  12 +import org.springframework.web.bind.annotation.RequestMethod;
  13 +import org.springframework.web.bind.annotation.RequestParam;
  14 +import org.springframework.web.bind.annotation.RestController;
  15 +
  16 +import com.bsth.entity.mcy_forms.Changetochange;
  17 +import com.bsth.entity.mcy_forms.Linepasswengerflow;
  18 +import com.bsth.entity.mcy_forms.Operationservice;
  19 +import com.bsth.entity.mcy_forms.Shifday;
  20 +import com.bsth.entity.mcy_forms.Shiftuehiclemanth;
  21 +import com.bsth.entity.mcy_forms.Singledata;
  22 +import com.bsth.entity.mcy_forms.Vehicleloading;
  23 +import com.bsth.entity.mcy_forms.Waybillday;
  24 +import com.bsth.service.forms.ExportService;
  25 +import com.bsth.service.forms.FormsService;
  26 +import com.bsth.util.ReportUtils;
  27 +
  28 +@RestController
  29 +@RequestMapping("mcy_export")
  30 +public class ExportController {
  31 +
  32 + @Autowired
  33 + FormsService formsService;
  34 +
  35 + @Autowired
  36 + ExportService exportService;
  37 +
  38 + //行车路单日报表
  39 + @RequestMapping(value = "/waybilldayExport",method = RequestMethod.POST)
  40 + public List<Waybillday> waybilldayExport(@RequestParam Map<String, Object> map){
  41 + List<Waybillday> waybillday = formsService.waybillday(map);
  42 + exportService.waybillday(map.get("date").toString(), waybillday);
  43 + return waybillday;
  44 + }
  45 +
  46 +
  47 + //线路客流量报表
  48 + @RequestMapping(value = "/linepasswengerflowExport",method = RequestMethod.POST)
  49 + public List<Map<String, Object>> linepasswengerflowExport(@RequestParam Map<String, Object> map){
  50 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  51 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  52 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  53 + ReportUtils ee = new ReportUtils();
  54 + List<Linepasswengerflow> linepasswengerflow = formsService.linepasswengerflow(map);
  55 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  56 + int i=1;
  57 + for(Linepasswengerflow l : linepasswengerflow){
  58 + Map<String, Object> m = new HashMap<String, Object>();
  59 + m.put("i", i);
  60 + m.put("stationName", l.getStationName());
  61 + m.put("1", " ");
  62 + m.put("2", " ");
  63 + resList.add(m);
  64 + i++;
  65 + }
  66 +
  67 + try {
  68 + listI.add(resList.iterator());
  69 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  70 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\linepassengerflow.xls",
  71 + path+"export\\线路客流量报表" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls");
  72 + } catch (Exception e) {
  73 + e.printStackTrace();
  74 + }
  75 + return resList;
  76 + }
  77 +
  78 +
  79 +
  80 + //班次车辆人员日统计
  81 + @RequestMapping(value = "/shifdayExport",method = RequestMethod.POST)
  82 + public List<Map<String, Object>> shifdayExport(@RequestParam Map<String, Object> map){
  83 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  84 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  85 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  86 + ReportUtils ee = new ReportUtils();
  87 + List<Shifday> shifday = formsService.shifday(map);
  88 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  89 + for(Shifday l : shifday){
  90 + Map<String, Object> m = new HashMap<String, Object>();
  91 + m.put("jName",l.getjName());
  92 + m.put("sName", l.getsName());
  93 + m.put("lpName", l.getLpName());
  94 + m.put("carPlate", l.getCarPlate());
  95 + m.put("jhlc", l.getJhlc());
  96 + //m.put("sjjhlc", l.getSjjhlc());
  97 + m.put("yygl", l.getYygl());
  98 + m.put("emptMileage", l.getEmptMileage());
  99 + m.put("remMileage", l.getRemMileage());
  100 + m.put("addMileage", l.getAddMileage());
  101 + m.put("totalm", l.getTotalm());
  102 + m.put("jhbc", l.getJhbc());
  103 + //m.put("sjjhbc", l.getSjjhbc());
  104 + m.put("cjbc", l.getCjbc());
  105 + m.put("ljbc", l.getLjbc());
  106 + m.put("sjbc", l.getSjbc());
  107 + resList.add(m);
  108 + }
  109 +
  110 + try {
  111 + listI.add(resList.iterator());
  112 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  113 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\shifday.xls",
  114 + path+"export\\班次车辆人员日报表" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls");
  115 + } catch (Exception e) {
  116 + e.printStackTrace();
  117 + }
  118 + return resList;
  119 + }
  120 +
  121 + //班次车辆人员月统计
  122 + @RequestMapping(value = "/shiftuehiclemanthExport",method = RequestMethod.POST)
  123 + public List<Map<String, Object>> shiftuehiclemanthExport(@RequestParam Map<String, Object> map){
  124 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  125 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  126 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  127 + ReportUtils ee = new ReportUtils();
  128 + List<Shiftuehiclemanth> shiftuehiclemanth = formsService.shiftuehiclemanth(map);
  129 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  130 + int i=1;
  131 + for(Shiftuehiclemanth l : shiftuehiclemanth){
  132 + Map<String, Object> m = new HashMap<String, Object>();
  133 + m.put("i", i);
  134 + m.put("jName",l.getjName() );
  135 + m.put("jhlc", l.getJhlc());
  136 + m.put("emptMileage",l.getEmptMileage() );
  137 + m.put("remMileage", l.getRemMileage());
  138 + m.put("addMileage", l.getAddMileage());
  139 + m.put("totalm", l.getTotalm());
  140 + m.put("cjbc", l.getCjbc());
  141 + m.put("ljbc", l.getLjbc());
  142 + m.put("sjbc", l.getSjbc());
  143 + resList.add(m);
  144 + i++;
  145 + }
  146 +
  147 + try {
  148 + listI.add(resList.iterator());
  149 +
  150 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  151 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\shiftuehiclemanth.xls",
  152 + path+"export\\班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  153 +
  154 + } catch (Exception e) {
  155 + e.printStackTrace();
  156 + }
  157 +
  158 + return resList;
  159 + }
  160 +
  161 +
  162 + //路单数据报表
  163 + @RequestMapping(value = "/singledataExport",method = RequestMethod.POST)
  164 + public List<Map<String, Object>> singledataExport(@RequestParam Map<String, Object> map){
  165 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  166 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  167 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  168 + ReportUtils ee = new ReportUtils();
  169 + List<Singledata> singledata = formsService.singledata(map);
  170 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  171 + int i=1;
  172 + for(Singledata l : singledata){
  173 + Map<String, Object> m = new HashMap<String, Object>();
  174 + m.put("i", i);
  175 + m.put("rQ",l.getrQ());
  176 + m.put("gS", l.getgS());
  177 + m.put("xL",l.getxL() );
  178 + m.put("clzbh", l.getClzbh());
  179 + m.put("jsy", l.getJsy());
  180 + m.put("jName", l.getjName());
  181 + m.put("sgh", l.getSgh());
  182 + m.put("sName", l.getsName());
  183 + m.put("jhlc", l.getJhlc());
  184 + m.put("emptMileage", l.getEmptMileage());
  185 + m.put("hyl", l.getHyl());
  186 + m.put("jzl", l.getJzl());
  187 + m.put("unyyyl",l.getUnyyyl());
  188 + m.put("jhjl", l.getJhjl());
  189 + resList.add(m);
  190 + i++;
  191 + }
  192 +
  193 + try {
  194 + listI.add(resList.iterator());
  195 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  196 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\singledata.xls",
  197 + path+"export\\路单报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  198 + } catch (Exception e) {
  199 + e.printStackTrace();
  200 + }
  201 +
  202 + return resList;
  203 + }
  204 +
  205 + //车辆加注
  206 + @RequestMapping(value = "/vehicleloadingExport",method = RequestMethod.POST)
  207 + public List<Map<String, Object>> vehicleloadingExport(@RequestParam Map<String, Object> map){
  208 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  209 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  210 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  211 + ReportUtils ee = new ReportUtils();
  212 + List<Vehicleloading> vehicleloading = formsService.vehicleloading(map.get("line").toString(), map.get("date").toString());
  213 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  214 + int i=1;
  215 + for(Vehicleloading l : vehicleloading){
  216 + Map<String, Object> m = new HashMap<String, Object>();
  217 + m.put("i", i);
  218 + m.put("rQ", l.getrQ());
  219 + m.put("gS", l.getgS());
  220 + m.put("xL", l.getxL());
  221 + m.put("clzbh", l.getClzbh());
  222 + m.put("hyl", l.getHyl());
  223 + m.put("jzl", l.getJzl());
  224 + m.put("ls", l.getLs());
  225 + m.put("jhlc", l.getJhlc());
  226 + m.put("unyyyl", l.getUnyyyl());
  227 + m.put("jhbc", l.getJhbc());
  228 + m.put("sjbc", l.getSjbc());
  229 + resList.add(m);
  230 + i++;
  231 + }
  232 +
  233 + try {
  234 + listI.add(resList.iterator());
  235 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  236 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\vehicleloading.xls",
  237 + path+"export\\车辆加注" + sdfSimple.format(sdfMonth.parse(map.get("date").toString())) + ".xls");
  238 + } catch (Exception e) {
  239 + e.printStackTrace();
  240 + }
  241 + return resList;
  242 + }
  243 +
  244 + //运营服务阶段报表
  245 + @RequestMapping(value = "/operationserviceExport",method = RequestMethod.POST)
  246 + public List<Map<String, Object>> operationserviceExport(@RequestParam Map<String, Object> map){
  247 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  248 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  249 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  250 + ReportUtils ee = new ReportUtils();
  251 + List<Operationservice> operationservice = formsService.operationservice(map);
  252 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  253 + int i=1;
  254 + for(Operationservice l : operationservice){
  255 + Map<String, Object> m = new HashMap<String, Object>();
  256 + m.put("i", i);
  257 + m.put("xlName", l.getXlName());
  258 + m.put("jzl", l.getJzl());
  259 + m.put("xhl", l.getXhl());
  260 + m.put("xsgl", l.getXsgl());
  261 + m.put("emptMileage", l.getEmptMileage());
  262 + m.put("sjbc", l.getSjbc());
  263 + resList.add(m);
  264 + i++;
  265 + }
  266 +
  267 + try {
  268 + listI.add(resList.iterator());
  269 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  270 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\operationservice.xls",
  271 + path+"export\\运营服务阶段报表" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  272 + } catch (Exception e) {
  273 + e.printStackTrace();
  274 + }
  275 + return resList;
  276 + }
  277 +
  278 +
  279 + //换人换车情况日统计
  280 + @RequestMapping(value = "/changetochangeExport",method = RequestMethod.POST)
  281 + public List<Map<String, Object>> changetochangeExport(@RequestParam Map<String, Object> map){
  282 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  283 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  284 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  285 + ReportUtils ee = new ReportUtils();
  286 + List<Changetochange> changetochange = formsService.changetochange(map);
  287 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  288 + for(Changetochange l : changetochange){
  289 + Map<String, Object> m = new HashMap<String, Object>();
  290 + m.put("rq",l.getRq());
  291 + m.put("gs",l.getGs());
  292 + m.put("fgs",l.getFgs());
  293 + m.put("xl",l.getXl());
  294 + m.put("lp",l.getLp());
  295 + m.put("fssj",l.getFssj());
  296 + m.put("xgsj",l.getXgsj());
  297 + m.put("pcch",l.getPcch());
  298 + m.put("pcry",l.getPcry());
  299 + m.put("jhch",l.getJhch());
  300 + m.put("jhgh",l.getJhgh());
  301 + m.put("sjch",l.getSjch());
  302 + m.put("sjgh",l.getSjgh());
  303 + m.put("yy",l.getYy());
  304 + m.put("xgr",l.getXgr());
  305 + resList.add(m);
  306 + }
  307 +
  308 + try {
  309 + listI.add(resList.iterator());
  310 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  311 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\changetochange.xls",
  312 + path+"export\\换人换车情况日统计" + sdfSimple.format(sdfMonth.parse(map.get("startDate").toString())) + ".xls");
  313 + } catch (Exception e) {
  314 + e.printStackTrace();
  315 + }
  316 + return resList;
  317 + }
  318 +
  319 +
  320 +
  321 +
  322 +
  323 +}
src/main/java/com/bsth/controller/oil/YlbController.java
@@ -4,6 +4,7 @@ import java.text.ParseException; @@ -4,6 +4,7 @@ import java.text.ParseException;
4 import java.text.SimpleDateFormat; 4 import java.text.SimpleDateFormat;
5 import java.util.ArrayList; 5 import java.util.ArrayList;
6 import java.util.Date; 6 import java.util.Date;
  7 +import java.util.HashMap;
7 import java.util.Iterator; 8 import java.util.Iterator;
8 import java.util.List; 9 import java.util.List;
9 import java.util.Map; 10 import java.util.Map;
@@ -23,6 +24,7 @@ import com.bsth.entity.oil.Ylb; @@ -23,6 +24,7 @@ import com.bsth.entity.oil.Ylb;
23 import com.bsth.entity.sys.SysUser; 24 import com.bsth.entity.sys.SysUser;
24 import com.bsth.security.util.SecurityUtils; 25 import com.bsth.security.util.SecurityUtils;
25 import com.bsth.service.oil.YlbService; 26 import com.bsth.service.oil.YlbService;
  27 +import com.bsth.util.ReportUtils;
26 import com.google.common.base.Splitter; 28 import com.google.common.base.Splitter;
27 29
28 @RestController 30 @RestController
@@ -47,8 +49,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -47,8 +49,7 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
47 */ 49 */
48 @RequestMapping(value = "/obtain",method = RequestMethod.GET) 50 @RequestMapping(value = "/obtain",method = RequestMethod.GET)
49 public Map<String, Object> obtain(@RequestParam Map<String, Object> map){ 51 public Map<String, Object> obtain(@RequestParam Map<String, Object> map){
50 - String rq=map.get("rq").toString();  
51 - Map<String, Object> list=yblService.obtain(rq); 52 + Map<String, Object> list=yblService.obtain(map);
52 System.out.println(); 53 System.out.println();
53 return list; 54 return list;
54 } 55 }
@@ -131,4 +132,58 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{ @@ -131,4 +132,58 @@ public class YlbController extends BaseController&lt;Ylb, Integer&gt;{
131 return yblService.oilListMonth(line, date); 132 return yblService.oilListMonth(line, date);
132 } 133 }
133 134
  135 +
  136 + @RequestMapping(value = "/listExport",method = RequestMethod.POST)
  137 + public List<Map<String, Object>> listExport(@RequestParam Map<String, Object> map){
  138 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  139 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  140 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  141 + ReportUtils ee = new ReportUtils();
  142 + String rq=map.get("rq").toString();
  143 + if(!(rq=="")){
  144 + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  145 + try {
  146 + map.put("rq_eq", sdfMonth.parse(rq));
  147 + } catch (ParseException e) {
  148 + // TODO Auto-generated catch block
  149 + e.printStackTrace();
  150 + }
  151 + }
  152 + List<Ylb> ylb= (List<Ylb>)yblService.list(map);
  153 +// (new CustomerSpecs<Ylb>(map)).iterator();
  154 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  155 + for (Ylb y : ylb) {
  156 + Map<String, Object> m = new HashMap<String, Object>();
  157 + m.put("rq", y.getRq());
  158 + m.put("gsname",y.getGsname() );
  159 + m.put("xlname", y.getXlname());
  160 + m.put("nbbm", y.getNbbm());
  161 + m.put("jsy", y.getJsy());
  162 + m.put("jzl", y.getJzl());
  163 + m.put("czlc", y.getCzlc());
  164 + m.put("jzlc", y.getJzlc());
  165 + m.put("czyl", y.getCzyl());
  166 + m.put("jzyl", y.getJzyl());
  167 + m.put("yh", y.getYh());
  168 + m.put("rylx", y.getRylx());
  169 + m.put("ns", y.getNs());
  170 + m.put("shyy", y.getShyy());
  171 + m.put("sh", y.getSh());
  172 + m.put("zlc", y.getZlc());
  173 + m.put("yhlx", y.getYhlx());
  174 + m.put("bglyh", y.getBglyh());
  175 + resList.add(m);
  176 + }
  177 + try {
  178 + listI.add(resList.iterator());
  179 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  180 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\list.xls",
  181 + path+"export\\进出场存油量" + sdfSimple.format(sdfMonth.parse(map.get("rq").toString())) + ".xls");
  182 + } catch (Exception e) {
  183 + e.printStackTrace();
  184 + }
  185 +
  186 + return resList;
  187 +
  188 + }
134 } 189 }
src/main/java/com/bsth/controller/schedule/TTInfoDetailController.java
@@ -14,6 +14,7 @@ import com.bsth.service.StationRouteService; @@ -14,6 +14,7 @@ import com.bsth.service.StationRouteService;
14 import com.bsth.service.schedule.GuideboardInfoService; 14 import com.bsth.service.schedule.GuideboardInfoService;
15 import com.bsth.service.schedule.TTInfoDetailService; 15 import com.bsth.service.schedule.TTInfoDetailService;
16 import com.bsth.service.schedule.utils.DataImportExportService; 16 import com.bsth.service.schedule.utils.DataImportExportService;
  17 +import com.bsth.service.schedule.utils.DataToolsProperties;
17 import jxl.Cell; 18 import jxl.Cell;
18 import jxl.Sheet; 19 import jxl.Sheet;
19 import jxl.Workbook; 20 import jxl.Workbook;
@@ -26,6 +27,7 @@ import org.springframework.util.CollectionUtils; @@ -26,6 +27,7 @@ import org.springframework.util.CollectionUtils;
26 import org.springframework.web.bind.annotation.*; 27 import org.springframework.web.bind.annotation.*;
27 import org.springframework.web.multipart.MultipartFile; 28 import org.springframework.web.multipart.MultipartFile;
28 29
  30 +import javax.servlet.http.HttpServletResponse;
29 import java.io.File; 31 import java.io.File;
30 import java.util.*; 32 import java.util.*;
31 import java.util.regex.Matcher; 33 import java.util.regex.Matcher;
@@ -51,6 +53,8 @@ public class TTInfoDetailController extends BaseController&lt;TTInfoDetail, Long&gt; { @@ -51,6 +53,8 @@ public class TTInfoDetailController extends BaseController&lt;TTInfoDetail, Long&gt; {
51 private StationRouteService stationRouteService; 53 private StationRouteService stationRouteService;
52 @Autowired 54 @Autowired
53 private GuideboardInfoService guideboardInfoService; 55 private GuideboardInfoService guideboardInfoService;
  56 + @Autowired
  57 + private DataToolsProperties dataToolsProperties;
54 58
55 59
56 public static class ExcelFileOutput { 60 public static class ExcelFileOutput {
@@ -126,11 +130,15 @@ public class TTInfoDetailController extends BaseController&lt;TTInfoDetail, Long&gt; { @@ -126,11 +130,15 @@ public class TTInfoDetailController extends BaseController&lt;TTInfoDetail, Long&gt; {
126 Cell[] cells = sheet.getRow(0); // 获取第一行数据列 130 Cell[] cells = sheet.getRow(0); // 获取第一行数据列
127 for (int i = 0; i < cells.length; i++) { 131 for (int i = 0; i < cells.length; i++) {
128 String cell_con = cells[i].getContents(); 132 String cell_con = cells[i].getContents();
  133 +
129 if (StringUtils.isEmpty(cell_con)) { 134 if (StringUtils.isEmpty(cell_con)) {
130 rtn.put("status", ResponseCode.ERROR); 135 rtn.put("status", ResponseCode.ERROR);
131 rtn.put("msg", String.format("第1行,第%d列数据不能为空", i + 1)); 136 rtn.put("msg", String.format("第1行,第%d列数据不能为空", i + 1));
132 return rtn; 137 return rtn;
133 } else { 138 } else {
  139 + // 正则表达式去除数字
  140 + cell_con = cell_con.replaceAll("[\\d+]", "");
  141 +
134 if (i == 0) { // 第一列必须是路牌2个字 142 if (i == 0) { // 第一列必须是路牌2个字
135 if (!"路牌".equals(cell_con.trim())) { 143 if (!"路牌".equals(cell_con.trim())) {
136 rtn.put("status", ResponseCode.ERROR); 144 rtn.put("status", ResponseCode.ERROR);
@@ -457,4 +465,25 @@ public class TTInfoDetailController extends BaseController&lt;TTInfoDetail, Long&gt; { @@ -457,4 +465,25 @@ public class TTInfoDetailController extends BaseController&lt;TTInfoDetail, Long&gt; {
457 public List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId) { 465 public List<TTInfoDetail> findBcdetails(Integer xlId, Long ttinfoId, Long lpId) {
458 return ttInfoDetailRepository.findBcdetails(xlId, ttinfoId, lpId); 466 return ttInfoDetailRepository.findBcdetails(xlId, ttinfoId, lpId);
459 } 467 }
  468 +
  469 + @Override
  470 + public void dataExport(HttpServletResponse response, @RequestParam Map<String, Object> param) throws Exception {
  471 + // 获取injectktr
  472 + File ktrFile2 = new File(this.getClass().getResource(
  473 + dataToolsProperties.getTtinfodetailOutput()).toURI());
  474 + param.put("injectktrfile", ktrFile2.getAbsolutePath());
  475 + param.put("ttinfoid", param.get("ttinfoid"));
  476 +
  477 + super.dataExport(response, param);
  478 + }
  479 +
  480 + @Override
  481 + protected String getDataExportKtrClasspath() {
  482 + return dataToolsProperties.getTtinfodetailMetaoutput();
  483 + }
  484 +
  485 + @Override
  486 + protected String getDataExportFilename() {
  487 + return "时刻表";
  488 + }
460 } 489 }
src/main/java/com/bsth/controller/sys/CompanyAuthorityController.java 0 → 100644
  1 +package com.bsth.controller.sys;
  2 +
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.bsth.controller.BaseController;
  5 +import com.bsth.entity.sys.CompanyAuthority;
  6 +import com.bsth.service.sys.CompanyAuthorityService;
  7 +import org.apache.commons.lang3.StringEscapeUtils;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.web.bind.annotation.RequestMapping;
  10 +import org.springframework.web.bind.annotation.RequestParam;
  11 +import org.springframework.web.bind.annotation.RestController;
  12 +
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +/**
  17 + * Created by panzhao on 2016/11/22.
  18 + */
  19 +@RestController
  20 +@RequestMapping("companyAuthority")
  21 +public class CompanyAuthorityController extends BaseController<CompanyAuthority, Integer>{
  22 +
  23 + @Autowired
  24 + CompanyAuthorityService companyAuthorityService;
  25 +
  26 + @RequestMapping(value = "save")
  27 + public Map<String, Object> save(@RequestParam Integer roleId, @RequestParam String authJsonStr){
  28 + authJsonStr = StringEscapeUtils.unescapeHtml4(authJsonStr);
  29 + System.out.println(authJsonStr);
  30 + List<CompanyAuthority> list = JSONArray.parseArray(authJsonStr, CompanyAuthority.class);
  31 + return companyAuthorityService.save(roleId, list);
  32 + }
  33 +}
src/main/java/com/bsth/controller/sys/UserController.java
1 package com.bsth.controller.sys; 1 package com.bsth.controller.sys;
2 2
3 -import java.util.HashMap;  
4 -import java.util.Map;  
5 -  
6 -import javax.servlet.http.HttpServletRequest;  
7 -import javax.servlet.http.HttpSession;  
8 - 3 +import com.bsth.common.Constants;
  4 +import com.bsth.common.ResponseCode;
  5 +import com.bsth.controller.BaseController;
  6 +import com.bsth.controller.sys.dto.CompanyData;
  7 +import com.bsth.controller.sys.util.RSAUtils;
  8 +import com.bsth.entity.sys.CompanyAuthority;
  9 +import com.bsth.entity.sys.SysUser;
  10 +import com.bsth.security.util.SecurityUtils;
  11 +import com.bsth.service.sys.CompanyAuthorityService;
  12 +import com.bsth.service.sys.SysUserService;
  13 +import com.google.common.collect.ArrayListMultimap;
9 import org.apache.commons.lang3.StringUtils; 14 import org.apache.commons.lang3.StringUtils;
10 import org.slf4j.Logger; 15 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory; 16 import org.slf4j.LoggerFactory;
@@ -18,13 +23,9 @@ import org.springframework.web.bind.annotation.RequestMethod; @@ -18,13 +23,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
18 import org.springframework.web.bind.annotation.RequestParam; 23 import org.springframework.web.bind.annotation.RequestParam;
19 import org.springframework.web.bind.annotation.RestController; 24 import org.springframework.web.bind.annotation.RestController;
20 25
21 -import com.bsth.common.Constants;  
22 -import com.bsth.common.ResponseCode;  
23 -import com.bsth.controller.BaseController;  
24 -import com.bsth.controller.sys.util.RSAUtils;  
25 -import com.bsth.entity.sys.SysUser;  
26 -import com.bsth.security.util.SecurityUtils;  
27 -import com.bsth.service.sys.SysUserService; 26 +import javax.servlet.http.HttpServletRequest;
  27 +import javax.servlet.http.HttpSession;
  28 +import java.util.*;
28 29
29 @RestController 30 @RestController
30 @RequestMapping("user") 31 @RequestMapping("user")
@@ -34,6 +35,9 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; { @@ -34,6 +35,9 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; {
34 35
35 @Autowired 36 @Autowired
36 SysUserService sysUserService; 37 SysUserService sysUserService;
  38 +
  39 + @Autowired
  40 + CompanyAuthorityService companyAuthorityService;
37 41
38 @RequestMapping(value = "/login/jCryptionKey") 42 @RequestMapping(value = "/login/jCryptionKey")
39 public Map<String, Object> jCryptionKey(HttpServletRequest request){ 43 public Map<String, Object> jCryptionKey(HttpServletRequest request){
@@ -97,7 +101,11 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; { @@ -97,7 +101,11 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; {
97 SecurityUtils.login(user, request); 101 SecurityUtils.login(user, request);
98 //session里写入用户名,webSocket连接时标识身份用 102 //session里写入用户名,webSocket连接时标识身份用
99 session.setAttribute(Constants.SESSION_USERNAME, user.getUserName()); 103 session.setAttribute(Constants.SESSION_USERNAME, user.getUserName());
100 - 104 +
  105 + //获取公司权限数据
  106 + List<CompanyAuthority> cmyAuths=companyAuthorityService.findByUser(user);
  107 + session.setAttribute(Constants.COMPANY_AUTHORITYS, cmyAuths);
  108 +
101 captchaMap.remove(userName); 109 captchaMap.remove(userName);
102 rs.put("status", ResponseCode.SUCCESS); 110 rs.put("status", ResponseCode.SUCCESS);
103 } catch (Exception e) { 111 } catch (Exception e) {
@@ -106,6 +114,43 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; { @@ -106,6 +114,43 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; {
106 } 114 }
107 return rs; 115 return rs;
108 } 116 }
  117 +
  118 + /**
  119 + * 返回当前用户的公司权限数据,用于构建页面级联下拉框
  120 + * @return
  121 + */
  122 + @RequestMapping("companyData")
  123 + public List<CompanyData> companyData(HttpServletRequest request){
  124 + List<CompanyData> rs = new ArrayList<>();
  125 + CompanyData companyData;
  126 +
  127 + ArrayListMultimap<String, CompanyAuthority> map = ArrayListMultimap.create();
  128 + List<CompanyAuthority> cmyAuths = (List<CompanyAuthority>) request.getSession().getAttribute(Constants.COMPANY_AUTHORITYS);
  129 +
  130 + for(CompanyAuthority cAuth : cmyAuths){
  131 + map.put(cAuth.getCompanyCode()+"_"+cAuth.getCompanyName(), cAuth);
  132 + }
  133 +
  134 + Set<String> keys = map.keySet();
  135 + String[] temps;
  136 + for(String k : keys){
  137 + temps = k.split("_");
  138 +
  139 + companyData = new CompanyData();
  140 + companyData.setCompanyCode(temps[0]);
  141 + companyData.setCompanyName(temps[1]);
  142 + companyData.setChildren(new ArrayList<CompanyData.ChildrenCompany>());
  143 +
  144 + cmyAuths = map.get(k);
  145 + for(CompanyAuthority c : cmyAuths){
  146 + companyData.getChildren().add(new CompanyData.ChildrenCompany(c.getSubCompanyCode(), c.getSubCompanyName()));
  147 + }
  148 +
  149 + rs.add(companyData);
  150 + }
  151 +
  152 + return rs;
  153 + }
109 154
110 @RequestMapping(value = "/login/captchaStatus") 155 @RequestMapping(value = "/login/captchaStatus")
111 public int captchaStatus(String userName){ 156 public int captchaStatus(String userName){
@@ -162,7 +207,7 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; { @@ -162,7 +207,7 @@ public class UserController extends BaseController&lt;SysUser, Integer&gt; {
162 * @Description: TODO(修改密码) 207 * @Description: TODO(修改密码)
163 * @param oldPWD 208 * @param oldPWD
164 * 原始密码 209 * 原始密码
165 - * @param newwPWD 210 + * @param newPWD
166 * 新密码 211 * 新密码
167 * @param cnewPWD 212 * @param cnewPWD
168 * 确认新密码 213 * 确认新密码
src/main/java/com/bsth/controller/sys/dto/CompanyData.java 0 → 100644
  1 +package com.bsth.controller.sys.dto;
  2 +
  3 +import java.util.List;
  4 +
  5 +/**
  6 + * Created by panzhao on 2016/11/22.
  7 + */
  8 +public class CompanyData {
  9 +
  10 + private String companyCode;
  11 +
  12 + private String companyName;
  13 +
  14 + private List<ChildrenCompany> children;
  15 +
  16 + public String getCompanyCode() {
  17 + return companyCode;
  18 + }
  19 +
  20 + public void setCompanyCode(String companyCode) {
  21 + this.companyCode = companyCode;
  22 + }
  23 +
  24 + public String getCompanyName() {
  25 + return companyName;
  26 + }
  27 +
  28 + public void setCompanyName(String companyName) {
  29 + this.companyName = companyName;
  30 + }
  31 +
  32 + public List<ChildrenCompany> getChildren() {
  33 + return children;
  34 + }
  35 +
  36 + public void setChildren(List<ChildrenCompany> children) {
  37 + this.children = children;
  38 + }
  39 +
  40 + public static class ChildrenCompany {
  41 + private String code;
  42 +
  43 + private String name;
  44 +
  45 + public ChildrenCompany(String code, String name){
  46 + this.code = code;
  47 + this.name = name;
  48 + }
  49 +
  50 + public String getName() {
  51 + return name;
  52 + }
  53 +
  54 + public void setName(String name) {
  55 + this.name = name;
  56 + }
  57 +
  58 + public String getCode() {
  59 + return code;
  60 + }
  61 +
  62 + public void setCode(String code) {
  63 + this.code = code;
  64 + }
  65 + }
  66 +}
src/main/java/com/bsth/data/BasicData.java
1 package com.bsth.data; 1 package com.bsth.data;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.HashMap;  
5 -import java.util.Iterator;  
6 -import java.util.List;  
7 -import java.util.Map;  
8 -import java.util.concurrent.TimeUnit;  
9 - 3 +import com.bsth.Application;
  4 +import com.bsth.entity.*;
  5 +import com.bsth.entity.schedule.CarConfigInfo;
  6 +import com.bsth.repository.*;
  7 +import com.bsth.repository.schedule.CarConfigInfoRepository;
  8 +import com.google.common.collect.BiMap;
  9 +import com.google.common.collect.HashBiMap;
  10 +import org.apache.commons.lang3.StringUtils;
10 import org.slf4j.Logger; 11 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory; 12 import org.slf4j.LoggerFactory;
12 import org.springframework.beans.factory.annotation.Autowired; 13 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.boot.CommandLineRunner; 14 import org.springframework.boot.CommandLineRunner;
14 import org.springframework.stereotype.Component; 15 import org.springframework.stereotype.Component;
15 16
16 -import com.bsth.Application;  
17 -import com.bsth.entity.CarPark;  
18 -import com.bsth.entity.Cars;  
19 -import com.bsth.entity.Line;  
20 -import com.bsth.entity.Personnel;  
21 -import com.bsth.entity.Station;  
22 -import com.bsth.entity.StationRoute;  
23 -import com.bsth.entity.schedule.CarConfigInfo;  
24 -import com.bsth.repository.CarParkRepository;  
25 -import com.bsth.repository.CarsRepository;  
26 -import com.bsth.repository.LineRepository;  
27 -import com.bsth.repository.PersonnelRepository;  
28 -import com.bsth.repository.StationRepository;  
29 -import com.bsth.repository.StationRouteRepository;  
30 -import com.bsth.repository.schedule.CarConfigInfoRepository;  
31 -import com.google.common.collect.BiMap;  
32 -import com.google.common.collect.HashBiMap;  
33 -import com.google.common.collect.TreeMultimap; 17 +import java.util.*;
  18 +import java.util.concurrent.TimeUnit;
34 19
35 /** 20 /**
36 - * 21 + * @author PanZhao
37 * @ClassName: BasicData 22 * @ClassName: BasicData
38 * @Description: TODO(基础的映射数据) 23 * @Description: TODO(基础的映射数据)
39 - * @author PanZhao  
40 * @date 2016年8月10日 下午3:27:45 24 * @date 2016年8月10日 下午3:27:45
41 - *  
42 */ 25 */
43 @Component 26 @Component
44 -public class BasicData implements CommandLineRunner{  
45 -  
46 - //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号)  
47 - public static BiMap<String, String> deviceId2NbbmMap;  
48 -  
49 - //车辆自编号和公司代码对照 (K: 车辆自编号 ,V:公司代码)  
50 - public static Map<String, String> nbbm2CompanyCodeMap;  
51 -  
52 - //站点编码和名称对照,包括停车场 (K: 站点编码 ,V:站点名称)  
53 - public static Map<String, String> stationCode2NameMap;  
54 -  
55 - //车辆和线路对照  
56 - public static Map<String, Line> nbbm2LineMap;  
57 -  
58 - //线路和用户对照 用于webSocket定向推送消息(用户进入线调时写入数据)  
59 - public static TreeMultimap<String, String> lineCode2SocketUserMap = TreeMultimap.create();  
60 -  
61 - //线路ID和code 对照  
62 - public static BiMap<Integer, String> lineId2CodeMap;  
63 -  
64 - //线路编码和名称对照  
65 - public static Map<String, String> lineCode2NameMap;  
66 -  
67 - //线路编码_站点编码 == 0|1 上下行  
68 - public static Map<String, Integer> lineStationUpDownMap;  
69 -  
70 - //停车场  
71 - public static List<String> parkCodeList;  
72 -  
73 - //线路ID和shangHaiLinecode 对照  
74 - public static Map<Integer, String> lineId2ShangHaiCodeMap;  
75 -  
76 - //线路Code和shangHaiLinecode 对照  
77 - public static Map<String, String> lineCode2ShangHaiCodeMap;  
78 -  
79 - //驾驶员工号 和 personnel 对象映射  
80 - public static Map<String, Personnel> jsyMap;  
81 - //售票员工号 和 personnel 对象映射  
82 - public static Map<String, Personnel> spyMap;  
83 - //全量员工 工号和姓名对照  
84 - public static Map<String, String> allPerson;  
85 -  
86 -  
87 - static Logger logger = LoggerFactory.getLogger(BasicData.class);  
88 -  
89 - @Autowired  
90 - BasicDataLoader dataLoader;  
91 -  
92 - @Override  
93 - public void run(String... arg0) throws Exception {  
94 - Application.mainServices.scheduleWithFixedDelay(dataLoader, 0, 1, TimeUnit.HOURS);  
95 - }  
96 -  
97 -  
98 - @Component  
99 - public static class BasicDataLoader extends Thread{  
100 -  
101 - @Autowired  
102 - CarsRepository carsRepository;  
103 -  
104 - @Autowired  
105 - StationRepository stationRepository;  
106 -  
107 - @Autowired  
108 - CarParkRepository carParkRepository;  
109 -  
110 - @Autowired  
111 - CarConfigInfoRepository carConfigInfoRepository;  
112 -  
113 - @Autowired  
114 - LineRepository lineRepository;  
115 -  
116 - @Autowired  
117 - StationRouteRepository stationRouteRepository;  
118 -  
119 - @Autowired  
120 - PersonnelRepository personnelRepository;  
121 -  
122 -  
123 - @Override  
124 - public void run() {  
125 - loadAllData();  
126 - }  
127 -  
128 - /**  
129 - * @Title: loadAllData  
130 - * @Description: TODO(加载所有数据)  
131 - */  
132 - public int loadAllData(){  
133 - try{  
134 - //设备信息  
135 - loadDeviceInfo();  
136 - //站点信息  
137 - loadStationInfo();  
138 - //线路信息  
139 - loadLineInfo();  
140 - //车辆和线路映射信息  
141 - loadNbbm2LineInfo();  
142 - //站点路由信息  
143 - loadStationRouteInfo();  
144 - //人员信息  
145 - loadPersonnelInfo();  
146 - logger.info("加载基础数据成功!," );  
147 - }catch(Exception e){  
148 - logger.error("加载基础数据时出现异常," , e);  
149 - }  
150 - return 0;  
151 - }  
152 -  
153 -  
154 - private void loadStationRouteInfo() {  
155 - Iterator<StationRoute> iterator = stationRouteRepository.findAllEffective().iterator();  
156 - Map<String, Integer> map = new HashMap<>();  
157 - StationRoute route;  
158 -  
159 - while(iterator.hasNext()){  
160 - route = iterator.next();  
161 - map.put(route.getLineCode() + "_" + route.getStationCode(), route.getDirections());  
162 - }  
163 - lineStationUpDownMap = map;  
164 - }  
165 -  
166 - /**  
167 - * @Title: loadDeviceInfo  
168 - * @Description: TODO(加载设备相关信息)  
169 - */  
170 - public void loadDeviceInfo(){  
171 - BiMap<String, String> deviceId2Nbbm = HashBiMap.create();  
172 - //车辆和公司代码对照  
173 - Map<String, String> nbbm2CompanyCode = new HashMap<>();  
174 - Iterator<Cars> carIterator = carsRepository.findAll().iterator();  
175 - Cars car;  
176 - while(carIterator.hasNext()){  
177 - car = carIterator.next();  
178 - deviceId2Nbbm.put(car.getEquipmentCode(), car.getInsideCode());  
179 - nbbm2CompanyCode.put(car.getInsideCode(), car.getBusinessCode());  
180 - }  
181 -  
182 - deviceId2NbbmMap = deviceId2Nbbm;  
183 - nbbm2CompanyCodeMap = nbbm2CompanyCode;  
184 - }  
185 -  
186 - /**  
187 - * @Title: loadStationInfo  
188 - * @Description: TODO(加载站点信息)  
189 - */  
190 - public void loadStationInfo(){  
191 - Map<String, String> stationCode2Name = new HashMap<>();  
192 - Iterator<Station> iterator = stationRepository.findAll().iterator();  
193 - //站点  
194 - Station station;  
195 - while(iterator.hasNext()){  
196 - station = iterator.next();  
197 - stationCode2Name.put(station.getStationCod(), station.getStationName());  
198 - }  
199 - //停车场  
200 - Iterator<CarPark> iterator2 = carParkRepository.findAll().iterator();  
201 -  
202 - List<String> parkCodes = new ArrayList<>();  
203 -  
204 - CarPark carPark;  
205 - while(iterator2.hasNext()){  
206 - carPark = iterator2.next();  
207 - stationCode2Name.put(carPark.getParkCode(), carPark.getParkName());  
208 -  
209 - parkCodes.add(carPark.getParkCode());  
210 - }  
211 - parkCodeList = parkCodes;  
212 - stationCode2NameMap = stationCode2Name;  
213 - }  
214 -  
215 - /**  
216 - * @Title: loadNbbm2LineInfo  
217 - * @Description: TODO(车辆和线路对照)  
218 - */  
219 - public void loadNbbm2LineInfo(){  
220 - Iterator<CarConfigInfo> allIterator = carConfigInfoRepository.findAll().iterator();  
221 - Map<String, Line> ccMap = new HashMap<>();  
222 -  
223 - CarConfigInfo cci;  
224 - while(allIterator.hasNext()){  
225 - cci = allIterator.next();  
226 - ccMap.put(cci.getCl().getInsideCode(), cci.getXl());  
227 - }  
228 - nbbm2LineMap = ccMap;  
229 - }  
230 -  
231 - /**  
232 - * @Title: loadLineInfo  
233 - * @Description: TODO(加载线路相关信息)  
234 - */  
235 - public void loadLineInfo(){  
236 - Iterator<Line> iterator = lineRepository.findAll().iterator();  
237 -  
238 - Line line;  
239 - BiMap<Integer, String> biMap = HashBiMap.create();  
240 - Map<String, String> code2name = new HashMap<>();  
241 - Map<Integer, String> id2SHcode = new HashMap<Integer, String>();  
242 - Map<String, String> code2SHcode = new HashMap<String, String>();  
243 -  
244 - while(iterator.hasNext()){  
245 - line = iterator.next();  
246 - biMap.put(line.getId(), line.getLineCode());  
247 - code2name.put(line.getLineCode(), line.getName());  
248 - id2SHcode.put(line.getId(),line.getShanghaiLinecode());  
249 - code2SHcode.put(line.getLineCode(), line.getShanghaiLinecode());  
250 - }  
251 -  
252 - lineId2CodeMap = biMap;  
253 - lineCode2NameMap = code2name;  
254 - lineId2ShangHaiCodeMap = id2SHcode;  
255 - lineCode2ShangHaiCodeMap = code2SHcode;  
256 - }  
257 -  
258 - /**  
259 - *  
260 - * @Title: loadPersonnelInfo  
261 - * @Description: TODO(加载人员信息)  
262 - */  
263 - public void loadPersonnelInfo() {  
264 - Iterator<Personnel> iterator = personnelRepository.findAll().iterator();  
265 -  
266 - Map<String, Personnel> jsyTempMap=new HashMap<>()  
267 - , spyTempMap=new HashMap<>();  
268 - Map<String, String> allPersonMap=new HashMap<>();  
269 -  
270 - Personnel p;  
271 -  
272 - while(iterator.hasNext()){  
273 - p = iterator.next();  
274 -  
275 - if(p.getPosts() != null){  
276 - if(p.getPosts().equals("1"))  
277 - jsyTempMap.put(p.getJobCode(), p);  
278 - else if(p.getPosts().equals("2"))  
279 - spyTempMap.put(p.getJobCode(), p);  
280 - }  
281 -  
282 - allPersonMap.put(p.getJobCode(), p.getPersonnelName());  
283 - }  
284 -  
285 - jsyMap=jsyTempMap;  
286 - spyMap=spyTempMap;  
287 - allPerson=allPersonMap;  
288 - }  
289 - } 27 +public class BasicData implements CommandLineRunner {
  28 +
  29 + //设备号和车辆自编号 (K: 设备编码 ,V:车辆自编号)
  30 + public static BiMap<String, String> deviceId2NbbmMap;
  31 +
  32 + //车辆自编号和公司代码对照 (K: 车辆自编号 ,V:公司代码)
  33 + public static Map<String, String> nbbm2CompanyCodeMap;
  34 +
  35 + //站点编码和名称对照,包括停车场 (K: 站点编码 ,V:站点名称)
  36 + public static Map<String, String> stationCode2NameMap;
  37 +
  38 + //线路起终点对照(线路编码_上下行_起终点) 1024_0_B (1024上行起点)
  39 + public static Map<String, String> lineSEPointMap;
  40 +
  41 + //车辆和线路对照
  42 + public static Map<String, Line> nbbm2LineMap;
  43 +
  44 + //线路和用户对照 用于webSocket定向推送消息(用户进入线调时写入数据)
  45 + //public static TreeMultimap<String, String> lineCode2SocketUserMap = TreeMultimap.create();
  46 +
  47 + //线路ID和code 对照
  48 + public static BiMap<Integer, String> lineId2CodeMap;
  49 +
  50 + //线路编码和名称对照
  51 + public static Map<String, String> lineCode2NameMap;
  52 +
  53 + //线路编码_站点编码 == 0|1 上下行
  54 + public static Map<String, Integer> lineStationUpDownMap;
  55 +
  56 + //停车场
  57 + public static List<String> parkCodeList;
  58 +
  59 + //线路ID和shangHaiLinecode 对照
  60 + public static Map<Integer, String> lineId2ShangHaiCodeMap;
  61 +
  62 + //线路Code和shangHaiLinecode 对照
  63 + public static Map<String, String> lineCode2ShangHaiCodeMap;
  64 +
  65 + //驾驶员工号 和 personnel 对象映射
  66 + public static Map<String, Personnel> jsyMap;
  67 + //售票员工号 和 personnel 对象映射
  68 + public static Map<String, Personnel> spyMap;
  69 + //全量员工 工号和姓名对照
  70 + public static Map<String, String> allPerson;
  71 +
  72 + //站点名和运管处编号 对照
  73 + public static Map<String, Map<String, Map>> stationName2YgcNumber;
  74 +
  75 +
  76 + static Logger logger = LoggerFactory.getLogger(BasicData.class);
  77 +
  78 + @Autowired
  79 + BasicDataLoader dataLoader;
  80 +
  81 + @Override
  82 + public void run(String... arg0) throws Exception {
  83 + Application.mainServices.scheduleWithFixedDelay(dataLoader, 0, 1, TimeUnit.HOURS);
  84 + }
  85 +
  86 +
  87 + @Component
  88 + public static class BasicDataLoader extends Thread {
  89 +
  90 + @Autowired
  91 + CarsRepository carsRepository;
  92 +
  93 + @Autowired
  94 + StationRepository stationRepository;
  95 +
  96 + @Autowired
  97 + CarParkRepository carParkRepository;
  98 +
  99 + @Autowired
  100 + CarConfigInfoRepository carConfigInfoRepository;
  101 +
  102 + @Autowired
  103 + LineRepository lineRepository;
  104 +
  105 + @Autowired
  106 + StationRouteRepository stationRouteRepository;
  107 +
  108 + @Autowired
  109 + PersonnelRepository personnelRepository;
  110 +
  111 +
  112 + @Override
  113 + public void run() {
  114 + loadAllData();
  115 + }
  116 +
  117 + /**
  118 + * @Title: loadAllData
  119 + * @Description: TODO(加载所有数据)
  120 + */
  121 + public int loadAllData() {
  122 + try {
  123 + //设备信息
  124 + loadDeviceInfo();
  125 + //站点信息
  126 + loadStationInfo();
  127 + //线路信息
  128 + loadLineInfo();
  129 + //车辆和线路映射信息
  130 + loadNbbm2LineInfo();
  131 + //站点路由信息
  132 + loadStationRouteInfo();
  133 + //人员信息
  134 + loadPersonnelInfo();
  135 + logger.info("加载基础数据成功!,");
  136 + } catch (Exception e) {
  137 + logger.error("加载基础数据时出现异常,", e);
  138 + }
  139 + return 0;
  140 + }
  141 +
  142 +
  143 + private void loadStationRouteInfo() {
  144 + Iterator<StationRoute> iterator = stationRouteRepository.findAllEffective().iterator();
  145 +
  146 + Map<String, String> sePointMap = new HashMap<>();
  147 + //lineSEPointMap
  148 + Map<String, Integer> map = new HashMap<>();
  149 +
  150 + StationRoute route;
  151 + while (iterator.hasNext()) {
  152 + route = iterator.next();
  153 + map.put(route.getLineCode() + "_" + route.getStationCode(), route.getDirections());
  154 +
  155 + if (route.getStationMark() != null &&
  156 + (route.getStationMark().equals("B") || route.getStationMark().equals("E"))) {
  157 + sePointMap.put(route.getLineCode() + "_"
  158 + + route.getDirections()
  159 + + "_" + route.getStationMark(), route.getStationCode());
  160 + }
  161 + }
  162 + lineStationUpDownMap = map;
  163 + lineSEPointMap = sePointMap;
  164 + }
  165 +
  166 + /**
  167 + * @Title: loadDeviceInfo
  168 + * @Description: TODO(加载设备相关信息)
  169 + */
  170 + public void loadDeviceInfo() {
  171 + BiMap<String, String> deviceId2Nbbm = HashBiMap.create();
  172 + //车辆和公司代码对照
  173 + Map<String, String> nbbm2CompanyCode = new HashMap<>();
  174 + Iterator<Cars> carIterator = carsRepository.findAll().iterator();
  175 + Cars car;
  176 + while (carIterator.hasNext()) {
  177 + car = carIterator.next();
  178 + deviceId2Nbbm.put(car.getEquipmentCode(), car.getInsideCode());
  179 + nbbm2CompanyCode.put(car.getInsideCode(), car.getBusinessCode());
  180 + }
  181 +
  182 + deviceId2NbbmMap = deviceId2Nbbm;
  183 + nbbm2CompanyCodeMap = nbbm2CompanyCode;
  184 + }
  185 +
  186 + /**
  187 + * @Title: loadStationInfo
  188 + * @Description: TODO(加载站点信息)
  189 + */
  190 + public void loadStationInfo() {
  191 + Map<String, String> stationCode2Name = new HashMap<>();
  192 + Iterator<Station> iterator = stationRepository.findAll().iterator();
  193 + //站点
  194 + Station station;
  195 + while (iterator.hasNext()) {
  196 + station = iterator.next();
  197 + stationCode2Name.put(station.getStationCod(), station.getStationName());
  198 + }
  199 + //停车场
  200 + Iterator<CarPark> iterator2 = carParkRepository.findAll().iterator();
  201 +
  202 + List<String> parkCodes = new ArrayList<>();
  203 +
  204 + CarPark carPark;
  205 + while (iterator2.hasNext()) {
  206 + carPark = iterator2.next();
  207 + stationCode2Name.put(carPark.getParkCode(), carPark.getParkName());
  208 +
  209 + parkCodes.add(carPark.getParkCode());
  210 + }
  211 + parkCodeList = parkCodes;
  212 + stationCode2NameMap = stationCode2Name;
  213 + }
  214 +
  215 + /**
  216 + * @Title: loadNbbm2LineInfo
  217 + * @Description: TODO(车辆和线路对照)
  218 + */
  219 + public void loadNbbm2LineInfo() {
  220 + Iterator<CarConfigInfo> allIterator = carConfigInfoRepository.findAll().iterator();
  221 + Map<String, Line> ccMap = new HashMap<>();
  222 +
  223 + CarConfigInfo cci;
  224 + while (allIterator.hasNext()) {
  225 + cci = allIterator.next();
  226 + ccMap.put(cci.getCl().getInsideCode(), cci.getXl());
  227 + }
  228 + nbbm2LineMap = ccMap;
  229 + }
  230 +
  231 + /**
  232 + * @Title: loadLineInfo
  233 + * @Description: TODO(加载线路相关信息)
  234 + */
  235 + public void loadLineInfo(){
  236 + List<StationRoute> stationsList = null;// 站点路由集
  237 + StationRoute stationRoute = null;
  238 + int size = 0;
  239 + Map<String, Integer> station2Number ;
  240 + Map<String, Map> dirs2Statioin ;
  241 + int[] dirs = {0,1};// 运行方向 上下行
  242 + int num = 1;
  243 + Iterator<Line> iterator = lineRepository.findAll().iterator();
  244 +
  245 + Line line;
  246 + BiMap<Integer, String> biMap = HashBiMap.create();
  247 + Map<String, String> code2name = new HashMap<>();
  248 + Map<Integer, String> id2SHcode = new HashMap<Integer, String>();
  249 + Map<String, String> code2SHcode = new HashMap<String, String>();
  250 + Map<String, Map<String, Map>> tempStationName2YgcNumber = new HashMap<String, Map<String, Map>>();
  251 +
  252 + while(iterator.hasNext()){
  253 + line = iterator.next();
  254 + biMap.put(line.getId(), line.getLineCode());
  255 + code2name.put(line.getLineCode(), line.getName());
  256 + id2SHcode.put(line.getId(),line.getShanghaiLinecode());
  257 + code2SHcode.put(line.getLineCode(), line.getShanghaiLinecode());
  258 +
  259 + /**
  260 + * 加载运管处的站点及序号
  261 + * 上行从1开始,下行顺序续编
  262 +
  263 + num = 1;
  264 + dirs2Statioin = new HashMap<String, Map>();
  265 + for (int i = 0; i < dirs.length; i++) {
  266 + // 分别取得上下行的站点
  267 + stationsList = stationRouteRepository.findByLine(line.getLineCode(), dirs[i]);
  268 + size = stationsList == null ? 0 :stationsList.size();
  269 + if(size > 0 ){
  270 + station2Number = new HashMap<String, Integer>();
  271 + for (int j = 0; j < size; j++) {
  272 + stationRoute = stationsList.get(j);
  273 + // map保存为(站点名称 -->序号)
  274 + station2Number.put(stationRoute.getStationName(), num++);
  275 + }
  276 + // 保存两个数据,(0 --> station2Number)(1 --> station2Number) 0上行 1 下行
  277 + dirs2Statioin.put(dirs[i]+"", station2Number);
  278 + }
  279 + }
  280 + // 保存(站点编码 --> dirs2Statioin)
  281 + tempStationName2YgcNumber.put(line.getLineCode(), dirs2Statioin);
  282 + */
  283 + }
  284 +
  285 + lineId2CodeMap = biMap;
  286 + lineCode2NameMap = code2name;
  287 + lineId2ShangHaiCodeMap = id2SHcode;
  288 + lineCode2ShangHaiCodeMap = code2SHcode;
  289 + stationName2YgcNumber = tempStationName2YgcNumber;
  290 + }
  291 +
  292 + /**
  293 + * @Title: loadPersonnelInfo
  294 + * @Description: TODO(加载人员信息)
  295 + */
  296 + public void loadPersonnelInfo() {
  297 + Iterator<Personnel> iterator = personnelRepository.findAll().iterator();
  298 +
  299 + Map<String, Personnel> jsyTempMap = new HashMap<>(), spyTempMap = new HashMap<>();
  300 + Map<String, String> allPersonMap = new HashMap<>();
  301 +
  302 + Personnel p;
  303 + String jobCode;
  304 + while (iterator.hasNext()) {
  305 + p = iterator.next();
  306 +
  307 + jobCode = p.getJobCode();
  308 + if (StringUtils.isEmpty(jobCode))
  309 + continue;
  310 +
  311 + /*if (jobCode.indexOf("-") != -1) {
  312 + jobCode = jobCode.split("-")[1];
  313 + }*/
  314 + if (p.getPosts() != null) {
  315 + if (p.getPosts().equals("1"))
  316 + jsyTempMap.put(jobCode, p);
  317 + else if (p.getPosts().equals("2"))
  318 + spyTempMap.put(jobCode, p);
  319 + }
  320 +
  321 + allPersonMap.put(jobCode, p.getPersonnelName());
  322 + }
  323 +
  324 + jsyMap = jsyTempMap;
  325 + spyMap = spyTempMap;
  326 + allPerson = allPersonMap;
  327 + }
  328 + }
290 } 329 }
src/main/java/com/bsth/data/arrival/ArrivalData_GPS.java
1 package com.bsth.data.arrival; 1 package com.bsth.data.arrival;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.Collection;  
5 -import java.util.HashMap;  
6 -import java.util.List;  
7 -import java.util.Map;  
8 -import java.util.Set;  
9 -import java.util.TreeSet;  
10 -import java.util.concurrent.TimeUnit;  
11 - 3 +import com.bsth.data.match.Arrival2Schedule;
  4 +import com.bsth.data.schedule.DayOfSchedule;
  5 +import com.google.common.collect.ArrayListMultimap;
  6 +import com.google.common.collect.ListMultimap;
12 import org.slf4j.Logger; 7 import org.slf4j.Logger;
13 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
14 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
15 import org.springframework.boot.CommandLineRunner; 10 import org.springframework.boot.CommandLineRunner;
16 import org.springframework.stereotype.Component; 11 import org.springframework.stereotype.Component;
17 12
18 -import com.bsth.Application;  
19 -import com.bsth.data.match.Arrival2Schedule;  
20 -import com.bsth.data.schedule.DayOfSchedule;  
21 -import com.google.common.collect.ArrayListMultimap;  
22 -import com.google.common.collect.ListMultimap; 13 +import java.util.*;
23 14
24 /** 15 /**
25 * 16 *
@@ -32,7 +23,7 @@ import com.google.common.collect.ListMultimap; @@ -32,7 +23,7 @@ import com.google.common.collect.ListMultimap;
32 @Component 23 @Component
33 public class ArrivalData_GPS implements CommandLineRunner{ 24 public class ArrivalData_GPS implements CommandLineRunner{
34 25
35 - // 起终点站进出数据 K:车辆编码 26 + // 起终点站进出数据 K:车辆编码
36 private static ListMultimap<String, ArrivalEntity> startAndEndMaps; 27 private static ListMultimap<String, ArrivalEntity> startAndEndMaps;
37 28
38 private static Map<String, Integer> carIndexMap; 29 private static Map<String, Integer> carIndexMap;
@@ -50,8 +41,8 @@ public class ArrivalData_GPS implements CommandLineRunner{ @@ -50,8 +41,8 @@ public class ArrivalData_GPS implements CommandLineRunner{
50 41
51 @Override 42 @Override
52 public void run(String... arg0) throws Exception { 43 public void run(String... arg0) throws Exception {
53 - logger.info("ArrivalData_GPS,100,10 @11-10");  
54 - //Application.mainServices.scheduleWithFixedDelay(dataLoaderThread, 100, 10, TimeUnit.SECONDS); 44 + logger.info("ArrivalData_GPS,30,10");
  45 + //Application.mainServices.scheduleWithFixedDelay(dataLoaderThread, 40, 10, TimeUnit.SECONDS);
55 } 46 }
56 47
57 @Component 48 @Component
@@ -69,6 +60,7 @@ public class ArrivalData_GPS implements CommandLineRunner{ @@ -69,6 +60,7 @@ public class ArrivalData_GPS implements CommandLineRunner{
69 @Override 60 @Override
70 public void run() { 61 public void run() {
71 try{ 62 try{
  63 + logger.info("开始加载到离站数据, " + System.currentTimeMillis());
72 List<ArrivalEntity> arrSets = dataLoader.load(); 64 List<ArrivalEntity> arrSets = dataLoader.load();
73 if(null == arrSets || arrSets.size() == 0) 65 if(null == arrSets || arrSets.size() == 0)
74 return; 66 return;
src/main/java/com/bsth/data/gpsdata/GpsEntity.java
@@ -71,6 +71,9 @@ public class GpsEntity { @@ -71,6 +71,9 @@ public class GpsEntity {
71 71
72 private int version; 72 private int version;
73 73
  74 + /** 是否起终点站 */
  75 + private boolean sEPoint;
  76 +
74 public Integer getCompanyCode() { 77 public Integer getCompanyCode() {
75 return companyCode; 78 return companyCode;
76 } 79 }
@@ -238,4 +241,12 @@ public class GpsEntity { @@ -238,4 +241,12 @@ public class GpsEntity {
238 public void setVersion(int version) { 241 public void setVersion(int version) {
239 this.version = version; 242 this.version = version;
240 } 243 }
  244 +
  245 + public boolean issEPoint() {
  246 + return sEPoint;
  247 + }
  248 +
  249 + public void setsEPoint(boolean sEPoint) {
  250 + this.sEPoint = sEPoint;
  251 + }
241 } 252 }
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
@@ -28,7 +28,7 @@ import com.bsth.util.ConfigUtil; @@ -28,7 +28,7 @@ import com.bsth.util.ConfigUtil;
28 import com.google.common.collect.TreeMultimap; 28 import com.google.common.collect.TreeMultimap;
29 29
30 /** 30 /**
31 - * 31 + *
32 * @ClassName: GpsRealData 32 * @ClassName: GpsRealData
33 * @Description: TODO(实时GPS数据集合) 33 * @Description: TODO(实时GPS数据集合)
34 * @author PanZhao 34 * @author PanZhao
@@ -37,25 +37,25 @@ import com.google.common.collect.TreeMultimap; @@ -37,25 +37,25 @@ import com.google.common.collect.TreeMultimap;
37 */ 37 */
38 @Component 38 @Component
39 public class GpsRealData implements CommandLineRunner{ 39 public class GpsRealData implements CommandLineRunner{
40 - 40 +
41 static Logger logger = LoggerFactory.getLogger(GpsRealData.class); 41 static Logger logger = LoggerFactory.getLogger(GpsRealData.class);
42 - 42 +
43 private static Map<String, GpsEntity> gpsMap; 43 private static Map<String, GpsEntity> gpsMap;
44 - 44 +
45 //按线路分组设备号 45 //按线路分组设备号
46 private static TreeMultimap<String, String> lineCode2Devices; 46 private static TreeMultimap<String, String> lineCode2Devices;
47 47
48 // 网关数据接口地址 48 // 网关数据接口地址
49 private static String url; 49 private static String url;
50 - 50 +
51 @Autowired 51 @Autowired
52 GpsDataLoader gpsDataLoader; 52 GpsDataLoader gpsDataLoader;
53 - 53 +
54 @Autowired 54 @Autowired
55 DayOfSchedule dayOfSchedule; 55 DayOfSchedule dayOfSchedule;
56 - 56 +
57 @Autowired 57 @Autowired
58 - ForecastRealServer forecastRealServer; 58 + ForecastRealServer forecastRealServer;
59 /** 59 /**
60 * 构造函数 60 * 构造函数
61 */ 61 */
@@ -64,49 +64,52 @@ public class GpsRealData implements CommandLineRunner{ @@ -64,49 +64,52 @@ public class GpsRealData implements CommandLineRunner{
64 lineCode2Devices = TreeMultimap.create(); 64 lineCode2Devices = TreeMultimap.create();
65 url = ConfigUtil.get("http.gps.real.url"); 65 url = ConfigUtil.get("http.gps.real.url");
66 } 66 }
67 - 67 +
68 @Override 68 @Override
69 public void run(String... arg0) throws Exception { 69 public void run(String... arg0) throws Exception {
70 logger.info("gpsDataLoader,20,6"); 70 logger.info("gpsDataLoader,20,6");
71 - //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 6, TimeUnit.SECONDS); 71 + Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 5, TimeUnit.SECONDS);
72 } 72 }
73 73
74 public GpsEntity add(GpsEntity gps) { 74 public GpsEntity add(GpsEntity gps) {
75 String device = gps.getDeviceId(); 75 String device = gps.getDeviceId();
76 GpsEntity old = gpsMap.get(device); 76 GpsEntity old = gpsMap.get(device);
77 -  
78 - //定时定距数据附带站点编码改变  
79 - if(null == old || !old.getStopNo().equals(gps.getStopNo())){  
80 - gps.setArrTime(gps.getTimestamp());  
81 - //预测到达终点时间  
82 - forecastRealServer.forecast(gps.getNbbm(), gps);  
83 - }  
84 - else{  
85 - gps.setArrTime(old.getArrTime());  
86 - //不预测, 重新计算终点时间  
87 - gps.setExpectStopTime(forecastRealServer.expectStopTime(gps.getNbbm())); 77 +
  78 + if(!StringUtils.isEmpty(gps.getStopNo())){
  79 + //定时定距数据附带站点编码改变
  80 + if(null == old || !gps.getStopNo().equals(old.getStopNo())){
  81 + gps.setArrTime(gps.getTimestamp());
  82 + //预测到达终点时间
  83 + forecastRealServer.forecast(gps.getNbbm(), gps);
  84 + }
  85 + else{
  86 + gps.setArrTime(old.getArrTime());
  87 + //不预测, 重新计算终点时间
  88 + gps.setExpectStopTime(forecastRealServer.expectStopTime(gps.getNbbm()));
  89 + }
88 } 90 }
89 - 91 +
90 gpsMap.put(device, gps); 92 gpsMap.put(device, gps);
91 - lineCode2Devices.put(gps.getLineId(), device); 93 + if(StringUtils.isNotBlank(gps.getLineId()))
  94 + lineCode2Devices.put(gps.getLineId(), device);
92 return gps; 95 return gps;
93 } 96 }
94 97
95 /** 98 /**
96 - * 99 + *
97 * @Title: get @Description: TODO(设备号获取GPS) 100 * @Title: get @Description: TODO(设备号获取GPS)
98 */ 101 */
99 public GpsEntity get(String deviceId) { 102 public GpsEntity get(String deviceId) {
100 return gpsMap.get(deviceId); 103 return gpsMap.get(deviceId);
101 } 104 }
102 - 105 +
103 /** 106 /**
104 - * 107 + *
105 * @Title: get @Description: TODO(线路编码获取GPS集合) @throws 108 * @Title: get @Description: TODO(线路编码获取GPS集合) @throws
106 */ 109 */
107 public List<GpsEntity> getByLine(String lineCode) { 110 public List<GpsEntity> getByLine(String lineCode) {
108 NavigableSet<String> set = lineCode2Devices.get(lineCode); 111 NavigableSet<String> set = lineCode2Devices.get(lineCode);
109 - 112 +
110 List<GpsEntity> rs = new ArrayList<>(); 113 List<GpsEntity> rs = new ArrayList<>();
111 GpsEntity gps; 114 GpsEntity gps;
112 ScheduleRealInfo sch; 115 ScheduleRealInfo sch;
@@ -115,19 +118,19 @@ public class GpsRealData implements CommandLineRunner{ @@ -115,19 +118,19 @@ public class GpsRealData implements CommandLineRunner{
115 //过滤异常GPS数据 118 //过滤异常GPS数据
116 if(gps.isAbnormal()) 119 if(gps.isAbnormal())
117 continue; 120 continue;
118 - 121 +
119 sch = dayOfSchedule.execPlamMap().get(gps.getNbbm()); 122 sch = dayOfSchedule.execPlamMap().get(gps.getNbbm());
120 if(null != sch) 123 if(null != sch)
121 gps.setSchId(sch.getId()); 124 gps.setSchId(sch.getId());
122 rs.add(gps); 125 rs.add(gps);
123 } 126 }
124 - 127 +
125 return rs; 128 return rs;
126 } 129 }
127 - 130 +
128 public List<GpsEntity> get(List<String> pArray){ 131 public List<GpsEntity> get(List<String> pArray){
129 List<GpsEntity> list = new ArrayList<>(); 132 List<GpsEntity> list = new ArrayList<>();
130 - 133 +
131 for(String code : pArray) 134 for(String code : pArray)
132 list.addAll(getByLine(code)); 135 list.addAll(getByLine(code));
133 return list; 136 return list;
@@ -136,11 +139,11 @@ public class GpsRealData implements CommandLineRunner{ @@ -136,11 +139,11 @@ public class GpsRealData implements CommandLineRunner{
136 public Set<String> allDevices(){ 139 public Set<String> allDevices(){
137 return gpsMap.keySet(); 140 return gpsMap.keySet();
138 } 141 }
139 - 142 +
140 public GpsEntity findByDeviceId(String deviceId) { 143 public GpsEntity findByDeviceId(String deviceId) {
141 return gpsMap.get(deviceId); 144 return gpsMap.get(deviceId);
142 } 145 }
143 - 146 +
144 public Collection<GpsEntity> all(){ 147 public Collection<GpsEntity> all(){
145 return gpsMap.values(); 148 return gpsMap.values();
146 } 149 }
@@ -150,9 +153,9 @@ public class GpsRealData implements CommandLineRunner{ @@ -150,9 +153,9 @@ public class GpsRealData implements CommandLineRunner{
150 } 153 }
151 @Component 154 @Component
152 public static class GpsDataLoader extends Thread{ 155 public static class GpsDataLoader extends Thread{
153 - 156 +
154 Logger logger = LoggerFactory.getLogger(GpsDataLoader.class); 157 Logger logger = LoggerFactory.getLogger(GpsDataLoader.class);
155 - 158 +
156 @Autowired 159 @Autowired
157 GpsRealData gpsRealData; 160 GpsRealData gpsRealData;
158 161
@@ -164,7 +167,7 @@ public class GpsRealData implements CommandLineRunner{ @@ -164,7 +167,7 @@ public class GpsRealData implements CommandLineRunner{
164 logger.error("", e); 167 logger.error("", e);
165 } 168 }
166 } 169 }
167 - 170 +
168 public void load() throws Exception { 171 public void load() throws Exception {
169 List<GpsEntity> list = new ArrayList<>(); 172 List<GpsEntity> list = new ArrayList<>();
170 CloseableHttpClient httpClient = null; 173 CloseableHttpClient httpClient = null;
@@ -172,7 +175,7 @@ public class GpsRealData implements CommandLineRunner{ @@ -172,7 +175,7 @@ public class GpsRealData implements CommandLineRunner{
172 try { 175 try {
173 httpClient = HttpClients.createDefault(); 176 httpClient = HttpClients.createDefault();
174 HttpGet get = new HttpGet(url); 177 HttpGet get = new HttpGet(url);
175 - 178 +
176 response = httpClient.execute(get); 179 response = httpClient.execute(get);
177 180
178 HttpEntity entity = response.getEntity(); 181 HttpEntity entity = response.getEntity();
@@ -181,32 +184,45 @@ public class GpsRealData implements CommandLineRunner{ @@ -181,32 +184,45 @@ public class GpsRealData implements CommandLineRunner{
181 BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent())); 184 BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
182 StringBuffer stringBuffer = new StringBuffer(); 185 StringBuffer stringBuffer = new StringBuffer();
183 String str = ""; 186 String str = "";
184 - while ((str = br.readLine()) != null) 187 + while ((str = br.readLine()) != null)
185 stringBuffer.append(str); 188 stringBuffer.append(str);
186 189
187 JSONObject jsonObj = JSON.parseObject(stringBuffer.toString()); 190 JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());
188 191
189 - if (jsonObj != null) 192 + if (jsonObj != null)
190 list = JSON.parseArray(jsonObj.getString("data"), GpsEntity.class); 193 list = JSON.parseArray(jsonObj.getString("data"), GpsEntity.class);
191 - 194 +
192 String nbbm; 195 String nbbm;
193 - //附加车辆内部编码  
194 - Integer updown;  
195 for(GpsEntity gps : list){ 196 for(GpsEntity gps : list){
  197 + //没有设备号
  198 + if(StringUtils.isBlank(gps.getDeviceId()))
  199 + continue;
  200 +
196 nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId()); 201 nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId());
197 if(StringUtils.isBlank(nbbm)) 202 if(StringUtils.isBlank(nbbm))
198 gps.setAbnormal(true);//标记为异常数据 203 gps.setAbnormal(true);//标记为异常数据
199 else 204 else
200 gps.setNbbm(nbbm); 205 gps.setNbbm(nbbm);
201 - 206 +
202 gps.setStationName(BasicData.stationCode2NameMap.get(gps.getStopNo())); 207 gps.setStationName(BasicData.stationCode2NameMap.get(gps.getStopNo()));
  208 + gpsRealData.add(gps);
  209 +
  210 + //纠正走向
  211 + correctUpdown(gps);
  212 + /*if(issEPoint(gps))
  213 + continue;
  214 +
  215 + //如果走向未知,尝试根据站点纠正走向
203 if(gps.getUpDown() == -1){ 216 if(gps.getUpDown() == -1){
204 - //如果走向未知,尝试根据站点纠正走向  
205 - updown=BasicData.lineStationUpDownMap.get(gps.getLineId()+"_"+gps.getStopNo()); 217 + updown=stationUpDownMap.get(gps.getLineId()+"_"+gps.getStopNo());
206 if(updown != null) 218 if(updown != null)
207 gps.setUpDown(updown); 219 gps.setUpDown(updown);
208 } 220 }
209 - gpsRealData.add(gps); 221 + //如果站点编码和走向相反(即上行站点ID,走向为下行),尝试根据站点纠正走向
  222 + updown=stationUpDownMap.get(gps.getLineId()+"_"+gps.getStopNo());
  223 + if(updown != null && !gps.getUpDown().equals(updown)){
  224 + gps.setUpDown(updown);
  225 + }*/
210 } 226 }
211 } else 227 } else
212 logger.error("result is null"); 228 logger.error("result is null");
@@ -220,5 +236,55 @@ public class GpsRealData implements CommandLineRunner{ @@ -220,5 +236,55 @@ public class GpsRealData implements CommandLineRunner{
220 response.close(); 236 response.close();
221 } 237 }
222 } 238 }
  239 +
  240 + /**
  241 + * 是否是起终点
  242 + * @param gps
  243 + * @return
  244 + */
  245 + public boolean isSEPoint(GpsEntity gps){
  246 + String key = gps.getLineId()+"_"+gps.getUpDown()+"_"
  247 + ,stationCode;
  248 +
  249 + if(BasicData.lineSEPointMap.containsKey(key+"B")){
  250 + stationCode = BasicData.lineSEPointMap.get(key+"B");
  251 + if(gps.getStopNo().equals(stationCode)){
  252 + gps.setsEPoint(true);
  253 + return true;
  254 + }
  255 + }
  256 +
  257 + if(BasicData.lineSEPointMap.containsKey(key+"E")){
  258 + stationCode = BasicData.lineSEPointMap.get(key+"E");
  259 + if(gps.getStopNo().equals(stationCode)){
  260 + gps.setsEPoint(true);
  261 + return true;
  262 + }
  263 + }
  264 + return false;
  265 + }
  266 +
  267 + /**
  268 + * 纠正上下行
  269 + * @param gps
  270 + */
  271 + public void correctUpdown(GpsEntity gps){
  272 + Integer updown=BasicData.lineStationUpDownMap.get(gps.getLineId()+"_"+gps.getStopNo());
  273 + if(updown != null && !updown.equals(gps.getUpDown()))
  274 + gps.setUpDown(updown);
  275 + /*//如果走向未知,尝试根据站点纠正走向
  276 + if(gps.getUpDown() == -1){
  277 +
  278 + }*/
  279 +
  280 + if(isSEPoint(gps))
  281 + return;
  282 +
  283 + /*//如果站点编码和走向相反(即上行站点ID,走向为下行),尝试根据站点纠正走向
  284 + updown=BasicData.lineStationUpDownMap.get(gps.getLineId()+"_"+gps.getStopNo());
  285 + if(updown != null && !gps.getUpDown().equals(updown)){
  286 + gps.setUpDown(updown);
  287 + }*/
  288 + }
223 } 289 }
224 } 290 }
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
@@ -130,11 +130,11 @@ public class DayOfSchedule implements CommandLineRunner { @@ -130,11 +130,11 @@ public class DayOfSchedule implements CommandLineRunner {
130 //翻班线程 130 //翻班线程
131 Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS); 131 Application.mainServices.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
132 //入库 132 //入库
133 - //Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 60, TimeUnit.SECONDS); 133 + Application.mainServices.scheduleWithFixedDelay(schedulePstThread, 60, 60, TimeUnit.SECONDS);
134 //首班出场指令补发器 134 //首班出场指令补发器
135 - //Application.mainServices.scheduleWithFixedDelay(firstScheduleCheckThread, 30, 240, TimeUnit.SECONDS); 135 + Application.mainServices.scheduleWithFixedDelay(firstScheduleCheckThread, 30, 240, TimeUnit.SECONDS);
136 //班次误点扫描 136 //班次误点扫描
137 - //Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 60, TimeUnit.SECONDS); 137 + Application.mainServices.scheduleWithFixedDelay(scheduleLateThread, 60, 60, TimeUnit.SECONDS);
138 138
139 //每天凌晨2点20提交数据到运管处 139 //每天凌晨2点20提交数据到运管处
140 long diff = (DateUtils.getTimestamp() + 1000*60*140) - System.currentTimeMillis(); 140 long diff = (DateUtils.getTimestamp() + 1000*60*140) - System.currentTimeMillis();
src/main/java/com/bsth/data/schedule/thread/SchedulePstThread.java
1 package com.bsth.data.schedule.thread; 1 package com.bsth.data.schedule.thread;
2 2
3 -import java.util.LinkedList;  
4 -  
5 -import org.springframework.beans.factory.annotation.Autowired;  
6 -import org.springframework.stereotype.Component;  
7 -  
8 import com.bsth.data.schedule.DayOfSchedule; 3 import com.bsth.data.schedule.DayOfSchedule;
9 import com.bsth.entity.realcontrol.ScheduleRealInfo; 4 import com.bsth.entity.realcontrol.ScheduleRealInfo;
10 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 5 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
  6 +import org.slf4j.Logger;
  7 +import org.slf4j.LoggerFactory;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.orm.jpa.JpaObjectRetrievalFailureException;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import javax.persistence.EntityNotFoundException;
  13 +import java.util.LinkedList;
11 14
12 /** 15 /**
13 - *  
14 - * @ClassName: SchedulePstThread  
15 - * @Description: TODO(班次异步持久化)  
16 - * @author PanZhao  
17 - * @date 2016年8月24日 上午1:47:05  
18 - * 16 + * @author PanZhao
  17 + * @ClassName: SchedulePstThread
  18 + * @Description: TODO(班次异步持久化)
  19 + * @date 2016年8月24日 上午1:47:05
19 */ 20 */
20 @Component 21 @Component
21 -public class SchedulePstThread extends Thread{  
22 -  
23 - @Autowired  
24 - ScheduleRealInfoRepository scheduleRepository;  
25 -  
26 - @Override  
27 - public void run() {  
28 - LinkedList<ScheduleRealInfo> list = DayOfSchedule.pstBuffer;  
29 -  
30 - ScheduleRealInfo schedule;  
31 - for (int i = 0; i < 1000; i++) {  
32 - schedule = list.poll();  
33 - if (null == schedule)  
34 - break;  
35 -  
36 - scheduleRepository.save(schedule);  
37 - }  
38 - } 22 +public class SchedulePstThread extends Thread {
  23 +
  24 + @Autowired
  25 + ScheduleRealInfoRepository scheduleRepository;
  26 +
  27 + Logger logger = LoggerFactory.getLogger(this.getClass());
  28 +
  29 + @Override
  30 + public void run() {
  31 +
  32 + LinkedList<ScheduleRealInfo> list = DayOfSchedule.pstBuffer;
  33 +
  34 + ScheduleRealInfo schedule;
  35 + for (int i = 0; i < 1000; i++) {
  36 + schedule = list.poll();
  37 + if (null == schedule)
  38 + break;
  39 +
  40 + try {
  41 + scheduleRepository.save(schedule);
  42 + }
  43 + catch (JpaObjectRetrievalFailureException e1){
  44 + logger.error("JpaObjectRetrievalFailureException error.... 可忽略");
  45 + }
  46 + catch(EntityNotFoundException e2){
  47 + logger.error("EntityNotFoundException error.... 可忽略");
  48 + }
  49 + catch (Exception e) {
  50 + logger.error("", e);
  51 + }
  52 + }
  53 + }
39 } 54 }
src/main/java/com/bsth/entity/Station.java
@@ -97,7 +97,16 @@ public class Station { @@ -97,7 +97,16 @@ public class Station {
97 97
98 // 版本号 98 // 版本号
99 private Integer versions; 99 private Integer versions;
100 - 100 +
  101 + /** 是否有电子站牌 这里是老调度系统的原始字段,暂时保留该字段。 */
  102 + private Integer isHaveLed;
  103 +
  104 + /** 是否有候车亭 这里是老调度系统的原始字段,暂时保留该字段。*/
  105 + private Integer isHaveShelter;
  106 +
  107 + /** 是否港湾式公交站 这里是老调度系统的原始字段,暂时保留该字段。*/
  108 + private Integer isHarbourStation;
  109 +
101 // 描述 110 // 描述
102 private String descriptions; 111 private String descriptions;
103 112
@@ -115,6 +124,30 @@ public class Station { @@ -115,6 +124,30 @@ public class Station {
115 @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") 124 @Column(name = "update_date", columnDefinition = "timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
116 private Date updateDate; 125 private Date updateDate;
117 126
  127 + public Integer getIsHaveLed() {
  128 + return isHaveLed;
  129 + }
  130 +
  131 + public void setIsHaveLed(Integer isHaveLed) {
  132 + this.isHaveLed = isHaveLed;
  133 + }
  134 +
  135 + public Integer getIsHaveShelter() {
  136 + return isHaveShelter;
  137 + }
  138 +
  139 + public void setIsHaveShelter(Integer isHaveShelter) {
  140 + this.isHaveShelter = isHaveShelter;
  141 + }
  142 +
  143 + public Integer getIsHarbourStation() {
  144 + return isHarbourStation;
  145 + }
  146 +
  147 + public void setIsHarbourStation(Integer isHarbourStation) {
  148 + this.isHarbourStation = isHarbourStation;
  149 + }
  150 +
118 public String getAddr() { 151 public String getAddr() {
119 return addr; 152 return addr;
120 } 153 }
src/main/java/com/bsth/entity/mcy_forms/Changetochange.java
1 package com.bsth.entity.mcy_forms; 1 package com.bsth.entity.mcy_forms;
2 2
  3 +import java.util.Date;
  4 +
  5 +import javax.persistence.Entity;
  6 +import javax.persistence.GeneratedValue;
  7 +import javax.persistence.Id;
  8 +import javax.persistence.Table;
  9 +
  10 +@Entity
  11 +@Table(name = "bsth_c_chtoch")
3 public class Changetochange { 12 public class Changetochange {
  13 + @Id
  14 + @GeneratedValue
  15 + private Integer id;
  16 +
  17 + private String rq;//日期
  18 +
  19 + private String gs;//公司
  20 +
  21 + private String fgs;//分公司
  22 +
  23 + private String xl;//线路
  24 +
  25 + private String lp;//路牌
  26 +
  27 + private String fssj;//发生时间
  28 +
  29 + private String xgsj;//修改时间
  30 +
  31 + private String pcch;//配车车号
  32 +
  33 + private String pcry;//配车人员
  34 +
  35 + private String jhch;//计划车号
  36 +
  37 + private String jhgh;//计划工号
  38 +
  39 + private String sjch;//实际车号
  40 +
  41 + private String sjgh;//实际工号
  42 +
  43 + private String yy;//原因
  44 +
  45 + private String xgr;//修改人
  46 +
  47 +
  48 + public Integer getId() {
  49 + return id;
  50 + }
  51 +
  52 + public void setId(Integer id) {
  53 + this.id = id;
  54 + }
  55 +
  56 + public String getRq() {
  57 + return rq;
  58 + }
  59 +
  60 + public void setRq(String rq) {
  61 + this.rq = rq;
  62 + }
  63 +
  64 + public String getGs() {
  65 + return gs;
  66 + }
  67 +
  68 + public void setGs(String gs) {
  69 + this.gs = gs;
  70 + }
  71 +
  72 + public String getFgs() {
  73 + return fgs;
  74 + }
  75 +
  76 + public void setFgs(String fgs) {
  77 + this.fgs = fgs;
  78 + }
  79 +
  80 + public String getXl() {
  81 + return xl;
  82 + }
  83 +
  84 + public void setXl(String xl) {
  85 + this.xl = xl;
  86 + }
  87 +
  88 + public String getLp() {
  89 + return lp;
  90 + }
  91 +
  92 + public void setLp(String lp) {
  93 + this.lp = lp;
  94 + }
  95 +
  96 + public String getFssj() {
  97 + return fssj;
  98 + }
  99 +
  100 + public void setFssj(String fssj) {
  101 + this.fssj = fssj;
  102 + }
  103 +
  104 + public String getXgsj() {
  105 + return xgsj;
  106 + }
  107 +
  108 + public void setXgsj(String xgsj) {
  109 + this.xgsj = xgsj;
  110 + }
  111 +
  112 + public String getPcch() {
  113 + return pcch;
  114 + }
  115 +
  116 + public void setPcch(String pcch) {
  117 + this.pcch = pcch;
  118 + }
  119 +
  120 + public String getPcry() {
  121 + return pcry;
  122 + }
  123 +
  124 + public void setPcry(String pcry) {
  125 + this.pcry = pcry;
  126 + }
  127 +
  128 +
  129 + public String getJhch() {
  130 + return jhch;
  131 + }
  132 +
  133 + public void setJhch(String jhch) {
  134 + this.jhch = jhch;
  135 + }
  136 +
  137 + public String getJhgh() {
  138 + return jhgh;
  139 + }
  140 +
  141 + public void setJhgh(String jhgh) {
  142 + this.jhgh = jhgh;
  143 + }
  144 +
  145 + public String getSjch() {
  146 + return sjch;
  147 + }
  148 +
  149 + public void setSjch(String sjch) {
  150 + this.sjch = sjch;
  151 + }
  152 +
  153 + public String getSjgh() {
  154 + return sjgh;
  155 + }
  156 +
  157 + public void setSjgh(String sjgh) {
  158 + this.sjgh = sjgh;
  159 + }
  160 +
  161 + public String getYy() {
  162 + return yy;
  163 + }
  164 +
  165 + public void setYy(String yy) {
  166 + this.yy = yy;
  167 + }
  168 +
  169 + public String getXgr() {
  170 + return xgr;
  171 + }
  172 +
  173 + public void setXgr(String xgr) {
  174 + this.xgr = xgr;
  175 + }
  176 +
4 177
5 178
6 } 179 }
src/main/java/com/bsth/entity/schedule/SchedulePlanInfo.java
@@ -3,6 +3,7 @@ package com.bsth.entity.schedule; @@ -3,6 +3,7 @@ package com.bsth.entity.schedule;
3 import com.bsth.entity.Line; 3 import com.bsth.entity.Line;
4 import com.bsth.entity.sys.SysUser; 4 import com.bsth.entity.sys.SysUser;
5 import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output; 5 import com.bsth.service.schedule.rules.shiftloop.ScheduleResult_output;
  6 +import org.apache.commons.lang3.StringUtils;
6 7
7 import javax.persistence.*; 8 import javax.persistence.*;
8 import java.util.Date; 9 import java.util.Date;
@@ -199,12 +200,29 @@ public class SchedulePlanInfo { @@ -199,12 +200,29 @@ public class SchedulePlanInfo {
199 } 200 }
200 201
201 this.j = employeeConfigInfo.getJsy().getId(); 202 this.j = employeeConfigInfo.getJsy().getId();
202 - this.jGh = employeeConfigInfo.getJsy().getJobCode(); 203 +// this.jGh = employeeConfigInfo.getJsy().getJobCode();
  204 + if (StringUtils.isNotEmpty(employeeConfigInfo.getJsy().getJobCode())) {
  205 + String[] jsy_temp = employeeConfigInfo.getJsy().getJobCode().split("-");
  206 + if (jsy_temp.length > 1) {
  207 + this.jGh = jsy_temp[1];
  208 + } else {
  209 + this.jGh = jsy_temp[0];
  210 + }
  211 + }
203 this.jName = employeeConfigInfo.getJsy().getPersonnelName(); 212 this.jName = employeeConfigInfo.getJsy().getPersonnelName();
204 // 关联的售票员 213 // 关联的售票员
205 if (employeeConfigInfo.getSpy() != null) { 214 if (employeeConfigInfo.getSpy() != null) {
206 this.s = employeeConfigInfo.getSpy().getId(); 215 this.s = employeeConfigInfo.getSpy().getId();
207 - this.sGh = employeeConfigInfo.getSpy().getJobCode(); 216 +// this.sGh = employeeConfigInfo.getSpy().getJobCode();
  217 + if (StringUtils.isNotEmpty(employeeConfigInfo.getSpy().getJobCode())) {
  218 + String[] spy_temp = employeeConfigInfo.getSpy().getJobCode().split("-");
  219 + if (spy_temp.length > 1) {
  220 + this.sGh = spy_temp[1];
  221 + } else {
  222 + this.sGh = spy_temp[0];
  223 + }
  224 + }
  225 +
208 this.sName = employeeConfigInfo.getSpy().getPersonnelName(); 226 this.sName = employeeConfigInfo.getSpy().getPersonnelName();
209 } 227 }
210 228
src/main/java/com/bsth/entity/sys/CompanyAuthority.java 0 → 100644
  1 +package com.bsth.entity.sys;
  2 +
  3 +import javax.persistence.*;
  4 +
  5 +/**
  6 + * Created by panzhao on 2016/11/22.
  7 + */
  8 +@Entity
  9 +@Table(name = "bsth_c_sys_company_auth")
  10 +public class CompanyAuthority {
  11 +
  12 + @Id
  13 + @GeneratedValue(strategy = GenerationType.IDENTITY)
  14 + private Integer id;
  15 +
  16 + /** 公司代码 */
  17 + private String companyCode;
  18 +
  19 + /** 公司名称 */
  20 + private String companyName;
  21 +
  22 + /** 分公司代码 */
  23 + private String subCompanyCode;
  24 +
  25 + /** 分公司代码 */
  26 + private String subCompanyName;
  27 +
  28 + private Integer roleId;
  29 +
  30 + public String getSubCompanyName() {
  31 + return subCompanyName;
  32 + }
  33 +
  34 + public void setSubCompanyName(String subCompanyName) {
  35 + this.subCompanyName = subCompanyName;
  36 + }
  37 +
  38 + public String getSubCompanyCode() {
  39 + return subCompanyCode;
  40 + }
  41 +
  42 + public void setSubCompanyCode(String subCompanyCode) {
  43 + this.subCompanyCode = subCompanyCode;
  44 + }
  45 +
  46 + public String getCompanyName() {
  47 + return companyName;
  48 + }
  49 +
  50 + public void setCompanyName(String companyName) {
  51 + this.companyName = companyName;
  52 + }
  53 +
  54 + public String getCompanyCode() {
  55 + return companyCode;
  56 + }
  57 +
  58 + public void setCompanyCode(String companyCode) {
  59 + this.companyCode = companyCode;
  60 + }
  61 +
  62 + public Integer getId() {
  63 + return id;
  64 + }
  65 +
  66 + public void setId(Integer id) {
  67 + this.id = id;
  68 + }
  69 +
  70 + public Integer getRoleId() {
  71 + return roleId;
  72 + }
  73 +
  74 + public void setRoleId(Integer roleId) {
  75 + this.roleId = roleId;
  76 + }
  77 +}
src/main/java/com/bsth/filter/BaseFilter.java
@@ -24,7 +24,7 @@ public abstract class BaseFilter implements Filter { @@ -24,7 +24,7 @@ public abstract class BaseFilter implements Filter {
24 * 白名单 24 * 白名单
25 */ 25 */
26 private String[] whiteListURLs = { Constants.LOGIN_PAGE,Constants.CAPTCHA, 26 private String[] whiteListURLs = { Constants.LOGIN_PAGE,Constants.CAPTCHA,
27 - Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_TEMPS }; 27 + Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.METRONIC_URL, Constants.LOGIN, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_REAL_GPS };
28 28
29 @Override 29 @Override
30 public void destroy() { 30 public void destroy() {
src/main/java/com/bsth/oplog/http/HttpOpLogInterceptor.java
@@ -3,8 +3,8 @@ package com.bsth.oplog.http; @@ -3,8 +3,8 @@ package com.bsth.oplog.http;
3 import javax.servlet.http.HttpServletRequest; 3 import javax.servlet.http.HttpServletRequest;
4 import javax.servlet.http.HttpServletResponse; 4 import javax.servlet.http.HttpServletResponse;
5 5
  6 +import com.bsth.common.Constants;
6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.beans.factory.annotation.Autowired;
7 -import org.springframework.stereotype.Component;  
8 import org.springframework.util.AntPathMatcher; 8 import org.springframework.util.AntPathMatcher;
9 import org.springframework.util.PathMatcher; 9 import org.springframework.util.PathMatcher;
10 import org.springframework.web.method.HandlerMethod; 10 import org.springframework.web.method.HandlerMethod;
@@ -25,7 +25,7 @@ public class HttpOpLogInterceptor implements HandlerInterceptor { @@ -25,7 +25,7 @@ public class HttpOpLogInterceptor implements HandlerInterceptor {
25 private final PathMatcher pathMatcher = new AntPathMatcher(); 25 private final PathMatcher pathMatcher = new AntPathMatcher();
26 26
27 // GET 白名单 27 // GET 白名单
28 - private String[] httpGetWhiteList = { "/user/login/**", "/user/currentUser","/dictionary/**", "/module/findByCurrentUser", "/gps/**", "/error/**" }; 28 + private String[] httpGetWhiteList = { "/user/login/**", "/user/currentUser","/dictionary/**", "/module/findByCurrentUser", "/gps/**", "/error/**", Constants.XD_CHILD_PAGES};
29 29
30 // POST 白名单 30 // POST 白名单
31 private String[] httpPostWhiteList = { 31 private String[] httpPostWhiteList = {
src/main/java/com/bsth/repository/CarParkRepository.java
@@ -33,9 +33,9 @@ public interface CarParkRepository extends BaseRepository&lt;CarPark, Integer&gt;{ @@ -33,9 +33,9 @@ public interface CarParkRepository extends BaseRepository&lt;CarPark, Integer&gt;{
33 33
34 "?6 , str_to_date(?7,'%Y-%m-%d %H:%i:%s') , ?8 , ?9 , ?10," + 34 "?6 , str_to_date(?7,'%Y-%m-%d %H:%i:%s') , ?8 , ?9 , ?10," +
35 35
36 - "str_to_date(?11,'%Y-%m-%d %H:%i:%s'), ?12 ,?13,GeomFromText(?14), ?15, " + 36 + "str_to_date(?11,'%Y-%m-%d %H:%i:%s'), ?12 ,?13,ST_GeomFromText(?14), ?15, " +
37 37
38 - "?16, GeomFromText(?17), ?18,?19)", nativeQuery=true) 38 + "?16, ST_GeomFromText(?17), ?18,?19)", nativeQuery=true)
39 public void carParkSave(Double area,String company,String parkCode,String parkName, 39 public void carParkSave(Double area,String company,String parkCode,String parkName,
40 40
41 String brancheCompany,Integer createBy,String createDate,String descriptions,Integer destroy, 41 String brancheCompany,Integer createBy,String createDate,String descriptions,Integer destroy,
@@ -91,8 +91,8 @@ public interface CarParkRepository extends BaseRepository&lt;CarPark, Integer&gt;{ @@ -91,8 +91,8 @@ public interface CarParkRepository extends BaseRepository&lt;CarPark, Integer&gt;{
91 "versions = ?12 , " + 91 "versions = ?12 , " +
92 "b_center_point = ?13 , " + 92 "b_center_point = ?13 , " +
93 "g_center_point = ?14 , " + 93 "g_center_point = ?14 , " +
94 - "b_park_point = GeomFromText(?15) , " +  
95 - "g_park_point = GeomFromText(?16) , " + 94 + "b_park_point = ST_GeomFromText(?15) , " +
  95 + "g_park_point = ST_GeomFromText(?16) , " +
96 "db_type = ?17 , " + 96 "db_type = ?17 , " +
97 "radius = ?18 , " + 97 "radius = ?18 , " +
98 "shapes_type = ?19 " + 98 "shapes_type = ?19 " +
src/main/java/com/bsth/repository/SectionRepository.java
@@ -83,33 +83,32 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; { @@ -83,33 +83,32 @@ public interface SectionRepository extends BaseRepository&lt;Section, Integer&gt; {
83 @Transactional 83 @Transactional
84 @Modifying 84 @Modifying
85 @Query(value="UPDATE bsth_c_section SET " + 85 @Query(value="UPDATE bsth_c_section SET " +
86 - "gsection_vector = ST_GeomFromText(?2) , " +  
87 - "bsection_vector = ST_GeomFromText(?3)," +  
88 - "section_code = ?4," +  
89 - "section_name = ?5," +  
90 - "croses_road = ?6," +  
91 - "end_node = ?7," +  
92 - "start_node = ?8," +  
93 - "middle_node = ?9," +  
94 - "section_type = ?10," +  
95 - "csection_vector = ?11," +  
96 - "road_coding = ?12," +  
97 - "section_distance = ?13," +  
98 - "section_time = ?14," +  
99 - "db_type = ?15," +  
100 - "speed_limit = ?16," +  
101 - "descriptions = ?17," +  
102 - "versions = ?18," +  
103 - "create_by = ?19," +  
104 - "create_date = str_to_date(?20,'%Y-%m-%d %H:%i:%s')," +  
105 - "update_by = ?21," +  
106 - "update_date = str_to_date(?22,'%Y-%m-%d %H:%i:%s')" + 86 + " gsection_vector = ST_GeomFromText(?2) , " +
  87 + " bsection_vector = ST_GeomFromText(?3)," +
  88 + " section_code = ?4," +
  89 + " section_name = ?5," +
  90 + " croses_road = ?6," +
  91 + " end_node = ?7," +
  92 + " start_node = ?8," +
  93 + " middle_node = ?9," +
  94 + " section_type = ?10," +
  95 + " road_coding = ?11," +
  96 + " section_distance = ?12," +
  97 + " section_time = ?13," +
  98 + " db_type = ?14," +
  99 + " speed_limit = ?15," +
  100 + " descriptions = ?16," +
  101 + " versions = ?17," +
  102 + " create_by = ?18," +
  103 + " create_date = str_to_date(?19,'%Y-%m-%d %H:%i:%s')," +
  104 + " update_by = ?20," +
  105 + " update_date = str_to_date(?21,'%Y-%m-%d %H:%i:%s')" +
107 " WHERE id = ?1", nativeQuery=true) 106 " WHERE id = ?1", nativeQuery=true)
108 public void sectionUpdate(Integer sectionId,String gsectionVector,String bsectionVector,String sectionCode,String sectionName, 107 public void sectionUpdate(Integer sectionId,String gsectionVector,String bsectionVector,String sectionCode,String sectionName,
109 108
110 String crosesRoad,String endNode,String startNode,String middleNode,String sectionType, 109 String crosesRoad,String endNode,String startNode,String middleNode,String sectionType,
111 110
112 - String csectionVector,String roadCoding,Double sectionDistance,Double sectionTime,String dbType, 111 + String roadCoding,Double sectionDistance,Double sectionTime,String dbType,
113 112
114 Double speedLimit,String descriptions,Integer version,Integer createBy,String createDate, 113 Double speedLimit,String descriptions,Integer version,Integer createBy,String createDate,
115 114
src/main/java/com/bsth/repository/SectionRouteRepository.java
@@ -69,7 +69,7 @@ public interface SectionRouteRepository extends BaseRepository&lt;SectionRoute, Int @@ -69,7 +69,7 @@ public interface SectionRouteRepository extends BaseRepository&lt;SectionRoute, Int
69 "r.versions AS versions," + 69 "r.versions AS versions," +
70 "r.descriptions AS descriptions" + 70 "r.descriptions AS descriptions" +
71 " FROM bsth_c_sectionroute r where r.line = ?1 and r.directions = ?2 and r.destroy=0 ) a " + 71 " FROM bsth_c_sectionroute r where r.line = ?1 and r.directions = ?2 and r.destroy=0 ) a " +
72 - " LEFT JOIN bsth_c_section b ON a.sectionrouteSection = b.id", nativeQuery=true) 72 + " LEFT JOIN bsth_c_section b ON a.sectionrouteSection = b.id order by a.sectionrouteCode asc", nativeQuery=true)
73 List<Object[]> getSectionRoute(int lineId, int directions); 73 List<Object[]> getSectionRoute(int lineId, int directions);
74 74
75 75
src/main/java/com/bsth/repository/StationRouteRepository.java
@@ -110,9 +110,12 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int @@ -110,9 +110,12 @@ public interface StationRouteRepository extends BaseRepository&lt;StationRoute, Int
110 * 110 *
111 * @return List<Object[]> 111 * @return List<Object[]>
112 */ 112 */
113 - @Query(value = "SELECT s.b_jwpoints,s.station_name FROM (" + 113 + /*@Query(value = "SELECT s.b_jwpoints,s.station_name FROM (" +
114 "SELECT b.station FROM bsth_c_stationroute b where b.line =?1 and b.directions = ?2 and b.destroy=0) r " + 114 "SELECT b.station FROM bsth_c_stationroute b where b.line =?1 and b.directions = ?2 and b.destroy=0) r " +
115 - "LEFT JOIN bsth_c_station s on r.station = s.id", nativeQuery=true) 115 + "LEFT JOIN bsth_c_station s on r.station = s.id", nativeQuery=true)*/
  116 + @Query(value = "SELECT s.b_jwpoints,s.station_name,r.station_route_code FROM (" +
  117 + "SELECT b.station,b.station_route_code FROM bsth_c_stationroute b where b.line =?1 and b.directions = ?2 and b.destroy=0) r " +
  118 + "LEFT JOIN bsth_c_station s on r.station = s.id order by r.station_route_code asc", nativeQuery=true)
116 List<Object[]> getSelectStationRouteCenterPoints(Integer lineId,Integer direction); 119 List<Object[]> getSelectStationRouteCenterPoints(Integer lineId,Integer direction);
117 120
118 /** 121 /**
src/main/java/com/bsth/repository/oil/YlbRepository.java
@@ -23,7 +23,7 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{ @@ -23,7 +23,7 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
23 @Modifying 23 @Modifying
24 @Query(value="SELECT a.* FROM bsth_c_ylb a where to_days(?1)-to_days(a.rq)=1" 24 @Query(value="SELECT a.* FROM bsth_c_ylb a where to_days(?1)-to_days(a.rq)=1"
25 + " and jcsx=(select max(b.jcsx) from bsth_c_ylb b where a.nbbm=b.nbbm and " 25 + " and jcsx=(select max(b.jcsx) from bsth_c_ylb b where a.nbbm=b.nbbm and "
26 - + " to_days(?1)-to_days(b.rq)=1 ) group by nbbm",nativeQuery=true) 26 + + " to_days(?1)-to_days(b.rq)=1 )",nativeQuery=true)
27 List<Ylb> obtainYlbefore(String rq); 27 List<Ylb> obtainYlbefore(String rq);
28 28
29 /** 29 /**
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -100,10 +100,10 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -100,10 +100,10 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
100 void deleteByLineCodeAndDate(String xlBm, String schDate); 100 void deleteByLineCodeAndDate(String xlBm, String schDate);
101 101
102 //去掉了 xlBm is not null 102 //去掉了 xlBm is not null
103 - @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2") 103 + @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
104 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date); 104 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date);
105 105
106 - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where (s.xlBm = ?1 or s.xlBm is not null) and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh ORDER BY xlBm,clZbh,realExecDate,fcsjActual") 106 + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY xlBm,clZbh")
107 List<Map<String,Object>> yesterdayDataList(String line,String date); 107 List<Map<String,Object>> yesterdayDataList(String line,String date);
108 108
109 @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir") 109 @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir")
src/main/java/com/bsth/repository/sys/CompanyAuthorityRepository.java 0 → 100644
  1 +package com.bsth.repository.sys;
  2 +
  3 +import com.bsth.entity.sys.CompanyAuthority;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.data.jpa.repository.Modifying;
  6 +import org.springframework.data.jpa.repository.Query;
  7 +import org.springframework.stereotype.Repository;
  8 +
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * Created by panzhao on 2016/11/22.
  13 + */
  14 +@Repository
  15 +public interface CompanyAuthorityRepository extends BaseRepository<CompanyAuthority, Integer>{
  16 +
  17 + @Modifying
  18 + @Query(value="DELETE FROM CompanyAuthority WHERE roleId = ?1")
  19 + void deleteByRoleId(Integer roleId);
  20 +
  21 + @Query(value = "select ca from CompanyAuthority ca where ca.roleId in ?1")
  22 + List<CompanyAuthority> findByRoles(List<Integer> idx);
  23 +}
src/main/java/com/bsth/repository/sys/ModuleRepository.java
1 package com.bsth.repository.sys; 1 package com.bsth.repository.sys;
2 2
3 -import java.util.List;  
4 -import java.util.Set;  
5 - 3 +import com.bsth.entity.sys.Module;
  4 +import com.bsth.repository.BaseRepository;
6 import org.springframework.data.jpa.domain.Specification; 5 import org.springframework.data.jpa.domain.Specification;
7 -import org.springframework.data.jpa.repository.EntityGraph;  
8 import org.springframework.data.jpa.repository.Query; 6 import org.springframework.data.jpa.repository.Query;
9 import org.springframework.stereotype.Repository; 7 import org.springframework.stereotype.Repository;
10 8
11 -import com.bsth.entity.sys.Module;  
12 -import com.bsth.repository.BaseRepository; 9 +import java.util.List;
  10 +import java.util.Set;
13 11
14 @Repository 12 @Repository
15 -public interface ModuleRepository extends BaseRepository<Module, Integer>{  
16 -  
17 - @Query("select m from Module m where m.groupType in ?1")  
18 - List<Module> findByGroupType(String[] groupType);  
19 -  
20 - List<Module> findByPId(Integer pId);  
21 -  
22 - @Query("select m from Module m where m.id in ?1")  
23 - Set<Module> findByIds(List<Integer> ids);  
24 -  
25 - @Override  
26 - List<Module> findAll(Specification<Module> spec); 13 +public interface ModuleRepository extends BaseRepository<Module, Integer> {
  14 +
  15 + @Query("select m from Module m where m.groupType in ?1")
  16 + List<Module> findByGroupType(String[] groupType);
  17 +
  18 + List<Module> findByPId(Integer pId);
  19 +
  20 + @Query("select m from Module m where m.id in ?1")
  21 + Set<Module> findByIds(List<Integer> ids);
  22 +
  23 + @Override
  24 + List<Module> findAll(Specification<Module> spec);
  25 +
27 } 26 }
src/main/java/com/bsth/security/WebSecurityConfig.java
@@ -36,7 +36,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @@ -36,7 +36,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
36 public void configure(WebSecurity web) throws Exception { 36 public void configure(WebSecurity web) throws Exception {
37 // 白名单 37 // 白名单
38 web.ignoring().antMatchers(Constants.LOGIN_PAGE, Constants.LOGIN, Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.CAPTCHA, 38 web.ignoring().antMatchers(Constants.LOGIN_PAGE, Constants.LOGIN, Constants.ASSETS_URL, Constants.FAVICON_URL, Constants.CAPTCHA,
39 - Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES, Constants.XD_TEMPS); 39 + Constants.METRONIC_URL, Constants.LOGIN_FAILURE, Constants.UPSTREAM_URL, Constants.XD_CHILD_PAGES);
40 } 40 }
41 41
42 @Override 42 @Override
src/main/java/com/bsth/service/TrafficManageService.java
1 package com.bsth.service; 1 package com.bsth.service;
2 2
3 -import com.bsth.entity.Line;  
4 -  
5 /** 3 /**
6 - * 4 + *
7 * @Interface: LineService(线路service业务层实现接口) 5 * @Interface: LineService(线路service业务层实现接口)
8 - * 6 + *
9 * @extends : BaseService 7 * @extends : BaseService
10 - * 8 + *
11 * @Description: TODO(线路service业务层实现接口) 9 * @Description: TODO(线路service业务层实现接口)
12 - * 10 + *
13 * @Author bsth@lq 11 * @Author bsth@lq
14 - * 12 + *
15 * @Date 2016年4月28日 上午9:21:17 13 * @Date 2016年4月28日 上午9:21:17
16 * 14 *
17 * @Version 公交调度系统BS版 0.1 15 * @Version 公交调度系统BS版 0.1
18 - * 16 + *
19 */ 17 */
20 public interface TrafficManageService { 18 public interface TrafficManageService {
21 - 19 +
22 /** 20 /**
23 * 上传线路信息 21 * 上传线路信息
24 - * 22 + *
25 * @return 调用接口返回信息 23 * @return 调用接口返回信息
26 */ 24 */
27 String setXL(); 25 String setXL();
28 - 26 +
29 /** 27 /**
30 * 上传车辆信息 28 * 上传车辆信息
31 - * 29 + *
32 * @return 调用接口返回信息 30 * @return 调用接口返回信息
33 */ 31 */
34 String setCL(); 32 String setCL();
35 - 33 +
36 /** 34 /**
37 * 上传司机信息 35 * 上传司机信息
38 * @return 调用接口返回信息 36 * @return 调用接口返回信息
39 */ 37 */
40 String setSJ(); 38 String setSJ();
41 - 39 +
42 /** 40 /**
43 * 上传超速数据 41 * 上传超速数据
44 - * 42 + *
45 * @return 调用接口返回信息 43 * @return 调用接口返回信息
46 */ 44 */
47 String setCS(); 45 String setCS();
48 - 46 +
49 /** 47 /**
50 * 上传线路班次时刻表数据 48 * 上传线路班次时刻表数据
51 - * 49 + *
52 * @return 调用接口返回信息 50 * @return 调用接口返回信息
53 */ 51 */
54 String setSKB(String ids); 52 String setSKB(String ids);
55 - 53 +
56 /** 54 /**
57 * 线路人员车辆配置信息 55 * 线路人员车辆配置信息
58 * @return 调用接口返回信息 56 * @return 调用接口返回信息
59 */ 57 */
60 String setXLPC(); 58 String setXLPC();
61 - 59 +
62 /** 60 /**
63 * 线路计划班次表 61 * 线路计划班次表
64 * @return 调用接口返回信息 62 * @return 调用接口返回信息
65 */ 63 */
66 String setJHBC(); 64 String setJHBC();
67 - 65 +
68 String setLD(); 66 String setLD();
69 - 67 +
70 String setLCYH(); 68 String setLCYH();
71 -  
72 - String setDDRB(); 69 +
  70 + String setDDRB();
  71 +
  72 + /**
  73 + * 下载全量的公交基础数据
  74 + * @return
  75 + */
  76 + String getDownLoadAllDataFile();
  77 +
  78 + /**
  79 + * 下载增量的公交基础数据
  80 + * @return
  81 + */
  82 + String getDownLoadIncreaseDataFile();
  83 +
  84 + /**
  85 + * 指定线路查询方式公交基础数据下载
  86 + * @return
  87 + */
  88 + String getDownLoadWarrantsBusLineStation();
73 } 89 }
src/main/java/com/bsth/service/forms/ExportService.java 0 → 100644
  1 +package com.bsth.service.forms;
  2 +
  3 +import java.util.List;
  4 +
  5 +import com.bsth.entity.mcy_forms.Linepasswengerflow;
  6 +import com.bsth.entity.mcy_forms.Operationservice;
  7 +import com.bsth.entity.mcy_forms.Shifday;
  8 +import com.bsth.entity.mcy_forms.Shiftuehiclemanth;
  9 +import com.bsth.entity.mcy_forms.Singledata;
  10 +import com.bsth.entity.mcy_forms.Vehicleloading;
  11 +import com.bsth.entity.mcy_forms.Waybillday;
  12 +
  13 +public interface ExportService {
  14 +
  15 + public void waybillday(String date, List<Waybillday> resList);
  16 +
  17 + public void linepasswengerflow(String date,List<Linepasswengerflow> resList);
  18 +
  19 + public void shifday(String date, List<Shifday> resList);
  20 +
  21 + public void shiftuehiclemanth(String startDate, String endDate, String lpName,
  22 + List<Shiftuehiclemanth> resList);
  23 +
  24 + public void singledata(String startDate, String endDate, String lpName, List<Singledata> resList);
  25 +
  26 + public void vehicleloading(String date, List<Vehicleloading> resList);
  27 +
  28 + public void operationservice(String startDate, String endDate, String lpName,
  29 + List<Operationservice> resList);
  30 +
  31 +
  32 +
  33 +}
src/main/java/com/bsth/service/forms/impl/ExportServiceImpl.java 0 → 100644
  1 +package com.bsth.service.forms.impl;
  2 +
  3 +import java.text.SimpleDateFormat;
  4 +import java.util.ArrayList;
  5 +import java.util.HashMap;
  6 +import java.util.Iterator;
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +import org.springframework.stereotype.Service;
  10 +
  11 +import com.bsth.entity.mcy_forms.Linepasswengerflow;
  12 +import com.bsth.entity.mcy_forms.Operationservice;
  13 +import com.bsth.entity.mcy_forms.Shifday;
  14 +import com.bsth.entity.mcy_forms.Shiftuehiclemanth;
  15 +import com.bsth.entity.mcy_forms.Singledata;
  16 +import com.bsth.entity.mcy_forms.Vehicleloading;
  17 +import com.bsth.entity.mcy_forms.Waybillday;
  18 +import com.bsth.service.forms.ExportService;
  19 +import com.bsth.util.ReportUtils;
  20 +
  21 +@Service
  22 +public class ExportServiceImpl implements ExportService{
  23 +
  24 +
  25 + //行车路单日报表
  26 + @Override
  27 + public void waybillday(String date, List<Waybillday> list) {
  28 +
  29 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  30 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  31 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  32 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  33 + Map<String,Object> map = new HashMap<String, Object>();
  34 + ReportUtils ee = new ReportUtils();
  35 +
  36 + for(Waybillday w : list){
  37 + Map<String, Object> m = new HashMap<String, Object>();
  38 + m.put("carPlate", w.getCarPlate());
  39 + m.put("jzl1", w.getJzl1());
  40 + m.put("jzl", w.getJzl());
  41 + m.put("yh", w.getYh());
  42 + m.put("jName", w.getjName());
  43 + m.put("zlc", w.getZlc());
  44 + resList.add(m);
  45 + }
  46 +
  47 + try {
  48 + listI.add(resList.iterator());
  49 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  50 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\waybillday.xls",
  51 + path+"export\\行车路单日报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  52 + } catch (Exception e) {
  53 + e.printStackTrace();
  54 + }
  55 + }
  56 +
  57 + //线路客流量报表
  58 + @Override
  59 + public void linepasswengerflow(String date, List<Linepasswengerflow> list) {
  60 +
  61 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  62 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  63 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  64 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  65 + Map<String,Object> map = new HashMap<String, Object>();
  66 + ReportUtils ee = new ReportUtils();
  67 + for(Linepasswengerflow l : list){
  68 + Map<String, Object> m = new HashMap<String, Object>();
  69 + m.put("stationName", l.getStationName());
  70 + resList.add(m);
  71 + }
  72 +
  73 + try {
  74 + listI.add(resList.iterator());
  75 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  76 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\linepasswengerflow.xls",
  77 + path+"export\\线路客流量报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  78 + } catch (Exception e) {
  79 + e.printStackTrace();
  80 + }
  81 +
  82 + }
  83 +
  84 +
  85 + //班次车辆人员日统计
  86 + @Override
  87 + public void shifday(String date,List<Shifday> list) {
  88 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  89 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  90 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  91 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  92 + Map<String,Object> map = new HashMap<String, Object>();
  93 + ReportUtils ee = new ReportUtils();
  94 +
  95 + for(Shifday l : list){
  96 + Map<String, Object> m = new HashMap<String, Object>();
  97 + m.put("jName",l.getjName());
  98 + m.put("sName", l.getsName());
  99 + m.put("lpName", l.getLpName());
  100 + m.put("carPlate", l.getCarPlate());
  101 + m.put("jhlc", l.getJhlc());
  102 + m.put("sjjhlc", l.getSjjhlc());
  103 + m.put("yygl", l.getYygl());
  104 + m.put("emptMileage", l.getEmptMileage());
  105 + m.put("remMileage", l.getRemMileage());
  106 + m.put("addMileage", l.getAddMileage());
  107 + m.put("totalm", l.getTotalm());
  108 + m.put("jhbc", l.getJhbc());
  109 + m.put("sjjhbc", l.getSjjhbc());
  110 + m.put("cjbc", l.getCjbc());
  111 + m.put("ljbc", l.getLjbc());
  112 + m.put("sjbc", l.getSjbc());
  113 + resList.add(m);
  114 + }
  115 +
  116 + try {
  117 + listI.add(resList.iterator());
  118 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  119 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\shifday.xls",
  120 + path+"export\\班次车辆人员日报表" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  121 + } catch (Exception e) {
  122 + e.printStackTrace();
  123 + }
  124 +
  125 + }
  126 +
  127 + //班次车辆人员月统计
  128 + @Override
  129 + public void shiftuehiclemanth(String startDate,String endDate,String lpName, List<Shiftuehiclemanth> list) {
  130 +
  131 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  132 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  133 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  134 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  135 + Map<String,Object> map = new HashMap<String, Object>();
  136 + ReportUtils ee = new ReportUtils();
  137 +
  138 + for(Shiftuehiclemanth l : list){
  139 + Map<String, Object> m = new HashMap<String, Object>();
  140 + m.put("jName",l.getjName() );
  141 + m.put("jhlc", l.getJhlc());
  142 + m.put("emptMileage",l.getEmptMileage() );
  143 + m.put("remMileage", l.getRemMileage());
  144 + m.put("addMileage", l.getAddMileage());
  145 + m.put("totalm", l.getTotalm());
  146 + m.put("cjbc", l.getCjbc());
  147 + m.put("ljbc", l.getLjbc());
  148 + m.put("sjbc", l.getSjbc());
  149 + resList.add(m);
  150 + }
  151 +
  152 + try {
  153 + listI.add(resList.iterator());
  154 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  155 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\shiftuehiclemanth.xls",
  156 + path+"export\\班次车辆人员月报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls");
  157 + } catch (Exception e) {
  158 + e.printStackTrace();
  159 + }
  160 +
  161 + }
  162 +
  163 + //路单报表
  164 + @Override
  165 + public void singledata(String startDate,String endDate,String lpName, List<Singledata> list) {
  166 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  167 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  168 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  169 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  170 + Map<String,Object> map = new HashMap<String, Object>();
  171 + ReportUtils ee = new ReportUtils();
  172 +
  173 + for(Singledata l : list){
  174 + Map<String, Object> m = new HashMap<String, Object>();
  175 + m.put("rQ",l.getrQ());
  176 + m.put("gS", l.getgS());
  177 + m.put("xL",l.getxL() );
  178 + m.put("clzbh", l.getClzbh());
  179 + m.put("jsy", l.getJsy());
  180 + m.put("jName", l.getjName());
  181 + m.put("sgh", l.getSgh());
  182 + m.put("sName", l.getsName());
  183 + m.put("jhlc", l.getJhlc());
  184 + m.put("emptMileage", l.getEmptMileage());
  185 + m.put("hyl", l.getHyl());
  186 + m.put("jzl", l.getJzl());
  187 + m.put("unyyyl",l.getUnyyyl());
  188 + m.put("jhjl", l.getJhjl());
  189 + resList.add(m);
  190 + }
  191 +
  192 + try {
  193 + listI.add(resList.iterator());
  194 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  195 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\singledata.xls",
  196 + path+"export\\路单日报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls");
  197 + } catch (Exception e) {
  198 + e.printStackTrace();
  199 + }
  200 +
  201 +
  202 + }
  203 +
  204 +
  205 + //车辆加注
  206 + @Override
  207 + public void vehicleloading(String date, List<Vehicleloading> list) {
  208 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  209 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  210 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  211 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  212 + Map<String,Object> map = new HashMap<String, Object>();
  213 + ReportUtils ee = new ReportUtils();
  214 +
  215 + for(Vehicleloading l : list){
  216 + Map<String, Object> m = new HashMap<String, Object>();
  217 + m.put("rQ", l.getrQ());
  218 + m.put("gS", l.getgS());
  219 + m.put("xL", l.getxL());
  220 + m.put("clzbh", l.getClzbh());
  221 + m.put("hyl", l.getHyl());
  222 + m.put("jzl", l.getJzl());
  223 + m.put("ls", l.getLs());
  224 + m.put("jhlc", l.getJhlc());
  225 + m.put("unyyyl", l.getUnyyyl());
  226 + m.put("jhbc", l.getJhbc());
  227 + m.put("sjbc", l.getSjbc());
  228 + resList.add(m);
  229 + }
  230 +
  231 + try {
  232 + listI.add(resList.iterator());
  233 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  234 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\vehicleloading.xls",
  235 + path+"export\\车辆加注" + sdfSimple.format(sdfMonth.parse(date)) + ".xls");
  236 + } catch (Exception e) {
  237 + e.printStackTrace();
  238 + }
  239 + }
  240 +
  241 + //运营服务阶段报表
  242 + @Override
  243 + public void operationservice(String startDate,String endDate,String lpName,List<Operationservice> list) {
  244 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  245 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  246 +
  247 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  248 + Map<String,Object> map = new HashMap<String, Object>();
  249 + ReportUtils ee = new ReportUtils();
  250 + List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  251 + for(Operationservice l : list){
  252 + Map<String, Object> m = new HashMap<String, Object>();
  253 + m.put("xlName", l.getXlName());
  254 + m.put("jzl", l.getJzl());
  255 + m.put("xhl", l.getXhl());
  256 + m.put("xsgl", l.getXsgl());
  257 + m.put("emptMileage", l.getEmptMileage());
  258 + m.put("sjbc", l.getSjbc());
  259 + resList.add(m);
  260 + }
  261 +
  262 + try {
  263 + listI.add(resList.iterator());
  264 + String path = this.getClass().getResource("/").getPath()+"static\\pages\\forms\\";
  265 + ee.excelReplace(listI, new Object[] { map }, path+"mould\\operationservice.xls",
  266 + path+"export\\运营服务阶段报表" + sdfSimple.format(sdfMonth.parse(startDate)) + ".xls");
  267 + } catch (Exception e) {
  268 + e.printStackTrace();
  269 + }
  270 + }
  271 +
  272 +
  273 +}
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
@@ -3,8 +3,10 @@ package com.bsth.service.forms.impl; @@ -3,8 +3,10 @@ package com.bsth.service.forms.impl;
3 import java.sql.ResultSet; 3 import java.sql.ResultSet;
4 import java.sql.SQLException; 4 import java.sql.SQLException;
5 import java.text.DecimalFormat; 5 import java.text.DecimalFormat;
  6 +import java.text.ParseException;
6 import java.text.SimpleDateFormat; 7 import java.text.SimpleDateFormat;
7 import java.util.ArrayList; 8 import java.util.ArrayList;
  9 +import java.util.Date;
8 import java.util.HashMap; 10 import java.util.HashMap;
9 import java.util.Iterator; 11 import java.util.Iterator;
10 import java.util.List; 12 import java.util.List;
@@ -226,11 +228,66 @@ public class FormsServiceImpl implements FormsService{ @@ -226,11 +228,66 @@ public class FormsServiceImpl implements FormsService{
226 } 228 }
227 229
228 //换人换车情况日统计 230 //换人换车情况日统计
229 - @Override  
230 - public List<Changetochange> changetochange(Map<String, Object> map) {  
231 -  
232 - return null;  
233 - } 231 + String rq;
  232 + @Override
  233 + public List<Changetochange> changetochange(Map<String, Object> map) {
  234 +
  235 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ;
  236 + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日") ;
  237 + Date d = null ;
  238 + Date d1 = null ;
  239 + try {
  240 + d = sdf.parse(map.get("startDate").toString());
  241 + d1 = sdf.parse(map.get("endDate").toString());
  242 + } catch (ParseException e) {
  243 +
  244 + e.printStackTrace();
  245 + }
  246 + String rq2=sdf1.format(d);
  247 + String rq3=sdf1.format(d1);
  248 +
  249 + rq=rq2+"-"+ rq3;
  250 +
  251 + String sql=" select c.*,l.line_code from bsth_c_chtoch c LEFT JOIN bsth_c_line l on c.xl=l.name WHERE 1=1 ";
  252 + if(!map.get("startDate").toString().equals(" ")&&!map.get("endDate").toString().equals(" ")){
  253 + sql+= "and DATE_FORMAT( c.rq,'%Y-%m-%d') BETWEEN '"+map.get("startDate").toString()+"' and '"+map.get("endDate").toString()+"'";
  254 + }
  255 + if(!map.get("line").equals("")){
  256 + sql+="and line_code='"+map.get("line")+"'";
  257 + }
  258 + if(map.get("sel").equals("2")){
  259 + sql+=" and c.pcch!=c.pcry";
  260 + }else if(map.get("sel").equals("1")){
  261 + sql+=" and c.jhgh!=c.sjgh";
  262 + }
  263 +
  264 +
  265 + List<Changetochange> list = jdbcTemplate.query(sql, new RowMapper<Changetochange>() {
  266 +
  267 + @Override
  268 + public Changetochange mapRow(ResultSet arg0, int arg1) throws SQLException {
  269 + Changetochange chan= new Changetochange();
  270 +
  271 + chan.setRq(rq);
  272 + chan.setGs(arg0.getString("gs").toString());
  273 + chan.setFgs(arg0.getString("fgs").toString());
  274 + chan.setXl(arg0.getString("xl").toString());
  275 + chan.setLp(arg0.getString("lp").toString());
  276 + chan.setFssj(arg0.getString("fssj").toString());
  277 + chan.setXgsj(arg0.getString("xgsj").toString());
  278 + chan.setPcch(arg0.getString("pcch").toString());
  279 + chan.setPcry(arg0.getString("pcry").toString());
  280 + chan.setJhch(arg0.getString("jhch").toString());
  281 + chan.setJhgh(arg0.getString("jhgh").toString());
  282 + chan.setSjch(arg0.getString("sjch").toString());
  283 + chan.setSjgh(arg0.getString("sjgh").toString());
  284 + chan.setYy(arg0.getString("yy").toString());
  285 + chan.setXgr(arg0.getString("xgr").toString());
  286 + return chan;
  287 + }
  288 + });
  289 + return list;
  290 + }
234 291
235 292
236 //路单数据 293 //路单数据
@@ -339,4 +396,5 @@ public class FormsServiceImpl implements FormsService{ @@ -339,4 +396,5 @@ public class FormsServiceImpl implements FormsService{
339 } 396 }
340 397
341 398
  399 +
342 } 400 }
src/main/java/com/bsth/service/impl/CarParkServiceImpl.java
@@ -75,9 +75,19 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem @@ -75,9 +75,19 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem
75 75
76 } 76 }
77 77
78 - bParkPoint = "POLYGON((" + bParkPoint +"))"; 78 + if(bParkPoint.equals(""))
  79 + bParkPoint = null;
  80 + else
  81 + bParkPoint = "POLYGON((" + bParkPoint +"))";
  82 +
  83 + if(gParkPoint.equals(""))
  84 + gParkPoint = null;
  85 + else
  86 + gParkPoint = "POLYGON((" + gParkPoint +"))";
79 87
80 - gParkPoint = "POLYGON((" + gParkPoint +"))"; 88 + /*bParkPoint = "POLYGON((" + bParkPoint +"))";
  89 +
  90 + gParkPoint = "POLYGON((" + gParkPoint +"))";*/
81 91
82 // 地理位置中心点(百度坐标) 92 // 地理位置中心点(百度坐标)
83 String bCenterPoint = map.get("bCenterPoint").equals("") ? "" : map.get("bCenterPoint").toString(); 93 String bCenterPoint = map.get("bCenterPoint").equals("") ? "" : map.get("bCenterPoint").toString();
@@ -93,7 +103,7 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem @@ -93,7 +103,7 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem
93 103
94 } 104 }
95 105
96 - String gCenterPoint = ""; 106 + String gCenterPoint = null;
97 107
98 if(bJwpointsArray.length>0) { 108 if(bJwpointsArray.length>0) {
99 109
@@ -147,6 +157,9 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem @@ -147,6 +157,9 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem
147 // 修改人 157 // 修改人
148 Integer updateBy = map.get("updateBy").equals("") ? null : Integer.parseInt(map.get("updateBy").toString()); 158 Integer updateBy = map.get("updateBy").equals("") ? null : Integer.parseInt(map.get("updateBy").toString());
149 159
  160 +
  161 +
  162 +
150 carParkRepository.carParkSave(area, company, parkCode, parkName, 163 carParkRepository.carParkSave(area, company, parkCode, parkName,
151 164
152 brancheCompany, createBy, createDate, descriptions, destroy, 165 brancheCompany, createBy, createDate, descriptions, destroy,
@@ -296,7 +309,7 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem @@ -296,7 +309,7 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem
296 309
297 } 310 }
298 311
299 - String gCenterPoint = ""; 312 + String gCenterPoint =null;
300 313
301 if(bJwpointsArray.length>0) { 314 if(bJwpointsArray.length>0) {
302 315
@@ -337,10 +350,18 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem @@ -337,10 +350,18 @@ public class CarParkServiceImpl extends BaseServiceImpl&lt;CarPark, Integer&gt; implem
337 } 350 }
338 351
339 } 352 }
  353 + if(bParkPoint.equals(""))
  354 + bParkPoint = null;
  355 + else
  356 + bParkPoint = "POLYGON((" + bParkPoint +"))";
  357 +
  358 + if(gParkPoint.equals(""))
  359 + gParkPoint = null;
  360 + else
  361 + gParkPoint = "POLYGON((" + gParkPoint +"))";
  362 + /*bParkPoint = "POLYGON((" + bParkPoint +"))";
340 363
341 - bParkPoint = "POLYGON((" + bParkPoint +"))";  
342 -  
343 - gParkPoint = "POLYGON((" + gParkPoint +"))"; 364 + gParkPoint = "POLYGON((" + gParkPoint +"))";*/
344 365
345 // 编码 366 // 编码
346 String parkCode = map.get("parkCode").equals("") ? "" : map.get("parkCode").toString(); 367 String parkCode = map.get("parkCode").equals("") ? "" : map.get("parkCode").toString();
src/main/java/com/bsth/service/impl/SectionServiceImpl.java
@@ -213,10 +213,11 @@ public class SectionServiceImpl extends BaseServiceImpl&lt;Section, Integer&gt; implem @@ -213,10 +213,11 @@ public class SectionServiceImpl extends BaseServiceImpl&lt;Section, Integer&gt; implem
213 213
214 String sectionType=""; 214 String sectionType="";
215 215
216 - String csectionVector=""; 216 + // String csectionVector="";
217 217
218 // 更新 218 // 更新
219 - repository.sectionUpdate(sectionId, gsectionVector, bsectionVectorS, sectionCode, sectionName, crosesRoad, endNode, startNode, middleNode, sectionType, csectionVector, roadCoding, sectionDistance, sectionTime, dbType, speedLimit, descriptions, version, createBy, createDate, updateBy, updateDate); 219 + /*repository.sectionUpdate(sectionId, gsectionVector, bsectionVectorS, sectionCode, sectionName, crosesRoad, endNode, startNode, middleNode, sectionType, csectionVector, roadCoding, sectionDistance, sectionTime, dbType, speedLimit, descriptions, version, createBy, createDate, updateBy, updateDate);*/
  220 + repository.sectionUpdate(sectionId, gsectionVector, bsectionVectorS, sectionCode, sectionName, crosesRoad, endNode, startNode, middleNode, sectionType, roadCoding, sectionDistance, sectionTime, dbType, speedLimit, descriptions, version, createBy, createDate, updateBy, updateDate);
220 221
221 SectionRoute route = new SectionRoute(); 222 SectionRoute route = new SectionRoute();
222 223
@@ -393,7 +394,7 @@ public class SectionServiceImpl extends BaseServiceImpl&lt;Section, Integer&gt; implem @@ -393,7 +394,7 @@ public class SectionServiceImpl extends BaseServiceImpl&lt;Section, Integer&gt; implem
393 394
394 String sectionType=""; 395 String sectionType="";
395 396
396 - String csectionVector=""; 397 + String csectionVector=null;
397 398
398 Integer id = Integer.valueOf(sectionCode); 399 Integer id = Integer.valueOf(sectionCode);
399 400
src/main/java/com/bsth/service/impl/StationServiceImpl.java
@@ -977,9 +977,9 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -977,9 +977,9 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
977 977
978 } 978 }
979 979
980 - bPloygonGrid = "POLYGON((" + bPloygonGrid +"))"; 980 + /* bPloygonGrid = "POLYGON((" + bPloygonGrid +"))";
981 981
982 - gPloygonGrid = "POLYGON((" + gPloygonGrid +"))"; 982 + gPloygonGrid = "POLYGON((" + gPloygonGrid +"))";*/
983 983
984 // 是否撤销 984 // 是否撤销
985 Integer destroy = map.get("destroy").equals("") ? null : Integer.parseInt(map.get("destroy").toString()); 985 Integer destroy = map.get("destroy").equals("") ? null : Integer.parseInt(map.get("destroy").toString());
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
@@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory; @@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory;
22 import org.springframework.beans.factory.annotation.Autowired; 22 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.data.domain.Sort; 23 import org.springframework.data.domain.Sort;
24 import org.springframework.data.domain.Sort.Direction; 24 import org.springframework.data.domain.Sort.Direction;
  25 +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
25 import org.springframework.stereotype.Service; 26 import org.springframework.stereotype.Service;
26 27
27 import com.bsth.data.BasicData; 28 import com.bsth.data.BasicData;
@@ -119,6 +120,10 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -119,6 +120,10 @@ public class TrafficManageServiceImpl implements TrafficManageService{
119 @Autowired 120 @Autowired
120 private ScheduleRealInfoRepository scheduleRealInfoRepository; 121 private ScheduleRealInfoRepository scheduleRealInfoRepository;
121 122
  123 + @Autowired
  124 + NamedParameterJdbcTemplate jdbcTemplate;
  125 +
  126 +
122 // 运管处接口 127 // 运管处接口
123 private InternalPortType portType = new Internal().getInternalHttpSoap11Endpoint(); 128 private InternalPortType portType = new Internal().getInternalHttpSoap11Endpoint();
124 private WebServiceSoap ssop ; 129 private WebServiceSoap ssop ;
@@ -163,9 +168,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -163,9 +168,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{
163 sBuffer.append("<XLs>"); 168 sBuffer.append("<XLs>");
164 while(lineIterator.hasNext()){ 169 while(lineIterator.hasNext()){
165 line = lineIterator.next(); 170 line = lineIterator.next();
166 - if(line.getLinePlayType() == null){  
167 - continue;  
168 - }  
169 if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){ 171 if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){
170 continue; 172 continue;
171 } 173 }
@@ -189,7 +191,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -189,7 +191,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{
189 sBuffer.append("<QZLC>").append(upMileage).append("</QZLC>"); 191 sBuffer.append("<QZLC>").append(upMileage).append("</QZLC>");
190 sBuffer.append("<ZQLC>").append(downMileage).append("</ZQLC>"); 192 sBuffer.append("<ZQLC>").append(downMileage).append("</ZQLC>");
191 } 193 }
192 - sBuffer.append("<XLGH>").append(line.getLinePlayType()).append("</XLGH>"); 194 + sBuffer.append("<XLGH>").append(line.getLinePlayType() == null ?"0":line.getLinePlayType())
  195 + .append("</XLGH>");
193 // 循环添加站点信息 196 // 循环添加站点信息
194 sBuffer.append("<StationList>"); 197 sBuffer.append("<StationList>");
195 // 先查上行 198 // 先查上行
@@ -334,21 +337,28 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -334,21 +337,28 @@ public class TrafficManageServiceImpl implements TrafficManageService{
334 337
335 int seqNumber = 0; 338 int seqNumber = 0;
336 for(ScheduleRealInfo scheduleRealInfo:list){ 339 for(ScheduleRealInfo scheduleRealInfo:list){
337 - if(schRealInfo.getXlBm().equals(scheduleRealInfo.getXlBm()) && schRealInfo.getLpName().equals(scheduleRealInfo.getLpName()) 340 + if(schRealInfo.getXlBm().equals(scheduleRealInfo.getXlBm()) && schRealInfo.getLpName()
  341 + .equals(scheduleRealInfo.getLpName())
338 && schRealInfo.getClZbh().equals(scheduleRealInfo.getClZbh())){ 342 && schRealInfo.getClZbh().equals(scheduleRealInfo.getClZbh())){
  343 + if(scheduleRealInfo.getFcsjActual() == null ||scheduleRealInfo.getBcType().equals("in")
  344 + || scheduleRealInfo.getBcType().equals("out")){
  345 + continue;
  346 + }
339 scheduleRealInfo.getQdzCode(); 347 scheduleRealInfo.getQdzCode();
340 sf.append("<LD>"); 348 sf.append("<LD>");
341 sf.append("<SJGH>"+scheduleRealInfo.getjGh()+"</SJGH>"); 349 sf.append("<SJGH>"+scheduleRealInfo.getjGh()+"</SJGH>");
342 sf.append("<SXX>"+scheduleRealInfo.getXlDir()+"</SXX>"); 350 sf.append("<SXX>"+scheduleRealInfo.getXlDir()+"</SXX>");
343 sf.append("<FCZDMC>"+scheduleRealInfo.getQdzName()+"</FCZDMC>"); 351 sf.append("<FCZDMC>"+scheduleRealInfo.getQdzName()+"</FCZDMC>");
344 - sf.append("<FCZDXH>" + ++seqNumber + "</FCZDXH>"); 352 + sf.append("<FCZDXH>" + getYgcStationNumByLineCodeAndDirectionAndStationName(
  353 + scheduleRealInfo.getXlBm(), scheduleRealInfo.getXlDir(), scheduleRealInfo.getQdzName()) + "</FCZDXH>");
345 sf.append("<FCZDBM>"+scheduleRealInfo.getQdzCode()+"</FCZDBM>"); 354 sf.append("<FCZDBM>"+scheduleRealInfo.getQdzCode()+"</FCZDBM>");
346 sf.append("<JHFCSJ>"+scheduleRealInfo.getFcsj()+"</JHFCSJ>"); 355 sf.append("<JHFCSJ>"+scheduleRealInfo.getFcsj()+"</JHFCSJ>");
347 sf.append("<DFSJ>"+scheduleRealInfo.getDfsj()+"</DFSJ>"); 356 sf.append("<DFSJ>"+scheduleRealInfo.getDfsj()+"</DFSJ>");
348 sf.append("<SJFCSJ>"+scheduleRealInfo.getFcsjActual()+"</SJFCSJ>"); 357 sf.append("<SJFCSJ>"+scheduleRealInfo.getFcsjActual()+"</SJFCSJ>");
349 sf.append("<FCZDLX>"+""+"</FCZDLX>"); 358 sf.append("<FCZDLX>"+""+"</FCZDLX>");
350 sf.append("<DDZDMC>"+scheduleRealInfo.getZdzName()+"</DDZDMC>"); 359 sf.append("<DDZDMC>"+scheduleRealInfo.getZdzName()+"</DDZDMC>");
351 - sf.append("<DDZDXH>"+ seqNumber +"</DDZDXH>"); 360 + sf.append("<DDZDXH>"+ getYgcStationNumByLineCodeAndDirectionAndStationName(
  361 + scheduleRealInfo.getXlBm(), scheduleRealInfo.getXlDir(), scheduleRealInfo.getZdzName()) +"</DDZDXH>");
352 sf.append("<DDZDBM>"+scheduleRealInfo.getZdzCode()+"</DDZDBM>"); 362 sf.append("<DDZDBM>"+scheduleRealInfo.getZdzCode()+"</DDZDBM>");
353 sf.append("<JHDDSJ>"+scheduleRealInfo.getZdsj()+"</JHDDSJ>"); 363 sf.append("<JHDDSJ>"+scheduleRealInfo.getZdsj()+"</JHDDSJ>");
354 sf.append("<SJDDSJ>"+scheduleRealInfo.getZdsjActual()+"</SJDDSJ>"); 364 sf.append("<SJDDSJ>"+scheduleRealInfo.getZdsjActual()+"</SJDDSJ>");
@@ -404,7 +414,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -404,7 +414,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{
404 sf.append("<XLBM>"+BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.getXlBm())+"</XLBM>"); 414 sf.append("<XLBM>"+BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.getXlBm())+"</XLBM>");
405 sf.append("<CPH>"+car.getCarPlate()+"</CPH>"); 415 sf.append("<CPH>"+car.getCarPlate()+"</CPH>");
406 for(ScheduleRealInfo scheduleRealInfo:list){ 416 for(ScheduleRealInfo scheduleRealInfo:list){
407 - if(schRealInfo.getXlBm().equals(scheduleRealInfo.getXlBm()) && schRealInfo.getClZbh().equals(scheduleRealInfo.getClZbh())){ 417 + if(schRealInfo.getXlBm().equals(scheduleRealInfo.getXlBm()) && schRealInfo.getClZbh()
  418 + .equals(scheduleRealInfo.getClZbh())){
408 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); 419 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
409 //如果没有子任务,里程就是已执行(Status=2);有子任务的,忽略主任务,子任务的烂班 420 //如果没有子任务,里程就是已执行(Status=2);有子任务的,忽略主任务,子任务的烂班
410 if(childTaskPlans.isEmpty()){ 421 if(childTaskPlans.isEmpty()){
@@ -412,7 +423,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -412,7 +423,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
412 totalKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc(); 423 totalKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc();
413 if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out") 424 if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out")
414 || scheduleRealInfo.getBcType().equals("venting")){ 425 || scheduleRealInfo.getBcType().equals("venting")){
415 - emptyKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc();; 426 + emptyKilometers += scheduleRealInfo.getJhlc()==null?0.0:scheduleRealInfo.getJhlc();
416 } 427 }
417 } 428 }
418 }else{ 429 }else{
@@ -588,14 +599,19 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -588,14 +599,19 @@ public class TrafficManageServiceImpl implements TrafficManageService{
588 if(xlbm.equals(schedulePlanInfo.getXlBm()) 599 if(xlbm.equals(schedulePlanInfo.getXlBm())
589 && zbh.equals(schedulePlanInfo.getClZbh()) 600 && zbh.equals(schedulePlanInfo.getClZbh())
590 && lp == schedulePlanInfo.getLp()){ 601 && lp == schedulePlanInfo.getLp()){
  602 + if(schedulePlanInfo.getBcType().equals("in") || schedulePlanInfo.getBcType().equals("out")){
  603 + continue;
  604 + }
591 sBuffer.append("<BC>"); 605 sBuffer.append("<BC>");
592 sBuffer.append("<SJGH>").append(schedulePlanInfo.getjGh()).append("</SJGH>"); 606 sBuffer.append("<SJGH>").append(schedulePlanInfo.getjGh()).append("</SJGH>");
593 sBuffer.append("<SXX>").append(schedulePlanInfo.getXlDir()).append("</SXX>"); 607 sBuffer.append("<SXX>").append(schedulePlanInfo.getXlDir()).append("</SXX>");
594 sBuffer.append("<FCZDMC>").append(schedulePlanInfo.getQdzName()).append("</FCZDMC>"); 608 sBuffer.append("<FCZDMC>").append(schedulePlanInfo.getQdzName()).append("</FCZDMC>");
595 - sBuffer.append("<ZDXH>").append(++startSerialNum).append("</ZDXH>"); 609 + sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(
  610 + schedulePlanInfo.getXlBm(), schedulePlanInfo.getXlDir(), schedulePlanInfo.getQdzName())).append("</ZDXH>");
596 sBuffer.append("<JHFCSJ>").append(schedulePlanInfo.getFcsj()).append("</JHFCSJ>"); 611 sBuffer.append("<JHFCSJ>").append(schedulePlanInfo.getFcsj()).append("</JHFCSJ>");
597 sBuffer.append("<DDZDMC>").append(schedulePlanInfo.getZdzName()).append("</DDZDMC>"); 612 sBuffer.append("<DDZDMC>").append(schedulePlanInfo.getZdzName()).append("</DDZDMC>");
598 - sBuffer.append("<ZDXH>").append(++endSerialNum).append("</ZDXH>"); 613 + sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(
  614 + schedulePlanInfo.getXlBm(), schedulePlanInfo.getXlDir(), schedulePlanInfo.getZdzName())).append("</ZDXH>");
599 sBuffer.append("<JHDDSJ>").append(calcDdsj(schedulePlanInfo.getFcsj(),schedulePlanInfo.getBcsj())) 615 sBuffer.append("<JHDDSJ>").append(calcDdsj(schedulePlanInfo.getFcsj(),schedulePlanInfo.getBcsj()))
600 .append("</JHDDSJ>"); 616 .append("</JHDDSJ>");
601 sBuffer.append("</BC>"); 617 sBuffer.append("</BC>");
@@ -643,6 +659,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -643,6 +659,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
643 Iterator<TTInfoDetail> ttInfoDetailIterator; 659 Iterator<TTInfoDetail> ttInfoDetailIterator;
644 HashMap<String,Object> param = new HashMap<String, Object>(); 660 HashMap<String,Object> param = new HashMap<String, Object>();
645 String ttinfoJhlc = null;//计划总里程 661 String ttinfoJhlc = null;//计划总里程
  662 + String lineCode ;
646 sBuffer.append("<SKBs>"); 663 sBuffer.append("<SKBs>");
647 for (int i = 0; i < idArray.length; i++) { 664 for (int i = 0; i < idArray.length; i++) {
648 ttInfo = ttInfoRepository.findOne(Long.valueOf(idArray[i])); 665 ttInfo = ttInfoRepository.findOne(Long.valueOf(idArray[i]));
@@ -652,7 +669,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -652,7 +669,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{
652 ttInfoDetailIterator = ttInfoDetailRepository.findAll(new CustomerSpecs<TTInfoDetail>(param), 669 ttInfoDetailIterator = ttInfoDetailRepository.findAll(new CustomerSpecs<TTInfoDetail>(param),
653 new Sort(Direction.ASC, "xlDir")).iterator(); 670 new Sort(Direction.ASC, "xlDir")).iterator();
654 sBuffer.append("<SKB>"); 671 sBuffer.append("<SKB>");
655 - sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(ttInfo.getXl())).append("</XLBM>"); 672 + sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(ttInfo.getXl().getId()))
  673 + .append("</XLBM>");
656 ttinfoJhlc = new String(); 674 ttinfoJhlc = new String();
657 sBuffer.append("<JHZLC>").append(ttinfoJhlc).append("</JHZLC>"); 675 sBuffer.append("<JHZLC>").append(ttinfoJhlc).append("</JHZLC>");
658 sBuffer.append("<JHYYLC>").append(ttinfoJhlc).append("</JHYYLC>"); 676 sBuffer.append("<JHYYLC>").append(ttinfoJhlc).append("</JHYYLC>");
@@ -662,23 +680,35 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -662,23 +680,35 @@ public class TrafficManageServiceImpl implements TrafficManageService{
662 sBuffer.append("<TBYY>").append("").append("</TBYY>"); 680 sBuffer.append("<TBYY>").append("").append("</TBYY>");
663 sBuffer.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>"); 681 sBuffer.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>");
664 int num = 1; 682 int num = 1;
  683 + // 加上<BCList>
  684 + if(ttInfoDetailIterator.hasNext()){
  685 + sBuffer.append("<BCList>");
  686 + }
665 while (ttInfoDetailIterator.hasNext()) { 687 while (ttInfoDetailIterator.hasNext()) {
666 ttInfoDetail = ttInfoDetailIterator.next(); 688 ttInfoDetail = ttInfoDetailIterator.next();
  689 + if(ttInfoDetail.getBcType().equals("in") || ttInfoDetail.getBcType().equals("out")){
  690 + continue;
  691 + }
667 ttinfoJhlc = ttInfoDetail.getJhlc()+"";// 设置计划总里程 692 ttinfoJhlc = ttInfoDetail.getJhlc()+"";// 设置计划总里程
668 - sBuffer.append("<BCList>"); 693 + lineCode = ttInfoDetail.getXl().getLineCode();
669 sBuffer.append("<BC>"); 694 sBuffer.append("<BC>");
670 sBuffer.append("<LPBH>").append(ttInfoDetail.getLp().getLpNo()).append("</LPBH>"); 695 sBuffer.append("<LPBH>").append(ttInfoDetail.getLp().getLpNo()).append("</LPBH>");
671 sBuffer.append("<SXX>").append(ttInfoDetail.getXlDir()).append("</SXX>"); 696 sBuffer.append("<SXX>").append(ttInfoDetail.getXlDir()).append("</SXX>");
672 - sBuffer.append("<FCZDMC>").append(ttInfoDetail.getQdz()).append("</FCZDMC>");  
673 - sBuffer.append("<ZDXH>").append(num).append("</ZDXH>"); 697 + sBuffer.append("<FCZDMC>").append(ttInfoDetail.getQdz().getStationName()).append("</FCZDMC>");
  698 + sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(
  699 + lineCode, ttInfoDetail.getXlDir(), ttInfoDetail.getQdz().getStationName())).append("</ZDXH>");
674 sBuffer.append("<JHFCSJ>").append(ttInfoDetail.getFcsj()).append("</JHFCSJ>"); 700 sBuffer.append("<JHFCSJ>").append(ttInfoDetail.getFcsj()).append("</JHFCSJ>");
675 - sBuffer.append("<DDZDMC>").append(ttInfoDetail.getZdz()).append("</DDZDMC>");  
676 - sBuffer.append("<ZDXH>").append(num).append("</ZDXH>"); 701 + sBuffer.append("<DDZDMC>").append(ttInfoDetail.getZdz().getStationName()).append("</DDZDMC>");
  702 + sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(
  703 + lineCode, ttInfoDetail.getXlDir(), ttInfoDetail.getZdz().getStationName())).append("</ZDXH>");
677 sBuffer.append("<JHDDSJ>").append(calcDdsj(ttInfoDetail.getFcsj(),ttInfoDetail.getBcsj())).append("</JHDDSJ>"); 704 sBuffer.append("<JHDDSJ>").append(calcDdsj(ttInfoDetail.getFcsj(),ttInfoDetail.getBcsj())).append("</JHDDSJ>");
678 sBuffer.append("</BC>"); 705 sBuffer.append("</BC>");
679 - sBuffer.append("</BCList>"); 706 +
680 num++; 707 num++;
681 } 708 }
  709 + if(sBuffer.indexOf("<BCList>") != -1){
  710 + sBuffer.append("</BCList>");
  711 + }
682 sBuffer.append("</SKB>"); 712 sBuffer.append("</SKB>");
683 } 713 }
684 sBuffer.append("</SKBs>"); 714 sBuffer.append("</SKBs>");
@@ -1008,7 +1038,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -1008,7 +1038,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1008 zdlx = "2"; 1038 zdlx = "2";
1009 } 1039 }
1010 sBuffer.append("<Station>"); 1040 sBuffer.append("<Station>");
1011 - sBuffer.append("<ZDXH>").append(startId).append("</ZDXH>"); 1041 + sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(srRoute.getLineCode(),srRoute.getDirections()+"",srRoute.getStationName())).append("</ZDXH>");
1012 sBuffer.append("<SXX>").append(srRoute.getDirections()).append("</SXX>"); 1042 sBuffer.append("<SXX>").append(srRoute.getDirections()).append("</SXX>");
1013 sBuffer.append("<ZDMC>").append(srRoute.getStationName()).append("</ZDMC>"); 1043 sBuffer.append("<ZDMC>").append(srRoute.getStationName()).append("</ZDMC>");
1014 sBuffer.append("<ZDBM>").append(srRoute.getStationCode()).append("</ZDBM>"); 1044 sBuffer.append("<ZDBM>").append(srRoute.getStationCode()).append("</ZDBM>");
@@ -1023,4 +1053,18 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -1023,4 +1053,18 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1023 return startId; 1053 return startId;
1024 } 1054 }
1025 1055
  1056 + /**
  1057 + *
  1058 + * @param lineCode 线路编码
  1059 + * @param direction 线路方向
  1060 + * @param stationName 让点名称
  1061 + * @return 运管处站点序号
  1062 + */
  1063 + private Integer getYgcStationNumByLineCodeAndDirectionAndStationName(String lineCode,String direction,String stationName){
  1064 + Integer number = 0;
  1065 + Map<String, Map> dirs2Statioin = BasicData.stationName2YgcNumber.get(lineCode);
  1066 + Map<String, Integer> station2Number = dirs2Statioin.get(direction);
  1067 + number = station2Number.get(stationName);
  1068 + return number;
  1069 + }
1026 } 1070 }
src/main/java/com/bsth/service/oil/YlbService.java
@@ -7,7 +7,7 @@ import com.bsth.entity.oil.Ylb; @@ -7,7 +7,7 @@ import com.bsth.entity.oil.Ylb;
7 import com.bsth.service.BaseService; 7 import com.bsth.service.BaseService;
8 8
9 public interface YlbService extends BaseService<Ylb, Integer>{ 9 public interface YlbService extends BaseService<Ylb, Integer>{
10 - Map<String, Object> obtain(String rq); 10 + Map<String, Object> obtain(Map<String, Object> map);
11 String obtainDsq(); 11 String obtainDsq();
12 Map<String, Object> sort(Map<String, Object> map); 12 Map<String, Object> sort(Map<String, Object> map);
13 13
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -85,7 +85,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -85,7 +85,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
85 //前一天所有车辆最后进场班次信息 85 //前一天所有车辆最后进场班次信息
86 List<Ylb> ylListBe=repository.obtainYlbefore(rq); 86 List<Ylb> ylListBe=repository.obtainYlbefore(rq);
87 //从排班表中计算出行驶的总里程 87 //从排班表中计算出行驶的总里程
88 - List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList("1024",rq); 88 + List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList("",rq);
89 89
90 for(int x=0;x<listpb.size();x++){ 90 for(int x=0;x<listpb.size();x++){
91 91
@@ -151,7 +151,13 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -151,7 +151,13 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
151 */ 151 */
152 @Transactional 152 @Transactional
153 @Override 153 @Override
154 - public Map<String, Object> obtain(String rq) { 154 + public Map<String, Object> obtain(Map<String, Object> map2) {
  155 + String rq=map2.get("rq").toString();
  156 + String line="";
  157 + if(map2.get("xlbm_eq")!=null){
  158 + line=map2.get("xlbm_eq").toString();
  159 + }
  160 +
155 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 161 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
156 //保留两位小数 162 //保留两位小数
157 DecimalFormat df = new DecimalFormat("#.00"); 163 DecimalFormat df = new DecimalFormat("#.00");
@@ -164,7 +170,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -164,7 +170,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
164 //前一天所有车辆最后进场班次信息 170 //前一天所有车辆最后进场班次信息
165 List<Ylb> ylListBe=repository.obtainYlbefore(rq); 171 List<Ylb> ylListBe=repository.obtainYlbefore(rq);
166 //从排班表中计算出行驶的总里程 172 //从排班表中计算出行驶的总里程
167 - List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList("1024",rq); 173 + List<Map<String,Object>> listpb=scheduleRealInfoService.yesterdayDataList(line,rq);
168 174
169 for(int x=0;x<listpb.size();x++){ 175 for(int x=0;x<listpb.size();x++){
170 176
src/main/java/com/bsth/service/realcontrol/dto/ScheduleExecRate.java
1 -package com.bsth.service.realcontrol.dto;  
2 -  
3 -/**  
4 - * 班次执行率DTO  
5 - * Created by panzhao on 2016/11/14.  
6 - */  
7 -public class ScheduleExecRate {  
8 -  
9 - private long id;  
10 - private String dfsj;  
11 - private String fcsjActual;  
12 - private String zdsj;  
13 - private String zdsjActual;  
14 - private int status;  
15 - private String lineCode;  
16 -  
17 - public long getId() {  
18 - return id;  
19 - }  
20 -  
21 - public void setId(long id) {  
22 - this.id = id;  
23 - }  
24 -  
25 - public String getDfsj() {  
26 - return dfsj;  
27 - }  
28 -  
29 - public void setDfsj(String dfsj) {  
30 - this.dfsj = dfsj;  
31 - }  
32 -  
33 - public String getFcsjActual() {  
34 - return fcsjActual;  
35 - }  
36 -  
37 - public void setFcsjActual(String fcsjActual) {  
38 - this.fcsjActual = fcsjActual;  
39 - }  
40 -  
41 - public String getZdsj() {  
42 - return zdsj;  
43 - }  
44 -  
45 - public void setZdsj(String zdsj) {  
46 - this.zdsj = zdsj;  
47 - }  
48 -  
49 - public String getZdsjActual() {  
50 - return zdsjActual;  
51 - }  
52 -  
53 - public void setZdsjActual(String zdsjActual) {  
54 - this.zdsjActual = zdsjActual;  
55 - }  
56 -  
57 - public int getStatus() {  
58 - return status;  
59 - }  
60 -  
61 - public void setStatus(int status) {  
62 - this.status = status;  
63 - }  
64 -  
65 - public String getLineCode() {  
66 - return lineCode;  
67 - }  
68 -  
69 - public void setLineCode(String lineCode) {  
70 - this.lineCode = lineCode;  
71 - }  
72 -} 1 +package com.bsth.service.realcontrol.dto;
  2 +
  3 +/**
  4 + * 班次执行率DTO
  5 + * Created by panzhao on 2016/11/14.
  6 + */
  7 +public class ScheduleExecRate {
  8 +
  9 + private long id;
  10 + private String dfsj;
  11 + private String fcsjActual;
  12 + private String zdsj;
  13 + private String zdsjActual;
  14 + private int status;
  15 + private String lineCode;
  16 +
  17 + public long getId() {
  18 + return id;
  19 + }
  20 +
  21 + public void setId(long id) {
  22 + this.id = id;
  23 + }
  24 +
  25 + public String getDfsj() {
  26 + return dfsj;
  27 + }
  28 +
  29 + public void setDfsj(String dfsj) {
  30 + this.dfsj = dfsj;
  31 + }
  32 +
  33 + public String getFcsjActual() {
  34 + return fcsjActual;
  35 + }
  36 +
  37 + public void setFcsjActual(String fcsjActual) {
  38 + this.fcsjActual = fcsjActual;
  39 + }
  40 +
  41 + public String getZdsj() {
  42 + return zdsj;
  43 + }
  44 +
  45 + public void setZdsj(String zdsj) {
  46 + this.zdsj = zdsj;
  47 + }
  48 +
  49 + public String getZdsjActual() {
  50 + return zdsjActual;
  51 + }
  52 +
  53 + public void setZdsjActual(String zdsjActual) {
  54 + this.zdsjActual = zdsjActual;
  55 + }
  56 +
  57 + public int getStatus() {
  58 + return status;
  59 + }
  60 +
  61 + public void setStatus(int status) {
  62 + this.status = status;
  63 + }
  64 +
  65 + public String getLineCode() {
  66 + return lineCode;
  67 + }
  68 +
  69 + public void setLineCode(String lineCode) {
  70 + this.lineCode = lineCode;
  71 + }
  72 +}
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
1 package com.bsth.service.realcontrol.impl; 1 package com.bsth.service.realcontrol.impl;
2 2
3 -import java.text.DecimalFormat;  
4 -import java.text.ParseException;  
5 -import java.text.SimpleDateFormat;  
6 -import java.util.ArrayList;  
7 -import java.util.Collection;  
8 -import java.util.Collections;  
9 -import java.util.Date;  
10 -import java.util.HashMap;  
11 -import java.util.HashSet;  
12 -import java.util.Iterator;  
13 -import java.util.List;  
14 -import java.util.Map;  
15 -import java.util.Set;  
16 -  
17 -import com.bsth.entity.realcontrol.LineConfig;  
18 -import org.apache.commons.lang3.StringUtils;  
19 -import org.joda.time.format.DateTimeFormat;  
20 -import org.joda.time.format.DateTimeFormatter;  
21 -import org.slf4j.Logger;  
22 -import org.slf4j.LoggerFactory;  
23 -import org.springframework.beans.factory.annotation.Autowired;  
24 -import org.springframework.stereotype.Service;  
25 -  
26 import com.alibaba.fastjson.JSONArray; 3 import com.alibaba.fastjson.JSONArray;
27 import com.alibaba.fastjson.JSONObject; 4 import com.alibaba.fastjson.JSONObject;
28 import com.bsth.common.ResponseCode; 5 import com.bsth.common.ResponseCode;
@@ -39,6 +16,7 @@ import com.bsth.entity.Cars; @@ -39,6 +16,7 @@ import com.bsth.entity.Cars;
39 import com.bsth.entity.Line; 16 import com.bsth.entity.Line;
40 import com.bsth.entity.Personnel; 17 import com.bsth.entity.Personnel;
41 import com.bsth.entity.realcontrol.ChildTaskPlan; 18 import com.bsth.entity.realcontrol.ChildTaskPlan;
  19 +import com.bsth.entity.realcontrol.LineConfig;
42 import com.bsth.entity.realcontrol.ScheduleRealInfo; 20 import com.bsth.entity.realcontrol.ScheduleRealInfo;
43 import com.bsth.entity.schedule.CarConfigInfo; 21 import com.bsth.entity.schedule.CarConfigInfo;
44 import com.bsth.entity.schedule.EmployeeConfigInfo; 22 import com.bsth.entity.schedule.EmployeeConfigInfo;
@@ -54,17 +32,25 @@ import com.bsth.security.util.SecurityUtils; @@ -54,17 +32,25 @@ import com.bsth.security.util.SecurityUtils;
54 import com.bsth.service.SectionRouteService; 32 import com.bsth.service.SectionRouteService;
55 import com.bsth.service.impl.BaseServiceImpl; 33 import com.bsth.service.impl.BaseServiceImpl;
56 import com.bsth.service.realcontrol.ScheduleRealInfoService; 34 import com.bsth.service.realcontrol.ScheduleRealInfoService;
57 -import com.bsth.util.DateUtils;  
58 -import com.bsth.util.ReportRelatedUtils;  
59 -import com.bsth.util.ReportUtils;  
60 -import com.bsth.util.TimeUtils;  
61 -import com.bsth.util.TransGPS; 35 +import com.bsth.util.*;
62 import com.bsth.util.TransGPS.Location; 36 import com.bsth.util.TransGPS.Location;
63 import com.bsth.websocket.handler.SendUtils; 37 import com.bsth.websocket.handler.SendUtils;
64 import com.google.common.base.Splitter; 38 import com.google.common.base.Splitter;
65 import com.google.common.collect.ArrayListMultimap; 39 import com.google.common.collect.ArrayListMultimap;
66 import com.google.common.collect.Lists; 40 import com.google.common.collect.Lists;
67 import com.google.common.collect.Multimap; 41 import com.google.common.collect.Multimap;
  42 +import org.apache.commons.lang3.StringUtils;
  43 +import org.joda.time.format.DateTimeFormat;
  44 +import org.joda.time.format.DateTimeFormatter;
  45 +import org.slf4j.Logger;
  46 +import org.slf4j.LoggerFactory;
  47 +import org.springframework.beans.factory.annotation.Autowired;
  48 +import org.springframework.stereotype.Service;
  49 +
  50 +import java.text.DecimalFormat;
  51 +import java.text.ParseException;
  52 +import java.text.SimpleDateFormat;
  53 +import java.util.*;
68 54
69 @Service 55 @Service
70 public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInfo, Long> 56 public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInfo, Long>
@@ -289,6 +275,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -289,6 +275,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
289 rs.put("msg", "驾驶员工号不能为空!"); 275 rs.put("msg", "驾驶员工号不能为空!");
290 return rs; 276 return rs;
291 } 277 }
  278 + //截取工号
  279 + if(t.getsGh().indexOf("-") != -1){
  280 + t.setsGh(t.getsGh().split("-")[1]);
  281 + }
292 282
293 t.setScheduleDateStr(schDate); 283 t.setScheduleDateStr(schDate);
294 t.setScheduleDate(sdfyyyyMMdd.parse(schDate)); 284 t.setScheduleDate(sdfyyyyMMdd.parse(schDate));
@@ -454,12 +444,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -454,12 +444,16 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
454 444
455 @Override 445 @Override
456 public void adjustDriver(ScheduleRealInfo schedule, String driver, String driverName) { 446 public void adjustDriver(ScheduleRealInfo schedule, String driver, String driverName) {
  447 + if(driver.indexOf("-") != -1)
  448 + driver = driver.split("-")[1];
457 schedule.setjGh(driver); 449 schedule.setjGh(driver);
458 schedule.setjName(driverName); 450 schedule.setjName(driverName);
459 } 451 }
460 452
461 @Override 453 @Override
462 public void adjustConductor(ScheduleRealInfo schedule, String conductor, String conductorName) { 454 public void adjustConductor(ScheduleRealInfo schedule, String conductor, String conductorName) {
  455 + if(conductor.indexOf("-") != -1)
  456 + conductor = conductor.split("-")[1];
463 schedule.setsGh(conductor); 457 schedule.setsGh(conductor);
464 schedule.setsName(conductorName); 458 schedule.setsName(conductorName);
465 } 459 }
@@ -1135,8 +1129,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1135,8 +1129,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1135 addMileage += tempJhlc; 1129 addMileage += tempJhlc;
1136 ljbc++; 1130 ljbc++;
1137 }else{ 1131 }else{
  1132 + if(scheduleRealInfo.getBcType().equals("normal")){
  1133 + jhbc++;
  1134 + }
1138 jhlc += tempJhlc; 1135 jhlc += tempJhlc;
1139 - jhbc++;  
1140 if(scheduleRealInfo.getStatus() == -1){ 1136 if(scheduleRealInfo.getStatus() == -1){
1141 remMileage += tempJhlc; 1137 remMileage += tempJhlc;
1142 cjbc++; 1138 cjbc++;
@@ -1522,7 +1518,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1522,7 +1518,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1522 if(scheduleRealInfo.getXlBm().equals(yesterdayDataList.get(i).get("xlBm")) && scheduleRealInfo.getClZbh().equals(yesterdayDataList.get(i).get("clZbh")) 1518 if(scheduleRealInfo.getXlBm().equals(yesterdayDataList.get(i).get("xlBm")) && scheduleRealInfo.getClZbh().equals(yesterdayDataList.get(i).get("clZbh"))
1523 && scheduleRealInfo.getjGh().equals(yesterdayDataList.get(i).get("jGh"))){ 1519 && scheduleRealInfo.getjGh().equals(yesterdayDataList.get(i).get("jGh"))){
1524 //根据线路代码获取公司 1520 //根据线路代码获取公司
1525 - Line li = lineRepository.findByLineCode(line); 1521 + Line li = lineRepository.findByLineCode(scheduleRealInfo.getXlBm());
1526 yesterdayDataList.get(i).put("company", li.getCompany()); 1522 yesterdayDataList.get(i).put("company", li.getCompany());
1527 //计算总公里 1523 //计算总公里
1528 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); 1524 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
src/main/java/com/bsth/service/schedule/utils/DataImportExportService.java
@@ -3,6 +3,7 @@ package com.bsth.service.schedule.utils; @@ -3,6 +3,7 @@ package com.bsth.service.schedule.utils;
3 import org.springframework.web.multipart.MultipartFile; 3 import org.springframework.web.multipart.MultipartFile;
4 4
5 import java.io.File; 5 import java.io.File;
  6 +import java.util.Map;
6 7
7 /** 8 /**
8 * 数据导入导出服务。 9 * 数据导入导出服务。
@@ -32,4 +33,7 @@ public interface DataImportExportService { @@ -32,4 +33,7 @@ public interface DataImportExportService {
32 * @throws Exception 33 * @throws Exception
33 */ 34 */
34 File fileDataOutput(String fileName, File ktrFile) throws Exception; 35 File fileDataOutput(String fileName, File ktrFile) throws Exception;
  36 +
  37 +
  38 + File fileDataOutput(String fileName, File ktrFile, Map<String, Object> param) throws Exception;
35 } 39 }
src/main/java/com/bsth/service/schedule/utils/DataImportExportServiceImpl.java
@@ -10,6 +10,7 @@ import org.springframework.beans.factory.InitializingBean; @@ -10,6 +10,7 @@ import org.springframework.beans.factory.InitializingBean;
10 import org.springframework.beans.factory.annotation.Autowired; 10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.boot.context.properties.EnableConfigurationProperties; 11 import org.springframework.boot.context.properties.EnableConfigurationProperties;
12 import org.springframework.stereotype.Service; 12 import org.springframework.stereotype.Service;
  13 +import org.springframework.util.CollectionUtils;
13 import org.springframework.web.multipart.MultipartFile; 14 import org.springframework.web.multipart.MultipartFile;
14 15
15 import java.io.File; 16 import java.io.File;
@@ -111,6 +112,11 @@ public class DataImportExportServiceImpl implements DataImportExportService, Ini @@ -111,6 +112,11 @@ public class DataImportExportServiceImpl implements DataImportExportService, Ini
111 112
112 @Override 113 @Override
113 public File fileDataOutput(String fileName, File ktrFile) throws Exception { 114 public File fileDataOutput(String fileName, File ktrFile) throws Exception {
  115 + return fileDataOutput(fileName, ktrFile, null);
  116 + }
  117 +
  118 + @Override
  119 + public File fileDataOutput(String fileName, File ktrFile, Map<String, Object> param) throws Exception {
114 // 初始化转换,元数据,转换对象 120 // 初始化转换,元数据,转换对象
115 TransMeta transMeta = new TransMeta(ktrFile.getAbsolutePath()); 121 TransMeta transMeta = new TransMeta(ktrFile.getAbsolutePath());
116 Trans trans = new Trans(transMeta); 122 Trans trans = new Trans(transMeta);
@@ -120,6 +126,14 @@ public class DataImportExportServiceImpl implements DataImportExportService, Ini @@ -120,6 +126,14 @@ public class DataImportExportServiceImpl implements DataImportExportService, Ini
120 fileName + 126 fileName +
121 new DateTime().toString("yyyyMMddHHmmss") + ".xls"; 127 new DateTime().toString("yyyyMMddHHmmss") + ".xls";
122 trans.setParameterValue("filepath", filepath); 128 trans.setParameterValue("filepath", filepath);
  129 +
  130 + // 添加其他参数
  131 + if (!CollectionUtils.isEmpty(param)) {
  132 + for (String key : param.keySet()) {
  133 + trans.setParameterValue(key, String.valueOf(param.get(key)));
  134 + }
  135 + }
  136 +
123 // 执行转换 137 // 执行转换
124 trans.execute(null); 138 trans.execute(null);
125 // 等待转换结束 139 // 等待转换结束
src/main/java/com/bsth/service/schedule/utils/DataToolsProperties.java
@@ -83,6 +83,10 @@ public class DataToolsProperties { @@ -83,6 +83,10 @@ public class DataToolsProperties {
83 /** 人员信息导出ktr转换 */ 83 /** 人员信息导出ktr转换 */
84 @NotNull 84 @NotNull
85 private String employeesDataoutputktr; 85 private String employeesDataoutputktr;
  86 + /** 时刻表导出元数据ktr转换 */
  87 + private String ttinfodetailMetaoutput;
  88 + /** 时刻表导出数据ktr转换 */
  89 + private String ttinfodetailOutput;
86 90
87 // TODO: 91 // TODO:
88 92
@@ -253,4 +257,20 @@ public class DataToolsProperties { @@ -253,4 +257,20 @@ public class DataToolsProperties {
253 public void setKvarsDbdname(String kvarsDbdname) { 257 public void setKvarsDbdname(String kvarsDbdname) {
254 this.kvarsDbdname = kvarsDbdname; 258 this.kvarsDbdname = kvarsDbdname;
255 } 259 }
  260 +
  261 + public String getTtinfodetailMetaoutput() {
  262 + return ttinfodetailMetaoutput;
  263 + }
  264 +
  265 + public void setTtinfodetailMetaoutput(String ttinfodetailMetaoutput) {
  266 + this.ttinfodetailMetaoutput = ttinfodetailMetaoutput;
  267 + }
  268 +
  269 + public String getTtinfodetailOutput() {
  270 + return ttinfodetailOutput;
  271 + }
  272 +
  273 + public void setTtinfodetailOutput(String ttinfodetailOutput) {
  274 + this.ttinfodetailOutput = ttinfodetailOutput;
  275 + }
256 } 276 }
src/main/java/com/bsth/service/sys/CompanyAuthorityService.java 0 → 100644
  1 +package com.bsth.service.sys;
  2 +
  3 +import com.bsth.entity.sys.CompanyAuthority;
  4 +import com.bsth.entity.sys.SysUser;
  5 +import com.bsth.service.BaseService;
  6 +
  7 +import java.util.List;
  8 +import java.util.Map;
  9 +
  10 +/**
  11 + * Created by panzhao on 2016/11/22.
  12 + */
  13 +public interface CompanyAuthorityService extends BaseService<CompanyAuthority, Integer> {
  14 + Map<String,Object> save(Integer roleId, List<CompanyAuthority> list);
  15 +
  16 + List<CompanyAuthority> findByUser(SysUser user);
  17 +}
src/main/java/com/bsth/service/sys/impl/CompanyAuthorityServiceImpl.java 0 → 100644
  1 +package com.bsth.service.sys.impl;
  2 +
  3 +import com.bsth.common.ResponseCode;
  4 +import com.bsth.entity.sys.CompanyAuthority;
  5 +import com.bsth.entity.sys.Role;
  6 +import com.bsth.entity.sys.SysUser;
  7 +import com.bsth.repository.sys.CompanyAuthorityRepository;
  8 +import com.bsth.service.impl.BaseServiceImpl;
  9 +import com.bsth.service.sys.CompanyAuthorityService;
  10 +import org.slf4j.Logger;
  11 +import org.slf4j.LoggerFactory;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.stereotype.Service;
  14 +import org.springframework.transaction.annotation.Transactional;
  15 +
  16 +import java.util.*;
  17 +
  18 +/**
  19 + * Created by panzhao on 2016/11/22.
  20 + */
  21 +@Service
  22 +public class CompanyAuthorityServiceImpl extends BaseServiceImpl<CompanyAuthority, Integer> implements CompanyAuthorityService {
  23 +
  24 + @Autowired
  25 + CompanyAuthorityRepository companyAuthorityRepository;
  26 +
  27 + Logger logger = LoggerFactory.getLogger(this.getClass());
  28 +
  29 + @Transactional
  30 + @Override
  31 + public Map<String, Object> save(Integer roleId, List<CompanyAuthority> list) {
  32 + Map<String, Object> rs = new HashMap();
  33 +
  34 + try {
  35 + for(CompanyAuthority cauth : list){
  36 + cauth.setRoleId(roleId);
  37 + }
  38 +
  39 + //删除原数据
  40 + companyAuthorityRepository.deleteByRoleId(roleId);
  41 +
  42 + //重新写入数据
  43 + companyAuthorityRepository.save(list);
  44 +
  45 + rs.put("status", ResponseCode.SUCCESS);
  46 + } catch (Exception e) {
  47 + logger.error("", e);
  48 + rs.put("status", ResponseCode.ERROR);
  49 + }
  50 +
  51 + return rs;
  52 + }
  53 +
  54 + @Override
  55 + public List<CompanyAuthority> findByUser(SysUser user) {
  56 + Set<Role> roles = user.getRoles();
  57 + if(roles == null || roles.size() == 0)
  58 + return null;
  59 +
  60 + List<Integer> idx = new ArrayList<>();
  61 + for(Role r : roles)
  62 + idx.add(r.getId());
  63 +
  64 + List<CompanyAuthority> cAuths = companyAuthorityRepository.findByRoles(idx);
  65 + return cAuths;
  66 + }
  67 +}
src/main/java/com/bsth/service/sys/impl/ModuleServiceImpl.java
1 package com.bsth.service.sys.impl; 1 package com.bsth.service.sys.impl;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.HashMap;  
5 -import java.util.HashSet;  
6 -import java.util.List;  
7 -import java.util.Map;  
8 -import java.util.Set;  
9 -  
10 -import org.springframework.beans.factory.annotation.Autowired;  
11 -import org.springframework.data.domain.Sort;  
12 -import org.springframework.data.domain.Sort.Direction;  
13 -import org.springframework.stereotype.Service;  
14 -  
15 import com.bsth.common.ResponseCode; 3 import com.bsth.common.ResponseCode;
16 import com.bsth.entity.sys.Module; 4 import com.bsth.entity.sys.Module;
17 import com.bsth.entity.sys.Role; 5 import com.bsth.entity.sys.Role;
@@ -20,12 +8,23 @@ import com.bsth.repository.sys.ModuleRepository; @@ -20,12 +8,23 @@ import com.bsth.repository.sys.ModuleRepository;
20 import com.bsth.security.util.SecurityUtils; 8 import com.bsth.security.util.SecurityUtils;
21 import com.bsth.service.impl.BaseServiceImpl; 9 import com.bsth.service.impl.BaseServiceImpl;
22 import com.bsth.service.sys.ModuleService; 10 import com.bsth.service.sys.ModuleService;
  11 +import org.springframework.beans.factory.annotation.Autowired;
  12 +import org.springframework.jdbc.core.JdbcTemplate;
  13 +import org.springframework.jdbc.core.RowMapper;
  14 +import org.springframework.stereotype.Service;
  15 +
  16 +import java.sql.ResultSet;
  17 +import java.sql.SQLException;
  18 +import java.util.*;
23 19
24 @Service 20 @Service
25 public class ModuleServiceImpl extends BaseServiceImpl<Module, Integer> implements ModuleService{ 21 public class ModuleServiceImpl extends BaseServiceImpl<Module, Integer> implements ModuleService{
26 22
27 @Autowired 23 @Autowired
28 ModuleRepository moduleRepository; 24 ModuleRepository moduleRepository;
  25 +
  26 + @Autowired
  27 + JdbcTemplate jdbcTemplate;
29 28
30 @Override 29 @Override
31 public List<Module> findByGroupType(String group) { 30 public List<Module> findByGroupType(String group) {
@@ -62,26 +61,38 @@ public class ModuleServiceImpl extends BaseServiceImpl&lt;Module, Integer&gt; implemen @@ -62,26 +61,38 @@ public class ModuleServiceImpl extends BaseServiceImpl&lt;Module, Integer&gt; implemen
62 SysUser user = SecurityUtils.getCurrentUser(); 61 SysUser user = SecurityUtils.getCurrentUser();
63 Set<Role> roles = user.getRoles(); 62 Set<Role> roles = user.getRoles();
64 63
65 - List<Module> all = (List<Module>) moduleRepository.findAll(new Sort(Direction.ASC, "id"))  
66 - ,results = new ArrayList<>();  
67 - 64 + String inCond = "";
  65 + for(Role r : roles)
  66 + inCond += ("," + r.getId());
  67 +
  68 + inCond = "(" + inCond.substring(1) + ")";
  69 +
  70 + String sql = "select ID,CREATE_DATE,`ENABLE`,GROUP_TYPE,ICON,MAPP_SYMBOL,NAME,P_ID,PATH,UPDATE_DATE,CONTAINER from bsth_c_sys_module m where id in (select modules from bsth_c_sys_role_modules where roles in "+inCond+") or group_type != 3";
  71 + List<Module> all = jdbcTemplate.query(sql, new ModuleRowMapper())
  72 + ,rs = new ArrayList<>();
  73 +
68 Map<Integer, Module> map = new HashMap<>(); 74 Map<Integer, Module> map = new HashMap<>();
69 for(Module m : all){ 75 for(Module m : all){
70 map.put(m.getId(), m); 76 map.put(m.getId(), m);
71 - for(Role r : roles){  
72 - if(m.getRoles().contains(r))  
73 - results.add(m);  
74 - } 77 + if(m.getGroupType().equals("3"))
  78 + rs.add(m);
75 } 79 }
76 80
77 //上层目录和组节点 81 //上层目录和组节点
78 Set<Module> pSet = new HashSet<>(); 82 Set<Module> pSet = new HashSet<>();
79 - for(Module m : results){ 83 + for(Module m : rs){
80 searchParentNode(m, map, pSet); 84 searchParentNode(m, map, pSet);
81 } 85 }
82 - results.addAll(pSet);  
83 -  
84 - return results; 86 + rs.addAll(pSet);
  87 +
  88 + //排序
  89 + Collections.sort(rs, new Comparator<Module>() {
  90 + @Override
  91 + public int compare(Module o1, Module o2) {
  92 + return o1.getId() - o2.getId();
  93 + }
  94 + });
  95 + return rs;
85 } 96 }
86 97
87 /** 98 /**
@@ -105,4 +116,24 @@ public class ModuleServiceImpl extends BaseServiceImpl&lt;Module, Integer&gt; implemen @@ -105,4 +116,24 @@ public class ModuleServiceImpl extends BaseServiceImpl&lt;Module, Integer&gt; implemen
105 searchParentNode(pModule, idMap, pSet); 116 searchParentNode(pModule, idMap, pSet);
106 } 117 }
107 } 118 }
  119 +
  120 + public class ModuleRowMapper implements RowMapper<Module>{
  121 +
  122 + @Override
  123 + public Module mapRow(ResultSet rs, int rowNum) throws SQLException {
  124 + Module module = new Module();
  125 + module.setId(rs.getInt("ID"));
  126 + module.setCreateDate(rs.getDate("CREATE_DATE"));
  127 + module.setEnable(rs.getBoolean("ENABLE"));
  128 + module.setGroupType(rs.getString("GROUP_TYPE"));
  129 + module.setIcon(rs.getString("ICON"));
  130 + module.setMappSymbol(rs.getString("MAPP_SYMBOL"));
  131 + module.setName(rs.getString("NAME"));
  132 + module.setpId(rs.getInt("P_ID"));
  133 + module.setPath(rs.getString("PATH"));
  134 + module.setUpdateDate(rs.getDate("UPDATE_DATE"));
  135 + module.setContainer(rs.getString("CONTAINER"));
  136 + return module;
  137 + }
  138 + }
108 } 139 }
src/main/java/com/bsth/util/Geo/SHCJ2BDJW.java
@@ -25,9 +25,11 @@ public class SHCJ2BDJW { @@ -25,9 +25,11 @@ public class SHCJ2BDJW {
25 25
26 ResultSet rs = null; 26 ResultSet rs = null;
27 27
28 - String sqlSelect = "SELECT b.SHAPESTRING as SHAPE , b.id as ID FROM jjwgps_t_gjldb b where SHAPESTRING is not null order by b.ldbh asc "; 28 + /*String sqlSelect = "SELECT b.SHAPESTRING as SHAPE , b.id as ID FROM jjwgps_t_gjldb b where SHAPESTRING is not null order by b.ldbh asc ";*/
  29 + /*String sqlSelect = "select s.id,s.descriptions from bsth_c_station s order by s.id asc ";*/
  30 + String sqlSelect = "SELECT s.id,s.descriptions FROM bsth_c_section s order by s.id asc ";
29 31
30 - String sqlUpdate = "UPDATE jjwgps_t_gjldb SET bdjw = GeomFromText(?),SHAPE = GeomFromText(?) where id = ?"; 32 + String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ST_GeomFromText(?) , bsection_vector=ST_GeomFromText(?) , gsection_vector=ST_GeomFromText(?) where id = ?";
31 33
32 List<Map<String, Object>> list = new ArrayList<>(); 34 List<Map<String, Object>> list = new ArrayList<>();
33 35
@@ -42,9 +44,9 @@ public class SHCJ2BDJW { @@ -42,9 +44,9 @@ public class SHCJ2BDJW {
42 44
43 Map<String, Object> map = new HashMap<String, Object>(); 45 Map<String, Object> map = new HashMap<String, Object>();
44 46
45 - map.put("shape", rs.getString("SHAPE")); 47 + map.put("descriptions", rs.getString("descriptions"));
46 48
47 - map.put("id", rs.getInt("ID")); 49 + map.put("id", rs.getInt("id"));
48 50
49 list.add(map); 51 list.add(map);
50 } 52 }
@@ -52,15 +54,29 @@ public class SHCJ2BDJW { @@ -52,15 +54,29 @@ public class SHCJ2BDJW {
52 for(int i =0;i<list.size();i++) { 54 for(int i =0;i<list.size();i++) {
53 55
54 Map<String, Object> temp = list.get(i); 56 Map<String, Object> temp = list.get(i);
55 -  
56 - String lineString = temp.get("shape").toString();  
57 - /*String lineString = "LINESTRING (13532.5305161702 -3677.63275264995, 13433.22401617 -3881.74765264988)";*/  
58 - 57 + // POINT (8229.30921617 -933.16425265)
  58 + String lineString = temp.get("descriptions").toString();
  59 + int id = Integer.parseInt(temp.get("id").toString());
59 60
60 String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(", "); 61 String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(", ");
61 -  
62 - int id = Integer.parseInt(temp.get("id").toString());  
63 - String geometry = ""; 62 + /*String arrayP[] = lineString.substring(lineString.indexOf("(")+1, lineString.length()-1).split(" ");
  63 + String b_jwpoints = "";
  64 + Float g_lonx=0.0f,g_laty=0.0f,x=0.0f,y=0.0f;*/
  65 +
  66 + /*Double lng = Double.parseDouble(arrayP[0]);
  67 + Double lat = Double.parseDouble(arrayP[1]);
  68 + x = Float.parseFloat(arrayP[0]);
  69 + y = Float.parseFloat(arrayP[1]);
  70 + // WGS84
  71 + Map map_2 = JWDUtil.ConvertSHToJW(lng,lat);
  72 + g_lonx = Float.parseFloat(map_2.get("x").toString());
  73 + g_laty = Float.parseFloat(map_2.get("y").toString());
  74 + Location location = TransGPS.LocationMake(Float.parseFloat(map_2.get("x").toString()), Float.parseFloat(map_2.get("y").toString()));
  75 + location = TransGPS.bd_encrypt(TransGPS.transformFromWGSToGCJ(location));
  76 + b_jwpoints = (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);*/
  77 + //b_jwpoints = (location.getLng()) + " " + (location.getLat());
  78 +
  79 + String csection_vector="",bsection_vector="",gsection_vector="";
64 80
65 for(int k =0;k<arrayP.length;k++) { 81 for(int k =0;k<arrayP.length;k++) {
66 82
@@ -76,28 +92,42 @@ public class SHCJ2BDJW { @@ -76,28 +92,42 @@ public class SHCJ2BDJW {
76 92
77 location = TransGPS.bd_encrypt(TransGPS.transformFromWGSToGCJ(location)); 93 location = TransGPS.bd_encrypt(TransGPS.transformFromWGSToGCJ(location));
78 94
79 - if(k==arrayP.length-1)  
80 - geometry = geometry + (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);  
81 - else  
82 - geometry = geometry + (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624) + ","; 95 + if(k==arrayP.length-1) {
  96 + bsection_vector = bsection_vector + (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624);
  97 + csection_vector = csection_vector + arrayXY[0] + " " + arrayXY[1];
  98 + gsection_vector = gsection_vector + map_2.get("x").toString() + " " + map_2.get("y").toString();
  99 + }else {
  100 + bsection_vector = bsection_vector + (location.getLng()+0.000727) + " " + (location.getLat() - 0.0000624) + ",";
  101 + csection_vector = csection_vector + arrayXY[0] + " " + arrayXY[1] +",";
  102 + gsection_vector = gsection_vector + map_2.get("x").toString() + " " + map_2.get("y").toString()+",";
  103 + }
83 104
84 105
85 } 106 }
86 107
87 ps = null; 108 ps = null;
88 -  
89 - geometry = "LINESTRING(" + geometry +")"; 109 + bsection_vector = "LINESTRING(" + bsection_vector +")";
  110 + csection_vector = "LINESTRING(" + csection_vector +")";
  111 + gsection_vector = "LINESTRING(" + gsection_vector +")";
90 112
91 ps = conn.prepareStatement(sqlUpdate); 113 ps = conn.prepareStatement(sqlUpdate);
92 114
93 - ps.setString(1, geometry);  
94 -  
95 - ps.setString(2, lineString);  
96 -  
97 - ps.setInt(3, id);  
98 - 115 + // String sqlUpdate = "UPDATE bsth_c_section SET csection_vector = ? , bsection_vector=? , gsection_vector=? where id = ?";
  116 + ps.setString(1, csection_vector);
  117 + ps.setString(2, bsection_vector);
  118 + ps.setString(3, gsection_vector);
  119 + ps.setInt(4, id);
  120 +
  121 + //int stauts = ps.executeUpdate();
  122 + // String sqlUpdate = "UPDATE bsth_c_station SET b_jwpoints = ?1 , g_lonx=?2 , g_laty=?3 , x = ?4 , y = ?5 where id = ?6";
  123 + /*ps.setString(1, b_jwpoints);
  124 + ps.setFloat(2, g_lonx);
  125 + ps.setFloat(3, g_laty);
  126 + ps.setFloat(4, x);
  127 + ps.setFloat(5, y);
  128 + ps.setFloat(6, id);*/
99 int stauts = ps.executeUpdate(); 129 int stauts = ps.executeUpdate();
100 - 130 + System.out.println(stauts);
101 } 131 }
102 132
103 } catch (SQLException e) { 133 } catch (SQLException e) {
src/main/resources/application-dev.properties
@@ -8,7 +8,7 @@ spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy @@ -8,7 +8,7 @@ spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy
8 spring.jpa.database= MYSQL 8 spring.jpa.database= MYSQL
9 spring.jpa.show-sql= false 9 spring.jpa.show-sql= false
10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver 10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11 -spring.datasource.url= jdbc:mysql://192.168.168.201/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false 11 +spring.datasource.url= jdbc:mysql://192.168.168.201:3306/mh_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 spring.datasource.username= root 12 spring.datasource.username= root
13 spring.datasource.password= 123456 13 spring.datasource.password= 123456
14 #DATASOURCE 14 #DATASOURCE
src/main/resources/datatools/config-dev.properties
@@ -48,13 +48,19 @@ datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput. @@ -48,13 +48,19 @@ datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.
48 48
49 # 4、数据导出配置信息 49 # 4、数据导出配置信息
50 # 导出数据文件目录配置(根据不同的环境需要修正) 50 # 导出数据文件目录配置(根据不同的环境需要修正)
51 -datatools.fileoutput_dir=/Users/xu/resource/project/bsth_control_u_d_files 51 +datatools.fileoutput_dir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files
52 52
53 ##---------------------------- 导出数据ktr -----------------------------## 53 ##---------------------------- 导出数据ktr -----------------------------##
54 # 车辆信息导出ktr转换 54 # 车辆信息导出ktr转换
55 datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr 55 datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr
56 # 人员信息导出ktr转换 56 # 人员信息导出ktr转换
57 datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr 57 datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr
  58 +# 时刻表导出元数据ktr转换
  59 +datatools.ttinfodetail_metaoutput=/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr
  60 +# 时刻表导出数据ktr转换
  61 +datatools.ttinfodetail_output=/datatools/ktrs/ttinfodetailDataOutput.ktr
  62 +
  63 +
58 64
59 # TODO: 65 # TODO:
60 66
src/main/resources/datatools/config-prod.properties
@@ -56,5 +56,9 @@ datatools.fileoutput_dir=/opt/bsth_control_u_d_files @@ -56,5 +56,9 @@ datatools.fileoutput_dir=/opt/bsth_control_u_d_files
56 datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr 56 datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr
57 # 人员信息导出ktr转换 57 # 人员信息导出ktr转换
58 datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr 58 datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr
  59 +# 时刻表导出元数据ktr转换
  60 +datatools.ttinfodetail_metaoutput=/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr
  61 +# 时刻表导出数据ktr转换
  62 +datatools.ttinfodetail_output=/datatools/ktrs/ttinfodetailDataOutput.ktr
59 63
60 # TODO: 64 # TODO:
61 \ No newline at end of file 65 \ No newline at end of file