Commit 35f5420e20eb9a332fe781c66d762f1c7c2987fa

Authored by zlz
1 parent 16a6e003

修正上传至运管处的时刻表的总里程、营运里程

src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
@@ -942,32 +942,42 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -942,32 +942,42 @@ public class TrafficManageServiceImpl implements TrafficManageService{
942 public String setSKB(String ids) { 942 public String setSKB(String ids) {
943 String result = "failure"; 943 String result = "failure";
944 StringBuffer sBuffer = new StringBuffer(); 944 StringBuffer sBuffer = new StringBuffer();
  945 + DecimalFormat df = new DecimalFormat("######0.000");
945 try { 946 try {
946 String[] idArray = ids.split(","); 947 String[] idArray = ids.split(",");
947 - StringBuffer sBufferA;  
948 - StringBuffer sBufferB; 948 + StringBuffer sBufferA ,sBufferB = null,sBufferC = null;
  949 + double zlc = 0.0f,yylc = 0.0f,singleLc,emptyLc;// 总里程、营运里程、单程、空放里程
  950 + String bcType,sxx;// 班次类型、上下行
949 // 上传的时刻表集合 951 // 上传的时刻表集合
950 List<TTInfo> ttinfoList = new ArrayList<>(); 952 List<TTInfo> ttinfoList = new ArrayList<>();
951 TTInfo ttInfo; 953 TTInfo ttInfo;
952 TTInfoDetail ttInfoDetail; 954 TTInfoDetail ttInfoDetail;
  955 + LineInformation lineInformation;
953 Iterator<TTInfoDetail> ttInfoDetailIterator; 956 Iterator<TTInfoDetail> ttInfoDetailIterator;
954 - HashMap<String,Object> param = new HashMap<String, Object>(); 957 + HashMap<String,Object> param ;
955 sBuffer.append("<SKBs>"); 958 sBuffer.append("<SKBs>");
956 HashMap<String,String> paramMap; 959 HashMap<String,String> paramMap;
957 - HashMap<String,String> otherMap = new HashMap<String, String>(); 960 + HashMap<String,String> otherMap = new HashMap<>();
958 for (int i = 0; i < idArray.length; i++) { 961 for (int i = 0; i < idArray.length; i++) {
959 ttInfo = ttInfoRepository.findOne(Long.valueOf(idArray[i])); 962 ttInfo = ttInfoRepository.findOne(Long.valueOf(idArray[i]));
960 if(ttInfo == null) 963 if(ttInfo == null)
961 continue; 964 continue;
962 ttinfoList.add(ttInfo); // 保存时刻表 965 ttinfoList.add(ttInfo); // 保存时刻表
  966 + // 获得时刻表
  967 + param = new HashMap();
963 param.put("ttinfo.id_eq", ttInfo.getId()); 968 param.put("ttinfo.id_eq", ttInfo.getId());
964 ttInfoDetailIterator = ttInfoDetailRepository.findAll(new CustomerSpecs<TTInfoDetail>(param), 969 ttInfoDetailIterator = ttInfoDetailRepository.findAll(new CustomerSpecs<TTInfoDetail>(param),
965 new Sort(Direction.ASC, "xlDir")).iterator(); 970 new Sort(Direction.ASC, "xlDir")).iterator();
  971 + // 获得lineInformation
  972 + param = new HashMap();
  973 + param.put("line.id_eq", ttInfo.getXl().getId());
  974 + lineInformation = lineInformationRepository.findOne(new CustomerSpecs<LineInformation>(param));
966 if(ttInfoDetailIterator.hasNext()){ 975 if(ttInfoDetailIterator.hasNext()){
967 sBuffer.append("<SKB>"); 976 sBuffer.append("<SKB>");
968 sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(ttInfo.getXl().getId())) 977 sBuffer.append("<XLBM>").append(BasicData.lineId2ShangHaiCodeMap.get(ttInfo.getXl().getId()))
969 .append("</XLBM>"); 978 .append("</XLBM>");
970 sBufferB = new StringBuffer(); 979 sBufferB = new StringBuffer();
  980 + sBufferC = new StringBuffer();
971 sBufferB.append("<KSRQ>").append(sdfnyr.format(ttInfo.getQyrq())).append("</KSRQ>"); 981 sBufferB.append("<KSRQ>").append(sdfnyr.format(ttInfo.getQyrq())).append("</KSRQ>");
972 // 结束日期暂时不要,节假日的班次表才需要,如春节的班次表 982 // 结束日期暂时不要,节假日的班次表才需要,如春节的班次表
973 sBufferB.append("<JSRQ>").append("").append("</JSRQ>"); 983 sBufferB.append("<JSRQ>").append("").append("</JSRQ>");
@@ -975,46 +985,58 @@ public class TrafficManageServiceImpl implements TrafficManageService{ @@ -975,46 +985,58 @@ public class TrafficManageServiceImpl implements TrafficManageService{
975 sBufferB.append("<TBYY>").append("").append("</TBYY>"); 985 sBufferB.append("<TBYY>").append("").append("</TBYY>");
976 sBufferB.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>"); 986 sBufferB.append("<UPDT>").append(sdfnyrsfm.format(new Date())).append("</UPDT>");
977 sBufferB.append("<BCList>"); 987 sBufferB.append("<BCList>");
978 - int num = 1;  
979 while (ttInfoDetailIterator.hasNext()) { 988 while (ttInfoDetailIterator.hasNext()) {
980 ttInfoDetail = ttInfoDetailIterator.next(); 989 ttInfoDetail = ttInfoDetailIterator.next();
981 - if(ttInfoDetail.getBcType().equals("in") || ttInfoDetail.getBcType().equals("out")){ 990 + bcType = ttInfoDetail.getBcType();
  991 + sxx = ttInfoDetail.getXlDir();
  992 + // 进出场班次
  993 + if(bcType.equals("in") || bcType.equals("out")){
  994 + // 进出班次的计划里程,算空驶里程
  995 + emptyLc = ttInfoDetail.getJhlc();
  996 + // 总里程需要加上空驶里程
  997 + zlc += emptyLc;
982 continue; 998 continue;
983 } 999 }
984 - if(num++ == 1){  
985 - sBufferA = new StringBuffer();  
986 - sBufferA.append("<JHZLC>").append(ttInfoDetail.getJhlc()).append("</JHZLC>");  
987 - sBufferA.append("<JHYYLC>").append(ttInfoDetail.getJhlc()).append("</JHYYLC>");  
988 - sBuffer.append(sBufferA).append(sBufferB);  
989 - }  
990 // 如果发车时间格式错误,忽略此条 1000 // 如果发车时间格式错误,忽略此条
991 if(changeTimeFormat(ttInfoDetail) == null){ 1001 if(changeTimeFormat(ttInfoDetail) == null){
992 continue; 1002 continue;
993 } 1003 }
994 - sBuffer.append("<BC>");  
995 - sBuffer.append("<LPBH>").append(ttInfoDetail.getLp().getLpNo()).append("</LPBH>");  
996 - sBuffer.append("<SXX>").append(ttInfoDetail.getXlDir()).append("</SXX>");  
997 - sBuffer.append("<FCZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir() 1004 + sBufferC.append("<BC>");
  1005 + sBufferC.append("<LPBH>").append(ttInfoDetail.getLp().getLpNo()).append("</LPBH>");
  1006 + sBufferC.append("<SXX>").append(sxx).append("</SXX>");
  1007 + sBufferC.append("<FCZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir()
998 +"_"+ttInfoDetail.getQdzCode())).append("</FCZDMC>"); 1008 +"_"+ttInfoDetail.getQdzCode())).append("</FCZDMC>");
999 // 起点站的参数 1009 // 起点站的参数
1000 otherMap.put("stationMark","B"); 1010 otherMap.put("stationMark","B");
1001 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap); 1011 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap);
1002 - sBuffer.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</ZDXH>");  
1003 - sBuffer.append("<JHFCSJ>").append(changeTimeFormat(ttInfoDetail)).append("</JHFCSJ>");  
1004 - sBuffer.append("<DDZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir() 1012 + sBufferC.append("<ZDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</ZDXH>");
  1013 + sBufferC.append("<JHFCSJ>").append(changeTimeFormat(ttInfoDetail)).append("</JHFCSJ>");
  1014 + sBufferC.append("<DDZDMC>").append(BasicData.stationCode2NameMap.get(ttInfoDetail.getXl().getLineCode()+"_"+ttInfoDetail.getXlDir()
1005 +"_"+ttInfoDetail.getZdzCode())).append("</DDZDMC>"); 1015 +"_"+ttInfoDetail.getZdzCode())).append("</DDZDMC>");
1006 // 起点站的参数 1016 // 起点站的参数
1007 otherMap.put("stationMark","E"); 1017 otherMap.put("stationMark","E");
1008 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap); 1018 paramMap = packageYgcStationNumParam(ttInfoDetail,otherMap);
1009 - sBuffer.append("<DDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</DDXH>");  
1010 - sBuffer.append("<JHDDSJ>").append(calcDdsj(ttInfoDetail.getFcsj(),ttInfoDetail.getBcsj())).append("</JHDDSJ>");  
1011 - sBuffer.append("</BC>"); 1019 + sBufferC.append("<DDXH>").append(getYgcStationNumByLineCodeAndDirectionAndStationName(paramMap,null)).append("</DDXH>");
  1020 + sBufferC.append("<JHDDSJ>").append(calcDdsj(ttInfoDetail.getFcsj(),ttInfoDetail.getBcsj())).append("</JHDDSJ>");
  1021 + sBufferC.append("</BC>");
  1022 + // 0:上行;1:下行
  1023 + if("0".equals(sxx)){
  1024 + singleLc = lineInformation.getUpMileage();
  1025 + }else{
  1026 + singleLc = lineInformation.getDownMileage();
  1027 + }
  1028 + zlc += singleLc ;
  1029 + yylc += singleLc;
1012 } 1030 }
1013 - sBuffer.append("</BCList>");  
1014 - sBuffer.append("</SKB>"); 1031 + sBufferC.append("</BCList>");
  1032 + sBufferC.append("</SKB>");
1015 } 1033 }
1016 } 1034 }
1017 - sBuffer.append("</SKBs>"); 1035 +
  1036 + sBufferA = new StringBuffer();
  1037 + sBufferA.append("<JHZLC>").append(df.format(zlc)).append("</JHZLC>");
  1038 + sBufferA.append("<JHYYLC>").append(df.format(yylc)).append("</JHYYLC>");
  1039 + sBuffer.append(sBufferA).append(sBufferB).append(sBufferC).append("</SKBs>");
1018 if(ssop.setSKB(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){ 1040 if(ssop.setSKB(userNameOther, passwordOther, sBuffer.toString()).isSuccess()){
1019 result = "success"; 1041 result = "success";
1020 SKBUploadLogger skbUploadLogger ; 1042 SKBUploadLogger skbUploadLogger ;