Commit 033b3d9365bd68903fbd74a666dbd3acb912440e

Authored by 周勤
1 parent 34d5e365

增加运管处上传日志的保存和查看功能(时刻表上传、线路上传、路单上传)

src/main/java/com/bsth/entity/search/PredicatesBuilder.java
@@ -9,6 +9,7 @@ import java.text.NumberFormat; @@ -9,6 +9,7 @@ import java.text.NumberFormat;
9 import java.text.ParseException; 9 import java.text.ParseException;
10 import java.text.SimpleDateFormat; 10 import java.text.SimpleDateFormat;
11 import java.util.ArrayList; 11 import java.util.ArrayList;
  12 +import java.util.Calendar;
12 import java.util.Date; 13 import java.util.Date;
13 import java.util.List; 14 import java.util.List;
14 15
@@ -37,7 +38,13 @@ public class PredicatesBuilder { @@ -37,7 +38,13 @@ public class PredicatesBuilder {
37 if(Date.class.isAssignableFrom(leftType) && 38 if(Date.class.isAssignableFrom(leftType) &&
38 String.class.isAssignableFrom(rightType)){ 39 String.class.isAssignableFrom(rightType)){
39 DateTime dateTime = new DateTime(object); 40 DateTime dateTime = new DateTime(object);
40 - return cb.equal(expression, dateTime.toDate()); 41 + Date startTime = dateTime.toDate();//设置起始时间
  42 + Calendar c = Calendar.getInstance();
  43 + c.setTime(startTime);
  44 + c.add(Calendar.DAY_OF_MONTH, 1);
  45 + // 设置结束时间,起始时间为结束时间加1天
  46 + Date endTime = c.getTime();
  47 + return cb.between((Path<Date>) expression,startTime,endTime);
41 } 48 }
42 else { 49 else {
43 return cb.equal(expression, object); 50 return cb.equal(expression, object);
src/main/java/com/bsth/entity/traffic/SKBUploadLogger.java
1 package com.bsth.entity.traffic; 1 package com.bsth.entity.traffic;
2 2
3 -import com.bsth.entity.schedule.TTInfo; 3 +import com.bsth.entity.Line;
4 import com.bsth.entity.sys.SysUser; 4 import com.bsth.entity.sys.SysUser;
5 import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
6 6
@@ -33,7 +33,7 @@ public class SKBUploadLogger { @@ -33,7 +33,7 @@ public class SKBUploadLogger {
33 33
34 /** 时刻表信息 */ 34 /** 时刻表信息 */
35 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 35 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
36 - private TTInfo ttInfo; 36 + private Line line;
37 37
38 /** 用户 关联 */ 38 /** 用户 关联 */
39 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY) 39 @ManyToOne(optional = false, cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
@@ -43,6 +43,23 @@ public class SKBUploadLogger { @@ -43,6 +43,23 @@ public class SKBUploadLogger {
43 @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP") 43 @Column(updatable = false, name = "create_date", columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
44 private Date createDate; 44 private Date createDate;
45 45
  46 + // 上传的参数
  47 + @Column( name = "upload_xml" , columnDefinition="TEXT")
  48 + private String uploadXml;
  49 +
  50 + // 上传的参数2
  51 + @Column( name = "upload_xml_sub" , columnDefinition="TEXT")
  52 + private String uploadXmlSub;
  53 +
  54 + // 日志类型 1:时刻表;2:上传线路;3:上传路单
  55 + private String type;
  56 +
  57 + // 模板名称
  58 + private String name;
  59 +
  60 + // 上传状态:是否成功 1:成功;0:失败
  61 + private String state;
  62 +
46 public Integer getId() { 63 public Integer getId() {
47 return id; 64 return id;
48 } 65 }
@@ -51,14 +68,6 @@ public class SKBUploadLogger { @@ -51,14 +68,6 @@ public class SKBUploadLogger {
51 this.id = id; 68 this.id = id;
52 } 69 }
53 70
54 - public TTInfo getTtInfo() {  
55 - return ttInfo;  
56 - }  
57 -  
58 - public void setTtInfo(TTInfo ttInfo) {  
59 - this.ttInfo = ttInfo;  
60 - }  
61 -  
62 public SysUser getUser() { 71 public SysUser getUser() {
63 return user; 72 return user;
64 } 73 }
@@ -71,7 +80,29 @@ public class SKBUploadLogger { @@ -71,7 +80,29 @@ public class SKBUploadLogger {
71 return createDate; 80 return createDate;
72 } 81 }
73 82
74 - public void setCreateDate(Date createDate) {  
75 - this.createDate = createDate;  
76 - } 83 + public void setCreateDate(Date createDate) { this.createDate = createDate; }
  84 +
  85 + public String getUploadXml() { return uploadXml; }
  86 +
  87 + public void setUploadXml(String uploadXml) { this.uploadXml = uploadXml; }
  88 +
  89 + public String getState() { return state; }
  90 +
  91 + public void setState(String state) { this.state = state; }
  92 +
  93 + public Line getLine() { return line;}
  94 +
  95 + public void setLine(Line line) { this.line = line; }
  96 +
  97 + public String getType() { return type; }
  98 +
  99 + public void setType(String type) { this.type = type; }
  100 +
  101 + public String getName() { return name; }
  102 +
  103 + public void setName(String name) { this.name = name; }
  104 +
  105 + public String getUploadXmlSub() {return uploadXmlSub;}
  106 +
  107 + public void setUploadXmlSub(String uploadXmlSub) {this.uploadXmlSub = uploadXmlSub; }
77 } 108 }
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
@@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory; @@ -32,6 +32,7 @@ import org.slf4j.LoggerFactory;
32 import org.springframework.beans.factory.annotation.Autowired; 32 import org.springframework.beans.factory.annotation.Autowired;
33 import org.springframework.data.domain.Sort; 33 import org.springframework.data.domain.Sort;
34 import org.springframework.data.domain.Sort.Direction; 34 import org.springframework.data.domain.Sort.Direction;
  35 +import org.springframework.security.core.context.SecurityContextHolder;
35 import org.springframework.stereotype.Service; 36 import org.springframework.stereotype.Service;
36 37
37 import java.io.*; 38 import java.io.*;
@@ -65,6 +66,10 @@ import java.util.regex.Pattern; @@ -65,6 +66,10 @@ import java.util.regex.Pattern;
65 public class TrafficManageServiceImpl implements TrafficManageService{ 66 public class TrafficManageServiceImpl implements TrafficManageService{
66 67
67 Logger logger = LoggerFactory.getLogger(this.getClass()); 68 Logger logger = LoggerFactory.getLogger(this.getClass());
  69 + // 运管处上传日志类型
  70 + public static final String UPLOAD_TYPE_SKB = "1";
  71 + public static final String UPLOAD_TYPE_XL = "2";
  72 + public static final String UPLOAD_TYPE_LD = "3";
68 73
69 // 线路repository 74 // 线路repository
70 @Autowired 75 @Autowired
@@ -170,7 +175,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -170,7 +175,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
170 @Override 175 @Override
171 public String setXL(String ids) { 176 public String setXL(String ids) {
172 String result = "failure"; 177 String result = "failure";
173 - StringBuffer sBuffer = new StringBuffer(); 178 + String xml ;
174 String[] idArray = ids.split(","); 179 String[] idArray = ids.split(",");
175 try { 180 try {
176 for (String id : idArray) { 181 for (String id : idArray) {
@@ -185,12 +190,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -185,12 +190,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{
185 if(line == null){ 190 if(line == null){
186 continue; 191 continue;
187 } 192 }
188 - List<StationRoute> upStationsList ;// 上行站点路由集  
189 - List<StationRoute> downStationsList;// 下行站点路由集  
190 - List<Object[]> downPointList;// 下行站点集  
191 - List<Object[]> upPointList;// 上行站点集  
192 - sBuffer.append("<XLs>");  
193 - sBuffer.append("<XL>");  
194 if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){ 193 if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){
195 return result; 194 return result;
196 } 195 }
@@ -200,56 +199,25 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -200,56 +199,25 @@ public class TrafficManageServiceImpl implements TrafficManageService{
200 if(lineInformation == null){ 199 if(lineInformation == null){
201 continue; 200 continue;
202 } 201 }
203 - sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(line.getId())).append("</XLBM>");  
204 - sBuffer.append("<XLMC>").append(line.getName()).append("</XLMC>");  
205 - sBuffer.append("<QDZ>").append(line.getStartStationName()).append("</QDZ>");  
206 - sBuffer.append("<ZDZ>").append(line.getEndStationName()).append("</ZDZ>");  
207 - sBuffer.append("<QZLC>").append(lineInformation.getUpMileage()).append("</QZLC>");  
208 - sBuffer.append("<ZQLC>").append(lineInformation.getDownMileage()).append("</ZQLC>");  
209 - sBuffer.append("<XLGH>").append(line.getLinePlayType()).append("</XLGH>");  
210 - sBuffer.append("<UPDATE_DATE>").append(sdfnyr.format(new Date())).append("</UPDATE_DATE>");  
211 -  
212 - // 循环添加站点信息  
213 - sBuffer.append("<StationList>");  
214 -  
215 - // 先查上行  
216 - upStationsList = stationRouteRepository.findByLine(line.getLineCode(), 0);  
217 - Map<String, Integer> stationNumMap = getStationName2YgcNumberMap(line.getLineCode());  
218 - int startId = 1;  
219 - startId = packagStationXml(upStationsList, sBuffer, startId,stationNumMap);  
220 - // 环线不查下行  
221 - if(line.getLinePlayType() != 1){  
222 - // 再查下行  
223 - downStationsList = stationRouteRepository.findByLine(line.getLineCode(), 1);  
224 - packagStationXml(downStationsList, sBuffer, startId,stationNumMap);  
225 - }  
226 - sBuffer.append("</StationList>");  
227 -  
228 - // 循环添加站点点位信息  
229 - sBuffer.append("<LinePointList>");  
230 - upPointList = sectionRepository.getSectionDirByLineId(line.getId(),0);  
231 - startId = 1;  
232 - startId = packagStationPointXml(upPointList, sBuffer, startId);  
233 - // 环线不查下行  
234 - if(line.getLinePlayType() != 1){  
235 - downPointList = sectionRepository.getSectionDirByLineId(line.getId(),1);  
236 - packagStationPointXml(downPointList, sBuffer, startId);  
237 - }  
238 - sBuffer.append("</LinePointList>");  
239 - sBuffer.append("</XL>");  
240 - sBuffer.append("</XLs>");  
241 - // 临时添加,后面删除  
242 - if(sBuffer.indexOf("<ZDXH>0</ZDXH>") != -1){ 202 + // 取得封装好的xml
  203 + xml = getSetXlXml(line,lineInformation);
  204 + // 站点序号不能为0,如果为0,则返回错误
  205 + if(xml.indexOf("<ZDXH>0</ZDXH>") != -1){
243 return "0"; 206 return "0";
244 } 207 }
  208 + String state;// 是否上传成功
245 // 调用上传方法 209 // 调用上传方法
246 - if(getWebServiceSoapUp().setXL(userNameUp,passwordUp,sBuffer.toString()).isSuccess()){ 210 + if(getWebServiceSoapUp().setXL(userNameUp,passwordUp,xml).isSuccess()){
247 result = "success"; 211 result = "success";
  212 + state = "1";
248 }else{ 213 }else{
249 result = "failure"; 214 result = "failure";
  215 + state = "0";
250 } 216 }
251 - logger.info("setXL:"+sBuffer.toString()); 217 + logger.info("setXL:"+xml);
252 logger.info("setXL:"+result); 218 logger.info("setXL:"+result);
  219 + // 保存运管处上传记录
  220 + saveYgcUploadLog(line,xml,TrafficManageServiceImpl.UPLOAD_TYPE_XL,state);
253 } 221 }
254 } catch (Exception e) { 222 } catch (Exception e) {
255 logger.error("setXL:",e); 223 logger.error("setXL:",e);
@@ -422,10 +390,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -422,10 +390,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{
422 HashMap logXlbmMap = new HashMap(); 390 HashMap logXlbmMap = new HashMap();
423 Results results = null; 391 Results results = null;
424 String str = "",xlbm; 392 String str = "",xlbm;
  393 + // 保存线路(运管处日志用)
  394 + Map<String , Line> logLineMap = null;
425 try { 395 try {
426 int counter = 0; // 计数器 396 int counter = 0; // 计数器
427 int per = 10; // 每几条线路上传一次路单 397 int per = 10; // 每几条线路上传一次路单
428 -  
429 List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date); 398 List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date);
430 List<Map<String,Object>> listGroup = scheduleRealInfoRepository.setLDGroup(date); 399 List<Map<String,Object>> listGroup = scheduleRealInfoRepository.setLDGroup(date);
431 Map<String,Object> map = new HashMap(); 400 Map<String,Object> map = new HashMap();
@@ -444,6 +413,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -444,6 +413,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
444 if(counter % per == 0){ 413 if(counter % per == 0){
445 sf = new StringBuffer(); 414 sf = new StringBuffer();
446 sf.append("<DLDS>"); 415 sf.append("<DLDS>");
  416 + logLineMap = new HashMap<>();
447 } 417 }
448 counter ++; 418 counter ++;
449 xlbm = BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm")+""); 419 xlbm = BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm")+"");
@@ -451,6 +421,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -451,6 +421,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
451 if(logXlbmMap.get(xlbm) == null){ 421 if(logXlbmMap.get(xlbm) == null){
452 logXlbmMap.put(xlbm,xlbm); 422 logXlbmMap.put(xlbm,xlbm);
453 } 423 }
  424 + logLineMap.put(line.getLineCode(),line);
454 sf.append("<DLD>"); 425 sf.append("<DLD>");
455 sf.append("<RQ>"+date+"</RQ>"); 426 sf.append("<RQ>"+date+"</RQ>");
456 sf.append("<XLBM>"+xlbm+"</XLBM>"); 427 sf.append("<XLBM>"+xlbm+"</XLBM>");
@@ -513,7 +484,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -513,7 +484,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
513 str = sf.toString().replace("'","");// 去掉'号 484 str = sf.toString().replace("'","");// 去掉'号
514 results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str)); 485 results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str));
515 // 记录日志 486 // 记录日志
516 - result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str); 487 + result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str,logLineMap);
517 } 488 }
518 } 489 }
519 // 每per条线路上传后剩下的数据再上传 490 // 每per条线路上传后剩下的数据再上传
@@ -521,9 +492,9 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -521,9 +492,9 @@ public class TrafficManageServiceImpl implements TrafficManageService{
521 sf.append("</DLDS>"); 492 sf.append("</DLDS>");
522 str = sf.toString().replace("'","");// 去掉'号 493 str = sf.toString().replace("'","");// 去掉'号
523 results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str)); 494 results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str));
  495 + // 记录日志
  496 + result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str,logLineMap);
524 } 497 }
525 - // 记录日志  
526 - result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str);  
527 } catch (Exception e) { 498 } catch (Exception e) {
528 logger.error("setLD:",e); 499 logger.error("setLD:",e);
529 logFailure.append(e).append("<br/>"); 500 logFailure.append(e).append("<br/>");
@@ -558,21 +529,26 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -558,21 +529,26 @@ public class TrafficManageServiceImpl implements TrafficManageService{
558 * @param str 529 * @param str
559 */ 530 */
560 private String logRecord(Results results,HashMap logXlbmMap,HashMap logXlbmSuccessMap,HashMap logXlbmFailureMap,StringBuffer logSuccess, 531 private String logRecord(Results results,HashMap logXlbmMap,HashMap logXlbmSuccessMap,HashMap logXlbmFailureMap,StringBuffer logSuccess,
561 - StringBuffer logFailure,String str){ 532 + StringBuffer logFailure,String str,Map<String ,Line> logLineMap){
562 String result = "failure"; 533 String result = "failure";
  534 + String state;
563 // 记录日志 535 // 记录日志
564 if(results != null){ 536 if(results != null){
565 if(results.isSuccess()){// 上传成功 537 if(results.isSuccess()){// 上传成功
566 // 把上线成功的线路编码放入 logXlbmSuccessMap,并记录logSuccess 538 // 把上线成功的线路编码放入 logXlbmSuccessMap,并记录logSuccess
567 countSuccess += fillMailXlbmMap(logXlbmMap,logXlbmSuccessMap,logSuccess); 539 countSuccess += fillMailXlbmMap(logXlbmMap,logXlbmSuccessMap,logSuccess);
568 result = "success"; 540 result = "success";
  541 + state = "1";
569 }else{// 上传失败 542 }else{// 上传失败
570 // 把上线失败的线路编码放入 logXlbmFailureMap,并记录logFailure 543 // 把上线失败的线路编码放入 logXlbmFailureMap,并记录logFailure
571 countFailure += fillMailXlbmMap(logXlbmMap,logXlbmFailureMap,logFailure); 544 countFailure += fillMailXlbmMap(logXlbmMap,logXlbmFailureMap,logFailure);
572 result = "failure"; 545 result = "failure";
  546 + state = "0";
573 } 547 }
574 logger.info("setLD:"+str); 548 logger.info("setLD:"+str);
575 logger.info("setLD:"+result); 549 logger.info("setLD:"+result);
  550 + // 保存运管处上传记录
  551 + saveYgcUploadLog(logLineMap,str,TrafficManageServiceImpl.UPLOAD_TYPE_LD,state);
576 results = null; 552 results = null;
577 logXlbmMap = new HashMap(); 553 logXlbmMap = new HashMap();
578 } 554 }
@@ -946,7 +922,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -946,7 +922,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{
946 @Override 922 @Override
947 public String setSKB(String ids) { 923 public String setSKB(String ids) {
948 String result = "上传失败,"; 924 String result = "上传失败,";
949 - StringBuffer sBuffer = new StringBuffer(); 925 + StringBuffer sBuffer = new StringBuffer("<SKBs>");
950 DecimalFormat df = new DecimalFormat("######0.000"); 926 DecimalFormat df = new DecimalFormat("######0.000");
951 Map<String,String> lsStationCode2NameMap = null; 927 Map<String,String> lsStationCode2NameMap = null;
952 Map<String, Integer> lsStationName2YgcNumber = null; 928 Map<String, Integer> lsStationName2YgcNumber = null;
@@ -962,7 +938,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -962,7 +938,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{
962 LineInformation lineInformation; 938 LineInformation lineInformation;
963 Iterator<TTInfoDetail> ttInfoDetailIterator; 939 Iterator<TTInfoDetail> ttInfoDetailIterator;
964 HashMap<String,Object> param ; 940 HashMap<String,Object> param ;
965 - sBuffer.append("<SKBs>");  
966 HashMap<String,String> paramMap; 941 HashMap<String,String> paramMap;
967 HashMap<String,String> otherMap = new HashMap<>(); 942 HashMap<String,String> otherMap = new HashMap<>();
968 // 线路编码、周几执行、发车站点名称、发车站点序号、到达站点名称、到达站点序号 943 // 线路编码、周几执行、发车站点名称、发车站点序号、到达站点名称、到达站点序号
@@ -1113,29 +1088,103 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -1113,29 +1088,103 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1113 logger.info("setSKB:"+"ttinfoId:"+ttinfoId+";当前站点版本号:"+lineVersion+";查询历史站点路由:"+lsStationCode2NameMap+";查询历史站点编号:"+lsStationName2YgcNumber); 1088 logger.info("setSKB:"+"ttinfoId:"+ttinfoId+";当前站点版本号:"+lineVersion+";查询历史站点路由:"+lsStationCode2NameMap+";查询历史站点编号:"+lsStationName2YgcNumber);
1114 } 1089 }
1115 sBuffer.append("</SKBs>"); 1090 sBuffer.append("</SKBs>");
1116 - if(ssop.setSKB(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){  
1117 - result = "上传成功";  
1118 - SKBUploadLogger skbUploadLogger ;  
1119 - SysUser user = SecurityUtils.getCurrentUser();  
1120 - // 保存时刻表上传记录  
1121 - for(TTInfo ttInfo1 : ttinfoList){  
1122 - skbUploadLogger = new SKBUploadLogger();  
1123 - skbUploadLogger.setTtInfo(ttInfo1);  
1124 - skbUploadLogger.setUser(user);  
1125 - skbUploadLoggerRepository.save(skbUploadLogger);  
1126 - }  
1127 - } 1091 + String state;// 是否上传成功
  1092 + if(ssop.setSKB(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){
  1093 + result = "上传成功";
  1094 + state = "1";
  1095 + }else{// 上传失败
  1096 + result = "上传失败";
  1097 + state = "0";
  1098 + }
  1099 + // 保存运管处上传记录
  1100 + saveYgcUploadLog(ttinfoList,sBuffer.toString(),TrafficManageServiceImpl.UPLOAD_TYPE_SKB,state);
1128 } catch (Exception e) { 1101 } catch (Exception e) {
1129 logger.error("setSKB:", e); 1102 logger.error("setSKB:", e);
1130 e.printStackTrace(); 1103 e.printStackTrace();
1131 }finally{ 1104 }finally{
1132 - logger.info("setSKB:"+sBuffer.toString());  
1133 - logger.info("setSKB:"+result); 1105 + logger.info("setSKB:"+sBuffer.toString());
  1106 + logger.info("setSKB:"+result);
1134 } 1107 }
1135 return result; 1108 return result;
1136 } 1109 }
1137 1110
1138 /** 1111 /**
  1112 + * 保存上传运管处的日志
  1113 + * @param obj 参数
  1114 + * @param type 日志类型
  1115 + * @param xml 上传参数
  1116 + */
  1117 + private void saveYgcUploadLog(Object obj,String xml,String type,String state){
  1118 + SKBUploadLogger skbUploadLogger = new SKBUploadLogger();
  1119 + SysUser user;
  1120 + // 如果不是人为上传,SysUser则为空,设置上传人员为管理员
  1121 + if(SecurityContextHolder.getContext() == null || SecurityContextHolder.getContext().getAuthentication() == null){
  1122 + user = new SysUser();
  1123 + user.setId(1);
  1124 + }else{// 获取上传人员
  1125 + user = SecurityUtils.getCurrentUser();
  1126 + }
  1127 + // 最大的字符长度
  1128 + int maxLength = 60000;
  1129 + int cutLength = 50000;// 需要截取的字符长度
  1130 + String xml_sub = null;
  1131 + skbUploadLogger.setType(type);// 设置类型
  1132 + // 判断xml是否超长,如果超长,则截取
  1133 + if(xml != null && xml.length() > maxLength){
  1134 + int xmlLength = xml.length();
  1135 + int cutCount = xmlLength / cutLength + (xmlLength % cutLength > 0 ? 1 : 0);
  1136 + if(cutCount > 2){
  1137 + xml = "由于上传参数内容超长,请查看服务器的系统日志";
  1138 + }else if(cutCount == 2){
  1139 + xml_sub =xml.substring(cutLength);
  1140 + xml = xml.substring(0,cutLength);
  1141 + }else{
  1142 + // 不做处理
  1143 + }
  1144 + }
  1145 + skbUploadLogger.setUploadXml(xml);// 上传的参数
  1146 + skbUploadLogger.setUploadXmlSub(xml_sub);
  1147 + skbUploadLogger.setState(state);// 状态:是否成功
  1148 + skbUploadLogger.setUser(user);
  1149 + // 时刻表
  1150 + if(type.equals(TrafficManageServiceImpl.UPLOAD_TYPE_SKB)){
  1151 + List<TTInfo> ttInfoList = (List<TTInfo>)obj;
  1152 + String name = "";
  1153 + Line line = null;
  1154 + for(TTInfo ttInfo : ttInfoList){
  1155 + name += ttInfo.getName() + " ";
  1156 + line = ttInfo.getXl();
  1157 + }
  1158 + skbUploadLogger.setLine(line);
  1159 + skbUploadLogger.setUser(user);
  1160 + skbUploadLogger.setName(name);
  1161 + skbUploadLoggerRepository.save(skbUploadLogger);
  1162 + }else{
  1163 + if(type.equals(TrafficManageServiceImpl.UPLOAD_TYPE_XL)){
  1164 + Line line = (Line) obj;
  1165 + String name = line.getName() + "线路停靠站上传";
  1166 + skbUploadLogger.setLine(line);
  1167 + skbUploadLogger.setName(name);
  1168 + skbUploadLoggerRepository.save(skbUploadLogger);
  1169 + }else if(type.equals(TrafficManageServiceImpl.UPLOAD_TYPE_LD)){
  1170 + Map<String ,Line> logLineMap = (Map<String ,Line> )obj;
  1171 + for (String key : logLineMap.keySet()) {
  1172 + Line line = logLineMap.get(key);
  1173 + String name = line.getName() + "路单上传";
  1174 + skbUploadLogger = new SKBUploadLogger();
  1175 + skbUploadLogger.setType(type);// 设置类型
  1176 + skbUploadLogger.setUploadXml(xml);// 上传的参数
  1177 + skbUploadLogger.setUploadXmlSub(xml_sub);
  1178 + skbUploadLogger.setState(state);// 状态:是否成功
  1179 + skbUploadLogger.setUser(user);
  1180 + skbUploadLogger.setLine(line);
  1181 + skbUploadLogger.setName(name);
  1182 + skbUploadLoggerRepository.save(skbUploadLogger);
  1183 + }
  1184 + }
  1185 + }
  1186 + }
  1187 + /**
1139 * 上传线路人员车辆配置信息 1188 * 上传线路人员车辆配置信息
1140 */ 1189 */
1141 @Override 1190 @Override
@@ -1640,4 +1689,50 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -1640,4 +1689,50 @@ public class TrafficManageServiceImpl implements TrafficManageService{
1640 } 1689 }
1641 return tempStationName2YgcNumber; 1690 return tempStationName2YgcNumber;
1642 } 1691 }
  1692 +
  1693 + private String getSetXlXml(Line line,LineInformation lineInformation){
  1694 + StringBuffer sBuffer = new StringBuffer();
  1695 + List<StationRoute> upStationsList ;// 上行站点路由集
  1696 + List<StationRoute> downStationsList;// 下行站点路由集
  1697 + List<Object[]> downPointList;// 下行站点集
  1698 + List<Object[]> upPointList;// 上行站点集
  1699 + sBuffer.append("<XLs>");
  1700 + sBuffer.append("<XL>");
  1701 + sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(line.getId())).append("</XLBM>");
  1702 + sBuffer.append("<XLMC>").append(line.getName()).append("</XLMC>");
  1703 + sBuffer.append("<QDZ>").append(line.getStartStationName()).append("</QDZ>");
  1704 + sBuffer.append("<ZDZ>").append(line.getEndStationName()).append("</ZDZ>");
  1705 + sBuffer.append("<QZLC>").append(lineInformation.getUpMileage()).append("</QZLC>");
  1706 + sBuffer.append("<ZQLC>").append(lineInformation.getDownMileage()).append("</ZQLC>");
  1707 + sBuffer.append("<XLGH>").append(line.getLinePlayType()).append("</XLGH>");
  1708 + sBuffer.append("<UPDATE_DATE>").append(sdfnyr.format(new Date())).append("</UPDATE_DATE>");
  1709 + // 循环添加站点信息
  1710 + sBuffer.append("<StationList>");
  1711 + // 先查上行
  1712 + upStationsList = stationRouteRepository.findByLine(line.getLineCode(), 0);
  1713 + Map<String, Integer> stationNumMap = getStationName2YgcNumberMap(line.getLineCode());
  1714 + int startId = 1;
  1715 + startId = packagStationXml(upStationsList, sBuffer, startId,stationNumMap);
  1716 + // 环线不查下行
  1717 + if(line.getLinePlayType() != 1){
  1718 + // 再查下行
  1719 + downStationsList = stationRouteRepository.findByLine(line.getLineCode(), 1);
  1720 + packagStationXml(downStationsList, sBuffer, startId,stationNumMap);
  1721 + }
  1722 + sBuffer.append("</StationList>");
  1723 + // 循环添加站点点位信息
  1724 + sBuffer.append("<LinePointList>");
  1725 + upPointList = sectionRepository.getSectionDirByLineId(line.getId(),0);
  1726 + startId = 1;
  1727 + startId = packagStationPointXml(upPointList, sBuffer, startId);
  1728 + // 环线不查下行
  1729 + if(line.getLinePlayType() != 1){
  1730 + downPointList = sectionRepository.getSectionDirByLineId(line.getId(),1);
  1731 + packagStationPointXml(downPointList, sBuffer, startId);
  1732 + }
  1733 + sBuffer.append("</LinePointList>");
  1734 + sBuffer.append("</XL>");
  1735 + sBuffer.append("</XLs>");
  1736 + return sBuffer.toString();
  1737 + }
1643 } 1738 }
src/main/resources/static/pages/trafficManage/js/timeTempletUploadRecord.js
@@ -34,7 +34,7 @@ @@ -34,7 +34,7 @@
34 $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions); 34 $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions);
35 35
36 }); 36 });
37 - 37 +
38 // 填充分公司下拉框选择值 38 // 填充分公司下拉框选择值
39 function setbrancheCompanySelectOptions(){ 39 function setbrancheCompanySelectOptions(){
40 40
@@ -197,6 +197,12 @@ @@ -197,6 +197,12 @@
197 $(".autocompleter").css("width", 197 $(".autocompleter").css("width",
198 $("#line_name").css("width")); 198 $("#line_name").css("width"));
199 199
  200 + // 设置上传类型
  201 + var uploadStateOptions = '<option value="1">时刻表上传</option>'
  202 + +'<option value="2">线路停靠站上传</option>'
  203 + +'<option value="3">路单上传</option>';
  204 + $('#uploadType').html(uploadStateOptions).on('change', searchM);
  205 +
200 searchM(null, true); 206 searchM(null, true);
201 // 绑定查询事件 207 // 绑定查询事件
202 $("#search").click(searchM); 208 $("#search").click(searchM);
@@ -268,4 +274,12 @@ @@ -268,4 +274,12 @@
268 } 274 }
269 }); 275 });
270 } 276 }
271 -})();  
272 \ No newline at end of file 277 \ No newline at end of file
  278 +
  279 + template.helper("cutXml", function(xml) {
  280 + return xml ? xml.substring(0,20) + "..." : "";
  281 + });
  282 +})();
  283 +function showXml(el){
  284 + window.sessionStorage.setItem('upload_ygc_xml',JSON.stringify($(el).val()));
  285 + $.get('show_xml.html', function(m){$(pjaxContainer).append(m);});
  286 +}
273 \ No newline at end of file 287 \ No newline at end of file
src/main/resources/static/pages/trafficManage/timeTempletUploadRecord.html
@@ -10,16 +10,19 @@ @@ -10,16 +10,19 @@
10 <div class="col-md-12"> 10 <div class="col-md-12">
11 <ul class="breadcrumb"> 11 <ul class="breadcrumb">
12 <li>筛选数据:</li> 12 <li>筛选数据:</li>
13 - <li><select name="ttInfo.xl.company_eq" class="form-control" id="companySelect"></select></li>  
14 - <li><select name="ttInfo.xl.brancheCompany_eq" class="form-control" id="brancheCompanySelect"></select></li> 13 + <li><select name="line.company_eq" class="form-control" id="companySelect"></select></li>
  14 + <li><select name="line.brancheCompany_eq" class="form-control" id="brancheCompanySelect"></select></li>
15 <li>日期:</li> 15 <li>日期:</li>
16 - <li><input type="text" class="inputCommon dateTime" name="createDate_date_eq" id="dateInput" placeholder="日期"></li> 16 + <li><input type="text" class="inputCommon dateTime" name="createDate_eq" id="dateInput" placeholder="日期">
  17 + </li>
17 <li>线路名称:</li> 18 <li>线路名称:</li>
18 <li><input type="text" class="form-control form-filter input-sm" 19 <li><input type="text" class="form-control form-filter input-sm"
19 - name="ttInfo.xl.name_eq" id="line_name" maxlength="40" /></li> 20 + name="line.name_eq" id="line_name" maxlength="40" /></li>
20 <li>上传用户:</li> 21 <li>上传用户:</li>
21 <li><input type="text" class="inputCommon inputCarPlate" 22 <li><input type="text" class="inputCommon inputCarPlate"
22 name="user.name_like" maxlength="40" /></li> 23 name="user.name_like" maxlength="40" /></li>
  24 + <li>上传类型:</li>
  25 + <li><select name="type_eq" class="form-control" id="uploadType"></select></li>
23 <li><a class="btn btn-circle blue" id="search">筛选</a></li> 26 <li><a class="btn btn-circle blue" id="search">筛选</a></li>
24 </ul> 27 </ul>
25 </div> 28 </div>
@@ -37,6 +40,9 @@ @@ -37,6 +40,9 @@
37 <th>线路</th> 40 <th>线路</th>
38 <th>模板名称</th> 41 <th>模板名称</th>
39 <th>上传人员</th> 42 <th>上传人员</th>
  43 + <th>上传参数</th>
  44 + <th>上传类型</th>
  45 + <th>是否成功</th>
40 <th>上传时间</th> 46 <th>上传时间</th>
41 </tr> 47 </tr>
42 </thead> 48 </thead>
@@ -57,90 +63,121 @@ @@ -57,90 +63,121 @@
57 {{i+1}} 63 {{i+1}}
58 </td> 64 </td>
59 <td> 65 <td>
60 - {{if obj.ttInfo.xl.company == '55'}} 66 + {{if obj.line.company == '55'}}
61 上南公司 67 上南公司
62 - {{else if obj.ttInfo.xl.company == '22'}} 68 + {{else if obj.line.company == '22'}}
63 金高公司 69 金高公司
64 - {{else if obj.ttInfo.xl.company == '05'}} 70 + {{else if obj.line.company == '05'}}
65 杨高公司 71 杨高公司
66 - {{else if obj.ttInfo.xl.company == '26'}} 72 + {{else if obj.line.company == '26'}}
67 南汇公司 73 南汇公司
68 - {{else if obj.ttInfo.xl.company == '77'}} 74 + {{else if obj.line.company == '77'}}
69 闵行公司 75 闵行公司
70 {{/if}} 76 {{/if}}
71 </td> 77 </td>
72 <td> 78 <td>
73 - {{if obj.ttInfo.xl.company == '55'}} 79 + {{if obj.line.company == '55'}}
74 80
75 - {{if obj.ttInfo.xl.brancheCompany == '1'}} 81 + {{if obj.line.brancheCompany == '1'}}
76 上南二分公司 82 上南二分公司
77 - {{else if obj.ttInfo.xl.brancheCompany == '2'}} 83 + {{else if obj.line.brancheCompany == '2'}}
78 上南三分公司 84 上南三分公司
79 - {{else if obj.ttInfo.xl.brancheCompany == '3'}} 85 + {{else if obj.line.brancheCompany == '3'}}
80 上南六分公司 86 上南六分公司
81 - {{else if obj.ttInfo.xl.brancheCompany == '4'}} 87 + {{else if obj.line.brancheCompany == '4'}}
82 上南一分公司 88 上南一分公司
83 {{/if}} 89 {{/if}}
84 90
85 - {{else if obj.ttInfo.xl.company == '22'}} 91 + {{else if obj.line.company == '22'}}
86 92
87 - {{if obj.ttInfo.xl.brancheCompany == '1'}} 93 + {{if obj.line.brancheCompany == '1'}}
88 四分公司 94 四分公司
89 - {{else if obj.ttInfo.xl.brancheCompany == '2'}} 95 + {{else if obj.line.brancheCompany == '2'}}
90 二分公司 96 二分公司
91 - {{else if obj.ttInfo.xl.brancheCompany == '3'}} 97 + {{else if obj.line.brancheCompany == '3'}}
92 三分公司 98 三分公司
93 - {{else if obj.ttInfo.xl.brancheCompany == '5'}} 99 + {{else if obj.line.brancheCompany == '5'}}
94 一分公司 100 一分公司
95 {{/if}} 101 {{/if}}
96 102
97 - {{else if obj.ttInfo.xl.company == '05'}} 103 + {{else if obj.line.company == '05'}}
98 104
99 - {{if obj.ttInfo.xl.brancheCompany == '1'}} 105 + {{if obj.line.brancheCompany == '1'}}
100 川沙分公司 106 川沙分公司
101 - {{else if obj.ttInfo.xl.brancheCompany == '2'}} 107 + {{else if obj.line.brancheCompany == '2'}}
102 金桥分公司 108 金桥分公司
103 - {{else if obj.ttInfo.xl.brancheCompany == '3'}} 109 + {{else if obj.line.brancheCompany == '3'}}
104 芦潮港分公司 110 芦潮港分公司
105 - {{else if obj.ttInfo.xl.brancheCompany == '5'}} 111 + {{else if obj.line.brancheCompany == '5'}}
106 杨高分公司 112 杨高分公司
107 - {{else if obj.ttInfo.xl.brancheCompany == '6'}} 113 + {{else if obj.line.brancheCompany == '6'}}
108 周浦分公司 114 周浦分公司
109 {{/if}} 115 {{/if}}
110 116
111 - {{else if obj.ttInfo.xl.company == '26'}} 117 + {{else if obj.line.company == '26'}}
112 118
113 - {{if obj.ttInfo.xl.brancheCompany == '1'}} 119 + {{if obj.line.brancheCompany == '1'}}
114 南汇一分 120 南汇一分
115 - {{else if obj.ttInfo.xl.brancheCompany == '2'}} 121 + {{else if obj.line.brancheCompany == '2'}}
116 南汇二分 122 南汇二分
117 - {{else if obj.ttInfo.xl.brancheCompany == '3'}} 123 + {{else if obj.line.brancheCompany == '3'}}
118 南汇三分 124 南汇三分
119 - {{else if obj.ttInfo.xl.brancheCompany == '4'}} 125 + {{else if obj.line.brancheCompany == '4'}}
120 南汇维修公司 126 南汇维修公司
121 - {{else if obj.ttInfo.xl.brancheCompany == '5'}} 127 + {{else if obj.line.brancheCompany == '5'}}
122 南汇公司 128 南汇公司
123 {{/if}} 129 {{/if}}
124 130
125 {{/if}} 131 {{/if}}
126 </td> 132 </td>
127 <td> 133 <td>
128 - {{obj.ttInfo.xl.name}} 134 + {{obj.line.name}}
129 </td> 135 </td>
130 <td> 136 <td>
131 - {{obj.ttInfo.name}} 137 + {{obj.name}}
132 </td> 138 </td>
133 <td> 139 <td>
134 {{obj.user.name}} 140 {{obj.user.name}}
135 </td> 141 </td>
136 <td> 142 <td>
  143 + {{cutXml(obj.uploadXml)}}
  144 + {{if obj.uploadXml != null && obj.uploadXml != ''}}
  145 + {{if obj.state == '1'}}
  146 + <button type="button" class="btn btn-primary" value="{{obj.uploadXml}}{{obj.uploadXmlSub}}" onclick="showXml(this)">
  147 + 查看
  148 + </button>
  149 + {{else if obj.state == '0'}}
  150 + <button type="button" class="btn btn-danger" value="{{obj.uploadXml}}{{obj.uploadXmlSub}}" onclick="showXml(this)">
  151 + 查看
  152 + </button>
  153 + {{/if}}
  154 + {{/if}}
  155 +
  156 + </td>
  157 + <td>
  158 + {{if obj.type == '1'}}
  159 + 时刻表上传
  160 + {{else if obj.type == '2'}}
  161 + 线路停靠站上传
  162 + {{else if obj.type == '3'}}
  163 + 路单上传
  164 + {{/if}}
  165 + </td>
  166 + <td>
  167 + {{if obj.state == '1'}}
  168 + 成功
  169 + {{else if obj.state == '0'}}
  170 + 失败
  171 + {{/if}}
  172 + </td>
  173 + <td>
137 {{obj.createDate}} 174 {{obj.createDate}}
138 </td> 175 </td>
139 </tr> 176 </tr>
140 {{/each}} 177 {{/each}}
141 {{if list.length == 0}} 178 {{if list.length == 0}}
142 <tr class="muted"> 179 <tr class="muted">
143 - <td colspan=7 style="text-align: center;"><h6>没有找到相关数据</h6></td> 180 + <td colspan=10 style="text-align: center;"><h6>没有找到相关数据</h6></td>
144 </tr> 181 </tr>
145 {{/if}} 182 {{/if}}
146 </script> 183 </script>