Commit 72a500709e371721f9324af6ce7ce0ab2a00d962
1 parent
65a3b3b6
1.路单上传道运局和道运中心上传分开,先传道运局后传道运中心,道运局有10次重传
Showing
1 changed file
with
220 additions
and
51 deletions
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
| @@ -19,6 +19,7 @@ import com.bsth.repository.traffic.SKBUploadLoggerRepository; | @@ -19,6 +19,7 @@ import com.bsth.repository.traffic.SKBUploadLoggerRepository; | ||
| 19 | import com.bsth.security.util.SecurityUtils; | 19 | import com.bsth.security.util.SecurityUtils; |
| 20 | import com.bsth.service.TrafficManageService; | 20 | import com.bsth.service.TrafficManageService; |
| 21 | import com.bsth.service.traffic.YgcBasicDataService; | 21 | import com.bsth.service.traffic.YgcBasicDataService; |
| 22 | +import com.bsth.util.IpUtils; | ||
| 22 | import com.bsth.util.TimeUtils; | 23 | import com.bsth.util.TimeUtils; |
| 23 | import com.bsth.util.db.DBUtils_MS; | 24 | import com.bsth.util.db.DBUtils_MS; |
| 24 | import com.bsth.webService.trafficManage.org.tempuri.Results; | 25 | import com.bsth.webService.trafficManage.org.tempuri.Results; |
| @@ -28,9 +29,11 @@ import com.bsth.webService.trafficManage.qp.WebServiceSoap_PortType; | @@ -28,9 +29,11 @@ import com.bsth.webService.trafficManage.qp.WebServiceSoap_PortType; | ||
| 28 | import org.apache.commons.lang.StringEscapeUtils; | 29 | import org.apache.commons.lang.StringEscapeUtils; |
| 29 | import org.apache.commons.lang.StringUtils; | 30 | import org.apache.commons.lang.StringUtils; |
| 30 | import org.apache.commons.lang.time.DateUtils; | 31 | import org.apache.commons.lang.time.DateUtils; |
| 32 | +import org.joda.time.DateTime; | ||
| 31 | import org.slf4j.Logger; | 33 | import org.slf4j.Logger; |
| 32 | import org.slf4j.LoggerFactory; | 34 | import org.slf4j.LoggerFactory; |
| 33 | import org.springframework.beans.factory.annotation.Autowired; | 35 | import org.springframework.beans.factory.annotation.Autowired; |
| 36 | +import org.springframework.beans.factory.annotation.Value; | ||
| 34 | import org.springframework.data.domain.Sort; | 37 | import org.springframework.data.domain.Sort; |
| 35 | import org.springframework.data.domain.Sort.Direction; | 38 | import org.springframework.data.domain.Sort.Direction; |
| 36 | import org.springframework.security.core.context.SecurityContextHolder; | 39 | import org.springframework.security.core.context.SecurityContextHolder; |
| @@ -127,6 +130,9 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -127,6 +130,9 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 127 | @Autowired | 130 | @Autowired |
| 128 | private SendEmailController sendEmailController; | 131 | private SendEmailController sendEmailController; |
| 129 | 132 | ||
| 133 | + @Autowired | ||
| 134 | + private LineVersionsRepository lineVersionsRepository; | ||
| 135 | + | ||
| 130 | // 运管处上传接口 | 136 | // 运管处上传接口 |
| 131 | private com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap webServiceSoapUp; | 137 | private com.bsth.webService.trafficManage.up.org.tempuri.WebServiceSoap webServiceSoapUp; |
| 132 | private WebServiceSoap ssop ; | 138 | private WebServiceSoap ssop ; |
| @@ -168,8 +174,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -168,8 +174,11 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 168 | private final String userNameUp = "user"; | 174 | private final String userNameUp = "user"; |
| 169 | // 密码 | 175 | // 密码 |
| 170 | private final String passwordUp = "user"; | 176 | private final String passwordUp = "user"; |
| 177 | + | ||
| 171 | // 接收邮件人 | 178 | // 接收邮件人 |
| 172 | - private final String emailSendToAddress = "175912183@qq.com"; | 179 | + @Value("${waybill.emails}") |
| 180 | + private String[] emails; | ||
| 181 | + | ||
| 173 | // 记录路单上线的成功、失败线路数 | 182 | // 记录路单上线的成功、失败线路数 |
| 174 | private Integer countSuccess,countFailure; | 183 | private Integer countSuccess,countFailure; |
| 175 | 184 | ||
| @@ -414,7 +423,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -414,7 +423,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 414 | * @return | 423 | * @return |
| 415 | */ | 424 | */ |
| 416 | public String setLD(String theDate){ | 425 | public String setLD(String theDate){ |
| 417 | - return uploadLD(theDate); | 426 | + uploadLD(theDate); |
| 427 | + return uploadLD1(theDate); | ||
| 418 | } | 428 | } |
| 419 | 429 | ||
| 420 | /** | 430 | /** |
| @@ -422,19 +432,213 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -422,19 +432,213 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 422 | * @return | 432 | * @return |
| 423 | */ | 433 | */ |
| 424 | public String setLD(){ | 434 | public String setLD(){ |
| 425 | - return uploadLD(null); | 435 | + uploadLD(null); |
| 436 | + return uploadLD1(null); | ||
| 426 | } | 437 | } |
| 438 | + | ||
| 427 | /** | 439 | /** |
| 428 | * 上传路单 | 440 | * 上传路单 |
| 429 | * @return 上传成功标识 | 441 | * @return 上传成功标识 |
| 430 | */ | 442 | */ |
| 431 | private String uploadLD(String theDate){ | 443 | private String uploadLD(String theDate){ |
| 444 | + // 取昨天 的日期 | ||
| 445 | + String date = theDate == null ?sdfnyr.format(DateUtils.addDays(new Date(), -1)) : theDate; | ||
| 446 | + StringBuffer sf = new StringBuffer(); | ||
| 447 | + Results results = null; | ||
| 448 | + String str = "", xlbm = null, oldXlbm = null; | ||
| 449 | + List<Map<String,Object>> listGroup = null; | ||
| 450 | + int scount = 0, ccount = 0; | ||
| 451 | + long start = System.currentTimeMillis(); | ||
| 452 | + try { | ||
| 453 | + // 计数器 | ||
| 454 | + int counter = 0; | ||
| 455 | + // 每几条线路上传一次路单 | ||
| 456 | + int per = 10; | ||
| 457 | + List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date); | ||
| 458 | + listGroup = scheduleRealInfoRepository.setLDGroup(date); | ||
| 459 | + Map<String,Object> map = new HashMap(); | ||
| 460 | + HashMap<String,String> paramMap; | ||
| 461 | + HashMap<String,String> otherMap = new HashMap(); | ||
| 462 | + | ||
| 463 | + // 车辆内部编码和车牌做映射 | ||
| 464 | + Map<String, String> inside2plate = new HashMap<>(); | ||
| 465 | + Iterable<Cars> cars = carsRepository.findAll(); | ||
| 466 | + for (Cars car : cars) { | ||
| 467 | + inside2plate.put(car.getInsideCode(), car.getCarPlate()); | ||
| 468 | + } | ||
| 469 | + | ||
| 470 | + // 线路编码和线路信息映射 | ||
| 471 | + Map<String, Line> code2line = new HashMap<>(); | ||
| 472 | + Iterable<Line> lines = lineRepository.findAll(); | ||
| 473 | + for (Line line : lines) { | ||
| 474 | + code2line.put(line.getLineCode(), line); | ||
| 475 | + } | ||
| 476 | + | ||
| 477 | + // 线路编码和线路版本映射(电子路单日期) | ||
| 478 | + Map<String, Integer> code2version = new HashMap<>(); | ||
| 479 | + Iterable<LineVersions> versions = lineVersionsRepository.findLineVersionsByDate((int)(DateTime.parse(date).getMillis() / 1000)); | ||
| 480 | + for (LineVersions version : versions) { | ||
| 481 | + code2version.put(version.getLineCode(), version.getVersions()); | ||
| 482 | + } | ||
| 483 | + | ||
| 484 | + Map<String, Integer> stationNumMap = null; | ||
| 485 | + for(Map<String,Object> schRealInfo:listGroup){ | ||
| 486 | + if(schRealInfo != null){ | ||
| 487 | + // 获取线路是否使用标识,如果未使用,则不查该线路数据 | ||
| 488 | + String lineCode = schRealInfo.get("xlBm")+""; | ||
| 489 | + Line line = code2line.get(lineCode); | ||
| 490 | + if(line == null || line.getInUse() == null || line.getInUse() == 0){ | ||
| 491 | + ccount++; | ||
| 492 | + continue; | ||
| 493 | + } | ||
| 494 | + if(counter % per == 0){ | ||
| 495 | + sf = new StringBuffer(); | ||
| 496 | + sf.append("<DLDS>"); | ||
| 497 | + } | ||
| 498 | + counter ++; | ||
| 499 | + xlbm = BasicData.lineCode2ShangHaiCodeMap.get(lineCode); | ||
| 500 | + if (!xlbm.equals(oldXlbm)) { | ||
| 501 | + oldXlbm = xlbm; | ||
| 502 | + Integer ver = code2version.get(lineCode); | ||
| 503 | + if (ver != null) { | ||
| 504 | + stationNumMap = getLsStationRoute(lineCode, ver); | ||
| 505 | + } | ||
| 506 | + } | ||
| 507 | + | ||
| 508 | + sf.append("<DLD>"); | ||
| 509 | + sf.append("<RQ>").append(date).append("</RQ>"); | ||
| 510 | + sf.append("<XLBM>").append(xlbm).append("</XLBM>"); | ||
| 511 | + sf.append("<LPBH>").append(schRealInfo.get("lpName")).append("</LPBH>"); | ||
| 512 | + sf.append("<CPH>").append(inside2plate.get(schRealInfo.get("clZbh"))).append("</CPH>"); | ||
| 513 | + sf.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>"); | ||
| 514 | + sf.append("<LDList>"); | ||
| 515 | + for(ScheduleRealInfo scheduleRealInfo:list){ | ||
| 516 | + if((schRealInfo.get("xlBm")+"").equals(scheduleRealInfo.getXlBm()) && (schRealInfo.get("lpName")+"") | ||
| 517 | + .equals(scheduleRealInfo.getLpName()) | ||
| 518 | + && (schRealInfo.get("clZbh")+"").equals(scheduleRealInfo.getClZbh())){ | ||
| 519 | + | ||
| 520 | + if(scheduleRealInfo.isDestroy()){ | ||
| 521 | + if(scheduleRealInfo.isReissue()){ | ||
| 522 | + scheduleRealInfo.setFcsjActualAll(scheduleRealInfo.getDfsj()); | ||
| 523 | + scheduleRealInfo.setZdsjActualAll(scheduleRealInfo.getZdsj()); | ||
| 524 | + } | ||
| 525 | + else | ||
| 526 | + continue; | ||
| 527 | + } | ||
| 528 | + | ||
| 529 | + if(scheduleRealInfo.getBcType().equals("in") | ||
| 530 | + || scheduleRealInfo.getBcType().equals("out")){ | ||
| 531 | + continue; | ||
| 532 | + } | ||
| 533 | + | ||
| 534 | + sf.append("<LD>"); | ||
| 535 | + sf.append("<SJGH>").append(scheduleRealInfo.getjGh()).append("</SJGH>"); | ||
| 536 | + sf.append("<SXX>").append(scheduleRealInfo.getXlDir()).append("</SXX>"); | ||
| 537 | + sf.append("<FCZDMC>").append(scheduleRealInfo.getQdzName()).append("</FCZDMC>"); | ||
| 538 | + // 起点站的参数 | ||
| 539 | + otherMap.put("stationMark","B"); | ||
| 540 | + paramMap = packageYgcStationNumParam(scheduleRealInfo,otherMap); | ||
| 541 | + sf.append("<FCZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,stationNumMap)).append("</FCZDXH>"); | ||
| 542 | + sf.append("<FCZDBM>").append(scheduleRealInfo.getQdzCode()).append("</FCZDBM>"); | ||
| 543 | + sf.append("<JHFCSJ>").append(scheduleRealInfo.getFcsj()).append("</JHFCSJ>"); | ||
| 544 | + sf.append("<DFSJ>").append(scheduleRealInfo.getDfsj()).append("</DFSJ>"); | ||
| 545 | + sf.append("<SJFCSJ>").append(scheduleRealInfo.getFcsjActual()).append("</SJFCSJ>"); | ||
| 546 | + sf.append("<FCZDLX></FCZDLX>"); | ||
| 547 | + sf.append("<DDZDMC>").append(scheduleRealInfo.getZdzName()).append("</DDZDMC>"); | ||
| 548 | + // 终点站的参数 | ||
| 549 | + otherMap.put("stationMark","E"); | ||
| 550 | + paramMap = packageYgcStationNumParam(scheduleRealInfo,otherMap); | ||
| 551 | + sf.append("<DDZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,stationNumMap)).append("</DDZDXH>"); | ||
| 552 | + sf.append("<DDZDBM>").append(scheduleRealInfo.getZdzCode()).append("</DDZDBM>"); | ||
| 553 | + sf.append("<JHDDSJ>").append(scheduleRealInfo.getZdsj()).append("</JHDDSJ>"); | ||
| 554 | + sf.append("<SJDDSJ>").append(scheduleRealInfo.getZdsjActual()).append("</SJDDSJ>"); | ||
| 555 | + sf.append("<DDZDLX></DDZDLX>"); | ||
| 556 | + sf.append("<LDSCBZ>0</LDSCBZ>"); | ||
| 557 | + sf.append("<DDBZ></DDBZ>"); | ||
| 558 | + sf.append("</LD>"); | ||
| 559 | + } | ||
| 560 | + } | ||
| 561 | + sf.append("</LDList>"); | ||
| 562 | + sf.append("</DLD>"); | ||
| 563 | + } | ||
| 564 | + if(counter % per == per - 1){ | ||
| 565 | + sf.append("</DLDS>"); | ||
| 566 | + // 去掉'号 | ||
| 567 | + str = sf.toString().replace("'",""); | ||
| 568 | + scount += invokeSetLD(str, counter); | ||
| 569 | + counter = 0; | ||
| 570 | + } | ||
| 571 | + } | ||
| 572 | + // 每per条线路上传后剩下的数据再上传 | ||
| 573 | + if(counter > 0){ | ||
| 574 | + sf.append("</DLDS>"); | ||
| 575 | + // 去掉'号 | ||
| 576 | + str = sf.toString().replace("'",""); | ||
| 577 | + scount += invokeSetLD(str, counter); | ||
| 578 | + } | ||
| 579 | + } catch (Exception e) { | ||
| 580 | + e.printStackTrace(); | ||
| 581 | + logger.error("setLD:", e); | ||
| 582 | + } finally { | ||
| 583 | + try { | ||
| 584 | + for (String email : emails) { | ||
| 585 | + //发送邮件 | ||
| 586 | + EmailBean mail = new EmailBean(); | ||
| 587 | + mail.setSubject(IpUtils.getLocalIpAddress() +":路单日志数据"+date); | ||
| 588 | + mail.setContent("总数:" + (listGroup == null ? 0 : listGroup.size()) + "<br/>成功数:" + scount + "<br/>跳过数:" + ccount + "<br/>耗时:" + (System.currentTimeMillis() - start)); | ||
| 589 | + sendEmailController.sendMail(email, mail); | ||
| 590 | + } | ||
| 591 | + logger.info("setLD-sendMail:邮件发送成功!"); | ||
| 592 | + } catch (Exception e) { | ||
| 593 | + e.printStackTrace(); | ||
| 594 | + logger.error("setLD-sendMail:",e); | ||
| 595 | + } | ||
| 596 | + } | ||
| 597 | + return "success"; | ||
| 598 | + } | ||
| 599 | + | ||
| 600 | + /** | ||
| 601 | + * 调用运管处电子路单接口,如果上传失败或有网络问题,最多执行10次 | ||
| 602 | + * @param xml 拼接的xml字符串 | ||
| 603 | + * @param counter 分组数 | ||
| 604 | + * @return 成功返回counter 失败返回0 | ||
| 605 | + */ | ||
| 606 | + private int invokeSetLD(String xml, int counter) { | ||
| 607 | + for (int i = 0;i < 10;i++) { | ||
| 608 | + try { | ||
| 609 | + Results results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(xml)); | ||
| 610 | + if (results.isSuccess()) { | ||
| 611 | + logger.info("setLD: " + xml); | ||
| 612 | + logger.info("setLD: 成功"); | ||
| 613 | + return counter; | ||
| 614 | + } else if (i == 9) { | ||
| 615 | + logger.error("setLD: " + xml); | ||
| 616 | + logger.error("setLD: 失败," + results.getMessage()); | ||
| 617 | + } | ||
| 618 | + Thread.sleep(2000); | ||
| 619 | + } catch (Exception e) { | ||
| 620 | + logger.error("运管处接口调用异常", e); | ||
| 621 | + try { | ||
| 622 | + Thread.sleep(2000); | ||
| 623 | + } catch (InterruptedException ex) { | ||
| 624 | + ex.printStackTrace(); | ||
| 625 | + } | ||
| 626 | + } | ||
| 627 | + } | ||
| 628 | + | ||
| 629 | + return 0; | ||
| 630 | + } | ||
| 631 | + | ||
| 632 | + /** | ||
| 633 | + * 上传路单 | ||
| 634 | + * @return 上传成功标识 | ||
| 635 | + */ | ||
| 636 | + private String uploadLD1(String theDate){ | ||
| 432 | String result = "failure"; | 637 | String result = "failure"; |
| 433 | countSuccess = 0 ;countFailure = 0; | 638 | countSuccess = 0 ;countFailure = 0; |
| 434 | Line line; | 639 | Line line; |
| 435 | // 取昨天 的日期 | 640 | // 取昨天 的日期 |
| 436 | String date = theDate == null ?sdfnyr.format(DateUtils.addDays(new Date(), -1)) : theDate; | 641 | String date = theDate == null ?sdfnyr.format(DateUtils.addDays(new Date(), -1)) : theDate; |
| 437 | - StringBuffer sf = new StringBuffer(); | ||
| 438 | StringBuffer logSuccess = new StringBuffer("成功:"); | 642 | StringBuffer logSuccess = new StringBuffer("成功:"); |
| 439 | StringBuffer logFailure = new StringBuffer("失败:"); | 643 | StringBuffer logFailure = new StringBuffer("失败:"); |
| 440 | HashMap logXlbmSuccessMap = new HashMap(); | 644 | HashMap logXlbmSuccessMap = new HashMap(); |
| @@ -443,9 +647,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -443,9 +647,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 443 | Results results = null; | 647 | Results results = null; |
| 444 | String str = "",xlbm; | 648 | String str = "",xlbm; |
| 445 | try { | 649 | try { |
| 446 | - int counter = 0; // 计数器 | ||
| 447 | - int per = 10; // 每几条线路上传一次路单 | ||
| 448 | - | ||
| 449 | List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date); | 650 | List<ScheduleRealInfo> list = scheduleRealInfoRepository.setLD(date); |
| 450 | List<Map<String,Object>> listGroup = scheduleRealInfoRepository.setLDGroup(date); | 651 | List<Map<String,Object>> listGroup = scheduleRealInfoRepository.setLDGroup(date); |
| 451 | Map<String,Object> map = new HashMap(); | 652 | Map<String,Object> map = new HashMap(); |
| @@ -467,8 +668,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -467,8 +668,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 467 | = qp_ssop.setLD(userNameOther_qp,passwordOther_qp,StringEscapeUtils.unescapeHtml(ygsXml.toString().replace("'",""))); | 668 | = qp_ssop.setLD(userNameOther_qp,passwordOther_qp,StringEscapeUtils.unescapeHtml(ygsXml.toString().replace("'",""))); |
| 468 | logger.info("青浦路单是否上传成功:"+res.isSuccess()); | 669 | logger.info("青浦路单是否上传成功:"+res.isSuccess()); |
| 469 | }catch (Exception e){ | 670 | }catch (Exception e){ |
| 470 | - e.printStackTrace(); | ||
| 471 | - continue; | 671 | + logger.error("青浦路单上传异常", e); |
| 472 | } | 672 | } |
| 473 | } | 673 | } |
| 474 | // 新起xml标签 | 674 | // 新起xml标签 |
| @@ -486,11 +686,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -486,11 +686,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 486 | if(line == null || line.getInUse() == null || line.getInUse() == 0){ | 686 | if(line == null || line.getInUse() == null || line.getInUse() == 0){ |
| 487 | continue; | 687 | continue; |
| 488 | } | 688 | } |
| 489 | - if(counter % per == 0){ | ||
| 490 | - sf = new StringBuffer(); | ||
| 491 | - sf.append("<DLDS>"); | ||
| 492 | - } | ||
| 493 | - counter ++; | ||
| 494 | xlbm = BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm")+""); | 689 | xlbm = BasicData.lineCode2ShangHaiCodeMap.get(schRealInfo.get("xlBm")+""); |
| 495 | // 保存一次路单的线路编码,用于发送邮箱 | 690 | // 保存一次路单的线路编码,用于发送邮箱 |
| 496 | if(logXlbmMap.get(xlbm) == null){ | 691 | if(logXlbmMap.get(xlbm) == null){ |
| @@ -552,35 +747,20 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -552,35 +747,20 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 552 | } | 747 | } |
| 553 | sri.append("</LDList>"); | 748 | sri.append("</LDList>"); |
| 554 | sri.append("</DLD>"); | 749 | sri.append("</DLD>"); |
| 555 | - sf.append(sri); | ||
| 556 | // 运管所xml加入路单信息 | 750 | // 运管所xml加入路单信息 |
| 557 | ygsXml.append(sri); | 751 | ygsXml.append(sri); |
| 558 | } | 752 | } |
| 559 | - if(counter % per == per - 1){ | ||
| 560 | - counter = 0; | ||
| 561 | - sf.append("</DLDS>"); | ||
| 562 | - str = sf.toString().replace("'","");// 去掉'号 | ||
| 563 | - results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str)); | ||
| 564 | - // 记录日志 | ||
| 565 | - result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str); | ||
| 566 | - } | ||
| 567 | } | 753 | } |
| 568 | - // 每per条线路上传后剩下的数据再上传 | ||
| 569 | - if(counter > 0){ | ||
| 570 | - // 最后的路单一次上传 | ||
| 571 | - ygsXml.append("</DLDS>"); | ||
| 572 | - sf.append("</DLDS>"); | ||
| 573 | - str = sf.toString().replace("'","");// 去掉'号 | ||
| 574 | - results = ssop.setLD(userNameOther, passwordOther, StringEscapeUtils.unescapeHtml(str)); | ||
| 575 | - // 发送到青浦运管所 | ||
| 576 | - try { | ||
| 577 | - logger.info("xml:"+StringEscapeUtils.unescapeHtml(ygsXml.toString().replace("'",""))); | ||
| 578 | - com.bsth.webService.trafficManage.qp.Results res | ||
| 579 | - = qp_ssop.setLD(userNameOther_qp,passwordOther_qp,StringEscapeUtils.unescapeHtml(ygsXml.toString().replace("'",""))); | ||
| 580 | - logger.info("青浦路单是否上传成功:"+res.isSuccess()); | ||
| 581 | - }catch (Exception e){ | ||
| 582 | - e.printStackTrace(); | ||
| 583 | - } | 754 | + // 最后的路单一次上传 |
| 755 | + ygsXml.append("</DLDS>"); | ||
| 756 | + // 发送到青浦运管所 | ||
| 757 | + try { | ||
| 758 | + logger.info("xml:"+StringEscapeUtils.unescapeHtml(ygsXml.toString().replace("'",""))); | ||
| 759 | + com.bsth.webService.trafficManage.qp.Results res | ||
| 760 | + = qp_ssop.setLD(userNameOther_qp,passwordOther_qp,StringEscapeUtils.unescapeHtml(ygsXml.toString().replace("'",""))); | ||
| 761 | + logger.info("青浦路单是否上传成功1:"+res.isSuccess()); | ||
| 762 | + }catch (Exception e){ | ||
| 763 | + logger.error("青浦路单上传异常1", e); | ||
| 584 | } | 764 | } |
| 585 | // 记录日志 | 765 | // 记录日志 |
| 586 | result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str); | 766 | result = logRecord(results,logXlbmMap,logXlbmSuccessMap,logXlbmFailureMap,logSuccess,logFailure,str); |
| @@ -591,19 +771,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -591,19 +771,8 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 591 | logFailure.append("\r\t").append(traceElement); | 771 | logFailure.append("\r\t").append(traceElement); |
| 592 | } | 772 | } |
| 593 | e.printStackTrace(); | 773 | e.printStackTrace(); |
| 594 | - }finally{ | ||
| 595 | - try { | ||
| 596 | - //发送邮件 | ||
| 597 | - EmailBean mail = new EmailBean(); | ||
| 598 | - mail.setSubject(InetAddress.getLocalHost().getHostAddress()+":路单日志数据"+date); | ||
| 599 | - mail.setContent("成功数:"+countSuccess+"<br/>失败数:"+countFailure+"<br/>" +logSuccess + "<br/>"+logFailure); | ||
| 600 | - sendEmailController.sendMail(emailSendToAddress, mail); | ||
| 601 | - logger.info("setLD-sendMail:邮件发送成功!"); | ||
| 602 | - }catch (Exception e){ | ||
| 603 | - e.printStackTrace(); | ||
| 604 | - logger.error("setLD-sendMail:",e); | ||
| 605 | - } | ||
| 606 | } | 774 | } |
| 775 | + | ||
| 607 | return result; | 776 | return result; |
| 608 | } | 777 | } |
| 609 | 778 |