Commit 8b4d6d59c35ab86747074857d328c7a6228897a1
Merge branch 'minhang' of git@192.168.168.201:panzhaov5/bsth_control.git into minhang
Showing
43 changed files
with
1391 additions
and
447 deletions
src/main/java/com/bsth/controller/realcontrol/BasicDataController.java
| @@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON; | @@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSON; | ||
| 4 | import com.alibaba.fastjson.serializer.PropertyFilter; | 4 | import com.alibaba.fastjson.serializer.PropertyFilter; |
| 5 | import com.bsth.common.ResponseCode; | 5 | import com.bsth.common.ResponseCode; |
| 6 | import com.bsth.data.BasicData; | 6 | import com.bsth.data.BasicData; |
| 7 | +import com.bsth.data.Station2ParkBuffer; | ||
| 7 | import com.bsth.entity.Line; | 8 | import com.bsth.entity.Line; |
| 9 | +import com.bsth.entity.realcontrol.StationToPark; | ||
| 8 | import com.google.common.base.Splitter; | 10 | import com.google.common.base.Splitter; |
| 9 | import com.google.common.collect.ArrayListMultimap; | 11 | import com.google.common.collect.ArrayListMultimap; |
| 10 | import com.google.common.collect.BiMap; | 12 | import com.google.common.collect.BiMap; |
| @@ -29,6 +31,9 @@ public class BasicDataController { | @@ -29,6 +31,9 @@ public class BasicDataController { | ||
| 29 | BasicData basicData; | 31 | BasicData basicData; |
| 30 | 32 | ||
| 31 | Logger logger = LoggerFactory.getLogger(this.getClass()); | 33 | Logger logger = LoggerFactory.getLogger(this.getClass()); |
| 34 | + | ||
| 35 | + @Autowired | ||
| 36 | + Station2ParkBuffer station2ParkBuffer; | ||
| 32 | 37 | ||
| 33 | @RequestMapping("/cars") | 38 | @RequestMapping("/cars") |
| 34 | public Iterable<String> findAllNbbm(Map<String, Object> map){ | 39 | public Iterable<String> findAllNbbm(Map<String, Object> map){ |
| @@ -180,4 +185,25 @@ public class BasicDataController { | @@ -180,4 +185,25 @@ public class BasicDataController { | ||
| 180 | 185 | ||
| 181 | return rs; | 186 | return rs; |
| 182 | } | 187 | } |
| 188 | + | ||
| 189 | + /** | ||
| 190 | + * 获取站点和停车场对照表 | ||
| 191 | + * @param idx | ||
| 192 | + * @return | ||
| 193 | + */ | ||
| 194 | + @RequestMapping("/station2ParkData") | ||
| 195 | + public Map<String, Collection<StationToPark>> findStation2ParkData(@RequestParam String idx){ | ||
| 196 | + List<String> lines = Splitter.on(",").splitToList(idx); | ||
| 197 | + ArrayListMultimap<String, StationToPark> rs = ArrayListMultimap.create(); | ||
| 198 | + | ||
| 199 | + for(String lineCode : lines){ | ||
| 200 | + rs.putAll(lineCode, Station2ParkBuffer.get(lineCode)); | ||
| 201 | + } | ||
| 202 | + return rs.asMap(); | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + @RequestMapping(value = "/deleteStation2Park", method = RequestMethod.POST) | ||
| 206 | + public Map<String, Object> deleteStation2Park(@RequestParam String lineCode,@RequestParam Integer id){ | ||
| 207 | + return station2ParkBuffer.delete(lineCode, id); | ||
| 208 | + } | ||
| 183 | } | 209 | } |
src/main/java/com/bsth/controller/schedule/TrafficManageController.java
| @@ -8,8 +8,6 @@ import org.springframework.web.bind.annotation.RequestMethod; | @@ -8,8 +8,6 @@ import org.springframework.web.bind.annotation.RequestMethod; | ||
| 8 | import org.springframework.web.bind.annotation.RequestParam; | 8 | import org.springframework.web.bind.annotation.RequestParam; |
| 9 | import org.springframework.web.bind.annotation.RestController; | 9 | import org.springframework.web.bind.annotation.RestController; |
| 10 | 10 | ||
| 11 | -import java.util.Map; | ||
| 12 | - | ||
| 13 | /** | 11 | /** |
| 14 | * | 12 | * |
| 15 | * @author BSTH | 13 | * @author BSTH |
| @@ -24,9 +22,9 @@ public class TrafficManageController { | @@ -24,9 +22,9 @@ public class TrafficManageController { | ||
| 24 | 22 | ||
| 25 | 23 | ||
| 26 | @RequestMapping(value = "/setXL", method = RequestMethod.GET) | 24 | @RequestMapping(value = "/setXL", method = RequestMethod.GET) |
| 27 | - public String setXL(@RequestParam Map<String, Object> param) throws Exception { | 25 | + public String setXL(@RequestParam("ids") String ids) throws Exception { |
| 28 | try { | 26 | try { |
| 29 | - return trManageService.setXL(param); | 27 | + return trManageService.setXL(ids); |
| 30 | } catch (Exception exp) { | 28 | } catch (Exception exp) { |
| 31 | throw new Exception(exp.getCause()); | 29 | throw new Exception(exp.getCause()); |
| 32 | } | 30 | } |
src/main/java/com/bsth/data/BasicData.java
| @@ -134,6 +134,9 @@ public class BasicData implements CommandLineRunner { | @@ -134,6 +134,9 @@ public class BasicData implements CommandLineRunner { | ||
| 134 | @Autowired | 134 | @Autowired |
| 135 | GeoCacheData geoCacheData; | 135 | GeoCacheData geoCacheData; |
| 136 | 136 | ||
| 137 | + @Autowired | ||
| 138 | + Station2ParkBuffer station2ParkBuffer; | ||
| 139 | + | ||
| 137 | 140 | ||
| 138 | @Override | 141 | @Override |
| 139 | public void run() { | 142 | public void run() { |
| @@ -160,6 +163,7 @@ public class BasicData implements CommandLineRunner { | @@ -160,6 +163,7 @@ public class BasicData implements CommandLineRunner { | ||
| 160 | loadBusinessInfo(); | 163 | loadBusinessInfo(); |
| 161 | 164 | ||
| 162 | geoCacheData.loadData(); | 165 | geoCacheData.loadData(); |
| 166 | + station2ParkBuffer.saveAll(); | ||
| 163 | logger.info("加载基础数据成功!,"); | 167 | logger.info("加载基础数据成功!,"); |
| 164 | } catch (Exception e) { | 168 | } catch (Exception e) { |
| 165 | logger.error("加载基础数据时出现异常,", e); | 169 | logger.error("加载基础数据时出现异常,", e); |
src/main/java/com/bsth/data/Station2ParkBuffer.java
0 → 100644
| 1 | +package com.bsth.data; | ||
| 2 | + | ||
| 3 | +import com.bsth.common.ResponseCode; | ||
| 4 | +import com.bsth.entity.realcontrol.ChildTaskPlan; | ||
| 5 | +import com.bsth.entity.realcontrol.StationToPark; | ||
| 6 | +import com.bsth.repository.realcontrol.StationToParkRepository; | ||
| 7 | +import com.bsth.util.Arith; | ||
| 8 | +import com.google.common.collect.ArrayListMultimap; | ||
| 9 | +import org.joda.time.format.DateTimeFormat; | ||
| 10 | +import org.joda.time.format.DateTimeFormatter; | ||
| 11 | +import org.slf4j.Logger; | ||
| 12 | +import org.slf4j.LoggerFactory; | ||
| 13 | +import org.springframework.beans.factory.annotation.Autowired; | ||
| 14 | +import org.springframework.boot.CommandLineRunner; | ||
| 15 | +import org.springframework.stereotype.Component; | ||
| 16 | + | ||
| 17 | +import java.util.*; | ||
| 18 | + | ||
| 19 | +/** | ||
| 20 | + * 站到场 历时、公里 数据缓存 | ||
| 21 | + * Created by panzhao on 2017/7/10. | ||
| 22 | + */ | ||
| 23 | +@Component | ||
| 24 | +public class Station2ParkBuffer implements CommandLineRunner { | ||
| 25 | + | ||
| 26 | + @Autowired | ||
| 27 | + StationToParkRepository stationToParkRepository; | ||
| 28 | + | ||
| 29 | + private static ArrayListMultimap listMultimap; | ||
| 30 | + | ||
| 31 | + private static Set<StationToPark> pstBuff; | ||
| 32 | + | ||
| 33 | + static Logger log = LoggerFactory.getLogger(Station2ParkBuffer.class); | ||
| 34 | + | ||
| 35 | + @Override | ||
| 36 | + public void run(String... strings) throws Exception { | ||
| 37 | + listMultimap = ArrayListMultimap.create(); | ||
| 38 | + pstBuff = new HashSet<>(); | ||
| 39 | + Iterator<StationToPark> iterator = stationToParkRepository.findAll().iterator(); | ||
| 40 | + StationToPark stp; | ||
| 41 | + while (iterator.hasNext()) { | ||
| 42 | + stp = iterator.next(); | ||
| 43 | + listMultimap.put(stp.getLineCode(), stp); | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + public static List<StationToPark> get(String lineCode) { | ||
| 48 | + return listMultimap.get(lineCode); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + public static StationToPark get(String lineCode, String sName, String eName) { | ||
| 52 | + List<StationToPark> list = get(lineCode); | ||
| 53 | + StationToPark stp = null; | ||
| 54 | + for (StationToPark s : list) { | ||
| 55 | + if (s.getStationName().equals(sName) && s.getParkName().equals(eName)) { | ||
| 56 | + stp = s; | ||
| 57 | + break; | ||
| 58 | + } | ||
| 59 | + } | ||
| 60 | + return stp; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm"); | ||
| 64 | + | ||
| 65 | + public static void put(ChildTaskPlan ctask) { | ||
| 66 | + try{ | ||
| 67 | + String type2 = ctask.getType2(); | ||
| 68 | + String lineCode = ctask.getSchedule().getXlBm(), sName, eName; | ||
| 69 | + | ||
| 70 | + if (type2.equals("2")) { | ||
| 71 | + sName = ctask.getStartStationName(); | ||
| 72 | + eName = ctask.getEndStationName(); | ||
| 73 | + } else if (type2.equals("3")) { | ||
| 74 | + eName = ctask.getStartStationName(); | ||
| 75 | + sName = ctask.getEndStationName(); | ||
| 76 | + } else | ||
| 77 | + return; | ||
| 78 | + | ||
| 79 | + Float time = calcMinute(ctask); | ||
| 80 | + Float mileage = ctask.getMileage(); | ||
| 81 | + | ||
| 82 | + StationToPark stp = get(lineCode, sName, eName); | ||
| 83 | + if (stp == null) { | ||
| 84 | + stp = new StationToPark(); | ||
| 85 | + stp.setLineCode(lineCode); | ||
| 86 | + stp.setStationName(sName); | ||
| 87 | + stp.setParkName(eName); | ||
| 88 | + listMultimap.put(lineCode, stp); | ||
| 89 | + } | ||
| 90 | + | ||
| 91 | + if (type2.equals("2")) { | ||
| 92 | + stp.setTime1(time); | ||
| 93 | + stp.setMileage1(mileage); | ||
| 94 | + } else { | ||
| 95 | + stp.setTime2(time); | ||
| 96 | + stp.setMileage2(mileage); | ||
| 97 | + } | ||
| 98 | + | ||
| 99 | + pstBuff.add(stp); | ||
| 100 | + }catch (Exception e){ | ||
| 101 | + log.error("", e); | ||
| 102 | + } | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + public static Float calcMinute(ChildTaskPlan ctask) { | ||
| 106 | + long t = 0; | ||
| 107 | + | ||
| 108 | + try { | ||
| 109 | + long st = fmtHHmm.parseMillis(ctask.getStartDate()); | ||
| 110 | + long et = fmtHHmm.parseMillis(ctask.getEndDate()); | ||
| 111 | + | ||
| 112 | + t = et - st; | ||
| 113 | + } catch (Exception e) { | ||
| 114 | + e.printStackTrace(); | ||
| 115 | + } | ||
| 116 | + return Float.parseFloat(String.valueOf(Arith.div(Arith.div(t, 1000), 60))); | ||
| 117 | + } | ||
| 118 | + | ||
| 119 | + public void saveAll(){ | ||
| 120 | + if(pstBuff.size()==0) | ||
| 121 | + return; | ||
| 122 | + Set<StationToPark> pstBuffCopy = pstBuff; | ||
| 123 | + pstBuff = new HashSet<>(); | ||
| 124 | + //持久化到数据库 | ||
| 125 | + stationToParkRepository.save(pstBuffCopy); | ||
| 126 | + } | ||
| 127 | + | ||
| 128 | + public Map<String, Object> delete(String lineCode, Integer id) { | ||
| 129 | + Map<String, Object> rs = new HashMap<>(); | ||
| 130 | + try { | ||
| 131 | + List<StationToPark> list = listMultimap.get(lineCode); | ||
| 132 | + | ||
| 133 | + StationToPark stp = null; | ||
| 134 | + for(StationToPark temp : list){ | ||
| 135 | + if(temp.getId().equals(id)){ | ||
| 136 | + stp=temp; | ||
| 137 | + break; | ||
| 138 | + } | ||
| 139 | + } | ||
| 140 | + | ||
| 141 | + if(stp != null){ | ||
| 142 | + listMultimap.remove(lineCode, stp); | ||
| 143 | + stationToParkRepository.delete(id); | ||
| 144 | + rs.put("status", ResponseCode.SUCCESS); | ||
| 145 | + } | ||
| 146 | + else{ | ||
| 147 | + rs.put("status", ResponseCode.SUCCESS); | ||
| 148 | + rs.put("msg", "操作失败,可能数据已经被删除!"); | ||
| 149 | + } | ||
| 150 | + | ||
| 151 | + }catch (Exception e){ | ||
| 152 | + rs.put("status", ResponseCode.ERROR); | ||
| 153 | + rs.put("msg", e.getMessage()); | ||
| 154 | + log.error("", e); | ||
| 155 | + } | ||
| 156 | + return rs; | ||
| 157 | + } | ||
| 158 | +} |
src/main/java/com/bsth/data/gpsdata/recovery/GpsDataRecovery.java
| @@ -84,7 +84,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | @@ -84,7 +84,7 @@ public class GpsDataRecovery implements ApplicationContextAware { | ||
| 84 | Calendar calendar = Calendar.getInstance(); | 84 | Calendar calendar = Calendar.getInstance(); |
| 85 | int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); | 85 | int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); |
| 86 | 86 | ||
| 87 | - String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=173";// + dayOfYear; | 87 | + String sql = "select DEVICE_ID,LAT,LON,TS,SPEED_GPS,LINE_ID,SERVICE_STATE from bsth_c_gps_info where days_year=" + dayOfYear; |
| 88 | JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource()); | 88 | JdbcTemplate jdbcTemplate = new JdbcTemplate(DBUtils_MS.getDataSource()); |
| 89 | 89 | ||
| 90 | List<GpsEntity> list = | 90 | List<GpsEntity> list = |
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
| @@ -944,6 +944,8 @@ public class DayOfSchedule { | @@ -944,6 +944,8 @@ public class DayOfSchedule { | ||
| 944 | ScheduleRealInfo sch = schAttrCalculator.calcCurrentExecSch(list); | 944 | ScheduleRealInfo sch = schAttrCalculator.calcCurrentExecSch(list); |
| 945 | carExecutePlanMap.put(nbbm, sch); | 945 | carExecutePlanMap.put(nbbm, sch); |
| 946 | 946 | ||
| 947 | + if(sch==null) | ||
| 948 | + return; | ||
| 947 | try { | 949 | try { |
| 948 | GpsEntity gps = gpsRealData.get(BasicData.deviceId2NbbmMap.inverse().get(nbbm)); | 950 | GpsEntity gps = gpsRealData.get(BasicData.deviceId2NbbmMap.inverse().get(nbbm)); |
| 949 | if(gps != null && gps.isOnline()){ | 951 | if(gps != null && gps.isOnline()){ |
src/main/java/com/bsth/data/schedule/edit_logs/ScheduleModifyLogger.java
| @@ -231,4 +231,20 @@ public class ScheduleModifyLogger { | @@ -231,4 +231,20 @@ public class ScheduleModifyLogger { | ||
| 231 | public static void put(SchEditInfo sei) { | 231 | public static void put(SchEditInfo sei) { |
| 232 | list.add(sei); | 232 | list.add(sei); |
| 233 | } | 233 | } |
| 234 | + | ||
| 235 | + public static void afterEdit(ScheduleRealInfo sch, String remarks, JSONArray jsonArray) { | ||
| 236 | + try { | ||
| 237 | + if (jsonArray == null || jsonArray.size() == 0) | ||
| 238 | + return; | ||
| 239 | + | ||
| 240 | + SchEditInfo sei = SchEditInfo.getInstance(sch); | ||
| 241 | + sei.setRemarks(remarks); | ||
| 242 | + sei.setJsonArray(jsonArray.toJSONString()); | ||
| 243 | + sei.setType(EditType.LSBCTZ); | ||
| 244 | + | ||
| 245 | + put(sei); | ||
| 246 | + } catch (Exception e) { | ||
| 247 | + log.error("", e); | ||
| 248 | + } | ||
| 249 | + } | ||
| 234 | } | 250 | } |
src/main/java/com/bsth/data/schedule/edit_logs/entity/EditType.java
| @@ -5,5 +5,5 @@ package com.bsth.data.schedule.edit_logs.entity; | @@ -5,5 +5,5 @@ package com.bsth.data.schedule.edit_logs.entity; | ||
| 5 | */ | 5 | */ |
| 6 | public enum EditType { | 6 | public enum EditType { |
| 7 | 7 | ||
| 8 | - DFTZ,SFTZ,FCXXWT,TZRC,LPDD,ZRW,JHLB,CXLB, CXSF, CXZX | 8 | + DFTZ,SFTZ,FCXXWT,TZRC,LPDD,ZRW,JHLB,CXLB, CXSF, LSBCTZ, CXZX |
| 9 | } | 9 | } |
| 10 | \ No newline at end of file | 10 | \ No newline at end of file |
src/main/java/com/bsth/data/schedule/edit_logs/loggers/AfterwardsLogger.java
0 → 100644
| 1 | +package com.bsth.data.schedule.edit_logs.loggers; | ||
| 2 | + | ||
| 3 | +import com.alibaba.fastjson.JSONArray; | ||
| 4 | +import com.alibaba.fastjson.JSONObject; | ||
| 5 | +import com.bsth.data.schedule.edit_logs.ScheduleModifyLogger; | ||
| 6 | +import com.bsth.entity.realcontrol.ScheduleRealInfo; | ||
| 7 | +import org.slf4j.Logger; | ||
| 8 | +import org.slf4j.LoggerFactory; | ||
| 9 | + | ||
| 10 | +/** | ||
| 11 | + * 事后历史班次编辑 | ||
| 12 | + * Created by panzhao on 2017/5/19. | ||
| 13 | + */ | ||
| 14 | +public class AfterwardsLogger { | ||
| 15 | + | ||
| 16 | + static Logger log = LoggerFactory.getLogger(AfterwardsLogger.class); | ||
| 17 | + | ||
| 18 | + private JSONArray jsonArray = new JSONArray(); | ||
| 19 | + private String remarks; | ||
| 20 | + private ScheduleRealInfo sch; | ||
| 21 | + | ||
| 22 | + public void log(String title, Object old, Object now){ | ||
| 23 | + try { | ||
| 24 | + | ||
| 25 | + JSONObject jsonObject = new JSONObject(); | ||
| 26 | + jsonObject.put("title", title); | ||
| 27 | + jsonObject.put("old", old); | ||
| 28 | + jsonObject.put("now", now); | ||
| 29 | + | ||
| 30 | + jsonArray.add(jsonObject); | ||
| 31 | + }catch (Exception e){ | ||
| 32 | + log.error("", e); | ||
| 33 | + } | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + public void log(String text){ | ||
| 37 | + try { | ||
| 38 | + JSONObject jsonObject = new JSONObject(); | ||
| 39 | + jsonObject.put("title", text); | ||
| 40 | + | ||
| 41 | + jsonArray.add(jsonObject); | ||
| 42 | + }catch (Exception e){ | ||
| 43 | + log.error("", e); | ||
| 44 | + } | ||
| 45 | + } | ||
| 46 | + | ||
| 47 | + public static AfterwardsLogger start(ScheduleRealInfo sch, String remarks){ | ||
| 48 | + AfterwardsLogger fLog = new AfterwardsLogger(); | ||
| 49 | + fLog.setSch(sch); | ||
| 50 | + fLog.setRemarks(remarks); | ||
| 51 | + return fLog; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + public void end(){ | ||
| 55 | + ScheduleModifyLogger.afterEdit(sch, this.remarks, jsonArray); | ||
| 56 | + } | ||
| 57 | + | ||
| 58 | + public String getRemarks() { | ||
| 59 | + return remarks; | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + public void setRemarks(String remarks) { | ||
| 63 | + this.remarks = remarks; | ||
| 64 | + } | ||
| 65 | + | ||
| 66 | + public ScheduleRealInfo getSch() { | ||
| 67 | + return sch; | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + public void setSch(ScheduleRealInfo sch) { | ||
| 71 | + this.sch = sch; | ||
| 72 | + } | ||
| 73 | +} |
src/main/java/com/bsth/data/schedule/edit_logs/service/SchEditInfoServiceImpl.java
| @@ -41,7 +41,7 @@ public class SchEditInfoServiceImpl extends BaseServiceImpl<SchEditInfo, Long> i | @@ -41,7 +41,7 @@ public class SchEditInfoServiceImpl extends BaseServiceImpl<SchEditInfo, Long> i | ||
| 41 | for(String k : ks){ | 41 | for(String k : ks){ |
| 42 | v =map.get(k); | 42 | v =map.get(k); |
| 43 | if(StringUtils.isNotEmpty(v)) | 43 | if(StringUtils.isNotEmpty(v)) |
| 44 | - cont += " and t2." + BatchSaveUtils.propertyToField(k) + "='" + v + "'"; | 44 | + cont += " and " + BatchSaveUtils.propertyToField(k) + "='" + v + "'"; |
| 45 | } | 45 | } |
| 46 | String sql = "select t1.*, t2.fcsj,t2.lp_name,t2.cl_zbh,t2.j_gh,t2.j_name,t2.xl_dir,t2.real_exec_date from (select * from logger_sch_modify where rq=? and line_code=? ) t1 INNER JOIN bsth_c_s_sp_info_real t2 on t1.sch_id=t2.id where 1=1 " + cont; | 46 | String sql = "select t1.*, t2.fcsj,t2.lp_name,t2.cl_zbh,t2.j_gh,t2.j_name,t2.xl_dir,t2.real_exec_date from (select * from logger_sch_modify where rq=? and line_code=? ) t1 INNER JOIN bsth_c_s_sp_info_real t2 on t1.sch_id=t2.id where 1=1 " + cont; |
| 47 | 47 |
src/main/java/com/bsth/data/utils/CustomStringUtils.java
0 → 100644
| 1 | +package com.bsth.data.utils; | ||
| 2 | + | ||
| 3 | +import org.apache.commons.lang3.StringUtils; | ||
| 4 | + | ||
| 5 | +/** | ||
| 6 | + * Created by panzhao on 2017/7/10. | ||
| 7 | + */ | ||
| 8 | +public class CustomStringUtils { | ||
| 9 | + | ||
| 10 | + public static boolean equals(String s1, String s2){ | ||
| 11 | + if(s1 == null){ | ||
| 12 | + if(StringUtils.isNotEmpty(s2)) | ||
| 13 | + return false; | ||
| 14 | + else | ||
| 15 | + return true; | ||
| 16 | + } | ||
| 17 | + return s1.equals(s2); | ||
| 18 | + } | ||
| 19 | +} |
src/main/java/com/bsth/entity/realcontrol/ChildTaskPlan.java
src/main/java/com/bsth/entity/realcontrol/StationToPark.java
0 → 100644
| 1 | +package com.bsth.entity.realcontrol; | ||
| 2 | + | ||
| 3 | +import javax.persistence.Entity; | ||
| 4 | +import javax.persistence.GeneratedValue; | ||
| 5 | +import javax.persistence.Id; | ||
| 6 | +import javax.persistence.Table; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 站 到 场 | ||
| 10 | + * Created by panzhao on 2017/7/10. | ||
| 11 | + */ | ||
| 12 | +@Entity | ||
| 13 | +@Table(name = "bsth_c_station_to_park") | ||
| 14 | +public class StationToPark { | ||
| 15 | + | ||
| 16 | + @Id | ||
| 17 | + @GeneratedValue | ||
| 18 | + private Integer id; | ||
| 19 | + | ||
| 20 | + /** 线路编码 */ | ||
| 21 | + private String lineCode; | ||
| 22 | + | ||
| 23 | + /** 站点名称 */ | ||
| 24 | + private String stationName; | ||
| 25 | + | ||
| 26 | + /** 停车场编码 */ | ||
| 27 | + private String parkName; | ||
| 28 | + | ||
| 29 | + /** 站到场时间(分钟) */ | ||
| 30 | + private Float time1; | ||
| 31 | + | ||
| 32 | + /** 站到场公里 */ | ||
| 33 | + private Float mileage1; | ||
| 34 | + | ||
| 35 | + /** 场到站时间(分钟) */ | ||
| 36 | + private Float time2; | ||
| 37 | + | ||
| 38 | + /** 场到站公里 */ | ||
| 39 | + private Float mileage2; | ||
| 40 | + | ||
| 41 | + /** 排序字段 */ | ||
| 42 | + private int orderNo; | ||
| 43 | + | ||
| 44 | + public String getLineCode() { | ||
| 45 | + return lineCode; | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + public void setLineCode(String lineCode) { | ||
| 49 | + this.lineCode = lineCode; | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + public String getStationName() { | ||
| 53 | + return stationName; | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + public void setStationName(String stationName) { | ||
| 57 | + this.stationName = stationName; | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + | ||
| 61 | + public Float getTime1() { | ||
| 62 | + return time1; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + public void setTime1(Float time1) { | ||
| 66 | + this.time1 = time1; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + public Float getMileage1() { | ||
| 70 | + return mileage1; | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + public void setMileage1(Float mileage1) { | ||
| 74 | + this.mileage1 = mileage1; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + public Float getTime2() { | ||
| 78 | + return time2; | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + public void setTime2(Float time2) { | ||
| 82 | + this.time2 = time2; | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + public Float getMileage2() { | ||
| 86 | + return mileage2; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + public void setMileage2(Float mileage2) { | ||
| 90 | + this.mileage2 = mileage2; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + public Integer getId() { | ||
| 94 | + return id; | ||
| 95 | + } | ||
| 96 | + | ||
| 97 | + public void setId(Integer id) { | ||
| 98 | + this.id = id; | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + public int getOrderNo() { | ||
| 102 | + return orderNo; | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + public void setOrderNo(int orderNo) { | ||
| 106 | + this.orderNo = orderNo; | ||
| 107 | + } | ||
| 108 | + | ||
| 109 | + public String getParkName() { | ||
| 110 | + return parkName; | ||
| 111 | + } | ||
| 112 | + | ||
| 113 | + public void setParkName(String parkName) { | ||
| 114 | + this.parkName = parkName; | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + @Override | ||
| 118 | + public int hashCode() { | ||
| 119 | + return ("stp_" + this.toString()).hashCode(); | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + @Override | ||
| 123 | + public boolean equals(Object obj) { | ||
| 124 | + return this.toString().equals(((StationToPark)obj).toString()); | ||
| 125 | + } | ||
| 126 | + | ||
| 127 | + @Override | ||
| 128 | + public String toString() { | ||
| 129 | + return this.lineCode + "_" + this.getStationName() + "_" + this.getParkName(); | ||
| 130 | + } | ||
| 131 | +} |
src/main/java/com/bsth/repository/LineRepository.java
| @@ -39,6 +39,6 @@ public interface LineRepository extends BaseRepository<Line, Integer> { | @@ -39,6 +39,6 @@ public interface LineRepository extends BaseRepository<Line, Integer> { | ||
| 39 | 39 | ||
| 40 | public Line findByLineCode(String string); | 40 | public Line findByLineCode(String string); |
| 41 | 41 | ||
| 42 | - @Query(value = " SELECT l FROM Line l where l.company like ?1 and l.brancheCompany like ?2 and l.lineCode like ?3") | 42 | + @Query(value = " SELECT l FROM Line l where l.company like %?1% and l.brancheCompany like %?2% and l.lineCode like ?3") |
| 43 | public List<Line> findLineBygsBm(String gsBm, String fgsBm, String line); | 43 | public List<Line> findLineBygsBm(String gsBm, String fgsBm, String line); |
| 44 | } | 44 | } |
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
| @@ -81,7 +81,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI | @@ -81,7 +81,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository<ScheduleRealI | ||
| 81 | @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and sflj != 0") | 81 | @Query(value="select count(jName) from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 and sflj != 0") |
| 82 | int findLjbc(String jName,String clZbh,String lpName); | 82 | int findLjbc(String jName,String clZbh,String lpName); |
| 83 | 83 | ||
| 84 | - @Query(value="SELECT c.company,r.request_code,FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d %T'),c.inside_code FROM bsth_v_report_80 r LEFT JOIN bsth_c_cars c ON c.equipment_code = r.device_id where FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d') = ?2 and r.line_id = ?1 and c.inside_code like %?3%",nativeQuery=true) | 84 | + @Query(value="SELECT request_code,FROM_UNIXTIME(TIMESTAMP / 1000,'%Y-%m-%d %T') as TIMESTAMP ,device_id FROM bsth_v_report_80 WHERE FROM_UNIXTIME( TIMESTAMP / 1000,'%Y-%m-%d') = ?2 AND line_id = ?1 and device_id like %?3%",nativeQuery=true) |
| 85 | List<Object[]> account(String line,String date,String code); | 85 | List<Object[]> account(String line,String date,String code); |
| 86 | 86 | ||
| 87 | @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDate >= str_to_date(?2,'%Y-%m-%d') " | 87 | @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and s.scheduleDate >= str_to_date(?2,'%Y-%m-%d') " |
src/main/java/com/bsth/repository/realcontrol/StationToParkRepository.java
0 → 100644
| 1 | +package com.bsth.repository.realcontrol; | ||
| 2 | + | ||
| 3 | +import com.bsth.entity.realcontrol.StationToPark; | ||
| 4 | +import com.bsth.repository.BaseRepository; | ||
| 5 | +import org.springframework.stereotype.Repository; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * Created by panzhao on 2017/7/10. | ||
| 9 | + */ | ||
| 10 | +@Repository | ||
| 11 | +public interface StationToParkRepository extends BaseRepository<StationToPark, Integer>{ | ||
| 12 | +} |
src/main/java/com/bsth/service/TrafficManageService.java
| @@ -24,7 +24,7 @@ public interface TrafficManageService { | @@ -24,7 +24,7 @@ public interface TrafficManageService { | ||
| 24 | * | 24 | * |
| 25 | * @return 调用接口返回信息 | 25 | * @return 调用接口返回信息 |
| 26 | */ | 26 | */ |
| 27 | - String setXL(Map<String, Object> param); | 27 | + String setXL(String ids); |
| 28 | 28 | ||
| 29 | /** | 29 | /** |
| 30 | * 上传车辆信息 | 30 | * 上传车辆信息 |
src/main/java/com/bsth/service/gps/GpsServiceImpl.java
| @@ -479,7 +479,7 @@ public class GpsServiceImpl implements GpsService { | @@ -479,7 +479,7 @@ public class GpsServiceImpl implements GpsService { | ||
| 479 | }); | 479 | }); |
| 480 | Map<String, Object> fs = list.get(0); | 480 | Map<String, Object> fs = list.get(0); |
| 481 | //替换设备号和时间 | 481 | //替换设备号和时间 |
| 482 | - int diff = (int) (sch.getDfsjT() - Long.parseLong(fs.get("ts").toString()) - 1000 * 70); | 482 | + long diff = ((sch.getDfsjT() - Long.parseLong(fs.get("ts").toString())) - 1000 * 70); |
| 483 | 483 | ||
| 484 | String deviceId = BasicData.deviceId2NbbmMap.inverse().get(sch.getClZbh()); | 484 | String deviceId = BasicData.deviceId2NbbmMap.inverse().get(sch.getClZbh()); |
| 485 | for (Map<String, Object> map : list) { | 485 | for (Map<String, Object> map : list) { |
src/main/java/com/bsth/service/impl/BusIntervalServiceImpl.java
| @@ -666,9 +666,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -666,9 +666,10 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 666 | if(sfqr == 1){ | 666 | if(sfqr == 1){ |
| 667 | where += " and zdsj >= '"+times1+"' and fcsj <= '"+times2+"'"; | 667 | where += " and zdsj >= '"+times1+"' and fcsj <= '"+times2+"'"; |
| 668 | } | 668 | } |
| 669 | - where += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; | 669 | +// where += " and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks'"; |
| 670 | + where += " and bc_type != 'ldks'"; | ||
| 670 | 671 | ||
| 671 | - String sql = "select id, schedule_date_Str, real_exec_date, xl_name, lp_name, bcs, bcsj, jhlc," | 672 | + String sql = "select id, schedule_date_Str, real_exec_date, xl_name, lp_name, bcs, bcsj, jhlc, bc_type," |
| 672 | + " fcsj, fcsj_actual, zdsj, zdsj_actual, qdz_name, zdz_name, xl_dir, status, remarks, gs_name, fgs_name, sp_id" | 673 | + " fcsj, fcsj_actual, zdsj, zdsj_actual, qdz_name, zdz_name, xl_dir, status, remarks, gs_name, fgs_name, sp_id" |
| 673 | + " from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"'" | 674 | + " from bsth_c_s_sp_info_real where DATE_FORMAT(schedule_date,'%Y-%m-%d') >= '"+startDate+"'" |
| 674 | + " and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"+where+""; | 675 | + " and DATE_FORMAT(schedule_date,'%Y-%m-%d') <= '"+endDate+"'"+where+""; |
| @@ -692,6 +693,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -692,6 +693,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 692 | schedule.setZdsjActual(rs.getString("zdsj_actual")); | 693 | schedule.setZdsjActual(rs.getString("zdsj_actual")); |
| 693 | schedule.setQdzName(rs.getString("qdz_name")); | 694 | schedule.setQdzName(rs.getString("qdz_name")); |
| 694 | schedule.setZdzName(rs.getString("zdz_name")); | 695 | schedule.setZdzName(rs.getString("zdz_name")); |
| 696 | + schedule.setBcType(rs.getString("bc_type")); | ||
| 695 | schedule.setXlDir(rs.getString("xl_dir")); | 697 | schedule.setXlDir(rs.getString("xl_dir")); |
| 696 | schedule.setStatus(rs.getInt("status")); | 698 | schedule.setStatus(rs.getInt("status")); |
| 697 | schedule.setRemarks(rs.getString("remarks")); | 699 | schedule.setRemarks(rs.getString("remarks")); |
| @@ -825,7 +827,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -825,7 +827,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 825 | if(model.length() != 0){ | 827 | if(model.length() != 0){ |
| 826 | sql = "select sp.id from " | 828 | sql = "select sp.id from " |
| 827 | + "(select id, tt_info, xl_bm, lp, fcsj from bsth_c_s_sp_info where schedule_date >= '"+startDate+"' and schedule_date <= '"+endDate+"'" | 829 | + "(select id, tt_info, xl_bm, lp, fcsj from bsth_c_s_sp_info where schedule_date >= '"+startDate+"' and schedule_date <= '"+endDate+"'" |
| 828 | - + " and tt_info = '" + model + "' and bc_type != 'in' and bc_type != 'out' and bc_type != 'ldks') sp" | 830 | + + " and tt_info = '" + model + "' and bc_type != 'ldks') sp" |
| 829 | + " left join bsth_c_s_ttinfo_detail tt on sp.tt_info = tt.ttinfo and sp.xl_bm = tt.xl and sp.lp = tt.lp and sp.fcsj = tt.fcsj"; | 831 | + " left join bsth_c_s_ttinfo_detail tt on sp.tt_info = tt.ttinfo and sp.xl_bm = tt.xl and sp.lp = tt.lp and sp.fcsj = tt.fcsj"; |
| 830 | 832 | ||
| 831 | ttList = jdbcTemplate.query(sql, | 833 | ttList = jdbcTemplate.query(sql, |
| @@ -908,6 +910,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -908,6 +910,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 908 | for(String key : keyMap.keySet()){ | 910 | for(String key : keyMap.keySet()){ |
| 909 | Map<String, Object> tempMap = new HashMap<String, Object>(); | 911 | Map<String, Object> tempMap = new HashMap<String, Object>(); |
| 910 | Map<Long, ScheduleRealInfo> sortMap = new HashMap<Long, ScheduleRealInfo>(); | 912 | Map<Long, ScheduleRealInfo> sortMap = new HashMap<Long, ScheduleRealInfo>(); |
| 913 | + Map<Long, Map<String, Object>> sortMap1 = new HashMap<Long, Map<String, Object>>(); | ||
| 911 | List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); | 914 | List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); |
| 912 | List<Long> keyList = new ArrayList<Long>(); | 915 | List<Long> keyList = new ArrayList<Long>(); |
| 913 | List<Long> keyList2 = new ArrayList<Long>(); | 916 | List<Long> keyList2 = new ArrayList<Long>(); |
| @@ -939,30 +942,25 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -939,30 +942,25 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 939 | for(int i = 1; i < keyList.size(); i++){ | 942 | for(int i = 1; i < keyList.size(); i++){ |
| 940 | ScheduleRealInfo schedule1 = sortMap.get(keyList.get(i - 1)); | 943 | ScheduleRealInfo schedule1 = sortMap.get(keyList.get(i - 1)); |
| 941 | ScheduleRealInfo schedule2 = sortMap.get(keyList.get(i)); | 944 | ScheduleRealInfo schedule2 = sortMap.get(keyList.get(i)); |
| 942 | - if(!tsSet.contains(schedule1.getId())){ | ||
| 943 | - if(sfqr == 1 && time1 > schedule1.getFcsjT()){ | ||
| 944 | - jhyysj += schedule2.getFcsjT() - time1; | ||
| 945 | - }else if(sfqr == 1 && time2 < schedule2.getFcsjT()){ | ||
| 946 | - jhyysj += time2 - schedule1.getFcsjT(); | 945 | + if(!tsSet.contains(schedule1.getId()) && !schedule1.getBcType().toString().equals("in") && !schedule1.getBcType().toString().equals("out")){ |
| 946 | + long fcsj1 = schedule1.getFcsjT(); | ||
| 947 | + long fcsj2 = schedule2.getFcsjT(); | ||
| 948 | + if(tsSet.contains(schedule2.getId()) || schedule2.getBcType().toString().equals("in") || schedule2.getBcType().toString().equals("out")){ | ||
| 949 | + fcsj2 = schedule1.getZdsjT(); | ||
| 950 | + } | ||
| 951 | + if(sfqr == 1 && time1 > fcsj1){ | ||
| 952 | + jhyysj += fcsj2 - time1; | ||
| 953 | + }else if(sfqr == 1 && time2 < fcsj2){ | ||
| 954 | + jhyysj += time2 - fcsj1; | ||
| 947 | }else{ | 955 | }else{ |
| 948 | - jhyysj += schedule2.getFcsjT() - schedule1.getFcsjT(); | 956 | + jhyysj += fcsj2 - fcsj1; |
| 949 | } | 957 | } |
| 950 | - jhyysj1 += schedule2.getFcsjT() - schedule1.getFcsjT(); | ||
| 951 | - } | ||
| 952 | - long zdsj2 = schedule2.getZdsjT(); | ||
| 953 | - long fcsj2 = schedule2.getFcsjT(); | ||
| 954 | - if(fcsj2 > zdsj2) | ||
| 955 | - zdsj2 += 1440l; | ||
| 956 | - if(sfqr == 1 && time1 > fcsj2){ | ||
| 957 | - jhyssj += zdsj2 - time1; | ||
| 958 | - }else if(sfqr == 1 && time2 < zdsj2){ | ||
| 959 | - jhyssj += time2 - fcsj2; | ||
| 960 | - }else{ | ||
| 961 | - jhyssj += zdsj2 - fcsj2; | 958 | + if(jhyysj < 0){ |
| 959 | + System.out.println(fcsj2 + " - " + fcsj1); | ||
| 960 | + } | ||
| 961 | + jhyysj1 += fcsj2 - fcsj1; | ||
| 962 | } | 962 | } |
| 963 | - jhyssj1 += zdsj2 - fcsj2; | ||
| 964 | - jhlc += schedule2.getJhlc()==null?0:schedule2.getJhlc(); | ||
| 965 | - if(i == 1){ | 963 | + if(i == 1 && schedule1.getBcType().toString().equals("normal")){ |
| 966 | long zdsj1 = schedule1.getZdsjT(); | 964 | long zdsj1 = schedule1.getZdsjT(); |
| 967 | long fcsj1 = schedule1.getFcsjT(); | 965 | long fcsj1 = schedule1.getFcsjT(); |
| 968 | if(fcsj1 > zdsj1) | 966 | if(fcsj1 > zdsj1) |
| @@ -977,12 +975,27 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -977,12 +975,27 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 977 | jhyssj1 += zdsj1 - fcsj1; | 975 | jhyssj1 += zdsj1 - fcsj1; |
| 978 | jhlc += schedule1.getJhlc()==null?0:schedule1.getJhlc(); | 976 | jhlc += schedule1.getJhlc()==null?0:schedule1.getJhlc(); |
| 979 | } | 977 | } |
| 978 | + if(schedule2.getBcType().toString().equals("normal")){ | ||
| 979 | + long zdsj2 = schedule2.getZdsjT(); | ||
| 980 | + long fcsj2 = schedule2.getFcsjT(); | ||
| 981 | + if(fcsj2 > zdsj2) | ||
| 982 | + zdsj2 += 1440l; | ||
| 983 | + if(sfqr == 1 && time1 > fcsj2){ | ||
| 984 | + jhyssj += zdsj2 - time1; | ||
| 985 | + }else if(sfqr == 1 && time2 < zdsj2){ | ||
| 986 | + jhyssj += time2 - fcsj2; | ||
| 987 | + }else{ | ||
| 988 | + jhyssj += zdsj2 - fcsj2; | ||
| 989 | + } | ||
| 990 | + jhyssj1 += zdsj2 - fcsj2; | ||
| 991 | + jhlc += schedule2.getJhlc()==null?0:schedule2.getJhlc(); | ||
| 992 | + } | ||
| 980 | } | 993 | } |
| 981 | 994 | ||
| 982 | for(int i = 0; i < keyList.size(); i++){ | 995 | for(int i = 0; i < keyList.size(); i++){ |
| 983 | Map<String, Object> m = new HashMap<String, Object>(); | 996 | Map<String, Object> m = new HashMap<String, Object>(); |
| 984 | ScheduleRealInfo schedule = sortMap.get(keyList.get(i)); | 997 | ScheduleRealInfo schedule = sortMap.get(keyList.get(i)); |
| 985 | - | 998 | + |
| 986 | if(cMap.containsKey(schedule.getId())){ | 999 | if(cMap.containsKey(schedule.getId())){ |
| 987 | List<ChildTaskPlan> cTasks = cMap.get(schedule.getId()); | 1000 | List<ChildTaskPlan> cTasks = cMap.get(schedule.getId()); |
| 988 | for(ChildTaskPlan childTaskPlan : cTasks){ | 1001 | for(ChildTaskPlan childTaskPlan : cTasks){ |
| @@ -1005,6 +1018,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -1005,6 +1018,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 1005 | temp.put("fcsj", null); | 1018 | temp.put("fcsj", null); |
| 1006 | } | 1019 | } |
| 1007 | } | 1020 | } |
| 1021 | + temp.put("bcType", schedule.getBcType()); | ||
| 1008 | mapList.add(temp); | 1022 | mapList.add(temp); |
| 1009 | } | 1023 | } |
| 1010 | }else{ | 1024 | }else{ |
| @@ -1022,6 +1036,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -1022,6 +1036,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 1022 | m.put("zdsj", null); | 1036 | m.put("zdsj", null); |
| 1023 | m.put("fcsj", null); | 1037 | m.put("fcsj", null); |
| 1024 | } | 1038 | } |
| 1039 | + m.put("bcType", schedule.getBcType()); | ||
| 1025 | mapList.add(m); | 1040 | mapList.add(m); |
| 1026 | } | 1041 | } |
| 1027 | } | 1042 | } |
| @@ -1029,6 +1044,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -1029,6 +1044,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 1029 | for(Map<String, Object> m : mapList){ | 1044 | for(Map<String, Object> m : mapList){ |
| 1030 | if(m.get("fcsj") != null && m.get("fcsj").toString().trim().length()!=0){ | 1045 | if(m.get("fcsj") != null && m.get("fcsj").toString().trim().length()!=0){ |
| 1031 | keyList2.add(Long.valueOf(m.get("fcsj").toString())); | 1046 | keyList2.add(Long.valueOf(m.get("fcsj").toString())); |
| 1047 | + sortMap1.put(Long.valueOf(m.get("fcsj").toString()), m); | ||
| 1032 | } | 1048 | } |
| 1033 | } | 1049 | } |
| 1034 | Collections.sort(keyList2); | 1050 | Collections.sort(keyList2); |
| @@ -1036,36 +1052,31 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -1036,36 +1052,31 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 1036 | for(int i = 1; i < keyList2.size(); i++){ | 1052 | for(int i = 1; i < keyList2.size(); i++){ |
| 1037 | long fcsj1 = keyList2.get(i - 1); | 1053 | long fcsj1 = keyList2.get(i - 1); |
| 1038 | long fcsj2 = keyList2.get(i); | 1054 | long fcsj2 = keyList2.get(i); |
| 1039 | - if(fcsj2 - fcsj1 < 90){ | ||
| 1040 | - if(sfqr == 1 && time1 > fcsj1){ | ||
| 1041 | - sjyysj += fcsj2 - time1; | ||
| 1042 | - }else if(sfqr == 1 && time2 < fcsj2){ | ||
| 1043 | - sjyysj += time2 - fcsj1; | ||
| 1044 | - }else{ | ||
| 1045 | - sjyysj += fcsj2 - fcsj1; | ||
| 1046 | - } | ||
| 1047 | - sjyysj1 += fcsj2 - fcsj1; | 1055 | + Map<String, Object> m1 = sortMap1.get(fcsj1); |
| 1056 | + Map<String, Object> m2 = sortMap1.get(fcsj2); | ||
| 1057 | + if(m1.get("bcType").toString().equals("in") || m1.get("bcType").toString().equals("out")) | ||
| 1058 | + continue; | ||
| 1059 | + if(m2.get("bcType").toString().equals("in") || m2.get("bcType").toString().equals("out")){ | ||
| 1060 | + fcsj2 = Long.valueOf(m1.get("zdsj").toString()); | ||
| 1061 | + } else if(i == keyList.size() - 1){ | ||
| 1062 | + fcsj2 = Long.valueOf(m2.get("zdsj").toString()); | ||
| 1063 | + } | ||
| 1064 | + if(sfqr == 1 && time1 > fcsj1){ | ||
| 1065 | + sjyysj += fcsj2 - time1; | ||
| 1066 | + }else if(sfqr == 1 && time2 < fcsj2){ | ||
| 1067 | + sjyysj += time2 - fcsj1; | ||
| 1068 | + }else{ | ||
| 1069 | + sjyysj += fcsj2 - fcsj1; | ||
| 1048 | } | 1070 | } |
| 1071 | + sjyysj1 += fcsj2 - fcsj1; | ||
| 1049 | } | 1072 | } |
| 1050 | 1073 | ||
| 1051 | - for(int i = 1; i < mapList.size(); i++){ | ||
| 1052 | - Map<String, Object> m1 = mapList.get(i - 1); | ||
| 1053 | - Map<String, Object> m2 = mapList.get(i); | ||
| 1054 | -// if(m1.get("fcsj") != null && m2.get("fcsj") != null){ | ||
| 1055 | -// long fcsj2 = Long.valueOf(m2.get("fcsj").toString()); | ||
| 1056 | -// long fcsj1 = Long.valueOf(m1.get("fcsj").toString()); | ||
| 1057 | -// if(sfqr == 1 && time1 > fcsj1){ | ||
| 1058 | -// sjyysj += fcsj2 - time1; | ||
| 1059 | -// }else if(sfqr == 1 && time2 < fcsj2){ | ||
| 1060 | -// sjyysj += time2 - fcsj1; | ||
| 1061 | -// }else{ | ||
| 1062 | -// sjyysj += fcsj2 - fcsj1; | ||
| 1063 | -// } | ||
| 1064 | -// sjyysj1 += fcsj2 - fcsj1; | ||
| 1065 | -// } | ||
| 1066 | - if(m2.get("fcsj") != null && m2.get("zdsj") != null){ | ||
| 1067 | - long zdsj = Long.valueOf(m2.get("zdsj").toString()); | ||
| 1068 | - long fcsj = Long.valueOf(m2.get("fcsj").toString()); | 1074 | + for(int i = 0; i < mapList.size(); i++){ |
| 1075 | + Map<String, Object> m = mapList.get(i); | ||
| 1076 | + if(m.get("fcsj") != null && m.get("zdsj") != null && | ||
| 1077 | + !m.get("bcType").toString().equals("in") && !m.get("bcType").toString().equals("out")){ | ||
| 1078 | + long zdsj = Long.valueOf(m.get("zdsj").toString()); | ||
| 1079 | + long fcsj = Long.valueOf(m.get("fcsj").toString()); | ||
| 1069 | if(fcsj > zdsj) | 1080 | if(fcsj > zdsj) |
| 1070 | zdsj += 1440l; | 1081 | zdsj += 1440l; |
| 1071 | if(sfqr == 1 && time1 > fcsj){ | 1082 | if(sfqr == 1 && time1 > fcsj){ |
| @@ -1076,22 +1087,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | @@ -1076,22 +1087,7 @@ public class BusIntervalServiceImpl implements BusIntervalService { | ||
| 1076 | sjyssj += zdsj - fcsj; | 1087 | sjyssj += zdsj - fcsj; |
| 1077 | } | 1088 | } |
| 1078 | sjyssj1 += zdsj - fcsj; | 1089 | sjyssj1 += zdsj - fcsj; |
| 1079 | - sjlc += Double.valueOf(m2.get("lc").toString()); | ||
| 1080 | - } | ||
| 1081 | - if(i == 1 && m1.get("fcsj") != null && m1.get("zdsj") != null){ | ||
| 1082 | - long zdsj = Long.valueOf(m1.get("zdsj").toString()); | ||
| 1083 | - long fcsj = Long.valueOf(m1.get("fcsj").toString()); | ||
| 1084 | - if(fcsj > zdsj) | ||
| 1085 | - zdsj += 1440l; | ||
| 1086 | - if(sfqr == 1 && time1 > fcsj){ | ||
| 1087 | - sjyssj += zdsj - time1; | ||
| 1088 | - }else if(sfqr == 1 && time2 < zdsj){ | ||
| 1089 | - sjyssj += time2 - fcsj; | ||
| 1090 | - }else{ | ||
| 1091 | - sjyssj += zdsj - fcsj; | ||
| 1092 | - } | ||
| 1093 | - sjyssj1 += zdsj - fcsj; | ||
| 1094 | - sjlc += Double.valueOf(m1.get("lc").toString()); | 1090 | + sjlc += Double.valueOf(m.get("lc").toString()); |
| 1095 | } | 1091 | } |
| 1096 | } | 1092 | } |
| 1097 | tempMap.put("company", companyName); | 1093 | tempMap.put("company", companyName); |
src/main/java/com/bsth/service/impl/TrafficManageServiceImpl.java
| @@ -16,6 +16,7 @@ import com.bsth.repository.schedule.*; | @@ -16,6 +16,7 @@ import com.bsth.repository.schedule.*; | ||
| 16 | import com.bsth.repository.traffic.SKBUploadLoggerRepository; | 16 | import com.bsth.repository.traffic.SKBUploadLoggerRepository; |
| 17 | import com.bsth.security.util.SecurityUtils; | 17 | import com.bsth.security.util.SecurityUtils; |
| 18 | import com.bsth.service.TrafficManageService; | 18 | import com.bsth.service.TrafficManageService; |
| 19 | +import com.bsth.service.traffic.YgcBasicDataService; | ||
| 19 | import com.bsth.util.TimeUtils; | 20 | import com.bsth.util.TimeUtils; |
| 20 | import com.bsth.util.db.DBUtils_MS; | 21 | import com.bsth.util.db.DBUtils_MS; |
| 21 | import com.bsth.webService.trafficManage.geotool.services.InternalPortType; | 22 | import com.bsth.webService.trafficManage.geotool.services.InternalPortType; |
| @@ -99,7 +100,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -99,7 +100,7 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 99 | 100 | ||
| 100 | // 线路站点repository | 101 | // 线路站点repository |
| 101 | @Autowired | 102 | @Autowired |
| 102 | - private StationRepository stationRepository; | 103 | + private YgcBasicDataService ygcBasicDataService; |
| 103 | 104 | ||
| 104 | 105 | ||
| 105 | // 运管处接口 | 106 | // 运管处接口 |
| @@ -122,11 +123,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -122,11 +123,6 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 122 | DecimalFormat format = new DecimalFormat("0.00"); | 123 | DecimalFormat format = new DecimalFormat("0.00"); |
| 123 | 124 | ||
| 124 | // 用户名 | 125 | // 用户名 |
| 125 | - private final String userNameXl = "pudong"; | ||
| 126 | - // 密码 | ||
| 127 | - private final String passwordXl = "pudong123"; | ||
| 128 | - | ||
| 129 | - // 用户名 | ||
| 130 | private final String userNameOther = "user"; | 126 | private final String userNameOther = "user"; |
| 131 | // 密码 | 127 | // 密码 |
| 132 | private final String passwordOther = "user"; | 128 | private final String passwordOther = "user"; |
| @@ -134,34 +130,25 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -134,34 +130,25 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 134 | * 上传线路信息 | 130 | * 上传线路信息 |
| 135 | */ | 131 | */ |
| 136 | @Override | 132 | @Override |
| 137 | - public String setXL(Map<String, Object> param) { | 133 | + public String setXL(String ids) { |
| 138 | String result = "failure"; | 134 | String result = "failure"; |
| 139 | StringBuffer sBuffer = new StringBuffer(); | 135 | StringBuffer sBuffer = new StringBuffer(); |
| 136 | + String[] idArray = ids.split(","); | ||
| 140 | try { | 137 | try { |
| 141 | - Map<String,Object> map = new HashMap<String,Object>(); | ||
| 142 | - map.put("lineCode_eq", param.get("xl.lineCode_like")+""); | ||
| 143 | - Iterator<Line> lineIterator; | ||
| 144 | - Line line = null; | ||
| 145 | - if(param.get("xl.lineCode_like").equals("")){ | ||
| 146 | - lineIterator = lineRepository.findAll().iterator(); | ||
| 147 | - }else { | 138 | + for (String id : idArray) { |
| 139 | + Map<String,Object> map = new HashMap<>(); | ||
| 140 | + map.put("lineCode_eq", id); | ||
| 141 | + Line line ; | ||
| 148 | line = lineRepository.findOne(new CustomerSpecs<Line>(map)); | 142 | line = lineRepository.findOne(new CustomerSpecs<Line>(map)); |
| 149 | - } | ||
| 150 | - List<StationRoute> upStationsList = null;// 上行站点路由集 | ||
| 151 | - List<StationRoute> downStationsList = null;// 下行站点路由集 | ||
| 152 | - List<LineInformation> lineInformationsList = null; | ||
| 153 | - LineInformation lineInformation = null; | ||
| 154 | - sBuffer.append("<Data>"); | ||
| 155 | - sBuffer.append("<RequestOrg>上海巴士拓华科技发展有限公司</RequestOrg>"); | ||
| 156 | - sBuffer.append("<DataList>"); | ||
| 157 | -// while(lineIterator.hasNext()){ | ||
| 158 | -// line = lineIterator.next(); | ||
| 159 | -// if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null | ||
| 160 | -// || line.getInUse() == 0){ | ||
| 161 | -// continue; | ||
| 162 | -// } | ||
| 163 | - if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null | ||
| 164 | - || line.getInUse() == 0){ | 143 | + if(line == null){ |
| 144 | + continue; | ||
| 145 | + } | ||
| 146 | + List<StationRoute> upStationsList ;// 上行站点路由集 | ||
| 147 | + List<StationRoute> downStationsList = null;// 下行站点路由集 | ||
| 148 | + sBuffer.append("<Data>"); | ||
| 149 | + sBuffer.append("<RequestOrg>上海巴士拓华科技发展有限公司</RequestOrg>"); | ||
| 150 | + sBuffer.append("<DataList>"); | ||
| 151 | + if(BasicData.lineId2ShangHaiCodeMap.get(line.getId()) == null){ | ||
| 165 | return result; | 152 | return result; |
| 166 | } | 153 | } |
| 167 | sBuffer.append("<LINE_ID>").append(line.getId()).append("</LINE_ID>"); | 154 | sBuffer.append("<LINE_ID>").append(line.getId()).append("</LINE_ID>"); |
| @@ -190,32 +177,24 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | @@ -190,32 +177,24 @@ public class TrafficManageServiceImpl implements TrafficManageService{ | ||
| 190 | packagStationPointXml(downStationsList, sBuffer, startId); | 177 | packagStationPointXml(downStationsList, sBuffer, startId); |
| 191 | } | 178 | } |
| 192 | sBuffer.append("</LinePointList>"); | 179 | sBuffer.append("</LinePointList>"); |
| 193 | -// } | ||
| 194 | - sBuffer.append("</DataList>"); | ||
| 195 | - sBuffer.append("</Data>"); | ||
| 196 | - System.out.println(sBuffer.toString()); | ||
| 197 | - if(sBuffer.indexOf("<XL>") != -1){ | ||
| 198 | - portType = new Internal().getInternalHttpSoap11Endpoint(); | ||
| 199 | - String portResult = portType.setXL(userNameXl, passwordXl, sBuffer.toString()); | ||
| 200 | - String portArray[] = portResult.split("\n"); | ||
| 201 | - if(portArray.length >= 4){ | ||
| 202 | - // 返回数据的编码 | ||
| 203 | - String returnCode = portArray[1].substring(portArray[1].indexOf(">")+1,portArray[1].indexOf("</")); | ||
| 204 | - // 返回的信息 | ||
| 205 | - String returnDescription = portArray[2].substring(portArray[2].indexOf(">")+1,portArray[2].indexOf("</")); | ||
| 206 | - if(returnCode.equals("1")){ | ||
| 207 | - result = "success"; | ||
| 208 | - }else{ | ||
| 209 | - result = returnDescription; | ||
| 210 | - } | 180 | + sBuffer.append("</DataList>"); |
| 181 | + sBuffer.append("</Data>"); | ||
| 182 | + // 调用上传方法 | ||
| 183 | + result = ygcBasicDataService.invokeMethod("UpdateBusLineStation",sBuffer.toString()); | ||
| 184 | + String str = "ReturnCode"; | ||
| 185 | + // 解析返回值 | ||
| 186 | + result = result.substring(result.indexOf(str)+str.length()+1,result.lastIndexOf(str)-2); | ||
| 187 | + if(result.equals("1")){ | ||
| 188 | + result = "success"; | ||
| 189 | + }else{ | ||
| 190 | + result = "failure"; | ||
| 211 | } | 191 | } |
| 192 | + logger.info("setXL:"+sBuffer.toString()); | ||
| 193 | + logger.info("setXL:"+result); | ||
| 212 | } | 194 | } |
| 213 | } catch (Exception e) { | 195 | } catch (Exception e) { |
| 214 | logger.error("setXL:",e); | 196 | logger.error("setXL:",e); |
| 215 | e.printStackTrace(); | 197 | e.printStackTrace(); |
| 216 | - }finally{ | ||
| 217 | - logger.info("setXL:"+sBuffer.toString()); | ||
| 218 | - logger.info("setXL:"+result); | ||
| 219 | } | 198 | } |
| 220 | return result; | 199 | return result; |
| 221 | } | 200 | } |
src/main/java/com/bsth/service/realcontrol/impl/ChildTaskPlanServiceImpl.java
| @@ -2,6 +2,7 @@ package com.bsth.service.realcontrol.impl; | @@ -2,6 +2,7 @@ package com.bsth.service.realcontrol.impl; | ||
| 2 | 2 | ||
| 3 | import com.bsth.common.ResponseCode; | 3 | import com.bsth.common.ResponseCode; |
| 4 | import com.bsth.data.BasicData; | 4 | import com.bsth.data.BasicData; |
| 5 | +import com.bsth.data.Station2ParkBuffer; | ||
| 5 | import com.bsth.data.schedule.DayOfSchedule; | 6 | import com.bsth.data.schedule.DayOfSchedule; |
| 6 | import com.bsth.entity.realcontrol.ChildTaskPlan; | 7 | import com.bsth.entity.realcontrol.ChildTaskPlan; |
| 7 | import com.bsth.entity.realcontrol.ScheduleRealInfo; | 8 | import com.bsth.entity.realcontrol.ScheduleRealInfo; |
| @@ -67,6 +68,9 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Lon | @@ -67,6 +68,9 @@ public class ChildTaskPlanServiceImpl extends BaseServiceImpl<ChildTaskPlan, Lon | ||
| 67 | dayOfSchedule.save(sch); | 68 | dayOfSchedule.save(sch); |
| 68 | //直接持久化 | 69 | //直接持久化 |
| 69 | //scheduleRealInfoRepository.save(sch); | 70 | //scheduleRealInfoRepository.save(sch); |
| 71 | + //站到场对照 | ||
| 72 | + t.setSchedule(sch); | ||
| 73 | + Station2ParkBuffer.put(t); | ||
| 70 | 74 | ||
| 71 | rs.put("status", ResponseCode.SUCCESS); | 75 | rs.put("status", ResponseCode.SUCCESS); |
| 72 | rs.put("t", sch); | 76 | rs.put("t", sch); |
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
| @@ -15,9 +15,11 @@ import com.bsth.data.schedule.SchAttrCalculator; | @@ -15,9 +15,11 @@ import com.bsth.data.schedule.SchAttrCalculator; | ||
| 15 | import com.bsth.data.schedule.ScheduleComparator; | 15 | import com.bsth.data.schedule.ScheduleComparator; |
| 16 | import com.bsth.data.schedule.edit_logs.FormLogger; | 16 | import com.bsth.data.schedule.edit_logs.FormLogger; |
| 17 | import com.bsth.data.schedule.edit_logs.ScheduleModifyLogger; | 17 | import com.bsth.data.schedule.edit_logs.ScheduleModifyLogger; |
| 18 | +import com.bsth.data.schedule.edit_logs.loggers.AfterwardsLogger; | ||
| 18 | import com.bsth.data.schedule.edit_logs.loggers.FcxxwtLogger; | 19 | import com.bsth.data.schedule.edit_logs.loggers.FcxxwtLogger; |
| 19 | import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto; | 20 | import com.bsth.data.schedule.edit_logs.service.dto.SchEditInfoDto; |
| 20 | import com.bsth.data.schedule.late_adjust.LateAdjustHandle; | 21 | import com.bsth.data.schedule.late_adjust.LateAdjustHandle; |
| 22 | +import com.bsth.data.utils.CustomStringUtils; | ||
| 21 | import com.bsth.entity.Cars; | 23 | import com.bsth.entity.Cars; |
| 22 | import com.bsth.entity.Line; | 24 | import com.bsth.entity.Line; |
| 23 | import com.bsth.entity.Personnel; | 25 | import com.bsth.entity.Personnel; |
| @@ -1687,45 +1689,66 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -1687,45 +1689,66 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 1687 | public List<Map<String, Object>> accountPx(String line, String date, | 1689 | public List<Map<String, Object>> accountPx(String line, String date, |
| 1688 | String code, String xlName, String px) { | 1690 | String code, String xlName, String px) { |
| 1689 | // List<Object[]> lsitObj = scheduleRealInfoRepository.accountPx(line, date, code,px); | 1691 | // List<Object[]> lsitObj = scheduleRealInfoRepository.accountPx(line, date, code,px); |
| 1692 | + if(!code.trim().equals("")){ | ||
| 1693 | + code=BasicData.deviceId2NbbmMap.inverse().get(code); | ||
| 1694 | + } | ||
| 1695 | + String fgs=""; | ||
| 1696 | + List<Line> lineList= lineRepository.findLineBygsBm("", "", line); | ||
| 1697 | + if(lineList.size()>0){ | ||
| 1698 | + Line l=lineList.get(0); | ||
| 1699 | + fgs=BasicData.businessFgsCodeNameMap.get(l.getBrancheCompany()+"_"+l.getCompany()); | ||
| 1700 | + } | ||
| 1690 | List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>(); | 1701 | List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>(); |
| 1691 | - String sql= "SELECT c.company,r.request_code,FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d %T') as date," | ||
| 1692 | - + "c.inside_code FROM bsth_v_report_80 r LEFT JOIN bsth_c_cars c " | ||
| 1693 | - + "ON c.equipment_code = r.device_id where " | ||
| 1694 | - + "FROM_UNIXTIME(r.timestamp/1000,'%Y-%m-%d') = '"+date +"'" | ||
| 1695 | - + "and r.line_id = "+line+" and c.inside_code like '%"+code+"%'" | ||
| 1696 | - + " order by c.inside_code "+px; | 1702 | + String sql= "SELECT request_code,FROM_UNIXTIME(TIMESTAMP / 1000,'%Y-%m-%d %T') as TIMESTAMP ," |
| 1703 | + + " device_id FROM bsth_v_report_80 WHERE " | ||
| 1704 | + + " FROM_UNIXTIME( TIMESTAMP / 1000,'%Y-%m-%d') = '"+date+"' AND" | ||
| 1705 | + + " line_id = '"+line+"' and device_id like '%"+code+"%'"; | ||
| 1697 | Map<String, Object> map; | 1706 | Map<String, Object> map; |
| 1698 | List<Object[]> lsitObj = jdbcTemplate.query(sql, | 1707 | List<Object[]> lsitObj = jdbcTemplate.query(sql, |
| 1699 | new RowMapper<Object[]>() { | 1708 | new RowMapper<Object[]>() { |
| 1700 | @Override | 1709 | @Override |
| 1701 | public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException { | 1710 | public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException { |
| 1702 | - Object[] t = new Object[4]; | ||
| 1703 | - t[0]=rs.getString("company"); | ||
| 1704 | - t[1]=rs.getString("request_code"); | ||
| 1705 | - t[2]=rs.getString("date"); | ||
| 1706 | - t[3]=rs.getString("inside_code"); | 1711 | + Object[] t = new Object[3]; |
| 1712 | + t[0]=rs.getString("request_code"); | ||
| 1713 | + t[1]=rs.getString("TIMESTAMP"); | ||
| 1714 | + t[2]=rs.getString("device_id"); | ||
| 1707 | return t; | 1715 | return t; |
| 1708 | } | 1716 | } |
| 1709 | }); | 1717 | }); |
| 1710 | int i = 1; | 1718 | int i = 1; |
| 1711 | for (Object[] obj : lsitObj) { | 1719 | for (Object[] obj : lsitObj) { |
| 1712 | if (obj != null) { | 1720 | if (obj != null) { |
| 1713 | - map = new HashMap<String, Object>(); | ||
| 1714 | - map.put("num", i++); | ||
| 1715 | - map.put("xlName", xlName); | ||
| 1716 | - map.put("clZbh", obj[3]); | ||
| 1717 | - map.put("company", obj[0]); | ||
| 1718 | - map.put("requestType", "0x" + Integer.toHexString(Integer.parseInt(obj[1] + "")).toUpperCase()); | ||
| 1719 | - map.put("requestTime", obj[2]); | ||
| 1720 | - listMap.add(map); | 1721 | + map = new HashMap<String, Object>(); |
| 1722 | + map.put("num", i++); | ||
| 1723 | + map.put("xlName", xlName); | ||
| 1724 | + map.put("clZbh", BasicData.deviceId2NbbmMap.get(obj[2])); | ||
| 1725 | + map.put("company",fgs); | ||
| 1726 | + map.put("requestType", "0x" + Integer.toHexString(Integer.parseInt(obj[0] + "")).toUpperCase()); | ||
| 1727 | + map.put("requestTime", obj[1]); | ||
| 1728 | + listMap.add(map); | ||
| 1721 | } | 1729 | } |
| 1722 | } | 1730 | } |
| 1723 | - | 1731 | + if(listMap.size()>1){ |
| 1732 | + if(px.equals("asc")){ | ||
| 1733 | + Collections.sort(listMap,new AccountMap()); | ||
| 1734 | + }else{ | ||
| 1735 | + Collections.sort(listMap,new AccountMap2()); | ||
| 1736 | + } | ||
| 1737 | + } | ||
| 1724 | return listMap; | 1738 | return listMap; |
| 1725 | } | 1739 | } |
| 1726 | @Override | 1740 | @Override |
| 1727 | public List<Map<String, Object>> account(String line, String date, | 1741 | public List<Map<String, Object>> account(String line, String date, |
| 1728 | String code, String xlName, String type) { | 1742 | String code, String xlName, String type) { |
| 1743 | + if(!code.trim().equals("")){ | ||
| 1744 | + code=BasicData.deviceId2NbbmMap.inverse().get(code); | ||
| 1745 | + } | ||
| 1746 | + String fgs=""; | ||
| 1747 | + List<Line> lineList= lineRepository.findLineBygsBm("", "", line); | ||
| 1748 | + if(lineList.size()>0){ | ||
| 1749 | + Line l=lineList.get(0); | ||
| 1750 | + fgs=BasicData.businessFgsCodeNameMap.get(l.getBrancheCompany()+"_"+l.getCompany()); | ||
| 1751 | + } | ||
| 1729 | List<Object[]> lsitObj = scheduleRealInfoRepository.account(line, date, code); | 1752 | List<Object[]> lsitObj = scheduleRealInfoRepository.account(line, date, code); |
| 1730 | List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>(); | 1753 | List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>(); |
| 1731 | Map<String, Object> map; | 1754 | Map<String, Object> map; |
| @@ -1735,10 +1758,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -1735,10 +1758,10 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 1735 | map = new HashMap<String, Object>(); | 1758 | map = new HashMap<String, Object>(); |
| 1736 | map.put("num", i++); | 1759 | map.put("num", i++); |
| 1737 | map.put("xlName", xlName); | 1760 | map.put("xlName", xlName); |
| 1738 | - map.put("clZbh", obj[3]); | ||
| 1739 | - map.put("company", obj[0]); | ||
| 1740 | - map.put("requestType", "0x" + Integer.toHexString(Integer.parseInt(obj[1] + "")).toUpperCase()); | ||
| 1741 | - map.put("requestTime", obj[2]); | 1761 | + map.put("clZbh", BasicData.deviceId2NbbmMap.get(obj[2])); |
| 1762 | + map.put("company",fgs); | ||
| 1763 | + map.put("requestType", "0x" + Integer.toHexString(Integer.parseInt(obj[0] + "")).toUpperCase()); | ||
| 1764 | + map.put("requestTime", obj[1]); | ||
| 1742 | listMap.add(map); | 1765 | listMap.add(map); |
| 1743 | } | 1766 | } |
| 1744 | } | 1767 | } |
| @@ -2554,11 +2577,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -2554,11 +2577,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 2554 | if (a == 2) { | 2577 | if (a == 2) { |
| 2555 | x = b + 1; | 2578 | x = b + 1; |
| 2556 | y = x * 2; | 2579 | y = x * 2; |
| 2557 | - ; | ||
| 2558 | } else if (b == 1) { | 2580 | } else if (b == 1) { |
| 2559 | x = b + 1; | 2581 | x = b + 1; |
| 2560 | y = x * 2 - 1; | 2582 | y = x * 2 - 1; |
| 2561 | - ; | ||
| 2562 | } else { | 2583 | } else { |
| 2563 | x = b; | 2584 | x = b; |
| 2564 | y = 2 * x; | 2585 | y = 2 * x; |
| @@ -3040,14 +3061,18 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3040,14 +3061,18 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3040 | rs.put("status", ResponseCode.ERROR); | 3061 | rs.put("status", ResponseCode.ERROR); |
| 3041 | 3062 | ||
| 3042 | ScheduleRealInfo oldSch = super.findById(sch.getId()); | 3063 | ScheduleRealInfo oldSch = super.findById(sch.getId()); |
| 3064 | + //事后日志记录 | ||
| 3065 | + AfterwardsLogger aflog = AfterwardsLogger.start(oldSch, "事后调整"); | ||
| 3043 | 3066 | ||
| 3044 | //换车 | 3067 | //换车 |
| 3045 | if (StringUtils.isNotEmpty(sch.getClZbh()) && !oldSch.getClZbh().equals(sch.getClZbh())) { | 3068 | if (StringUtils.isNotEmpty(sch.getClZbh()) && !oldSch.getClZbh().equals(sch.getClZbh())) { |
| 3046 | if (!carExist(oldSch.getGsBm(),sch.getClZbh())) { | 3069 | if (!carExist(oldSch.getGsBm(),sch.getClZbh())) { |
| 3047 | rs.put("msg", "车辆 " + sch.getClZbh() + " 不存在!"); | 3070 | rs.put("msg", "车辆 " + sch.getClZbh() + " 不存在!"); |
| 3048 | return rs; | 3071 | return rs; |
| 3049 | - } else | 3072 | + } else{ |
| 3073 | + aflog.log("换车", oldSch.getClZbh(), sch.getClZbh()); | ||
| 3050 | oldSch.setClZbh(sch.getClZbh()); | 3074 | oldSch.setClZbh(sch.getClZbh()); |
| 3075 | + } | ||
| 3051 | } | 3076 | } |
| 3052 | 3077 | ||
| 3053 | //换驾驶员 | 3078 | //换驾驶员 |
| @@ -3057,6 +3082,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3057,6 +3082,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3057 | rs.put("msg", oldSch.getXlName() + "所属的公司编码下找不到工号为【" + sch.getjGh() + "】的驾驶员"); | 3082 | rs.put("msg", oldSch.getXlName() + "所属的公司编码下找不到工号为【" + sch.getjGh() + "】的驾驶员"); |
| 3058 | return rs; | 3083 | return rs; |
| 3059 | } | 3084 | } |
| 3085 | + aflog.log("换驾驶员", oldSch.getjGh()+"/"+ oldSch.getjName(), sch.getjGh()+"/"+ sch.getjName()); | ||
| 3060 | persoChange(oldSch, sch.getjGh()); | 3086 | persoChange(oldSch, sch.getjGh()); |
| 3061 | } | 3087 | } |
| 3062 | 3088 | ||
| @@ -3067,6 +3093,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3067,6 +3093,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3067 | rs.put("msg", sch.getXlName() + "所属的公司编码下找不到工号为【" + sch.getsGh() + "】的售票员"); | 3093 | rs.put("msg", sch.getXlName() + "所属的公司编码下找不到工号为【" + sch.getsGh() + "】的售票员"); |
| 3068 | return rs; | 3094 | return rs; |
| 3069 | } | 3095 | } |
| 3096 | + aflog.log("换售票员", oldSch.getsGh()+"/"+ oldSch.getsName(), sch.getsGh()+"/"+ sch.getsName()); | ||
| 3070 | persoChangeSPY(oldSch, sch.getsGh()); | 3097 | persoChangeSPY(oldSch, sch.getsGh()); |
| 3071 | } | 3098 | } |
| 3072 | 3099 | ||
| @@ -3075,12 +3102,14 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3075,12 +3102,14 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3075 | boolean dest2 = sch.getStatus() == -1; | 3102 | boolean dest2 = sch.getStatus() == -1; |
| 3076 | if (!dest1 && dest2) { | 3103 | if (!dest1 && dest2) { |
| 3077 | oldSch.destroy(); | 3104 | oldSch.destroy(); |
| 3105 | + aflog.log("烂班"); | ||
| 3078 | } | 3106 | } |
| 3079 | else if(dest1 && !dest2){ | 3107 | else if(dest1 && !dest2){ |
| 3080 | //撤销烂班 | 3108 | //撤销烂班 |
| 3081 | oldSch.setJhlc(oldSch.getJhlcOrig()); | 3109 | oldSch.setJhlc(oldSch.getJhlcOrig()); |
| 3082 | oldSch.setStatus(0); | 3110 | oldSch.setStatus(0); |
| 3083 | oldSch.calcStatus(); | 3111 | oldSch.calcStatus(); |
| 3112 | + aflog.log("撤销烂班"); | ||
| 3084 | } | 3113 | } |
| 3085 | 3114 | ||
| 3086 | 3115 | ||
| @@ -3089,6 +3118,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3089,6 +3118,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3089 | */ | 3118 | */ |
| 3090 | if (!oldSch.getJhlc().equals(sch.getJhlc())) { | 3119 | if (!oldSch.getJhlc().equals(sch.getJhlc())) { |
| 3091 | double jhlcNum = sch.getJhlc(); | 3120 | double jhlcNum = sch.getJhlc(); |
| 3121 | + aflog.log("修改班次里程", oldSch.getJhlc(), jhlcNum); | ||
| 3092 | //烂班 | 3122 | //烂班 |
| 3093 | if(jhlcNum == 0 && oldSch.getJhlcOrig() != 0) | 3123 | if(jhlcNum == 0 && oldSch.getJhlcOrig() != 0) |
| 3094 | oldSch.destroy(); | 3124 | oldSch.destroy(); |
| @@ -3101,15 +3131,30 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -3101,15 +3131,30 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 3101 | } | 3131 | } |
| 3102 | 3132 | ||
| 3103 | //待发时间 | 3133 | //待发时间 |
| 3104 | - oldSch.setDfsj(sch.getDfsj()); | 3134 | + if(!CustomStringUtils.equals(oldSch.getDfsj(), sch.getDfsj())){ |
| 3135 | + aflog.log("修改待发时间", oldSch.getDfsj(), sch.getDfsj()); | ||
| 3136 | + oldSch.setDfsj(sch.getDfsj()); | ||
| 3137 | + } | ||
| 3105 | //实发时间 | 3138 | //实发时间 |
| 3106 | - oldSch.setFcsjActual(sch.getFcsjActual()); | 3139 | + if(!CustomStringUtils.equals(oldSch.getFcsjActual(), sch.getFcsjActual())){ |
| 3140 | + aflog.log("修改实发时间", oldSch.getFcsjActual(), sch.getFcsjActual()); | ||
| 3141 | + oldSch.setFcsjActual(sch.getFcsjActual()); | ||
| 3142 | + } | ||
| 3107 | //实际终点 | 3143 | //实际终点 |
| 3108 | - oldSch.setZdsjActual(sch.getZdsjActual()); | 3144 | + if(!CustomStringUtils.equals(oldSch.getZdsjActual(), sch.getZdsjActual())){ |
| 3145 | + aflog.log("修改实达时间", oldSch.getZdsjActual(), sch.getZdsjActual()); | ||
| 3146 | + oldSch.setZdsjActual(sch.getZdsjActual()); | ||
| 3147 | + } | ||
| 3148 | + | ||
| 3109 | //备注 | 3149 | //备注 |
| 3110 | - oldSch.setRemarks(sch.getRemarks()); | 3150 | + if(!CustomStringUtils.equals(oldSch.getRemarks(), sch.getRemarks())){ |
| 3151 | + aflog.log("修改备注", oldSch.getRemarks(), sch.getRemarks()); | ||
| 3152 | + oldSch.setRemarks(sch.getRemarks()); | ||
| 3153 | + } | ||
| 3111 | 3154 | ||
| 3112 | scheduleRealInfoRepository.save(oldSch); | 3155 | scheduleRealInfoRepository.save(oldSch); |
| 3156 | + | ||
| 3157 | + aflog.end(); | ||
| 3113 | rs.put("status", ResponseCode.SUCCESS); | 3158 | rs.put("status", ResponseCode.SUCCESS); |
| 3114 | return rs; | 3159 | return rs; |
| 3115 | } | 3160 | } |
| @@ -4199,4 +4244,20 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | @@ -4199,4 +4244,20 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl<ScheduleRealInf | ||
| 4199 | } | 4244 | } |
| 4200 | return rs; | 4245 | return rs; |
| 4201 | } | 4246 | } |
| 4202 | -} | ||
| 4203 | \ No newline at end of file | 4247 | \ No newline at end of file |
| 4248 | +} | ||
| 4249 | + | ||
| 4250 | +class AccountMap implements Comparator<Map<String, Object>>{ | ||
| 4251 | + @Override | ||
| 4252 | + public int compare(Map<String, Object> o1, Map<String, Object> o2) { | ||
| 4253 | + // TODO Auto-generated method stub | ||
| 4254 | + return o1.get("clZbh").toString().compareTo(o2.get("clZbh").toString()); | ||
| 4255 | + } | ||
| 4256 | +} | ||
| 4257 | + | ||
| 4258 | +class AccountMap2 implements Comparator<Map<String, Object>>{ | ||
| 4259 | + @Override | ||
| 4260 | + public int compare(Map<String, Object> o1, Map<String, Object> o2) { | ||
| 4261 | + // TODO Auto-generated method stub | ||
| 4262 | + return o2.get("clZbh").toString().compareTo(o1.get("clZbh").toString()); | ||
| 4263 | + } | ||
| 4264 | +} |
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
| @@ -866,7 +866,9 @@ public class CulateMileageServiceImpl implements CulateMileageService{ | @@ -866,7 +866,9 @@ public class CulateMileageServiceImpl implements CulateMileageService{ | ||
| 866 | ChildTaskPlan childTaskPlan = it.next(); | 866 | ChildTaskPlan childTaskPlan = it.next(); |
| 867 | if(childTaskPlan.getType2().equals("2")||childTaskPlan.getType2().equals("3")){ | 867 | if(childTaskPlan.getType2().equals("2")||childTaskPlan.getType2().equals("3")){ |
| 868 | if (childTaskPlan.isDestroy()) { | 868 | if (childTaskPlan.isDestroy()) { |
| 869 | - zrwjcclc=Arith.add(zrwjcclc,childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage()); | 869 | + if(childTaskPlan.getReason().equals(item)){ |
| 870 | + zrwjcclc=Arith.add(zrwjcclc,childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage()); | ||
| 871 | + } | ||
| 870 | } | 872 | } |
| 871 | } | 873 | } |
| 872 | } | 874 | } |
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
| @@ -1591,15 +1591,16 @@ public class ReportServiceImpl implements ReportService{ | @@ -1591,15 +1591,16 @@ public class ReportServiceImpl implements ReportService{ | ||
| 1591 | map.put("ssgl_other", culateService.culateSsMileXx(list, "其他")); | 1591 | map.put("ssgl_other", culateService.culateSsMileXx(list, "其他")); |
| 1592 | 1592 | ||
| 1593 | 1593 | ||
| 1594 | - double zrwjcclc=culateService.culateZrwJccLc(list, ""); | ||
| 1595 | - | 1594 | + double zrwjcclc=culateService.culateZrwJccLc(list, "故障"); |
| 1595 | + double zrwjcclc1=culateService.culateZrwJccLc(list, "肇事"); | ||
| 1596 | + double zrwjcclc2=culateService.culateZrwJccLc(list, "纠纷"); | ||
| 1596 | map.put("zrwjcclc", zrwjcclc); | 1597 | map.put("zrwjcclc", zrwjcclc); |
| 1597 | - map.put("zrwjcclc1", 0); | ||
| 1598 | - map.put("zrwjcclc2", 0); | ||
| 1599 | - | 1598 | + map.put("zrwjcclc1", zrwjcclc1); |
| 1599 | + map.put("zrwjcclc2", zrwjcclc2); | ||
| 1600 | + double zrwjcc=Arith.add(Arith.add(zrwjcclc, zrwjcclc1), zrwjcclc2); | ||
| 1600 | double kfks=culateService.culateKfksLc(lists); | 1601 | double kfks=culateService.culateKfksLc(lists); |
| 1601 | map.put("kfks", kfks); | 1602 | map.put("kfks", kfks); |
| 1602 | - double zlc=Arith.add(Arith.add(Arith.add(zrwjcclc, ljlc), | 1603 | + double zlc=Arith.add(Arith.add(Arith.add(zrwjcc, ljlc), |
| 1603 | Arith.add(zjcclc, zyylc)),kfks); | 1604 | Arith.add(zjcclc, zyylc)),kfks); |
| 1604 | 1605 | ||
| 1605 | 1606 |
src/main/java/com/bsth/service/traffic/YgcBasicDataService.java
| @@ -9,5 +9,13 @@ public interface YgcBasicDataService { | @@ -9,5 +9,13 @@ public interface YgcBasicDataService { | ||
| 9 | * 更新运管处基础数据 | 9 | * 更新运管处基础数据 |
| 10 | */ | 10 | */ |
| 11 | void updateYgcBasicData(); | 11 | void updateYgcBasicData(); |
| 12 | + | ||
| 13 | + /** | ||
| 14 | + * 调用方法 | ||
| 15 | + * @param methodName 方法名 | ||
| 16 | + * @param param 参数 | ||
| 17 | + * @return | ||
| 18 | + */ | ||
| 19 | + String invokeMethod(String methodName,String param); | ||
| 12 | } | 20 | } |
| 13 | 21 |
src/main/java/com/bsth/service/traffic/impl/YgcBasicDataServiceImpl.java
| @@ -7,6 +7,7 @@ import org.apache.axiom.om.*; | @@ -7,6 +7,7 @@ import org.apache.axiom.om.*; | ||
| 7 | import org.apache.axis2.addressing.EndpointReference; | 7 | import org.apache.axis2.addressing.EndpointReference; |
| 8 | import org.apache.axis2.client.Options; | 8 | import org.apache.axis2.client.Options; |
| 9 | import org.apache.axis2.client.ServiceClient; | 9 | import org.apache.axis2.client.ServiceClient; |
| 10 | +import org.apache.axis2.rpc.client.RPCServiceClient; | ||
| 10 | import org.apache.commons.codec.digest.DigestUtils; | 11 | import org.apache.commons.codec.digest.DigestUtils; |
| 11 | import org.slf4j.Logger; | 12 | import org.slf4j.Logger; |
| 12 | import org.slf4j.LoggerFactory; | 13 | import org.slf4j.LoggerFactory; |
| @@ -18,6 +19,7 @@ import org.w3c.dom.Document; | @@ -18,6 +19,7 @@ import org.w3c.dom.Document; | ||
| 18 | import org.w3c.dom.NodeList; | 19 | import org.w3c.dom.NodeList; |
| 19 | 20 | ||
| 20 | import javax.activation.DataHandler; | 21 | import javax.activation.DataHandler; |
| 22 | +import javax.xml.namespace.QName; | ||
| 21 | import javax.xml.parsers.DocumentBuilder; | 23 | import javax.xml.parsers.DocumentBuilder; |
| 22 | import javax.xml.parsers.DocumentBuilderFactory; | 24 | import javax.xml.parsers.DocumentBuilderFactory; |
| 23 | import java.io.*; | 25 | import java.io.*; |
| @@ -42,14 +44,17 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{ | @@ -42,14 +44,17 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{ | ||
| 42 | JdbcTemplate jdbcTemplate; | 44 | JdbcTemplate jdbcTemplate; |
| 43 | 45 | ||
| 44 | private static String IP = "218.242.195.76:9091"; | 46 | private static String IP = "218.242.195.76:9091"; |
| 45 | - private static String targetEndpoint = "http://" + IP +"/ygc.TransManager.Basicdown?wsdl"; | 47 | + private static String downTargetEndpoint = "http://" + IP +"/ygc.TransManager.Basicdown?wsdl"; |
| 48 | + private static String upTargetEndpoint = "http://" + IP +"/ygc.TransManager.BasicUpload?wsdl"; | ||
| 46 | private static String namespace = "http://service.shygc.com"; | 49 | private static String namespace = "http://service.shygc.com"; |
| 47 | private static String userName = "admin"; | 50 | private static String userName = "admin"; |
| 48 | private static String passWord = "000000"; | 51 | private static String passWord = "000000"; |
| 49 | - private static EndpointReference targetEPR; | 52 | + private static EndpointReference downTargetEPR; |
| 53 | + private static EndpointReference upTargetEPR; | ||
| 50 | { | 54 | { |
| 51 | try { | 55 | try { |
| 52 | - targetEPR = new EndpointReference(targetEndpoint); | 56 | + downTargetEPR = new EndpointReference(downTargetEndpoint); |
| 57 | + upTargetEPR = new EndpointReference(upTargetEndpoint); | ||
| 53 | } catch (Exception e) { | 58 | } catch (Exception e) { |
| 54 | e.printStackTrace(); | 59 | e.printStackTrace(); |
| 55 | } | 60 | } |
| @@ -102,7 +107,7 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{ | @@ -102,7 +107,7 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{ | ||
| 102 | ServiceClient sender = new ServiceClient(); | 107 | ServiceClient sender = new ServiceClient(); |
| 103 | Options options = sender.getOptions(); | 108 | Options options = sender.getOptions(); |
| 104 | options.setProperty("SO_TIMEOUT", Integer.valueOf(1800000)); | 109 | options.setProperty("SO_TIMEOUT", Integer.valueOf(1800000)); |
| 105 | - options.setTo(targetEPR); | 110 | + options.setTo(downTargetEPR); |
| 106 | sender.setOptions(options); | 111 | sender.setOptions(options); |
| 107 | System.out.println("The data in method download: " + data); | 112 | System.out.println("The data in method download: " + data); |
| 108 | data.build(); | 113 | data.build(); |
| @@ -280,4 +285,37 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{ | @@ -280,4 +285,37 @@ public class YgcBasicDataServiceImpl implements YgcBasicDataService{ | ||
| 280 | flag = true; | 285 | flag = true; |
| 281 | return flag; | 286 | return flag; |
| 282 | } | 287 | } |
| 288 | + | ||
| 289 | + /** | ||
| 290 | + * 调用方法 | ||
| 291 | + * @param methodName 方法名 | ||
| 292 | + * @param param 参数 | ||
| 293 | + * @return | ||
| 294 | + */ | ||
| 295 | + public String invokeMethod(String methodName,String param){ | ||
| 296 | + String result = null; | ||
| 297 | + try { | ||
| 298 | + // 获得客户端 | ||
| 299 | + RPCServiceClient serviceClient = new RPCServiceClient(); | ||
| 300 | + // 可以在该对象中设置服务端的验证信息 | ||
| 301 | + Options options = serviceClient.getOptions(); | ||
| 302 | + options.setTo(upTargetEPR); | ||
| 303 | + // 在创建QName对象时,QName类的构造方法的第一个参数表示WSDL文件的命名空间名,也就是<wsdl:definitions>元素的targetNamespace属性值 | ||
| 304 | + QName opAddEntry = new QName(namespace,methodName); | ||
| 305 | + // 参数,如果有多个,继续往后面增加即可,不用指定参数的名称 | ||
| 306 | + Object[] opAddEntryArgs = new Object[] {param }; | ||
| 307 | + // 返回参数类型,这个和axis1有点区别 | ||
| 308 | + // invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名; | ||
| 309 | + // 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[]; | ||
| 310 | + // 第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。 | ||
| 311 | + // 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{} | ||
| 312 | + // 如果被调用的WebService方法没有返回值,应使用RPCServiceClient类的invokeRobust方法, | ||
| 313 | + // 该方法只有两个参数,它们的含义与invokeBlocking方法的前两个参数的含义相同 | ||
| 314 | + Class[] classes = new Class[] { String.class }; | ||
| 315 | + result = serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0].toString(); | ||
| 316 | + }catch (Exception e){ | ||
| 317 | + e.printStackTrace(); | ||
| 318 | + } | ||
| 319 | + return result; | ||
| 320 | + } | ||
| 283 | } | 321 | } |
src/main/resources/static/pages/report/countMileage/countBus/countBusMileage.html
| @@ -320,8 +320,8 @@ | @@ -320,8 +320,8 @@ | ||
| 320 | <td>{{obj.jhwjcclc}}</td> | 320 | <td>{{obj.jhwjcclc}}</td> |
| 321 | <td>{{obj.kfks}}</td> | 321 | <td>{{obj.kfks}}</td> |
| 322 | <td>{{obj.zrwjcclc}}</td> | 322 | <td>{{obj.zrwjcclc}}</td> |
| 323 | - <td>0</td> | ||
| 324 | - <td>0</td> | 323 | + <td>{{obj.zrwjcclc1}}</td> |
| 324 | + <td>{{obj.zrwjcclc2}}</td> | ||
| 325 | <td>{{obj.ljyy}}</td> | 325 | <td>{{obj.ljyy}}</td> |
| 326 | <td>{{obj.ljjcc}}</td> | 326 | <td>{{obj.ljjcc}}</td> |
| 327 | <td>{{obj.yhl}}</td> | 327 | <td>{{obj.yhl}}</td> |
src/main/resources/static/pages/report/countMileage/countLine/countLineMileage.html
| @@ -306,8 +306,8 @@ | @@ -306,8 +306,8 @@ | ||
| 306 | <td>{{obj.jhnjcclc}}</td> | 306 | <td>{{obj.jhnjcclc}}</td> |
| 307 | <td>{{obj.jhwjcclc}}</td> | 307 | <td>{{obj.jhwjcclc}}</td> |
| 308 | <td>{{obj.zrwjcclc}}</td> | 308 | <td>{{obj.zrwjcclc}}</td> |
| 309 | - <td>0</td> | ||
| 310 | - <td>0</td> | 309 | + <td>{{obj.zrwjcclc1}}</td> |
| 310 | + <td>{{obj.zrwjcclc2}}</td> | ||
| 311 | <td>{{obj.lbss}}</td> | 311 | <td>{{obj.lbss}}</td> |
| 312 | <td>{{obj.ssgl_lz}}</td> | 312 | <td>{{obj.ssgl_lz}}</td> |
| 313 | <td>{{obj.ssgl_dm}}</td> | 313 | <td>{{obj.ssgl_dm}}</td> |
src/main/resources/static/pages/trafficManage/js/lineStationUpload.js
| @@ -13,124 +13,46 @@ | @@ -13,124 +13,46 @@ | ||
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | (function(){ | 15 | (function(){ |
| 16 | - /** | ||
| 17 | - * 取得编码-公司map | ||
| 18 | - * gsmap["5"] = 南汇公司 | ||
| 19 | - * gsmap["5_3"] = 芦潮港分公司 | ||
| 20 | - */ | ||
| 21 | - function getBusMap(){ | ||
| 22 | - // 取得公司信息,替换公司编码 | ||
| 23 | - var gsmap = {}; | ||
| 24 | - $get('/business/all', null, function(array){ | ||
| 25 | - $.each(array, function(i, gs){ | ||
| 26 | - var k = gs.upCode + '_' + gs.businessCode; | ||
| 27 | - if(gs.upCode === '88'){ | ||
| 28 | - k = gs.businessCode; | ||
| 29 | - } | ||
| 30 | - gsmap[k] = gs.businessName; | ||
| 31 | - }); | ||
| 32 | - }); | ||
| 33 | - return gsmap; | ||
| 34 | - } | ||
| 35 | - // 填充公司下拉框选择值 | ||
| 36 | - $get('/business/all', {upCode_eq: '88'}, function(array){ | ||
| 37 | - | ||
| 38 | - // 公司下拉options属性值 | ||
| 39 | - var options = '<option value="">请选择...</option>'; | ||
| 40 | - | ||
| 41 | - // 遍历array | ||
| 42 | - $.each(array, function(i,d){ | ||
| 43 | - | ||
| 44 | - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>'; | ||
| 45 | - | ||
| 46 | - }); | ||
| 47 | - | ||
| 48 | - // 填充公司下拉框options,并添加公司下拉框值改变事件setbrancheCompanySelectOptions | ||
| 49 | - $('#companySelect').html(options).on('change', setbrancheCompanySelectOptions); | ||
| 50 | - | ||
| 51 | - }); | ||
| 52 | - | ||
| 53 | - // 填充分公司下拉框选择值 | ||
| 54 | - function setbrancheCompanySelectOptions(){ | ||
| 55 | - | ||
| 56 | - // 获取公司下拉框选择值 | ||
| 57 | - var businessCode = $('#companySelect').val(); | ||
| 58 | - | ||
| 59 | - // 分公司下拉框options属性值 | ||
| 60 | - var options = '<option value="">请选择...</option>'; | ||
| 61 | - | ||
| 62 | - // 如果公司选择为空则分公司为空 ; 否则查询出所属公司下的分公司名称和相应分公司代码 | ||
| 63 | - if(businessCode == null || businessCode ==''){ | ||
| 64 | - | ||
| 65 | - // 填充分公司下拉框options | ||
| 66 | - $('#brancheCompanySelect').html(options); | ||
| 67 | - | ||
| 68 | - } else { | ||
| 69 | - | ||
| 70 | - // 查询出所属公司下的分公司名称和相应分公司代码 | ||
| 71 | - $get('/business/all', {upCode_eq: businessCode}, function(array){ | ||
| 72 | - | ||
| 73 | - // 遍历array | ||
| 74 | - $.each(array, function(i,d){ | ||
| 75 | - | ||
| 76 | - options += '<option value="'+d.businessCode+'">'+d.businessName+'</option>'; | ||
| 77 | - | ||
| 78 | - // 填充分公司下拉框options | ||
| 79 | - $('#brancheCompanySelect').html(options); | ||
| 80 | - | ||
| 81 | - }); | ||
| 82 | - }); | ||
| 83 | - | ||
| 84 | - // 填充公司下拉框options,并添加公司下拉框值改变事件setbrancheCompanySelectOptions | ||
| 85 | - $('#brancheCompanySelect').html(options).on('change', setLineAutocompleteOptions); | ||
| 86 | - } | ||
| 87 | - } | ||
| 88 | - | ||
| 89 | - function setLineAutocompleteOptions(){ | ||
| 90 | - // 搜索参数集合 | ||
| 91 | - var params = {}; | ||
| 92 | - // 搜索字段名称 | ||
| 93 | - var name; | ||
| 94 | - var items = $("ul.breadcrumb select"); | ||
| 95 | - // 遍历items集合 | ||
| 96 | - for(var j = 0, item; item = items[j++];){ | ||
| 97 | - // 获取字段名称 | ||
| 98 | - name = $(item).attr('name'); | ||
| 99 | - if(name){ | ||
| 100 | - // 赋取相对应的值 | ||
| 101 | - params[name] = $(item).val(); | ||
| 102 | - } | ||
| 103 | - } | ||
| 104 | - var lines = new Array(); | ||
| 105 | - var gsmap = getBusMap(); | ||
| 106 | - // 取得所有线路 | ||
| 107 | - $get('/line/all', params, function(allLine) { | ||
| 108 | - // 遍历数组 | ||
| 109 | - $.each(allLine, function(i, e) { | ||
| 110 | - var companyCode = e.company; | ||
| 111 | - e.company = gsmap[e.company]; | ||
| 112 | - e.brancheCompany = gsmap[companyCode+"_"+e.brancheCompany]; | ||
| 113 | - var line = '{"hex":"'+e.company+'","label":"'+e.name+'"}'; | ||
| 114 | - var obj = jQuery.parseJSON(line); | ||
| 115 | - lines[i]= obj; | ||
| 116 | - }); | ||
| 117 | - | ||
| 118 | - | ||
| 119 | - }); | ||
| 120 | - // 给输入框绑定autocomplete事件 | ||
| 121 | - $("input[name='name_eq']").autocompleter({ | ||
| 122 | - highlightMatches: true, | ||
| 123 | - source: lines, | ||
| 124 | - template: '{{ label }} <span>({{ hex }})</span>', | ||
| 125 | - hint: true, | ||
| 126 | - empty: false, | ||
| 127 | - limit: 5, | ||
| 128 | - }); | ||
| 129 | - } | ||
| 130 | - | ||
| 131 | - | ||
| 132 | - // 设置autocompleter的宽度和输入框一样 | ||
| 133 | - $(".autocompleter").css("width",$("input[name='name_eq']").css("width")) | 16 | + |
| 17 | + $('#line').select2({ | ||
| 18 | + ajax: { | ||
| 19 | + url: '/realSchedule/findLine', | ||
| 20 | + type: 'post', | ||
| 21 | + dataType: 'json', | ||
| 22 | + delay: 150, | ||
| 23 | + data: function(params){ | ||
| 24 | + return{line: params.term}; | ||
| 25 | + }, | ||
| 26 | + processResults: function (data) { | ||
| 27 | + return { | ||
| 28 | + results: data | ||
| 29 | + }; | ||
| 30 | + }, | ||
| 31 | + cache: true | ||
| 32 | + }, | ||
| 33 | + templateResult: function(repo){ | ||
| 34 | + if (repo.loading) return repo.text; | ||
| 35 | + var h = '<span>'+repo.text+'</span>'; | ||
| 36 | + return h; | ||
| 37 | + }, | ||
| 38 | + escapeMarkup: function (markup) { return markup; }, | ||
| 39 | + minimumInputLength: 1, | ||
| 40 | + templateSelection: function(repo){ | ||
| 41 | + return repo.text; | ||
| 42 | + }, | ||
| 43 | + language: { | ||
| 44 | + noResults: function(){ | ||
| 45 | + return '<span style="color:red;font-size: 12px;">没有搜索到线路!</span>'; | ||
| 46 | + }, | ||
| 47 | + inputTooShort : function(e) { | ||
| 48 | + return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入线路搜索线路</span>'; | ||
| 49 | + }, | ||
| 50 | + searching : function() { | ||
| 51 | + return '<span style="color:gray;font-size: 12px;"> 正在搜索线路...</span>'; | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | + }); | ||
| 55 | + | ||
| 134 | // 绑定查询事件 | 56 | // 绑定查询事件 |
| 135 | $("#search").click(searchM); | 57 | $("#search").click(searchM); |
| 136 | // 绑定上传事件 | 58 | // 绑定上传事件 |
| @@ -149,7 +71,7 @@ | @@ -149,7 +71,7 @@ | ||
| 149 | $("#right_div table tbody").empty(); | 71 | $("#right_div table tbody").empty(); |
| 150 | var params = {}; | 72 | var params = {}; |
| 151 | // 取得输入框的值 | 73 | // 取得输入框的值 |
| 152 | - var inputs = $("ul.breadcrumb input"); | 74 | + var inputs = $(".param input,select"); |
| 153 | // 遍历数组 | 75 | // 遍历数组 |
| 154 | $.each(inputs, function(i, element) { | 76 | $.each(inputs, function(i, element) { |
| 155 | params[$(element).attr("name")] = $(element).val(); | 77 | params[$(element).attr("name")] = $(element).val(); |
| @@ -168,17 +90,36 @@ | @@ -168,17 +90,36 @@ | ||
| 168 | 90 | ||
| 169 | // 上传方法 | 91 | // 上传方法 |
| 170 | function uploadM() { | 92 | function uploadM() { |
| 171 | - var params = {}; | ||
| 172 | - // 取得输入框的值 | ||
| 173 | - var trs = $("#right_div tbody tr"); | ||
| 174 | - if (trs.length == 0) { | ||
| 175 | - alert("请选择模板"); | ||
| 176 | - return; | ||
| 177 | - } | ||
| 178 | - // 遍历数组 | ||
| 179 | - $.each(trs, function(i, element) { | ||
| 180 | - alert($(".ttInfoId", element).html()); | ||
| 181 | - }); | 93 | + // 取得输入框的值 |
| 94 | + var trs = $("#right_div tbody tr input"); | ||
| 95 | + if (trs.length == 0) { | ||
| 96 | + alert("请选择线路"); | ||
| 97 | + return; | ||
| 98 | + }else if(trs.length > 1){ | ||
| 99 | + alert("一次只能上传一条线路"); | ||
| 100 | + return; | ||
| 101 | + } | ||
| 102 | + var ids ="0,"; | ||
| 103 | + // 遍历数组 | ||
| 104 | + $.each(trs, function(i, element) { | ||
| 105 | + ids +=$(element).val()+","; | ||
| 106 | + }); | ||
| 107 | + var params = {"ids":ids}; | ||
| 108 | + $.ajax({ | ||
| 109 | + type: 'get',url: '/trmg/setXL', | ||
| 110 | + data: params ,dataType:'text', | ||
| 111 | + success:function(data) { | ||
| 112 | + if(data == 'success'){ | ||
| 113 | + alert("上传成功"); | ||
| 114 | + }else{ | ||
| 115 | + alert("上传失败"); | ||
| 116 | + } | ||
| 117 | + | ||
| 118 | + }, error : function() { | ||
| 119 | + alert("操作失败"); | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + }); | ||
| 182 | } | 123 | } |
| 183 | 124 | ||
| 184 | // 表格行的单击事件 | 125 | // 表格行的单击事件 |
src/main/resources/static/pages/trafficManage/js/timeTempletUpload.js
| @@ -183,29 +183,6 @@ | @@ -183,29 +183,6 @@ | ||
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | // 绑定查询事件 | 185 | // 绑定查询事件 |
| 186 | - $("#setXL").click(setXLF); | ||
| 187 | - | ||
| 188 | - function setXLF() { | ||
| 189 | - var params = {}; | ||
| 190 | - // 取得输入框的值 | ||
| 191 | - var inputs = $(".param input,select");debugger; | ||
| 192 | - // 遍历数组 | ||
| 193 | - $.each(inputs, function(i, element) { | ||
| 194 | - params[$(element).attr("name")] = $(element).val(); | ||
| 195 | - }); | ||
| 196 | - $.ajax({ | ||
| 197 | - type: 'get',url: '/trmg/setXL', | ||
| 198 | - data: params ,dataType:'text', | ||
| 199 | - success:function(data) { | ||
| 200 | - alert(data); | ||
| 201 | - }, error : function() { | ||
| 202 | - alert("操作失败"); | ||
| 203 | - } | ||
| 204 | - | ||
| 205 | - }); | ||
| 206 | - } | ||
| 207 | - | ||
| 208 | - // 绑定查询事件 | ||
| 209 | $("#setCL").click(setCLF); | 186 | $("#setCL").click(setCLF); |
| 210 | var params = {}; | 187 | var params = {}; |
| 211 | function setCLF() { | 188 | function setCLF() { |
src/main/resources/static/pages/trafficManage/lineStationUpload.html
| 1 | <link href="css/trafficManage.css" rel="stylesheet" type="text/css" /> | 1 | <link href="css/trafficManage.css" rel="stylesheet" type="text/css" /> |
| 2 | -<link href="css/autocompleter.css" rel="stylesheet" type="text/css" /> | ||
| 3 | <ul class="page-breadcrumb breadcrumb"> | 2 | <ul class="page-breadcrumb breadcrumb"> |
| 4 | <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li> | 3 | <li><a href="/pages/home.html" data-pjax>首页</a> <i class="fa fa-circle"></i></li> |
| 5 | <li><span class="active">运维管理</span> <i class="fa fa-circle"></i></li> | 4 | <li><span class="active">运维管理</span> <i class="fa fa-circle"></i></li> |
| @@ -7,17 +6,16 @@ | @@ -7,17 +6,16 @@ | ||
| 7 | </ul> | 6 | </ul> |
| 8 | <div class="tab_line"> | 7 | <div class="tab_line"> |
| 9 | <div class="col-md-12"> | 8 | <div class="col-md-12"> |
| 10 | - <ul class="breadcrumb"> | ||
| 11 | - <li>公司:</li> | ||
| 12 | - <li><select name="company_eq" class="form-control" id="companySelect"></select></li> | ||
| 13 | - <li>分公司:</li> | ||
| 14 | - <li><select name="brancheCompany_eq" class="form-control" id="brancheCompanySelect"></select></li> | ||
| 15 | - <li>线路名称:</li> | ||
| 16 | - <li><input type="text" class="form-control form-filter input-sm" | ||
| 17 | - name="name_eq" placeholder="请输入线路名称" maxlength="40" /></li> | ||
| 18 | - <li><a class="btn btn-circle blue" id="search">查询</a></li> | ||
| 19 | - <li><a class="btn btn-circle red" id="upload">上传</a></li> | ||
| 20 | - </ul> | 9 | + <form class="form-inline" action=""> |
| 10 | + <div style="display: inline-block;" class="param"> | ||
| 11 | + <span class="item-label" style="width: 80px;">线路名称: </span> | ||
| 12 | + <select class="form-control" name="lineCode_like" id="line" style="width: 180px;"></select> | ||
| 13 | + </div> | ||
| 14 | + <div class="form-group" style="display: inline-block;margin-left: 15px;"> | ||
| 15 | + <input class="btn btn-default" type="button" id="search" value="查询"/> | ||
| 16 | + <input class="btn btn-default" type="button" id="upload" value="上传"/> | ||
| 17 | + </div> | ||
| 18 | + </form> | ||
| 21 | </div> | 19 | </div> |
| 22 | <!-- Begin: left-div --> | 20 | <!-- Begin: left-div --> |
| 23 | <div class="col-md-5 panel-wrap" style="height: 60%;"> | 21 | <div class="col-md-5 panel-wrap" style="height: 60%;"> |
| @@ -63,6 +61,7 @@ | @@ -63,6 +61,7 @@ | ||
| 63 | </td> | 61 | </td> |
| 64 | <td> | 62 | <td> |
| 65 | {{obj.lineCode}} | 63 | {{obj.lineCode}} |
| 64 | + <input type="hidden" value="{{obj.lineCode}}"/> | ||
| 66 | </td> | 65 | </td> |
| 67 | <td class="ttInfoId"> | 66 | <td class="ttInfoId"> |
| 68 | {{obj.name}} | 67 | {{obj.name}} |
src/main/resources/static/real_control_v2/css/main.css
| @@ -1341,25 +1341,6 @@ ul.left_tabs_lg li{ | @@ -1341,25 +1341,6 @@ ul.left_tabs_lg li{ | ||
| 1341 | margin-bottom: 0; | 1341 | margin-bottom: 0; |
| 1342 | } | 1342 | } |
| 1343 | 1343 | ||
| 1344 | -.sub_task_form_v2.repeat_main:before{ | ||
| 1345 | - content: '复'; | ||
| 1346 | - position: absolute; | ||
| 1347 | - top: -10px; | ||
| 1348 | - font-size: 12px; | ||
| 1349 | - color: #2196F3; | ||
| 1350 | - background: #ffffff; | ||
| 1351 | - padding: 0 3px; | ||
| 1352 | - font-weight: 600; | ||
| 1353 | -} | ||
| 1354 | - | ||
| 1355 | -.sub_task_form_v2.repeat_main.destroy_form:before{ | ||
| 1356 | - color: #F44336; | ||
| 1357 | -} | ||
| 1358 | - | ||
| 1359 | -.sub_task_form_v2.repeat_main{ | ||
| 1360 | - background: #f4faff; | ||
| 1361 | -} | ||
| 1362 | - | ||
| 1363 | .sub_task_form_v2.destroy_form{ | 1344 | .sub_task_form_v2.destroy_form{ |
| 1364 | background-color: #fff5f4 !important; | 1345 | background-color: #fff5f4 !important; |
| 1365 | } | 1346 | } |
| @@ -1434,4 +1415,161 @@ ul.left_tabs_lg li{ | @@ -1434,4 +1415,161 @@ ul.left_tabs_lg li{ | ||
| 1434 | font-size: 16px; | 1415 | font-size: 16px; |
| 1435 | color: #a44a4a; | 1416 | color: #a44a4a; |
| 1436 | font-family: 微软雅黑; | 1417 | font-family: 微软雅黑; |
| 1418 | +} | ||
| 1419 | + | ||
| 1420 | +#schedule-lp_change-modal .ct_table dl{ | ||
| 1421 | + height: 35px; | ||
| 1422 | +} | ||
| 1423 | + | ||
| 1424 | +#schedule-lp_change-modal .ct_table dl dd, #schedule-lp_change-modal .ct_table dl dt{ | ||
| 1425 | + line-height: 35px; | ||
| 1426 | +} | ||
| 1427 | + | ||
| 1428 | +/* | ||
| 1429 | +.sub_task_form_v2.repeat_main:before{ | ||
| 1430 | + content: '复'; | ||
| 1431 | + position: absolute; | ||
| 1432 | + top: -10px; | ||
| 1433 | + font-size: 12px; | ||
| 1434 | + color: #2196F3; | ||
| 1435 | + background: #ffffff; | ||
| 1436 | + padding: 0 3px; | ||
| 1437 | + font-weight: 600; | ||
| 1438 | +}*/ | ||
| 1439 | + | ||
| 1440 | +.sub_task_form_v2:before{ | ||
| 1441 | + position: absolute; | ||
| 1442 | + top: -7px; | ||
| 1443 | + font-size: 12px; | ||
| 1444 | + padding: 0 3px; | ||
| 1445 | + font-weight: 600; | ||
| 1446 | + line-height: 14px; | ||
| 1447 | +} | ||
| 1448 | + | ||
| 1449 | +.sub_task_form_v2.destroy_form:before{ | ||
| 1450 | + content: '烂班' !important; | ||
| 1451 | + color: #f14235 !important; | ||
| 1452 | + background: #ffffff !important; | ||
| 1453 | +} | ||
| 1454 | + | ||
| 1455 | +.sub_task_form_v2.service_form:before{ | ||
| 1456 | + content: '营运'; | ||
| 1457 | + color: #2196F3; | ||
| 1458 | + background: #ffffff; | ||
| 1459 | +} | ||
| 1460 | + | ||
| 1461 | +.sub_task_form_v2.empty_form:before{ | ||
| 1462 | + content: '空驶'; | ||
| 1463 | + color: #928f92; | ||
| 1464 | + background: #ffffff; | ||
| 1465 | +} | ||
| 1466 | + | ||
| 1467 | +.sub_task_form_v2.service_form{ | ||
| 1468 | + background: #f4faff; | ||
| 1469 | +} | ||
| 1470 | + | ||
| 1471 | +/*.sub_task_form_v2.repeat_main.destroy_form:before{ | ||
| 1472 | + color: #F44336; | ||
| 1473 | +} | ||
| 1474 | + | ||
| 1475 | +.sub_task_form_v2.repeat_main{ | ||
| 1476 | + background: #f4faff; | ||
| 1477 | +}*/ | ||
| 1478 | +.footer_tools{ | ||
| 1479 | + position: absolute; | ||
| 1480 | + left: 235px; | ||
| 1481 | + bottom: 19px; | ||
| 1482 | +} | ||
| 1483 | + | ||
| 1484 | +.footer_mileage_count{ | ||
| 1485 | + border: 1px solid #f2f2f2; | ||
| 1486 | + padding: 5px; | ||
| 1487 | + box-shadow: 0px 2px 5px 0 rgba(0, 0, 0, 0.2), 0px 2px 7px 0 rgba(0, 0, 0, 0.19); | ||
| 1488 | + display: inline-block; | ||
| 1489 | +} | ||
| 1490 | + | ||
| 1491 | +.footer_mileage_count>span{ | ||
| 1492 | + padding: 2px 5px; | ||
| 1493 | +} | ||
| 1494 | + | ||
| 1495 | +.footer_mileage_count>span.service_sum{ | ||
| 1496 | + color: #2196F3; | ||
| 1497 | +} | ||
| 1498 | + | ||
| 1499 | +.footer_mileage_count>span.empty_sum{ | ||
| 1500 | + color: #636363; | ||
| 1501 | +} | ||
| 1502 | + | ||
| 1503 | +.footer_mileage_count>span.destroy_sum{ | ||
| 1504 | + color: #f5574b; | ||
| 1505 | +} | ||
| 1506 | + | ||
| 1507 | +.station_to_park_link{ | ||
| 1508 | + display: inline-block; | ||
| 1509 | + margin-left: 15px; | ||
| 1510 | + vertical-align: bottom; | ||
| 1511 | + font-size: 12px; | ||
| 1512 | +} | ||
| 1513 | + | ||
| 1514 | +.station_to_park_link>a{ | ||
| 1515 | + color: #607D8B; | ||
| 1516 | +} | ||
| 1517 | + | ||
| 1518 | +#station_to_park-modal.ct-form-modal form input[type=text], | ||
| 1519 | +#station_to_park-modal.ct-form-modal form select{ | ||
| 1520 | + width: auto; | ||
| 1521 | +} | ||
| 1522 | + | ||
| 1523 | +.s_2_park_form_wrap{ | ||
| 1524 | + background: #fafafa; | ||
| 1525 | + border: 1px solid #e5e5e5; | ||
| 1526 | + padding: 7px 16px; | ||
| 1527 | + margin: 15px 0; | ||
| 1528 | + position: relative; | ||
| 1529 | +} | ||
| 1530 | + | ||
| 1531 | +.s_2_park_form_wrap .ct_close{ | ||
| 1532 | + position: absolute; | ||
| 1533 | + top: -12px; | ||
| 1534 | + padding: 0 4px; | ||
| 1535 | + right: -8px; | ||
| 1536 | + color: #939393; | ||
| 1537 | + border: 1px solid #f7dfdf; | ||
| 1538 | + border-radius: 25px; | ||
| 1539 | + cursor: pointer; | ||
| 1540 | +} | ||
| 1541 | + | ||
| 1542 | +.s_2_park_form_wrap .ct_close:hover{ | ||
| 1543 | + background: #e5e5e5; | ||
| 1544 | + color: #fd6e6e; | ||
| 1545 | +} | ||
| 1546 | + | ||
| 1547 | +.s_2_park_form_wrap label{ | ||
| 1548 | + color: #666; | ||
| 1549 | + font-size: 13px; | ||
| 1550 | +} | ||
| 1551 | + | ||
| 1552 | +#station_to_park-modal.ct-form-modal form input[readonly]{ | ||
| 1553 | + background: #fafafa; | ||
| 1554 | +} | ||
| 1555 | + | ||
| 1556 | +.s_2_park_form_wrap .bottom_label{ | ||
| 1557 | + margin-top: 25px; | ||
| 1558 | + display: block; | ||
| 1559 | +} | ||
| 1560 | + | ||
| 1561 | +.s_2_park_form_wrap .bottom_label_2{ | ||
| 1562 | + margin-top: 4px; | ||
| 1563 | + display: block; | ||
| 1564 | +} | ||
| 1565 | + | ||
| 1566 | +.ct_describe{ | ||
| 1567 | + font-size: 12px; | ||
| 1568 | + color: #909090; | ||
| 1569 | + font-family: FontAwesome; | ||
| 1570 | +} | ||
| 1571 | + | ||
| 1572 | +.ct_describe:before{ | ||
| 1573 | + content: "\f059"; | ||
| 1574 | + margin-right: 3px; | ||
| 1437 | } | 1575 | } |
| 1438 | \ No newline at end of file | 1576 | \ No newline at end of file |
src/main/resources/static/real_control_v2/css/north.css
| @@ -481,4 +481,13 @@ | @@ -481,4 +481,13 @@ | ||
| 481 | .ct-badge.ct-badge-TZRC:hover{ | 481 | .ct-badge.ct-badge-TZRC:hover{ |
| 482 | background: #97a50f; | 482 | background: #97a50f; |
| 483 | color: #fff; | 483 | color: #fff; |
| 484 | +} | ||
| 485 | + | ||
| 486 | +.ct-badge.ct-badge-LSBCTZ { | ||
| 487 | + color: red; | ||
| 488 | +} | ||
| 489 | + | ||
| 490 | +.ct-badge.ct-badge-LSBCTZ:hover{ | ||
| 491 | + background: red; | ||
| 492 | + color: #fff; | ||
| 484 | } | 493 | } |
| 485 | \ No newline at end of file | 494 | \ No newline at end of file |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lp_change.html
| 1 | -<div class="uk-modal ct_move_modal" id="schedule-lp_change-modal"> | 1 | +<div class="uk-modal" id="schedule-lp_change-modal"> |
| 2 | <div class="uk-modal-dialog" style="width: 1240px;"> | 2 | <div class="uk-modal-dialog" style="width: 1240px;"> |
| 3 | <a href="" class="uk-modal-close uk-close"></a> | 3 | <a href="" class="uk-modal-close uk-close"></a> |
| 4 | <div class="uk-modal-header"> | 4 | <div class="uk-modal-header"> |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_custom.html
| @@ -88,6 +88,7 @@ | @@ -88,6 +88,7 @@ | ||
| 88 | gb_schedule_table.updateSchedule(rst); | 88 | gb_schedule_table.updateSchedule(rst); |
| 89 | UIkit.modal('#add-sub-task-main-modal').hide(); | 89 | UIkit.modal('#add-sub-task-main-modal').hide(); |
| 90 | $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); | 90 | $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); |
| 91 | + gb_data_basic.reload_stat_park_data(); | ||
| 91 | return; | 92 | return; |
| 92 | } | 93 | } |
| 93 | var data = dataArray[i]; | 94 | var data = dataArray[i]; |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_in_out.html
| @@ -40,10 +40,20 @@ | @@ -40,10 +40,20 @@ | ||
| 40 | repeat_In(inf); | 40 | repeat_In(inf); |
| 41 | //出场子任务 | 41 | //出场子任务 |
| 42 | repeat_Out(outf); | 42 | repeat_Out(outf); |
| 43 | + | ||
| 44 | + //进场终点改变事件 | ||
| 45 | + $f('endStation', inf).on('change', function () { | ||
| 46 | + $f('startStation',outf).val($(this).val()).trigger('change'); | ||
| 47 | + }); | ||
| 48 | + | ||
| 43 | }, 500); | 49 | }, 500); |
| 44 | 50 | ||
| 45 | - //营运终点和进场起点改变事件 | 51 | + //营运终点改变事件 |
| 46 | $f('endStation', sf).on('change', changeServiceEnd); | 52 | $f('endStation', sf).on('change', changeServiceEnd); |
| 53 | + //进场公里改变 | ||
| 54 | + $f('mileage',inf).on('input', function () { | ||
| 55 | + $f('mileage',outf).val($(this).val()); | ||
| 56 | + }); | ||
| 47 | //$f('startStation', inf).on('change', changeServiceEnd); | 57 | //$f('startStation', inf).on('change', changeServiceEnd); |
| 48 | }); | 58 | }); |
| 49 | 59 | ||
| @@ -88,7 +98,7 @@ | @@ -88,7 +98,7 @@ | ||
| 88 | f.addClass('destroy_form'); | 98 | f.addClass('destroy_form'); |
| 89 | } | 99 | } |
| 90 | else if (sch.status == 2) { | 100 | else if (sch.status == 2) { |
| 91 | - $f('destroy', f).parents('label').hide(); | 101 | + $f('destroy', f).parents('label').remove(); |
| 92 | $f('endDate', f).val(sch.zdsjActual); | 102 | $f('endDate', f).val(sch.zdsjActual); |
| 93 | $('input,select', f).attr('disabled', 'disabled'); | 103 | $('input,select', f).attr('disabled', 'disabled'); |
| 94 | } | 104 | } |
| @@ -137,11 +147,14 @@ | @@ -137,11 +147,14 @@ | ||
| 137 | } | 147 | } |
| 138 | if(eCode==sch.qdzCode || eCode==sch.zdzCode){ | 148 | if(eCode==sch.qdzCode || eCode==sch.zdzCode){ |
| 139 | $f('startStation',inf).val(eCode).trigger('change'); | 149 | $f('startStation',inf).val(eCode).trigger('change'); |
| 150 | + $f('type2',outf).trigger('change'); | ||
| 140 | return; | 151 | return; |
| 141 | } | 152 | } |
| 142 | 153 | ||
| 143 | //进场起点 | 154 | //进场起点 |
| 144 | - $f('startStation',inf).val(eCode); | 155 | + $f('startStation',inf).val(eCode);//.trigger('change'); |
| 156 | + //终点trigger change 出发重计算 | ||
| 157 | + $f('endStation',inf).trigger('change'); | ||
| 145 | 158 | ||
| 146 | //中途进场 | 159 | //中途进场 |
| 147 | showHalfPanel(eCode); | 160 | showHalfPanel(eCode); |
| @@ -212,7 +225,7 @@ | @@ -212,7 +225,7 @@ | ||
| 212 | var htmlStr = template('st-v2-domains-changecar-form-temp', {inOutExps: gb_common.inOutExps}); | 225 | var htmlStr = template('st-v2-domains-changecar-form-temp', {inOutExps: gb_common.inOutExps}); |
| 213 | $('.domains', half_form).html(htmlStr); | 226 | $('.domains', half_form).html(htmlStr); |
| 214 | $('.domains', outf).html(htmlStr); | 227 | $('.domains', outf).html(htmlStr); |
| 215 | - half_form.css('z-index', 99).trigger('add_reason_field'); | 228 | + half_form.css('z-index', 99).formValidation('addField', 'reason').formValidation('addField', 'nbbm'); |
| 216 | outf.trigger('add_reason_field'); | 229 | outf.trigger('add_reason_field'); |
| 217 | 230 | ||
| 218 | //车辆 autocomplete | 231 | //车辆 autocomplete |
| @@ -221,13 +234,15 @@ | @@ -221,13 +234,15 @@ | ||
| 221 | 234 | ||
| 222 | //同步车辆编码 | 235 | //同步车辆编码 |
| 223 | $f('nbbm', half_form).on('input change', function () { | 236 | $f('nbbm', half_form).on('input change', function () { |
| 224 | - $f('nbbm', outf).val($(this).val()); | 237 | + $f('nbbm', outf).val($(this).val()); |
| 225 | }); | 238 | }); |
| 226 | 239 | ||
| 227 | half_form.removeClass('destroy_form'); | 240 | half_form.removeClass('destroy_form'); |
| 228 | 241 | ||
| 229 | //出场终点 | 242 | //出场终点 |
| 230 | - $f('endStation',outf).val($f('endStation',sf).val()); | 243 | + $f('endStation',outf).val($f('endStation',sf).val()).trigger('change'); |
| 244 | + //出发合计公里重新计算 | ||
| 245 | + $f('mileage', half_form).trigger('input'); | ||
| 231 | } | 246 | } |
| 232 | 247 | ||
| 233 | function disabledChangeCar() { | 248 | function disabledChangeCar() { |
| @@ -261,6 +276,7 @@ | @@ -261,6 +276,7 @@ | ||
| 261 | gb_schedule_table.updateSchedule(rst); | 276 | gb_schedule_table.updateSchedule(rst); |
| 262 | UIkit.modal('#add-sub-task-main-modal').hide(); | 277 | UIkit.modal('#add-sub-task-main-modal').hide(); |
| 263 | $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); | 278 | $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); |
| 279 | + gb_data_basic.reload_stat_park_data(); | ||
| 264 | return; | 280 | return; |
| 265 | } | 281 | } |
| 266 | var data = dataArray[i]; | 282 | var data = dataArray[i]; |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/add_range_turn.html
| @@ -127,6 +127,14 @@ | @@ -127,6 +127,14 @@ | ||
| 127 | */ | 127 | */ |
| 128 | function changeTurnStation() { | 128 | function changeTurnStation() { |
| 129 | f1.nextAll('.sub_task_form_v2').remove(); | 129 | f1.nextAll('.sub_task_form_v2').remove(); |
| 130 | + //掉头站点编码 | ||
| 131 | + var eCode = $('#turnStationSelect', topf).val(); | ||
| 132 | + if(!eCode){ | ||
| 133 | + //$('.footer_mileage_count', '#add-sub-task-main-modal').trigger('refresh'); | ||
| 134 | + $f('endStation', f1).val(sch.zdzCode).trigger('change'); | ||
| 135 | + $('#emptyTurnCbox input')[0].checked=false; | ||
| 136 | + return; | ||
| 137 | + } | ||
| 130 | 138 | ||
| 131 | //烂班1 | 139 | //烂班1 |
| 132 | df1 = destroyForm(disabled_form(addTaskForm())); | 140 | df1 = destroyForm(disabled_form(addTaskForm())); |
| @@ -135,8 +143,7 @@ | @@ -135,8 +143,7 @@ | ||
| 135 | //营运2 | 143 | //营运2 |
| 136 | f2 = disabled_form(addTaskForm()); | 144 | f2 = disabled_form(addTaskForm()); |
| 137 | $('.domains', f2).empty(); | 145 | $('.domains', f2).empty(); |
| 138 | - //掉头站点编码 | ||
| 139 | - var eCode = $('#turnStationSelect', topf).val(); | 146 | + |
| 140 | 147 | ||
| 141 | //营运1终点 | 148 | //营运1终点 |
| 142 | $f('endStation', f1).val(eCode).trigger('change'); | 149 | $f('endStation', f1).val(eCode).trigger('change'); |
| @@ -155,7 +162,7 @@ | @@ -155,7 +162,7 @@ | ||
| 155 | $('[sch_id_inp]', f2).val(nextSch.id); | 162 | $('[sch_id_inp]', f2).val(nextSch.id); |
| 156 | 163 | ||
| 157 | //set css | 164 | //set css |
| 158 | - setCss(); | 165 | + //setCss(); |
| 159 | //reason | 166 | //reason |
| 160 | changeTurnReason(); | 167 | changeTurnReason(); |
| 161 | } | 168 | } |
| @@ -180,17 +187,17 @@ | @@ -180,17 +187,17 @@ | ||
| 180 | return f; | 187 | return f; |
| 181 | } | 188 | } |
| 182 | 189 | ||
| 183 | - function setCss() { | ||
| 184 | - $('.sub_task_form_v2', wrap).each(function () { | ||
| 185 | - if($(this).hasClass('destroy_form')) | ||
| 186 | - return true; | 190 | + /*function setCss() { |
| 191 | + $('.sub_task_form_v2', wrap).each(function () { | ||
| 192 | + if($(this).hasClass('destroy_form')) | ||
| 193 | + return true; | ||
| 187 | 194 | ||
| 188 | - if($f('mileageType', this).val()=='service') | ||
| 189 | - $(this).addClass('service_st_form'); | ||
| 190 | - else | ||
| 191 | - $(this).removeClass('service_st_form'); | ||
| 192 | - }); | ||
| 193 | - } | 195 | + if($f('mileageType', this).val()=='service') |
| 196 | + $(this).addClass('service_st_form'); | ||
| 197 | + else | ||
| 198 | + $(this).removeClass('service_st_form'); | ||
| 199 | + }); | ||
| 200 | + }*/ | ||
| 194 | 201 | ||
| 195 | /** | 202 | /** |
| 196 | * 空驶调头 | 203 | * 空驶调头 |
| @@ -209,12 +216,14 @@ | @@ -209,12 +216,14 @@ | ||
| 209 | $f('startDate', df2).val(nextSch.dfsj); | 216 | $f('startDate', df2).val(nextSch.dfsj); |
| 210 | $f('endDate', df2).val(nextSch.zdsj); | 217 | $f('endDate', df2).val(nextSch.zdsj); |
| 211 | //营运2 变空驶 | 218 | //营运2 变空驶 |
| 212 | - f2.removeClass('service_st_form'); | ||
| 213 | - $f('mileageType',f2).val('empty'); | 219 | + //f2.removeClass('service_st_form'); |
| 220 | + $f('mileageType',f2).val('empty').trigger('change'); | ||
| 214 | } | 221 | } |
| 215 | else{ | 222 | else{ |
| 216 | changeTurnStation(); | 223 | changeTurnStation(); |
| 217 | } | 224 | } |
| 225 | + | ||
| 226 | + //$f('mileage', df2).trigger('input'); | ||
| 218 | } | 227 | } |
| 219 | 228 | ||
| 220 | //提交 | 229 | //提交 |
| @@ -245,6 +254,7 @@ | @@ -245,6 +254,7 @@ | ||
| 245 | //gb_schedule_table.addRemarks([sch, nextSch], gb_common.trim(remarks, 'g')); | 254 | //gb_schedule_table.addRemarks([sch, nextSch], gb_common.trim(remarks, 'g')); |
| 246 | UIkit.modal('#add-sub-task-main-modal').hide(); | 255 | UIkit.modal('#add-sub-task-main-modal').hide(); |
| 247 | $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); | 256 | $('#schedule-lj_zrw-modal .main-schedule-table').trigger('refresh', {sch: sch}); |
| 257 | + gb_data_basic.reload_stat_park_data(); | ||
| 248 | return; | 258 | return; |
| 249 | } | 259 | } |
| 250 | var data = dataArray[i]; | 260 | var data = dataArray[i]; |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/sub_task_v2/main.html
| @@ -20,6 +20,20 @@ | @@ -20,6 +20,20 @@ | ||
| 20 | </ul> | 20 | </ul> |
| 21 | </div> | 21 | </div> |
| 22 | </div> | 22 | </div> |
| 23 | + | ||
| 24 | + <div class="footer_tools"> | ||
| 25 | + <!-- 底部公里统计栏 --> | ||
| 26 | + <div class="footer_mileage_count"> | ||
| 27 | + 合计 | ||
| 28 | + <span class="service_sum"></span> | ||
| 29 | + <span class="destroy_sum"></span> | ||
| 30 | + <span class="empty_sum"></span> | ||
| 31 | + </div> | ||
| 32 | + <!-- 站到场 链接 --> | ||
| 33 | + <div class="station_to_park_link"> | ||
| 34 | + <a>站 <i class="uk-icon-exchange"></i> 场</a> | ||
| 35 | + </div> | ||
| 36 | + </div> | ||
| 23 | </div> | 37 | </div> |
| 24 | 38 | ||
| 25 | <script id="sub-task-v2-form-temp" type="text/html"> | 39 | <script id="sub-task-v2-form-temp" type="text/html"> |
| @@ -108,7 +122,7 @@ | @@ -108,7 +122,7 @@ | ||
| 108 | <label class="uk-form-label">车辆编码</label> | 122 | <label class="uk-form-label">车辆编码</label> |
| 109 | <div class="uk-form-controls"> | 123 | <div class="uk-form-controls"> |
| 110 | <div class="uk-autocomplete autocomplete-cars"> | 124 | <div class="uk-autocomplete autocomplete-cars"> |
| 111 | - <input type="text" name="nbbm" placeholder="车辆自编号"> | 125 | + <input type="text" name="nbbm" placeholder="车辆自编号" required> |
| 112 | </div> | 126 | </div> |
| 113 | </div> | 127 | </div> |
| 114 | </div> | 128 | </div> |
| @@ -189,12 +203,15 @@ | @@ -189,12 +203,15 @@ | ||
| 189 | var modal = '#add-sub-task-main-modal', sch, | 203 | var modal = '#add-sub-task-main-modal', sch, |
| 190 | stationRoutes, | 204 | stationRoutes, |
| 191 | parks, | 205 | parks, |
| 192 | - information; | 206 | + information, |
| 207 | + st_park_data; | ||
| 193 | 208 | ||
| 194 | $(modal).on('init', function (e, data) { | 209 | $(modal).on('init', function (e, data) { |
| 195 | e.stopPropagation(); | 210 | e.stopPropagation(); |
| 196 | sch = data.sch; | 211 | sch = data.sch; |
| 197 | 212 | ||
| 213 | + //站到场数据 | ||
| 214 | + st_park_data = gb_data_basic.get_stat_park_data()[sch.xlBm]; | ||
| 198 | //站点路由 | 215 | //站点路由 |
| 199 | stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) { | 216 | stationRoutes = gb_common.groupBy(gb_data_basic.stationRoutes(sch.xlBm).sort(function (a, b) { |
| 200 | return a.stationRouteCode - b.stationRouteCode; | 217 | return a.stationRouteCode - b.stationRouteCode; |
| @@ -230,15 +247,50 @@ | @@ -230,15 +247,50 @@ | ||
| 230 | $(modal).on('change', 'input[name=destroy]', destroyClick); | 247 | $(modal).on('change', 'input[name=destroy]', destroyClick); |
| 231 | //起终点站切换事件 | 248 | //起终点站切换事件 |
| 232 | $(modal).on('change', 'select[name=startStation],select[name=endStation]', reCalcInputs_station); | 249 | $(modal).on('change', 'select[name=startStation],select[name=endStation]', reCalcInputs_station); |
| 233 | - //开始时间和公里数改变 | ||
| 234 | - $(modal).on('input', 'input[name=startDate], input[name=mileage]', reCalcEndTime); | 250 | + //开始时间改变 |
| 251 | + $(modal).on('input', 'input[name=startDate]', reCalcEndTime); | ||
| 252 | + //公里数改变 | ||
| 253 | + $(modal).on('input', 'input[name=mileage]', reCalcMileageCount); | ||
| 235 | //终点时间改变 | 254 | //终点时间改变 |
| 236 | $(modal).on('input', 'input[name=endDate]', reCalcNext_s_time); | 255 | $(modal).on('input', 'input[name=endDate]', reCalcNext_s_time); |
| 237 | //进出场原因切换 | 256 | //进出场原因切换 |
| 238 | $(modal).on('change', 'select[name=reason]', reSynchroReason); | 257 | $(modal).on('change', 'select[name=reason]', reSynchroReason); |
| 258 | + //里程类型改变 | ||
| 259 | + $(modal).on('change', 'select[name=mileageType]', changeMileageType); | ||
| 239 | //关闭 | 260 | //关闭 |
| 240 | $(modal).on('click', '.task_form_close_icon', closeTaskForm); | 261 | $(modal).on('click', '.task_form_close_icon', closeTaskForm); |
| 241 | 262 | ||
| 263 | + //公里合计footer | ||
| 264 | + var re_count; | ||
| 265 | + $('.footer_mileage_count', modal).on('refresh', function () { | ||
| 266 | + if(re_count) | ||
| 267 | + return; | ||
| 268 | + re_count = true; | ||
| 269 | + var that=this; | ||
| 270 | + setTimeout(function () { | ||
| 271 | + var fs = $('#tempScheduleContent li.uk-active form.sub_task_form_v2', modal); | ||
| 272 | + var s=0,e=0,d=0,mileage; | ||
| 273 | + $.each(fs, function () { | ||
| 274 | + mileage = parseFloat($f('mileage',this).val()); | ||
| 275 | + if($(this).hasClass('destroy_form')) | ||
| 276 | + d = gb_common.accAdd(d, mileage); | ||
| 277 | + else if($(this).hasClass('service_form')) | ||
| 278 | + s = gb_common.accAdd(s, mileage); | ||
| 279 | + else if($(this).hasClass('empty_form')) | ||
| 280 | + e = gb_common.accAdd(e, mileage); | ||
| 281 | + }); | ||
| 282 | + | ||
| 283 | + $('span',that).hide(); | ||
| 284 | + if(s>0) | ||
| 285 | + $('span.service_sum',that).html('营运: ' + s).show(); | ||
| 286 | + if(e>0) | ||
| 287 | + $('span.empty_sum',that).html('空驶: ' + e).show(); | ||
| 288 | + if(d>0) | ||
| 289 | + $('span.destroy_sum',that).html('烂班: ' + d).show(); | ||
| 290 | + re_count=false; | ||
| 291 | + }, 200); | ||
| 292 | + }); | ||
| 293 | + | ||
| 242 | /** | 294 | /** |
| 243 | * 根据班次类型切换起终点下拉框 | 295 | * 根据班次类型切换起终点下拉框 |
| 244 | */ | 296 | */ |
| @@ -261,28 +313,28 @@ | @@ -261,28 +313,28 @@ | ||
| 261 | switch ($(this).val()) { | 313 | switch ($(this).val()) { |
| 262 | case '3'://出场 | 314 | case '3'://出场 |
| 263 | qdz.html(park_opts).val(information.carPark); | 315 | qdz.html(park_opts).val(information.carPark); |
| 264 | - zdz.html(opts); | ||
| 265 | - mType.val('empty').attr('disabled', 'disabled'); | 316 | + zdz.html(opts).trigger('change'); |
| 317 | + mType.val('empty').attr('disabled', 'disabled').trigger('change'); | ||
| 266 | domainsTemp = 'st-v2-domains-inout-form-temp'; | 318 | domainsTemp = 'st-v2-domains-inout-form-temp'; |
| 267 | - //如果上一个form是进场 | ||
| 268 | - try { | ||
| 269 | - var prev_f = f.prev('.sub_task_form_v2'); | ||
| 270 | - if ($f('type2', prev_f).val() == 2) | ||
| 271 | - zdz.val($f('startStation', prev_f).val()); | ||
| 272 | - } catch (e) { | ||
| 273 | - console.log(e); | ||
| 274 | - } | 319 | + /*//如果上一个form是进场 |
| 320 | + try { | ||
| 321 | + var prev_f = f.prev('.sub_task_form_v2'); | ||
| 322 | + if ($f('type2', prev_f).val() == 2) | ||
| 323 | + zdz.val($f('startStation', prev_f).val()); | ||
| 324 | + } catch (e) { | ||
| 325 | + console.log(e); | ||
| 326 | + }*/ | ||
| 275 | break; | 327 | break; |
| 276 | case '2'://进场 | 328 | case '2'://进场 |
| 277 | qdz.html(opts) | 329 | qdz.html(opts) |
| 278 | - zdz.html(park_opts).val(information.carPark); | ||
| 279 | - mType.val('empty').attr('disabled', 'disabled'); | 330 | + zdz.html(park_opts).val(information.carPark).trigger('change'); |
| 331 | + mType.val('empty').attr('disabled', 'disabled').trigger('change'); | ||
| 280 | domainsTemp = 'st-v2-domains-inout-form-temp'; | 332 | domainsTemp = 'st-v2-domains-inout-form-temp'; |
| 281 | break; | 333 | break; |
| 282 | default: | 334 | default: |
| 283 | qdz.html(opts); | 335 | qdz.html(opts); |
| 284 | - zdz.html(opts).val(lastCode); | ||
| 285 | - mType.val('service').removeAttr('disabled'); | 336 | + zdz.html(opts).val(lastCode).trigger('change'); |
| 337 | + mType.val('service').removeAttr('disabled').trigger('change'); | ||
| 286 | domainsTemp = 'st-v2-domains-service-form-temp'; | 338 | domainsTemp = 'st-v2-domains-service-form-temp'; |
| 287 | } | 339 | } |
| 288 | 340 | ||
| @@ -319,27 +371,37 @@ | @@ -319,27 +371,37 @@ | ||
| 319 | upDown = sch.xlDir | 371 | upDown = sch.xlDir |
| 320 | } | 372 | } |
| 321 | 373 | ||
| 322 | - switch (upDown + '_' + type2) { | ||
| 323 | - case '0_3'://上行出场 | ||
| 324 | - mileage = information.upOutMileage; | ||
| 325 | - time = information.upOutTimer; | ||
| 326 | - break; | ||
| 327 | - case '1_3'://下行出场 | ||
| 328 | - mileage = information.downOutMileage; | ||
| 329 | - time = information.downOutTimer; | ||
| 330 | - break; | ||
| 331 | - case '0_2'://上行进场 | ||
| 332 | - mileage = information.upInMileage; | ||
| 333 | - time = information.upInTimer; | ||
| 334 | - break; | ||
| 335 | - case '1_2'://下行进场 | ||
| 336 | - mileage = information.downInMileage; | ||
| 337 | - time = information.downInTimer; | ||
| 338 | - break; | ||
| 339 | - default: | ||
| 340 | - //线路上站点间 | ||
| 341 | - mileage = calcMileageByRoutes(stationRoutes[upDown], qdzCode, zdzCode); | ||
| 342 | - time = gb_common.mul(gb_common.accDiv(sch.bcsj, sch.jhlcOrig), mileage); | 374 | + //从站到场里获取数据 |
| 375 | + var stp = search_st_park(f); | ||
| 376 | + if(stp){ | ||
| 377 | + mileage=type2==2?stp['mileage1']:stp['mileage2']; | ||
| 378 | + time=type2==2?stp['time1']:stp['time2']; | ||
| 379 | + } | ||
| 380 | + else{ | ||
| 381 | + if(upDown==-1) | ||
| 382 | + return; | ||
| 383 | + switch (upDown + '_' + type2) { | ||
| 384 | + case '0_3'://上行出场 | ||
| 385 | + mileage = information.upOutMileage; | ||
| 386 | + time = information.upOutTimer; | ||
| 387 | + break; | ||
| 388 | + case '1_3'://下行出场 | ||
| 389 | + mileage = information.downOutMileage; | ||
| 390 | + time = information.downOutTimer; | ||
| 391 | + break; | ||
| 392 | + case '0_2'://上行进场 | ||
| 393 | + mileage = information.upInMileage; | ||
| 394 | + time = information.upInTimer; | ||
| 395 | + break; | ||
| 396 | + case '1_2'://下行进场 | ||
| 397 | + mileage = information.downInMileage; | ||
| 398 | + time = information.downInTimer; | ||
| 399 | + break; | ||
| 400 | + default: | ||
| 401 | + //线路上站点间 | ||
| 402 | + mileage = calcMileageByRoutes(stationRoutes[upDown], qdzCode, zdzCode); | ||
| 403 | + time = gb_common.mul(gb_common.accDiv(sch.bcsj, sch.jhlcOrig), mileage); | ||
| 404 | + } | ||
| 343 | } | 405 | } |
| 344 | 406 | ||
| 345 | $f('mileage', f).val(mileage); | 407 | $f('mileage', f).val(mileage); |
| @@ -349,6 +411,7 @@ | @@ -349,6 +411,7 @@ | ||
| 349 | if (type2 != 1) { | 411 | if (type2 != 1) { |
| 350 | reCalcEndTime.call(this); | 412 | reCalcEndTime.call(this); |
| 351 | } | 413 | } |
| 414 | + reCalcMileageCount(); | ||
| 352 | } | 415 | } |
| 353 | 416 | ||
| 354 | /** | 417 | /** |
| @@ -363,26 +426,34 @@ | @@ -363,26 +426,34 @@ | ||
| 363 | return; | 426 | return; |
| 364 | 427 | ||
| 365 | var time; | 428 | var time; |
| 366 | - if (type2 == 1) { | ||
| 367 | - time = gb_common.mul(gb_common.accDiv(sch.bcsj, sch.jhlcOrig), mileage); | ||
| 368 | - } | ||
| 369 | - else if (type2 == 2) { | ||
| 370 | - //进场 | ||
| 371 | - var qdzCode = $f('startStation', f).val(), | ||
| 372 | - updown = inout_updown(qdzCode, sch); | ||
| 373 | - | ||
| 374 | - if (updown == -1) | ||
| 375 | - return; | ||
| 376 | - time = updown == 0 ? information.upInTimer : information.downInTimer; | 429 | + //从站到场里获取数据 |
| 430 | + var stp = search_st_park(f); | ||
| 431 | + if(stp){ | ||
| 432 | + mileage=type2==2?stp['mileage1']:stp['mileage2']; | ||
| 433 | + time=type2==2?stp['time1']:stp['time2']; | ||
| 377 | } | 434 | } |
| 378 | - else if (type2 == 3) { | ||
| 379 | - //出场 | ||
| 380 | - var zdzCode = $f('endStation', f).val(), | ||
| 381 | - updown = inout_updown(zdzCode, sch); | ||
| 382 | - | ||
| 383 | - if (updown == -1) | ||
| 384 | - return; | ||
| 385 | - time = updown == 0 ? information.upOutTimer : information.downOutTimer; | 435 | + else{ |
| 436 | + if (type2 == 1) { | ||
| 437 | + time = gb_common.mul(gb_common.accDiv(sch.bcsj, sch.jhlcOrig), mileage); | ||
| 438 | + } | ||
| 439 | + else if (type2 == 2) { | ||
| 440 | + //进场 | ||
| 441 | + var qdzCode = $f('startStation', f).val(), | ||
| 442 | + updown = inout_updown(qdzCode, sch); | ||
| 443 | + | ||
| 444 | + if (updown == -1) | ||
| 445 | + return; | ||
| 446 | + time = updown == 0 ? information.upInTimer : information.downInTimer; | ||
| 447 | + } | ||
| 448 | + else if (type2 == 3) { | ||
| 449 | + //出场 | ||
| 450 | + var zdzCode = $f('endStation', f).val(), | ||
| 451 | + updown = inout_updown(zdzCode, sch); | ||
| 452 | + | ||
| 453 | + if (updown == -1) | ||
| 454 | + return; | ||
| 455 | + time = updown == 0 ? information.upOutTimer : information.downOutTimer; | ||
| 456 | + } | ||
| 386 | } | 457 | } |
| 387 | 458 | ||
| 388 | var et = moment(startDate, 'HH:mm').add(time, 'minutes'); | 459 | var et = moment(startDate, 'HH:mm').add(time, 'minutes'); |
| @@ -456,6 +527,16 @@ | @@ -456,6 +527,16 @@ | ||
| 456 | $('.destroy_reason_wrap', f).hide(); | 527 | $('.destroy_reason_wrap', f).hide(); |
| 457 | f.removeAttr('destroy').removeClass('destroy_form'); | 528 | f.removeAttr('destroy').removeClass('destroy_form'); |
| 458 | } | 529 | } |
| 530 | + reCalcMileageCount(); | ||
| 531 | + } | ||
| 532 | + | ||
| 533 | + function changeMileageType() { | ||
| 534 | + var f = $(this).parents('.sub_task_form_v2'), | ||
| 535 | + mileageType = $(this).val(); | ||
| 536 | + if (mileageType) { | ||
| 537 | + f.removeClass('service_form empty_form').addClass(mileageType + '_form'); | ||
| 538 | + reCalcMileageCount(); | ||
| 539 | + } | ||
| 459 | } | 540 | } |
| 460 | 541 | ||
| 461 | function $f(name, f) { | 542 | function $f(name, f) { |
| @@ -464,6 +545,7 @@ | @@ -464,6 +545,7 @@ | ||
| 464 | 545 | ||
| 465 | function closeTaskForm() { | 546 | function closeTaskForm() { |
| 466 | $(this).parents('.sub_task_form_v2').remove(); | 547 | $(this).parents('.sub_task_form_v2').remove(); |
| 548 | + reCalcMileageCount(); | ||
| 467 | } | 549 | } |
| 468 | 550 | ||
| 469 | /** | 551 | /** |
| @@ -480,6 +562,49 @@ | @@ -480,6 +562,49 @@ | ||
| 480 | return -1; | 562 | return -1; |
| 481 | } | 563 | } |
| 482 | 564 | ||
| 565 | + function search_st_park(f) { | ||
| 566 | + if(!st_park_data) | ||
| 567 | + return; | ||
| 568 | + var stp; | ||
| 569 | + var qdSelect=$f('startStation', f)[0],zdSelect=$f('endStation', f)[0]; | ||
| 570 | + | ||
| 571 | + var qdzName=qdSelect.options[qdSelect.options.selectedIndex].text, | ||
| 572 | + zdzName=zdSelect.options[zdSelect.options.selectedIndex].text, | ||
| 573 | + type2 = $f('type2', f).val(); | ||
| 574 | + | ||
| 575 | + if(type2!=2 && type2!=3) | ||
| 576 | + return; | ||
| 577 | + | ||
| 578 | + $.each(st_park_data, function () { | ||
| 579 | + if((type2==2 && this.stationName==qdzName && this.parkName==zdzName) | ||
| 580 | + || (type2==3 && this.stationName==zdzName && this.parkName==qdzName)){ | ||
| 581 | + stp = this; | ||
| 582 | + return false; | ||
| 583 | + } | ||
| 584 | + }); | ||
| 585 | + | ||
| 586 | + return stp; | ||
| 587 | + } | ||
| 588 | + | ||
| 589 | + $('.left_tabs_lg', modal).on('show.uk.switcher', reCalcMileageCount); | ||
| 590 | + | ||
| 591 | + function reCalcMileageCount() { | ||
| 592 | + $('.footer_mileage_count', modal).trigger('refresh'); | ||
| 593 | + var f = $(this).parents('.sub_task_form_v2'); | ||
| 594 | + if($f('type2',f).val()==1) | ||
| 595 | + reCalcEndTime.call(this); | ||
| 596 | + } | ||
| 597 | + | ||
| 598 | + | ||
| 599 | + var folder = '/real_control_v2/fragments/line_schedule/context_menu'; | ||
| 600 | + /** | ||
| 601 | + * 弹出站 到 场对照表 | ||
| 602 | + */ | ||
| 603 | + $('.station_to_park_link', modal).on('click', function () { | ||
| 604 | + open_modal(folder + '/utils/station_to_park.html', { | ||
| 605 | + sch: sch | ||
| 606 | + }, {center: false, bgclose: false, modal: false}); | ||
| 607 | + }); | ||
| 483 | })(); | 608 | })(); |
| 484 | </script> | 609 | </script> |
| 485 | </div> | 610 | </div> |
| 486 | \ No newline at end of file | 611 | \ No newline at end of file |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/tzrc.html
| @@ -54,8 +54,7 @@ | @@ -54,8 +54,7 @@ | ||
| 54 | </div> | 54 | </div> |
| 55 | <div class="uk-width-1-2"> | 55 | <div class="uk-width-1-2"> |
| 56 | <div class="uk-form-row"> | 56 | <div class="uk-form-row"> |
| 57 | - <label class="uk-form-label">驾驶员 <i class="uk-icon-question-circle" data-uk-tooltip | ||
| 58 | - title="如果有驾驶员未提示,请至后台“基础信息 -人员信息”里纠正该员工的“工种”类别 "></i></label> | 57 | + <label class="uk-form-label">驾驶员 </label> |
| 59 | <div class="uk-form-controls"> | 58 | <div class="uk-form-controls"> |
| 60 | <div class="uk-autocomplete uk-form jsy-autocom"> | 59 | <div class="uk-autocomplete uk-form jsy-autocom"> |
| 61 | <input type="text" value="" name="jsy" required> | 60 | <input type="text" value="" name="jsy" required> |
| @@ -192,7 +191,10 @@ | @@ -192,7 +191,10 @@ | ||
| 192 | //}); | 191 | //}); |
| 193 | 192 | ||
| 194 | //submit | 193 | //submit |
| 195 | - var f = $('form.tzrc_form', modal).formValidation(gb_form_validation_opts); | 194 | + var f = $('form.tzrc_form', modal).formValidation({ |
| 195 | + framework: 'uikit', | ||
| 196 | + locale: 'zh_CN' | ||
| 197 | + }); | ||
| 196 | f.on('success.form.fv', function (e) { | 198 | f.on('success.form.fv', function (e) { |
| 197 | e.preventDefault(); | 199 | e.preventDefault(); |
| 198 | var param = $(this).serializeJSON(); | 200 | var param = $(this).serializeJSON(); |
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/utils/station_to_park.html
0 → 100644
| 1 | +<div class="uk-modal ct-form-modal" id="station_to_park-modal"> | ||
| 2 | + <div class="uk-modal-dialog" style="width: 780px;"> | ||
| 3 | + <a href="" class="uk-modal-close uk-close"></a> | ||
| 4 | + <div class="uk-modal-header"> | ||
| 5 | + <h2>站到场历时、公里对照表</h2></div> | ||
| 6 | + | ||
| 7 | + <div class="ct_lists"> | ||
| 8 | + </div> | ||
| 9 | + | ||
| 10 | + <div class="ct_describe" >从历史的子任务、临加里采集进出场历时和公里</div> | ||
| 11 | + </div> | ||
| 12 | + | ||
| 13 | + <script id="station_park_list-temp" type="text/html"> | ||
| 14 | + {{each list as obj i}} | ||
| 15 | + {{if obj.mileage1 != obj.mileage2}} | ||
| 16 | + <div class="s_2_park_form_wrap" data-id="{{obj.id}}"> | ||
| 17 | + <span class="ct_close"><i class="uk-icon-times"></i></span> | ||
| 18 | + <form class="uk-form"> | ||
| 19 | + {{if obj.time1!=null && obj.mileage1!=null}} | ||
| 20 | + <div class="uk-grid"> | ||
| 21 | + <div class="uk-width-1-4"> | ||
| 22 | + <label class="">起点:</label> | ||
| 23 | + <input type="text" value="{{obj.stationName}}" class="uk-width-1-1" readonly> | ||
| 24 | + </div> | ||
| 25 | + <div class="uk-width-1-4"> | ||
| 26 | + <label>终点:</label> | ||
| 27 | + <input type="text" value="{{obj.parkName}}" class="uk-width-1-1" readonly> | ||
| 28 | + </div> | ||
| 29 | + <div class="uk-width-2-4 uk-grid"> | ||
| 30 | + <div class="uk-width-1-3"> | ||
| 31 | + <label>历时:</label> | ||
| 32 | + <input type="text" value="{{obj.time1}}" class="uk-width-1-1" readonly> | ||
| 33 | + </div> | ||
| 34 | + <div class="uk-width-1-3"> | ||
| 35 | + <label>公里:</label> | ||
| 36 | + <input type="text" value="{{obj.mileage1}}" class="uk-width-1-1" readonly> | ||
| 37 | + </div> | ||
| 38 | + <div class="uk-width-1-3"> | ||
| 39 | + <label class="bottom_label">进场</label> | ||
| 40 | + </div> | ||
| 41 | + </div> | ||
| 42 | + </div> | ||
| 43 | + {{/if}} | ||
| 44 | + {{if obj.time2!=null && obj.mileage2!=null}} | ||
| 45 | + <div class="uk-grid"> | ||
| 46 | + <div class="uk-width-1-4"> | ||
| 47 | + <input type="text" value="{{obj.parkName}}" class="uk-width-1-1" readonly> | ||
| 48 | + </div> | ||
| 49 | + <div class="uk-width-1-4"> | ||
| 50 | + <input type="text" value="{{obj.stationName}}" class="uk-width-1-1" readonly> | ||
| 51 | + </div> | ||
| 52 | + <div class="uk-width-2-4 uk-grid"> | ||
| 53 | + <div class="uk-width-1-3"> | ||
| 54 | + <input type="text" value="{{obj.time2}}" class="uk-width-1-1" readonly> | ||
| 55 | + </div> | ||
| 56 | + <div class="uk-width-1-3"> | ||
| 57 | + <input type="text" value="{{obj.mileage2}}" class="uk-width-1-1" readonly> | ||
| 58 | + </div> | ||
| 59 | + <div class="uk-width-1-3"> | ||
| 60 | + <label class="bottom_label_2">出场</label> | ||
| 61 | + </div> | ||
| 62 | + </div> | ||
| 63 | + </div> | ||
| 64 | + {{/if}} | ||
| 65 | + </form> | ||
| 66 | + </div> | ||
| 67 | + {{else}} | ||
| 68 | + <div class="s_2_park_form_wrap" data-id="{{obj.id}}"> | ||
| 69 | + <span class="ct_close"><i class="uk-icon-times"></i></span> | ||
| 70 | + <form class="uk-form"> | ||
| 71 | + <div class="uk-grid"> | ||
| 72 | + <div class="uk-width-1-4"> | ||
| 73 | + <label class="">起点:</label> | ||
| 74 | + <input type="text" value="{{obj.stationName}}" class="uk-width-1-1" readonly> | ||
| 75 | + </div> | ||
| 76 | + <div class="uk-width-1-4"> | ||
| 77 | + <label>终点:</label> | ||
| 78 | + <input type="text" value="{{obj.parkName}}" class="uk-width-1-1" readonly> | ||
| 79 | + </div> | ||
| 80 | + <div class="uk-width-2-4 uk-grid"> | ||
| 81 | + <div class="uk-width-1-3"> | ||
| 82 | + <label>历时:</label> | ||
| 83 | + <input type="text" value="{{obj.time1}}" class="uk-width-1-1" readonly> | ||
| 84 | + </div> | ||
| 85 | + <div class="uk-width-1-3"> | ||
| 86 | + <label>公里:</label> | ||
| 87 | + <input type="text" value="{{obj.mileage1}}" class="uk-width-1-1" readonly> | ||
| 88 | + </div> | ||
| 89 | + <div class="uk-width-1-3"> | ||
| 90 | + <label class="bottom_label"><input type="checkbox" disabled checked> 进=出 </label> | ||
| 91 | + </div> | ||
| 92 | + </div> | ||
| 93 | + </div> | ||
| 94 | + </form> | ||
| 95 | + </div> | ||
| 96 | + {{/if}} | ||
| 97 | + {{/each}} | ||
| 98 | + </script> | ||
| 99 | + | ||
| 100 | + <script> | ||
| 101 | + (function () { | ||
| 102 | + var modal = '#station_to_park-modal', sch; | ||
| 103 | + | ||
| 104 | + $(modal).on('init', function (e, data) { | ||
| 105 | + e.stopPropagation(); | ||
| 106 | + sch = data.sch; | ||
| 107 | + | ||
| 108 | + var list = gb_data_basic.get_stat_park_data()[sch.xlBm]; | ||
| 109 | + if(!list) | ||
| 110 | + return; | ||
| 111 | + list.sort(function (a, b) { | ||
| 112 | + return a.stationName.localeCompare(b.stationName); | ||
| 113 | + }); | ||
| 114 | + | ||
| 115 | + var htmlStr = template('station_park_list-temp', {list: list}); | ||
| 116 | + $('.ct_lists', modal).html(htmlStr); | ||
| 117 | + }); | ||
| 118 | + | ||
| 119 | + $(modal).on('click', '.s_2_park_form_wrap>.ct_close', function () { | ||
| 120 | + var wrap=$(this).parent(), | ||
| 121 | + id=wrap.data('id'); | ||
| 122 | + | ||
| 123 | + gb_common.$post('/basic/deleteStation2Park', {lineCode: sch.xlBm, id: id}, function () { | ||
| 124 | + gb_data_basic.reload_stat_park_data(); | ||
| 125 | + wrap.remove(); | ||
| 126 | + }); | ||
| 127 | + }); | ||
| 128 | + })(); | ||
| 129 | + </script> | ||
| 130 | +</div> |
src/main/resources/static/real_control_v2/fragments/north/nav/sch_edit_info/list.html
| @@ -35,6 +35,22 @@ | @@ -35,6 +35,22 @@ | ||
| 35 | <div class="uk-autocomplete uk-form autocomplete-jsy"> | 35 | <div class="uk-autocomplete uk-form autocomplete-jsy"> |
| 36 | <input type="text" name="jGh" placeholder="驾驶员"> | 36 | <input type="text" name="jGh" placeholder="驾驶员"> |
| 37 | </div> | 37 | </div> |
| 38 | + | ||
| 39 | + <span class="horizontal-field">修正类型</span> | ||
| 40 | + <select name="type"> | ||
| 41 | + <option value="">全部</option> | ||
| 42 | + <option value="DFTZ">待发调整</option> | ||
| 43 | + <option value="SFTZ">实发调整</option> | ||
| 44 | + <option value="FCXXWT">发车信息微调</option> | ||
| 45 | + <option value="TZRC">调整人车</option> | ||
| 46 | + <option value="JHLB">计划烂班</option> | ||
| 47 | + <option value="CXLB">撤销烂班</option> | ||
| 48 | + <option value="CXSF">撤销实发</option> | ||
| 49 | + <option value="CXZX">撤销执行</option> | ||
| 50 | + <option value="LPDD">路牌对调</option> | ||
| 51 | + <option value="ZRW">添加子任务</option> | ||
| 52 | + <option value="LSBCTZ">历史班次调整</option> | ||
| 53 | + </select> | ||
| 38 | <button class="uk-button">检索</button> | 54 | <button class="uk-button">检索</button> |
| 39 | 55 | ||
| 40 | <label style="float: right;font-size: 12px;color: #989797;"> | 56 | <label style="float: right;font-size: 12px;color: #989797;"> |
| @@ -122,6 +138,19 @@ | @@ -122,6 +138,19 @@ | ||
| 122 | </div> | 138 | </div> |
| 123 | </script> | 139 | </script> |
| 124 | 140 | ||
| 141 | + <!-- 历史班次调整 tip --> | ||
| 142 | + <script id="edit-info-tip-lsbctz-temp" type="text/html"> | ||
| 143 | + <div class="edit-info-tip"> | ||
| 144 | + {{each jsonArray as obj i}} | ||
| 145 | + <p class="text">{{obj.title}} 由 {{obj.old==null?'无':obj.old}} 调整为 {{obj.now}}</p> | ||
| 146 | + {{/each}} | ||
| 147 | + <p class="sub_text">调整人:{{user}} 调整时间:{{ts_str}}</p> | ||
| 148 | + {{if remarks!=null && remarks != ''}} | ||
| 149 | + <p class="sub_text">备注:{{remarks}}</p> | ||
| 150 | + {{/if}} | ||
| 151 | + </div> | ||
| 152 | + </script> | ||
| 153 | + | ||
| 125 | <!-- 撤销实发tip --> | 154 | <!-- 撤销实发tip --> |
| 126 | <script id="edit-info-tip-cxsf-temp" type="text/html"> | 155 | <script id="edit-info-tip-cxsf-temp" type="text/html"> |
| 127 | <div class="edit-info-tip"> | 156 | <div class="edit-info-tip"> |
| @@ -248,6 +277,7 @@ | @@ -248,6 +277,7 @@ | ||
| 248 | $.each(rs.list, function () { | 277 | $.each(rs.list, function () { |
| 249 | this.jsonArray = JSON.parse(this.jsonArray); | 278 | this.jsonArray = JSON.parse(this.jsonArray); |
| 250 | etInfos[this.id] = this; | 279 | etInfos[this.id] = this; |
| 280 | + this['ts_str'] = moment(this.ts).format('YYYY-MM-DD HH:mm'); | ||
| 251 | 281 | ||
| 252 | nbbmArray.push({value: this.clZbh}); | 282 | nbbmArray.push({value: this.clZbh}); |
| 253 | jsyArray.push({value: this.jGh+'/'+this.jName, | 283 | jsyArray.push({value: this.jGh+'/'+this.jName, |
| @@ -365,7 +395,7 @@ | @@ -365,7 +395,7 @@ | ||
| 365 | return gb_common.get_vals(rs); | 395 | return gb_common.get_vals(rs); |
| 366 | } | 396 | } |
| 367 | 397 | ||
| 368 | - var types = {'DFTZ': '待发调整', 'FCXXWT':'发车信息微调', 'JHLB': '计划烂班', 'CXLB': '撤销烂班', 'CXZX': '撤销执行', 'CXSF': '撤销实发', 'SFTZ': '实发调整', 'TZRC': '调整人车'}; | 398 | + var types = {'DFTZ': '待发调整', 'FCXXWT':'发车信息微调', 'JHLB': '计划烂班', 'CXLB': '撤销烂班', 'CXZX': '撤销执行', 'CXSF': '撤销实发', 'SFTZ': '实发调整', 'TZRC': '调整人车', 'LSBCTZ':'历史班次调整'}; |
| 369 | function subData(data){ | 399 | function subData(data){ |
| 370 | return { | 400 | return { |
| 371 | id: data.id, | 401 | id: data.id, |
| @@ -535,6 +565,26 @@ | @@ -535,6 +565,26 @@ | ||
| 535 | }); | 565 | }); |
| 536 | 566 | ||
| 537 | 567 | ||
| 568 | + //发车信息微调tip | ||
| 569 | + $(modal).on('mouseenter', '.ct-badge.ct-badge-LSBCTZ', function() { | ||
| 570 | + $(this).qtip({ | ||
| 571 | + show: _opts.show, | ||
| 572 | + content: { | ||
| 573 | + title: '发车信息微调', | ||
| 574 | + text: function() { | ||
| 575 | + var obj = etInfos[$(this).data('id')]; | ||
| 576 | + return template('edit-info-tip-lsbctz-temp', obj); | ||
| 577 | + } | ||
| 578 | + }, | ||
| 579 | + position: _opts.position, | ||
| 580 | + style: { | ||
| 581 | + classes: 'qtip-blue qtip-rounded qtip-shadow sch-badge-tip' | ||
| 582 | + }, | ||
| 583 | + hide: _opts.hide, | ||
| 584 | + events: _opts.events | ||
| 585 | + }); | ||
| 586 | + }); | ||
| 587 | + | ||
| 538 | function sortFun(a, b) { | 588 | function sortFun(a, b) { |
| 539 | return (a.realExecDate + a.fcsj).localeCompare(b.realExecDate + b.fcsj); | 589 | return (a.realExecDate + a.fcsj).localeCompare(b.realExecDate + b.fcsj); |
| 540 | } | 590 | } |
src/main/resources/static/real_control_v2/js/data/data_basic.js
| @@ -75,6 +75,9 @@ var gb_data_basic = (function () { | @@ -75,6 +75,9 @@ var gb_data_basic = (function () { | ||
| 75 | var carparks = {}; | 75 | var carparks = {}; |
| 76 | //停车场数据 | 76 | //停车场数据 |
| 77 | gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) { | 77 | gb_common.$get('/realMap/carParkSpatialData', {}, function (rs) { |
| 78 | + rs.list.sort(function (a, b) { | ||
| 79 | + return a.parkName.localeCompare(b.parkName); | ||
| 80 | + }); | ||
| 78 | $.each(rs.list, function () { | 81 | $.each(rs.list, function () { |
| 79 | carparks[this.parkCode] = this; | 82 | carparks[this.parkCode] = this; |
| 80 | }); | 83 | }); |
| @@ -116,6 +119,15 @@ var gb_data_basic = (function () { | @@ -116,6 +119,15 @@ var gb_data_basic = (function () { | ||
| 116 | ep.emit('svg_attrs', data); | 119 | ep.emit('svg_attrs', data); |
| 117 | }); | 120 | }); |
| 118 | 121 | ||
| 122 | + //站点和停车场历时、公里对照数据 | ||
| 123 | + var stat_park_data; | ||
| 124 | + var load_stat_park_data = function () { | ||
| 125 | + $.get('/basic/station2ParkData?t='+Math.random(), {idx: line_idx}, function (rs) { | ||
| 126 | + stat_park_data = rs; | ||
| 127 | + }); | ||
| 128 | + } | ||
| 129 | + load_stat_park_data(); | ||
| 130 | + | ||
| 119 | function findLineByCodes(codeArr) { | 131 | function findLineByCodes(codeArr) { |
| 120 | var rs = []; | 132 | var rs = []; |
| 121 | $.each(codeArr, function () { | 133 | $.each(codeArr, function () { |
| @@ -239,6 +251,12 @@ var gb_data_basic = (function () { | @@ -239,6 +251,12 @@ var gb_data_basic = (function () { | ||
| 239 | }, | 251 | }, |
| 240 | remarksMapps: function () { | 252 | remarksMapps: function () { |
| 241 | return remarksMapps; | 253 | return remarksMapps; |
| 254 | + }, | ||
| 255 | + get_stat_park_data: function () { | ||
| 256 | + return stat_park_data; | ||
| 257 | + }, | ||
| 258 | + reload_stat_park_data: function () { | ||
| 259 | + load_stat_park_data(); | ||
| 242 | } | 260 | } |
| 243 | }; | 261 | }; |
| 244 | })(); | 262 | })(); |
src/main/resources/static/real_control_v2/js/line_schedule/sch_table.js
| @@ -564,7 +564,7 @@ var gb_schedule_table = (function () { | @@ -564,7 +564,7 @@ var gb_schedule_table = (function () { | ||
| 564 | return a.clZbh == sch.clZbh && a.bcType=='normal'; | 564 | return a.clZbh == sch.clZbh && a.bcType=='normal'; |
| 565 | }).sort(schedule_sort); | 565 | }).sort(schedule_sort); |
| 566 | 566 | ||
| 567 | - for (var i = 0, item; item = array[i++];) { | 567 | + for (var i = 0; i < array.length; i++) { |
| 568 | if (array[i].id == sch.id) { | 568 | if (array[i].id == sch.id) { |
| 569 | return i < array.length ? array[i + 1] : null; | 569 | return i < array.length ? array[i + 1] : null; |
| 570 | } | 570 | } |